MADNESS 0.10.1
Public Member Functions | Public Attributes | Private Types | List of all members
GaussianGuess< T, NDIM > Class Template Reference

an N-dimensional real-valued Gaussian function More...

Inheritance diagram for GaussianGuess< T, NDIM >:
Inheritance graph
[legend]
Collaboration diagram for GaussianGuess< T, NDIM >:
Collaboration graph
[legend]

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, int l)
 ctor
 
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
 
- Public Member Functions inherited from madness::FunctionFunctorInterface< T, NDIM >
 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< intijk
 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)
 
- Public Attributes inherited from madness::FunctionFunctorInterface< T, NDIM >
Level special_level_
 

Private Types

typedef Vector< double, NDIMcoordT
 

Additional Inherited Members

- Public Types inherited from madness::FunctionFunctorInterface< T, NDIM >
typedef GenTensor< T > coeffT
 
typedef Key< NDIMkeyT
 
typedefvalue_type
 

Detailed Description

template<typename T, std::size_t NDIM>
class GaussianGuess< T, NDIM >

an N-dimensional real-valued Gaussian function

the function looks like [ f(r) = x^i y^j .. z^k exp(-alpha r^2) ]

Member Typedef Documentation

◆ coordT

template<typename T , std::size_t NDIM>
typedef Vector<double,NDIM> GaussianGuess< T, NDIM >::coordT
private

Constructor & Destructor Documentation

◆ GaussianGuess() [1/2]

template<typename T , std::size_t NDIM>
GaussianGuess< T, NDIM >::GaussianGuess ( const coordT origin,
const double  alpha,
const std::vector< int ijk = std::vector<int>(NDIM) 
)
inline

ctor

Parameters
[in]originthe origin of the Gauss function
[in]alphathe exponent exp(-alpha r^2)
[in]ijkthe monomial x^i y^j z^k exp(-alpha r^2) (for NDIM)

References GaussianGuess< T, NDIM >::ijk, and GaussianGuess< T, NDIM >::l.

◆ GaussianGuess() [2/2]

template<typename T , std::size_t NDIM>
GaussianGuess< T, NDIM >::GaussianGuess ( const coordT origin,
const double  alpha,
int  l 
)
inline

ctor

Parameters
[in]originthe origin of the Gauss function
[in]alphathe exponent exp(-alpha r^2)
[in]ijkthe monomial x^i y^j z^k exp(-alpha r^2) (for NDIM)

References std::abs(), GaussianGuess< T, NDIM >::ijk, GaussianGuess< T, NDIM >::l, NDIM, and madness::nonlinear_vector_solver().

Member Function Documentation

◆ operator()()

template<typename T , std::size_t NDIM>
T GaussianGuess< T, NDIM >::operator() ( const coordT xyz) const
inlinevirtual

◆ val() [1/2]

template<typename T , std::size_t NDIM>
template<class R = T>
std::enable_if< std::is_same< R, std::complex< double > >::value, R >::type GaussianGuess< T, NDIM >::val ( const coordT xyz) const
inline

◆ val() [2/2]

template<typename T , std::size_t NDIM>
template<class R = T>
std::enable_if< std::is_same< R, double >::value, R >::type GaussianGuess< T, NDIM >::val ( const coordT xyz) const
inline

Member Data Documentation

◆ exponent

template<typename T , std::size_t NDIM>
double GaussianGuess< T, NDIM >::exponent

exponent of the guess

Referenced by GaussianGuess< T, NDIM >::val().

◆ ijk

template<typename T , std::size_t NDIM>
std::vector<int> GaussianGuess< T, NDIM >::ijk

◆ l

template<typename T , std::size_t NDIM>
int GaussianGuess< T, NDIM >::l =0

magnetic quantum number (if T=double_complex)

Referenced by GaussianGuess< T, NDIM >::GaussianGuess(), and GaussianGuess< T, NDIM >::GaussianGuess().

◆ origin

template<typename T , std::size_t NDIM>
coordT GaussianGuess< T, NDIM >::origin

◆ phase

template<typename T , std::size_t NDIM>
double GaussianGuess< T, NDIM >::phase =double(rand()%1000)/1000.0

complex phase (if applicable)

Referenced by GaussianGuess< T, NDIM >::val().


The documentation for this class was generated from the following file: