MADNESS  0.10.1
Public Member Functions | Private Attributes | List of all members
AtomicBasisFunctor< Q > Class Template Reference

#include <electronicstructureapp.h>

Inheritance diagram for AtomicBasisFunctor< Q >:
Inheritance graph
[legend]
Collaboration diagram for AtomicBasisFunctor< Q >:
Collaboration graph
[legend]

Public Member Functions

 AtomicBasisFunctor (const AtomicBasisFunction &aofunc)
 
 AtomicBasisFunctor (const AtomicBasisFunction &aofunc, double kx, double ky, double kz)
 
 AtomicBasisFunctor (const AtomicBasisFunction &aofunc, double R, bool periodic, const KPoint kpt)
 
Q operator() (const coord_3d &x) const
 
double_complex operator() (const coord_3d &x) const
 
std::complex< double > operator() (const coordT &x) const
 
Level special_level ()
 Override this change level refinement for special points (default is 6) More...
 
std::vector< coord_3dspecial_points () const
 Override this to return list of special points to be refined more deeply. More...
 
std::vector< coord_3dspecial_points () const
 Override this to return list of special points to be refined more deeply. More...
 
virtual std::vector< coordTspecial_points () const
 Override this to return list of special points to be refined more deeply. More...
 
- Public Member Functions inherited from madness::FunctionFunctorInterface< Q, 3 >
 FunctionFunctorInterface ()
 
virtual ~FunctionFunctorInterface ()
 
virtual coeffT coeff (const keyT &) const
 
virtual void operator() (const Vector< double *, 1 > &xvals, Q *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 2 > &xvals, Q *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 3 > &xvals, Q *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 4 > &xvals, Q *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 5 > &xvals, Q *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 6 > &xvals, Q *fvals, int npts) const
 
virtual Q operator() (const Vector< double, NDIM > &x) const=0
 You should implement this to return f(x) More...
 
virtual bool provides_coeff () const
 does this functor directly provide sum coefficients? or only function values? More...
 
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? More...
 
void set_length_scale (double lo)
 adapt the special level to resolve the smallest length scale More...
 
virtual bool supports_vectorized () const
 Does the interface support a vectorized operator()? More...
 
virtual coeffT values (const keyT &key, const Tensor< double > &tensor) const
 
- Public Member Functions inherited from madness::FunctionFunctorInterface< double_complex, 3 >
 FunctionFunctorInterface ()
 
virtual ~FunctionFunctorInterface ()
 
virtual coeffT coeff (const keyT &) const
 
virtual void operator() (const Vector< double *, 1 > &xvals, double_complex *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 2 > &xvals, double_complex *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 3 > &xvals, double_complex *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 4 > &xvals, double_complex *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 5 > &xvals, double_complex *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 6 > &xvals, double_complex *fvals, int npts) const
 
virtual double_complex operator() (const Vector< double, NDIM > &x) const=0
 You should implement this to return f(x) More...
 
virtual bool provides_coeff () const
 does this functor directly provide sum coefficients? or only function values? More...
 
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? More...
 
void set_length_scale (double lo)
 adapt the special level to resolve the smallest length scale More...
 
virtual bool supports_vectorized () const
 Does the interface support a vectorized operator()? More...
 
virtual coeffT values (const keyT &key, const Tensor< double > &tensor) const
 

Private Attributes

std::vector< coordT_specialpts
 
const AtomicBasisFunction aofunc
 
const KPoint kpt
 
double kx
 
double ky
 
double kz
 
const bool periodic
 
const double R
 
coordT r
 
const double rangesq
 
std::vector< coord_3dspecialpt
 
Vector< std::complex< double >, 2 *NTRANS+1 > tx
 
Vector< std::complex< double >, 2 *NTRANS+1 > ty
 
Vector< std::complex< double >, 2 *NTRANS+1 > tz
 

Additional Inherited Members

- Public Types inherited from madness::FunctionFunctorInterface< Q, 3 >
typedef GenTensor< QcoeffT
 
typedef Key< NDIMkeyT
 
typedef Q value_type
 
- Public Types inherited from madness::FunctionFunctorInterface< double_complex, 3 >
typedef GenTensor< double_complexcoeffT
 
typedef Key< NDIMkeyT
 
typedef double_complex value_type
 
