MADNESS 0.10.1
|
The interface for masking functions defined by signed distance functions. More...
#include <sdf_domainmask.h>
Public Member Functions | |
virtual | ~DomainMaskInterface () |
virtual double | dmask (double d) const =0 |
Returns the derivative of the characteristic mask function with respect to the distance (from the surface) | |
virtual double | dsurface (double d) const =0 |
Returns the derivative of the normalized surface layer function. | |
virtual double | mask (double d) const =0 |
Returns the characteristic mask function. | |
virtual double | surface (double d) const =0 |
Returns the value of the normalized surface layer function. | |
The interface for masking functions defined by signed distance functions.
This interface was initially conceived for using shapes in MADNESS to specify internal boundary conditions. The signed distance function defines the shape, and this mask allows calculations of volumes, surfaces, etc.
|
inlinevirtual |
|
pure virtual |
Returns the derivative of the characteristic mask function with respect to the distance (from the surface)
[in] | d | The signed normal distance from the surface |
Implemented in madness::LLRVDomainMask, and madness::GaussianDomainMask.
|
pure virtual |
Returns the derivative of the normalized surface layer function.
[in] | d | The signed normal distance from the surface |
Implemented in madness::LLRVDomainMask, and madness::GaussianDomainMask.
|
pure virtual |
Returns the characteristic mask function.
[in] | d | The signed distance from the surface |
Implemented in madness::LLRVDomainMask, and madness::GaussianDomainMask.
Referenced by EmbeddedDirichlet::operator()().
|
pure virtual |
Returns the value of the normalized surface layer function.
Normalized means the volume integral of this function should converge to the surface area in the limit of a either an infinitely thin surface or zero curvature. The function thus acts as a `‘delta function’' located at the boundary.
[in] | d | The signed normal distance from the surface |
Implemented in madness::LLRVDomainMask, and madness::GaussianDomainMask.
Referenced by EmbeddedDirichlet::operator()().