MADNESS
0.10.1
|
Abstract base class for embedded Dirichlet problems. More...
#include <test_problems.h>
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. More... | |
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. More... | |
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. More... | |
double | operator() (const Vector< double, 3 > &x) const |
The operator for projecting a MADNESS function. More... | |
void | printout () const |
Do a standard Printout of the problem details. More... | |
virtual double | SurfaceIntegral () const =0 |
The surface area of the domain. More... | |
virtual double | VolumeIntegral () const =0 |
The volume of the domain. More... | |
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) More... | |
virtual bool | provides_coeff () const |
does this functor directly provide sum coefficients? or only function values? More... | |
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? More... | |
void | set_length_scale (double lo) |
adapt the special level to resolve the smallest length scale More... | |
virtual Level | special_level () |
Override this change level refinement for special points (default is 6) More... | |
virtual std::vector< Vector< double, NDIM > > | special_points () const |
Override this to return list of special points to be refined more deeply. More... | |
virtual bool | supports_vectorized () const |
Does the interface support a vectorized operator()? More... | |
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 | |
DomainMaskInterface * | dmi |
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< NDIM > | keyT |
typedef double | value_type |
Abstract base class for embedded Dirichlet problems.
|
inlineprivate |
|
inline |
Sets up the data for the problem-inspecific parts.
Also sets the FunctionDefaults for the appropriate dimension.
References madness::error(), Gaussian, LLRV, mask, and madness::FunctionDefaults< NDIM >::set_initial_level().
|
inlinevirtual |
|
inlinevirtual |
A list of points where we should compare the computed solution to the exact solution.
Reimplemented in Y20Sphere, CosineSphere, InhomoConstantSphere, and ConstantSphere.
|
pure virtual |
Implemented in Y20Sphere, CosineSphere, InhomoConstantSphere, and ConstantSphere.
|
pure virtual |
Implemented in Y20Sphere, CosineSphere, InhomoConstantSphere, and ConstantSphere.
|
pure virtual |
Implemented in Y20Sphere, CosineSphere, InhomoConstantSphere, and ConstantSphere.
|
protectedpure virtual |
Implemented in Y20Sphere, CosineSphere, InhomoConstantSphere, and ConstantSphere.
|
inline |
Load balances using the provided Function.
References madness::LoadBalanceDeux< NDIM >::add_tree(), madness::f, madness::LoadBalanceDeux< NDIM >::load_balance(), and madness::FunctionDefaults< NDIM >::redistribute().
|
inline |
The operator for projecting a MADNESS function.
References DIRICHLET_RHS, DOMAIN_MASK, madness::error(), EXACT, madness::DomainMaskInterface::mask(), madness::SignedDFInterface< NDIM >::sdf(), SURFACE, and madness::DomainMaskInterface::surface().
|
inline |
|
pure virtual |
The surface area of the domain.
Implemented in Y20Sphere, CosineSphere, InhomoConstantSphere, and ConstantSphere.
|
pure virtual |
The volume of the domain.
Implemented in Y20Sphere, CosineSphere, InhomoConstantSphere, and ConstantSphere.
|
protected |
|
protected |
|
protected |
FunctorOutput EmbeddedDirichlet::fop |
which function to use when projecting:
|
private |
|
private |
|
private |
|
protected |
|
protected |
|
protected |
|
protected |
|
private |