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. | |
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 | |
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 dmi, domain_mask_name, eps, madness::error(), Gaussian, initial_level, LLRV, mask, and madness::FunctionDefaults< NDIM >::set_initial_level().
|
inlinevirtual |
A list of points where we should compare the computed solution to the exact solution.
Reimplemented in ConstantSphere, InhomoConstantSphere, CosineSphere, and Y20Sphere.
|
pure virtual |
Implemented in ConstantSphere, InhomoConstantSphere, CosineSphere, and Y20Sphere.
Referenced by operator()().
|
pure virtual |
Implemented in ConstantSphere, InhomoConstantSphere, CosineSphere, and Y20Sphere.
Referenced by operator()().
|
pure virtual |
Implemented in ConstantSphere, InhomoConstantSphere, CosineSphere, and Y20Sphere.
Referenced by operator()().
|
protectedpure virtual |
Implemented in ConstantSphere, InhomoConstantSphere, CosineSphere, and Y20Sphere.
Referenced by operator()().
|
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, DirichletCond(), dmi, DOMAIN_MASK, madness::error(), EXACT, ExactSol(), fop, Inhomogeneity(), isHomogeneous(), madness::DomainMaskInterface::mask(), penalty_prefact, madness::SignedDFInterface< NDIM >::sdf(), sdfi, SURFACE, and madness::DomainMaskInterface::surface().
|
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.
|
pure virtual |
The surface area of the domain.
Implemented in ConstantSphere, InhomoConstantSphere, CosineSphere, and Y20Sphere.
|
pure virtual |
The volume of the domain.
Implemented in ConstantSphere, InhomoConstantSphere, CosineSphere, and Y20Sphere.
|
protected |
Referenced by EmbeddedDirichlet(), ~EmbeddedDirichlet(), and operator()().
|
protected |
Referenced by EmbeddedDirichlet(), and printout().
|
protected |
Referenced by EmbeddedDirichlet(), and printout().
FunctorOutput EmbeddedDirichlet::fop |
which function to use when projecting:
Referenced by operator()().
|
private |
Referenced by EmbeddedDirichlet().
|
private |
Referenced by printout().
|
private |
Referenced by printout().
|
protected |
Referenced by operator()(), and printout().
|
protected |
|
protected |
|
protected |
|
private |
Referenced by printout().