MADNESS
version 0.9
|
Provides the Li-Lowengrub-Ratz-Voight (LLRV) domain mask characteristic functions. More...
#include <sdf_domainmask.h>
Public Member Functions | |
LLRVDomainMask (double epsilon) | |
Constructor for the domain mask. More... | |
double | mask (double d) const |
Value of characteristic function at normal distance d from the surface. More... | |
double | dmask (double d) const |
Derivative of characteristic function with respect to the normal distance. More... | |
double | surface (double d) const |
Value of surface function at distance d normal to surface. More... | |
double | dsurface (double d) const |
Value of d(surface)/ddistance. More... | |
virtual | ~LLRVDomainMask () |
Public Member Functions inherited from madness::DomainMaskInterface | |
virtual | ~DomainMaskInterface () |
Protected Attributes | |
const double | epsilon |
The width of the transition region. More... | |
Provides the Li-Lowengrub-Ratz-Voight (LLRV) domain mask characteristic functions.
See X. Li, J. Lowengrub, A. Rätz, and A. Voight, ``Solving PDEs in Complex Geometries: A Diffuse Domain Approach,'' Commun. Math. Sci., 7, p81-107, 2009.
Given a signed distance, this class implements in the domain mask and surface functions from the above reference. For the domain mask,
where is the signed distance. The normalized surface function is
The constant is chosen to fulfill
This class assumes the domain mask is uniformly 0 or 1 outside signed distances since the switching function becomes 0/1 to machine precision at these levels. Specifically, for this function the parameter is an effective measure of the full width of the surface layer since
and
|
inline |
Constructor for the domain mask.
[in] | epsilon | The effective width of the surface |
|
inlinevirtual |
|
inlinevirtual |
Derivative of characteristic function with respect to the normal distance.
[in] | d | The signed distance |
Implements madness::DomainMaskInterface.
References epsilon, mpfr::fabs(), and mpfr::tanh().
Referenced by dsurface().
|
inlinevirtual |
Value of d(surface)/ddistance.
[in] | d | The signed distance |
Implements madness::DomainMaskInterface.
|
inlinevirtual |
Value of characteristic function at normal distance d from the surface.
[in] | d | The signed distance. Negative is inside,'' positive is outside.'' |
Implements madness::DomainMaskInterface.
References mpfr::tanh().
Referenced by dsurface(), and surface().
|
inlinevirtual |
Value of surface function at distance d normal to surface.
[in] | d | The signed distance |
Implements madness::DomainMaskInterface.
|
protected |
The width of the transition region.
Referenced by dmask(), dsurface(), and surface().