Skip to content

Commit

Permalink
adding basic kernels info
Browse files Browse the repository at this point in the history
  • Loading branch information
mrachh committed Mar 21, 2024
1 parent 61edb4d commit 5737630
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 6 deletions.
8 changes: 2 additions & 6 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,17 @@
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))


# -- General configuration ------------------------------------------------

# If your documentation needs a minimal Sphinx version, state it here.
#
# needs_sphinx = '1.0'
needs_sphinx = '1.6'

# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = ['sphinx.ext.mathjax']
extensions = ['sphinx.ext.mathjax', 'sphinx_math_dollar']

# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
Expand Down
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -139,5 +139,6 @@ license.
getchunkie
guide
gallery
kerns


60 changes: 60 additions & 0 deletions docs/kerns.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
.. role:: matlab(code)
:language: matlab

The kernel class
==================
The kernel class is an easy way of specifying integral operators
in classical potential theory.
The kernel object has several attributes including parameters required
to define the kernel, the type of singularity for determining the quadrature
to be used, function handles for evaluating the kernel,
and fmm acceleration routines if available.

The constructor for the kernel objects take the form::

kernel('PDE name', 'kernel name', 'extra params')

Chunkie includes pre-edefined kernels that arise in the solution of the
following PDEs.

- :ref:`lap`
- :ref:`helm`
- :ref:`stokes`
- :ref:`elasticity`

.. _lap:

Laplace kernels
----------------
The free-space Green's function for Laplace's equation in two dimensions,
denoted by $G_{0}(x, y)$, is given by

.. math::
G_{0}(x,y) = -\frac{1}{2\pi} \log{(\sqrt{(x_{1} - y_{1})^2 + (x_{2} - y_{2})^2)}} \,,
where $x=(x_{1},x_{2})$, and $y=(y_{1},y_{2})$.

The PDE keywords for using any Laplace kernels are 'Laplace', or 'l'.
In the following, the variable $y$ will be referred to as the source, and the
variable x will be the target.

The following layer potentials
defined by their associated kernels are supported:

- 'single' or 's': Laplace single layer potential, $G_{0}(x,y)$
- 'double' or 'd': Laplace double layer potential, $n(y) \cdot \partial_{y} G_{0}(x,y)$
- 'combined' or 'c': Laplace combined layer potential, $c_{1} n(y) \cdot
\partial_{y} G_{0}(x,y) + c_{2} G_{0}(x,y)$, where the coefficients
$c_{1},c_{2}$ are passed as an extra array of length 2, with default values of
$(c_{1},c_{2}) = (1,1)$.
- 'sprime' or 'sp': Normal derivative of Laplace single layer
potential, $n(x) \cdot \partial_{x} G_{0}(x,y)$
- 'stau' or 'st': Tangential derivative of Laplace single layer potential,
$\tau(x) \cdot \partial_{x} G_{0}(x,y)$
- 'dprime' or 'dp': Normal derivative of Laplace double layer potential,
$n(x) \cdot \partial_{x} n(y) \cdot \partial_{y} G_{0}(x,y)$
- 'sgrad' or 'sg': Gradient of Laplace single layer potential,
$\partial_{x} G_{0}(x,y)$
- 'dgrad' or 'dg': Gradient of Laplace double layer potential,
$\partial_{x} n_{y} \cdot \partial_{y} G_{0}(x,y)$

0 comments on commit 5737630

Please sign in to comment.