MADNESS 0.10.1
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
EmbeddedDirichlet Class Referenceabstract

Abstract base class for embedded Dirichlet problems. More...

#include <test_problems.h>

Inheritance diagram for EmbeddedDirichlet:
Inheritance graph
[legend]
Collaboration diagram for EmbeddedDirichlet:
Collaboration graph
[legend]

Public Member Functions

 EmbeddedDirichlet (double penalty_prefact, std::string penalty_name, double eps, int k, double thresh, Mask mask)
 Sets up the data for the problem-inspecific parts.
 
virtual ~EmbeddedDirichlet ()
 
virtual std::vector< Vector< double, 3 > > check_pts () const
 A list of points where we should compare the computed solution to the exact solution.
 
virtual double DirichletCond (const Vector< double, 3 > &x) const =0
 
virtual double ExactSol (const Vector< double, 3 > &x) const =0
 
virtual double Inhomogeneity (const Vector< double, 3 > &x) const =0
 
void load_balance (World &world, const Function< double, 3 > &f) const
 Load balances using the provided Function.
 
double operator() (const Vector< double, 3 > &x) const
 The operator for projecting a MADNESS function.
 
void printout () const
 Do a standard Printout of the problem details.
 
virtual double SurfaceIntegral () const =0
 The surface area of the domain.
 
virtual double VolumeIntegral () const =0
 The volume of the domain.
 
- Public Member Functions inherited from madness::FunctionFunctorInterface< double, 3 >
 FunctionFunctorInterface ()
 
virtual ~FunctionFunctorInterface ()
 
virtual coeffT coeff (const keyT &) const
 
virtual void operator() (const Vector< double *, 1 > &xvals, double *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 2 > &xvals, double *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 3 > &xvals, double *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 4 > &xvals, double *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 5 > &xvals, double *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 6 > &xvals, double *fvals, int npts) const
 
virtual double operator() (const Vector< double, NDIM > &x) const=0
 You should implement this to return f(x)
 
virtual bool provides_coeff () const
 does this functor directly provide sum coefficients? or only function values?
 
virtual bool screened (const Vector< double, NDIM > &c1, const Vector< double, NDIM > &c2) const
 Can we screen this function based on the bounding box information?
 
void set_length_scale (double lo)
 adapt the special level to resolve the smallest length scale
 
virtual Level special_level ()
 Override this change level refinement for special points (default is 6)
 
virtual std::vector< Vector< double, NDIM > > special_points () const
 Override this to return list of special points to be refined more deeply.
 
virtual bool supports_vectorized () const
 Does the interface support a vectorized operator()?
 
virtual coeffT values (const keyT &key, const Tensor< double > &tensor) const
 

Public Attributes

FunctorOutput fop
 
- Public Attributes inherited from madness::FunctionFunctorInterface< double, 3 >
Level special_level_
 

Protected Member Functions

virtual bool isHomogeneous () const =0
 

Protected Attributes

DomainMaskInterfacedmi
 
std::string domain_mask_name
 
double eps
 
double penalty_prefact
 
std::string problem_name
 
std::string problem_specific_info
 
SignedDFInterface< 3 > * sdfi
 

Private Member Functions

 EmbeddedDirichlet ()
 

Private Attributes

int initial_level
 
int k
 
std::string penalty_name
 
double thresh
 

Additional Inherited Members

- Public Types inherited from madness::FunctionFunctorInterface< double, 3 >
typedef GenTensor< double > coeffT
 
typedef Key< NDIMkeyT
 
typedef double value_type
 

Detailed Description

Abstract base class for embedded Dirichlet problems.

Constructor & Destructor Documentation

◆ EmbeddedDirichlet() [1/2]

EmbeddedDirichlet::EmbeddedDirichlet ( )
inlineprivate

◆ EmbeddedDirichlet() [2/2]

EmbeddedDirichlet::EmbeddedDirichlet ( double  penalty_prefact,
std::string  penalty_name,
double  eps,
int  k,
double  thresh,
Mask  mask 
)
inline

