MADNESS 0.10.1
|
a function like f(x) = exp(-mu x)/x More...
#include <function_interface.h>
Public Member Functions | |
BSHFunctionInterface (double mu, double lo, double eps, const BoundaryConditions< 6 > &bc=FunctionDefaults< 6 >::get_bc(), int kk=FunctionDefaults< 6 >::get_k()) | |
constructor: cf the Coulomb kernel | |
![]() | |
TwoElectronInterface (double lo, double eps, const BoundaryConditions< NDIM > &bc=FunctionDefaults< NDIM >::get_bc(), int kk=FunctionDefaults< NDIM >::get_k()) | |
constructor: cf the Coulomb kernel | |
coeffT | coeff (const Key< NDIM > &key) const |
return the coefficients of the function in 6D (x1,y1,z1, x2,y2,z2) | |
double | operator() (const Vector< double, NDIM > &x) const |
You should implement this to return f(x) | |
bool | provides_coeff () const |
does this functor directly provide sum coefficients? or only function values? | |
![]() | |
FunctionFunctorInterface () | |
virtual | ~FunctionFunctorInterface () |
virtual void | operator() (const Vector< double *, 1 > &xvals, T *fvals, int npts) const |
virtual void | operator() (const Vector< double *, 2 > &xvals, T *fvals, int npts) const |
virtual void | operator() (const Vector< double *, 3 > &xvals, T *fvals, int npts) const |
virtual void | operator() (const Vector< double *, 4 > &xvals, T *fvals, int npts) const |
virtual void | operator() (const Vector< double *, 5 > &xvals, T *fvals, int npts) const |
virtual void | operator() (const Vector< double *, 6 > &xvals, T *fvals, int npts) const |
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 |
Private Member Functions | |
GFit< double, 3 > | fit (const double eps) const |
derived classes must implement this – cf GFit.h | |
Private Attributes | |
double | mu |
Additional Inherited Members | |
![]() | |
typedef GenTensor< double > | coeffT |
![]() | |
typedef GenTensor< T > | coeffT |
typedef Key< NDIM > | keyT |
typedef T | value_type |
![]() | |
Level | special_level_ |
![]() | |
void | initialize (const double eps) |
initialize the Gaussian fit; uses the virtual function fit() to fit | |
Tensor< double > | make_coeff (const Key< NDIM > &key) const |
make the coefficients from the 1d convolution | |
Tensor< double > | map_coeff (const Tensor< double > &c) const |
the dimensions are a bit confused (x1,x2, y1,y2, z1,z2) -> (x1,y1,z1, x2,y2,z2) | |
![]() | |
double | hi |
the largest length scale that needs to be represented | |
int | k |
the wavelet order | |
double | lo |
the smallest length scale that needs to be represented | |
std::vector< ConvolutionND< double, NDIM > > | ops |
storing the coefficients | |
int | rank |
the number of terms in the Gaussian quadrature | |
![]() | |
static constexpr std::size_t | LDIM |
a function like f(x) = exp(-mu x)/x
|
inline |
constructor: cf the Coulomb kernel
[in] | mu | the exponent of the BSH/inverse Laplacian |
[in] | lo | the smallest length scale to be resolved |
[in] | eps | the accuracy threshold |
References madness::TwoElectronInterface< double, 6 >::initialize().
derived classes must implement this – cf GFit.h
Implements madness::TwoElectronInterface< double, 6 >.
References madness::GFit< T, NDIM >::BSHFit(), madness::TwoElectronInterface< double, 6 >::hi, madness::TwoElectronInterface< double, 6 >::lo, and mu.