MADNESS  0.10.1
Public Member Functions | List of all members
madness::DomainMaskInterface Class Referenceabstract

The interface for masking functions defined by signed distance functions. More...

#include <sdf_domainmask.h>

Inheritance diagram for madness::DomainMaskInterface:
Inheritance graph
[legend]

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) More...
 
virtual double dsurface (double d) const =0
 Returns the derivative of the normalized surface layer function. More...
 
virtual double mask (double d) const =0
 Returns the characteristic mask function. More...
 
virtual double surface (double d) const =0
 Returns the value of the normalized surface layer function. More...
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ ~DomainMaskInterface()

virtual madness::DomainMaskInterface::~DomainMaskInterface ( )
inlinevirtual

Member Function Documentation

◆ dmask()

virtual double madness::DomainMaskInterface::dmask ( double  d) const
pure virtual

Returns the derivative of the characteristic mask function with respect to the distance (from the surface)

Parameters
[in]dThe signed normal distance from the surface
Returns
Derivative of the characteristic mask function

Implemented in madness::GaussianDomainMask, and madness::LLRVDomainMask.

◆ dsurface()

virtual double madness::DomainMaskInterface::dsurface ( double  d) const
pure virtual

Returns the derivative of the normalized surface layer function.

Parameters
[in]dThe signed normal distance from the surface
Returns
Derivative of the normalized surface layer function

Implemented in madness::GaussianDomainMask, and madness::LLRVDomainMask.

◆ mask()

virtual double madness::DomainMaskInterface::mask ( double  d) const
pure virtual

Returns the characteristic mask function.

  • 1 in interior
  • 0 in exterior
  • 1/2 on boundary
Parameters
[in]dThe signed distance from the surface
Returns
The mask or characteristic function

Implemented in madness::GaussianDomainMask, and madness::LLRVDomainMask.

Referenced by EmbeddedDirichlet::operator()().

◆ surface()

virtual double madness::DomainMaskInterface::surface ( double  d) const
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.

Parameters
[in]dThe signed normal distance from the surface
Returns
Normalized surface layer function

Implemented in madness::GaussianDomainMask, and madness::LLRVDomainMask.

Referenced by EmbeddedDirichlet::operator()().


The documentation for this class was generated from the following file: