MADNESS
0.10.1
|
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... | |
virtual | ~LLRVDomainMask () |
double | dmask (double d) const |
Derivative of characteristic function with respect to the normal distance. More... | |
double | dsurface (double d) const |
Value of d(surface)/ddistance. More... | |
double | mask (double d) const |
Value of characteristic function at normal distance d from the surface. More... | |
double | surface (double d) const |
Value of surface function at distance d normal to surface. More... | |
Public Member Functions inherited from madness::DomainMaskInterface | |
virtual | ~DomainMaskInterface () |
Protected Attributes | |
const double | epsilon |
The width of the transition region. More... | |
Private Member Functions | |
LLRVDomainMask () | |
Forbidden. 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
|
inlineprivate |
Forbidden.
|
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.
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.
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(), mask(), and surface().