- Public Attributes inherited from madness::FunctionFunctorInterface< Q, 3 >
Level special_level_
 
- Public Attributes inherited from madness::FunctionFunctorInterface< double_complex, 3 >
Level special_level_
 

Constructor & Destructor Documentation

◆ AtomicBasisFunctor() [1/3]

template<typename Q >
AtomicBasisFunctor< Q >::AtomicBasisFunctor ( const AtomicBasisFunction aofunc)
inline

◆ AtomicBasisFunctor() [2/3]

template<typename Q >
AtomicBasisFunctor< Q >::AtomicBasisFunctor ( const AtomicBasisFunction aofunc,
double  kx,
double  ky,
double  kz 
)
inline

◆ AtomicBasisFunctor() [3/3]

template<typename Q >
AtomicBasisFunctor< Q >::AtomicBasisFunctor ( const AtomicBasisFunction aofunc,
double  R,
bool  periodic,
const KPoint  kpt 
)
inline

Member Function Documentation

◆ operator()() [1/3]

template<typename Q >
Q AtomicBasisFunctor< Q >::operator() ( const coord_3d x) const
inline

◆ operator()() [2/3]

template<typename Q >
double_complex AtomicBasisFunctor< Q >::operator() ( const coord_3d x) const
inline

◆ operator()() [3/3]

template<typename Q >
std::complex<double> AtomicBasisFunctor< Q >::operator() ( const coordT x) const
inline

◆ special_level()

template<typename Q >
Level AtomicBasisFunctor< Q >::special_level ( )
inlinevirtual

Override this change level refinement for special points (default is 6)

Reimplemented from madness::FunctionFunctorInterface< Q, 3 >.

◆ special_points() [1/3]

template<typename Q >
std::vector<coord_3d> AtomicBasisFunctor< Q >::special_points ( ) const
inlinevirtual

Override this to return list of special points to be refined more deeply.

Reimplemented from madness::FunctionFunctorInterface< Q, 3 >.

References madness::AtomicBasisFunction::get_coords_vec().

◆ special_points() [2/3]

template<typename Q >
std::vector<coord_3d> AtomicBasisFunctor< Q >::special_points ( ) const
inlinevirtual

Override this to return list of special points to be refined more deeply.

Reimplemented from madness::FunctionFunctorInterface< Q, 3 >.

◆ special_points() [3/3]

template<typename Q >
virtual std::vector<coordT> AtomicBasisFunctor< Q >::special_points ( ) const
inlinevirtual

Override this to return list of special points to be refined more deeply.

Reimplemented from madness::FunctionFunctorInterface< Q, 3 >.

References AtomicBasisFunctor< Q >::_specialpts.

Member Data Documentation

◆ _specialpts

template<typename Q >
std::vector<coordT> AtomicBasisFunctor< Q >::_specialpts
private

◆ aofunc

template<typename Q >
const AtomicBasisFunction AtomicBasisFunctor< Q >::aofunc
private

◆ kpt

template<typename Q >
const KPoint AtomicBasisFunctor< Q >::kpt
private

◆ kx

template<typename Q >
double AtomicBasisFunctor< Q >::kx
private

◆ ky

template<typename Q >
double AtomicBasisFunctor< Q >::ky
private

◆ kz

template<typename Q >
double AtomicBasisFunctor< Q >::kz
private

◆ periodic

template<typename Q >
const bool AtomicBasisFunctor< Q >::periodic
private

◆ R

template<typename Q >
const double AtomicBasisFunctor< Q >::R
private

◆ r

template<typename Q >
coordT AtomicBasisFunctor< Q >::r
private

◆ rangesq

template<typename Q >
const double AtomicBasisFunctor< Q >::rangesq
private

◆ specialpt

template<typename Q >
std::vector<coord_3d> AtomicBasisFunctor< Q >::specialpt
private

◆ tx

template<typename Q >
Vector<std::complex<double>,2*NTRANS+1> AtomicBasisFunctor< Q >::tx
private

◆ ty

template<typename Q >
Vector<std::complex<double>,2*NTRANS+1> AtomicBasisFunctor< Q >::ty
private

◆ tz

template<typename Q >
Vector<std::complex<double>,2*NTRANS+1> AtomicBasisFunctor< Q >::tz
private

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