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. | |
![]() | |
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 () const |
Override this to change the minimum level of refinement at 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 |
![]() | |
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 | |
![]() | |
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, madness::nonlinear_vector_solver(), and madness::FunctionDefaults< NDIM >::set_initial_level().
A list of points where we should compare the computed solution to the exact solution.
Reimplemented in ConstantSphere, InhomoConstantSphere, CosineSphere, and Y20Sphere.
Implemented in ConstantSphere, InhomoConstantSphere, CosineSphere, and Y20Sphere.
Referenced by operator()().
Implemented in ConstantSphere, InhomoConstantSphere, CosineSphere, and Y20Sphere.
Referenced by operator()().
Implemented in ConstantSphere, InhomoConstantSphere, CosineSphere, and Y20Sphere.
Referenced by operator()().
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().
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, madness::nonlinear_vector_solver(), penalty_name, penalty_prefact, problem_name, problem_specific_info, and thresh.
The surface area of the domain.
Implemented in ConstantSphere, InhomoConstantSphere, CosineSphere, and Y20Sphere.
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().