MADNESS 0.10.1
|
an N-dimensional real-valued Gaussian function More...
Public Member Functions | |
GaussianGuess (const coordT &origin, const double alpha, const std::vector< int > ijk=std::vector< int >(NDIM)) | |
ctor | |
GaussianGuess (const coordT &origin, const double alpha, const std::vector< int > ijk=std::vector< int >(NDIM)) | |
ctor | |
GaussianGuess (const coordT &origin, const double alpha, int l) | |
ctor | |
double | operator() (const coordT &xyz) const |
You should implement this to return f(x) | |
T | operator() (const coordT &xyz) const |
virtual function cannot be SFINAE'ed | |
template<class R = T> | |
std::enable_if< std::is_same< R, std::complex< double > >::value, R >::type | val (const coordT &xyz) const |
template<class R = T> | |
std::enable_if< std::is_same< R, double >::value, R >::type | val (const coordT &xyz) const |
![]() | |
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 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 |
![]() | |
FunctionFunctorInterface () | |
virtual | ~FunctionFunctorInterface () |
virtual coeffT | coeff (const keyT &) const |
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 | 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 | |
double | exponent |
exponent of the guess | |
std::vector< int > | ijk |
cartesian exponents | |
int | l =0 |
magnetic quantum number (if T=double_complex) | |
coordT | origin |
double | phase =double(rand()%1000)/1000.0 |
complex phase (if applicable) | |
![]() | |
Level | special_level_ |
![]() | |
Level | special_level_ |
Private Types | |
typedef Vector< double, NDIM > | coordT |
typedef Vector< double, NDIM > | coordT |
Additional Inherited Members | |
![]() | |
typedef GenTensor< double > | coeffT |
typedef Key< NDIM > | keyT |
typedef double | value_type |
![]() | |
typedef GenTensor< T > | coeffT |
typedef Key< NDIM > | keyT |
typedef T | value_type |
an N-dimensional real-valued Gaussian function
the function looks like [ f(r) = x^i y^j .. z^k exp(-alpha r^2) ]
|
inline |
ctor
[in] | origin | the origin of the Gauss function |
[in] | alpha | the exponent exp(-alpha r^2) |
[in] | ijk | the monomial x^i y^j z^k exp(-alpha r^2) (for NDIM) |
|
inline |
ctor
[in] | origin | the origin of the Gauss function |
[in] | alpha | the exponent exp(-alpha r^2) |
[in] | ijk | the monomial x^i y^j z^k exp(-alpha r^2) (for NDIM) |
References GaussianGuess< NDIM >::ijk, and GaussianGuess< NDIM >::l.
|
inline |
ctor
[in] | origin | the origin of the Gauss function |
[in] | alpha | the exponent exp(-alpha r^2) |
[in] | ijk | the monomial x^i y^j z^k exp(-alpha r^2) (for NDIM) |
References std::abs(), GaussianGuess< NDIM >::ijk, GaussianGuess< NDIM >::l, NDIM, and madness::nonlinear_vector_solver().
|
inlinevirtual |
You should implement this to return f(x)
Implements madness::FunctionFunctorInterface< double, NDIM >.
References madness::arg(), e(), GaussianGuess< NDIM >::exponent, GaussianGuess< NDIM >::ijk, NDIM, madness::nonlinear_vector_solver(), GaussianGuess< NDIM >::origin, and pow().
|
inlinevirtual |
virtual function cannot be SFINAE'ed
Implements madness::FunctionFunctorInterface< double, NDIM >.
References madness::nonlinear_vector_solver(), and GaussianGuess< NDIM >::val().
double GaussianGuess< NDIM >::exponent |
exponent of the guess
Referenced by GaussianGuess< NDIM >::operator()(), and GaussianGuess< NDIM >::val().
std::vector< int > GaussianGuess< NDIM >::ijk |
cartesian exponents
Referenced by GaussianGuess< NDIM >::GaussianGuess(), GaussianGuess< NDIM >::GaussianGuess(), GaussianGuess< NDIM >::operator()(), and GaussianGuess< NDIM >::val().
int GaussianGuess< NDIM >::l =0 |
magnetic quantum number (if T=double_complex)
Referenced by GaussianGuess< NDIM >::GaussianGuess(), and GaussianGuess< NDIM >::GaussianGuess().
coordT GaussianGuess< NDIM >::origin |
Referenced by GaussianGuess< NDIM >::operator()(), and GaussianGuess< NDIM >::val().
double GaussianGuess< NDIM >::phase =double(rand()%1000)/1000.0 |
complex phase (if applicable)
Referenced by GaussianGuess< NDIM >::val().