Sets up the data for the problem-inspecific parts.

Also sets the FunctionDefaults for the appropriate dimension.

References dmi, domain_mask_name, eps, madness::error(), Gaussian, initial_level, LLRV, mask, and madness::FunctionDefaults< NDIM >::set_initial_level().

◆ ~EmbeddedDirichlet()

virtual EmbeddedDirichlet::~EmbeddedDirichlet ( )
inlinevirtual

References dmi, and sdfi.

Member Function Documentation

◆ check_pts()

virtual std::vector< Vector< double, 3 > > EmbeddedDirichlet::check_pts ( ) const
inlinevirtual

A list of points where we should compare the computed solution to the exact solution.

Reimplemented in ConstantSphere, InhomoConstantSphere, CosineSphere, and Y20Sphere.

◆ DirichletCond()

virtual double EmbeddedDirichlet::DirichletCond ( const Vector< double, 3 > &  x) const
pure virtual

◆ ExactSol()

virtual double EmbeddedDirichlet::ExactSol ( const Vector< double, 3 > &  x) const
pure virtual

◆ Inhomogeneity()

virtual double EmbeddedDirichlet::Inhomogeneity ( const Vector< double, 3 > &  x) const
pure virtual

◆ isHomogeneous()

virtual bool EmbeddedDirichlet::isHomogeneous ( ) const
protectedpure virtual

◆ load_balance()

void EmbeddedDirichlet::load_balance ( World world,
const Function< double, 3 > &  f 
) const
inline

◆ operator()()

double EmbeddedDirichlet::operator() ( const Vector< double, 3 > &  x) const
inline

◆ printout()

void EmbeddedDirichlet::printout ( ) const
inline

Do a standard Printout of the problem details.

References domain_mask_name, eps, k, penalty_name, penalty_prefact, problem_name, problem_specific_info, and thresh.

◆ SurfaceIntegral()

virtual double EmbeddedDirichlet::SurfaceIntegral ( ) const
pure virtual

The surface area of the domain.

Implemented in ConstantSphere, InhomoConstantSphere, CosineSphere, and Y20Sphere.

◆ VolumeIntegral()

virtual double EmbeddedDirichlet::VolumeIntegral ( ) const
pure virtual

The volume of the domain.

Implemented in ConstantSphere, InhomoConstantSphere, CosineSphere, and Y20Sphere.

Member Data Documentation

◆ dmi

DomainMaskInterface* EmbeddedDirichlet::dmi
protected

◆ domain_mask_name

std::string EmbeddedDirichlet::domain_mask_name
protected

Referenced by EmbeddedDirichlet(), and printout().

◆ eps

double EmbeddedDirichlet::eps
protected

Referenced by EmbeddedDirichlet(), and printout().

◆ fop

FunctorOutput EmbeddedDirichlet::fop

which function to use when projecting:

  1. the weighted surface (SURFACE)
  2. the rhs of the auxiliary DE (DIRICHLET_RHS)
  3. the exact solution (EXACT)
  4. the domain mask (DOMAIN_MASK)

Referenced by operator()().

◆ initial_level

int EmbeddedDirichlet::initial_level
private

Referenced by EmbeddedDirichlet().

◆ k

int EmbeddedDirichlet::k
private

Referenced by printout().

◆ penalty_name

std::string EmbeddedDirichlet::penalty_name
private

Referenced by printout().

◆ penalty_prefact

double EmbeddedDirichlet::penalty_prefact
protected

Referenced by operator()(), and printout().

◆ problem_name

std::string EmbeddedDirichlet::problem_name
protected

◆ problem_specific_info

std::string EmbeddedDirichlet::problem_specific_info
protected

◆ sdfi

SignedDFInterface<3>* EmbeddedDirichlet::sdfi
protected

◆ thresh

double EmbeddedDirichlet::thresh
private

Referenced by printout().


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