MADNESS 0.10.1
Classes | Public Member Functions | Private Attributes | List of all members
madness::Coulomb< T, NDIM > Class Template Reference

#include <SCFOperators.h>

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

Classes

class  MacroTaskCoulomb
 

Public Member Functions

 Coulomb (World &world)
 default empty ctor
 
 Coulomb (World &world, const double lo, const double thresh=FunctionDefaults< 3 >::get_thresh())
 default empty ctor
 
 Coulomb (World &world, const Nemo *nemo)
 ctor with a Nemo calculation providing the MOs and density
 
 Coulomb (World &world, const SCF *calc)
 ctor with an SCF calculation providing the MOs and density
 
real_function_3d compute_density (const SCF *calc) const
 
Function< T, NDIMcompute_potential (const Function< T, NDIM > &density) const
 given a density compute the Coulomb potential
 
real_function_3d compute_potential (const Nemo *nemo) const
 given a set of MOs in an SCF calculation, compute the Coulomb potential
 
real_function_3d compute_potential (const SCF *calc) const
 given a set of MOs in an SCF calculation, compute the Coulomb potential
 
std::string info () const
 print some information about this operator
 
T operator() (const Function< T, NDIM > &bra, const Function< T, NDIM > &ket) const
 compute the matrix element <bra | op | ket>
 
Function< T, NDIMoperator() (const Function< T, NDIM > &ket) const
 
Tensor< Toperator() (const std::vector< Function< T, NDIM > > &vbra, const std::vector< Function< T, NDIM > > &vket) const
 
std::vector< Function< T, NDIM > > operator() (const std::vector< Function< T, NDIM > > &vket) const
 
real_function_3dpotential ()
 setter for the Coulomb potential
 
const real_function_3dpotential () const
 getter for the Coulomb potential
 
void reset_poisson_operator_ptr (const double lo, const double econv)
 
Coulombset_taskq (std::shared_ptr< MacroTaskQ > taskq1)
 
- Public Member Functions inherited from madness::SCFOperatorBase< T, NDIM >
 SCFOperatorBase ()=default
 
 SCFOperatorBase (std::shared_ptr< MacroTaskQ > taskq)
 
virtual ~SCFOperatorBase ()
 
virtual tensorT operator() (const vecfuncT &vbra, const vecfuncT &vket) const =0
 compute the matrix <vbra | op | vket>
 
virtual vecfuncT operator() (const vecfuncT &vket) const =0
 apply this operator on the argument vector of functions
 

Private Attributes

double lo =1.e-4
 
std::shared_ptr< real_convolution_3dpoisson
 
real_function_3d vcoul
 the coulomb potential
 
Worldworld
 

Additional Inherited Members

- Public Types inherited from madness::SCFOperatorBase< T, NDIM >
typedef Function< T, NDIMfunctionT
 
typedef Tensor< TtensorT
 
typedef std::vector< functionTvecfuncT
 
- Public Attributes inherited from madness::SCFOperatorBase< T, NDIM >
std::shared_ptr< MacroTaskQtaskq =0
 

Constructor & Destructor Documentation

◆ Coulomb() [1/4]

template<typename T , std::size_t NDIM>
madness::Coulomb< T, NDIM >::Coulomb ( World world)
inline

default empty ctor

◆ Coulomb() [2/4]

template<typename T , std::size_t NDIM>
madness::Coulomb< T, NDIM >::Coulomb ( World world,
const double  lo,
const double  thresh = FunctionDefaults<3>::get_thresh() 
)
inline

◆ Coulomb() [3/4]

template<typename T , std::size_t NDIM>
madness::Coulomb< T, NDIM >::Coulomb ( World world,
const SCF calc 
)

◆ Coulomb() [4/4]

template<typename T , std::size_t NDIM>
madness::Coulomb< T, NDIM >::Coulomb ( World world,
const Nemo nemo 
)

ctor with a Nemo calculation providing the MOs and density

ctor with an SCF calculation providing the MOs and density

References madness::Coulomb< T, NDIM >::compute_potential(), madness::Nemo::get_calc(), madness::Coulomb< T, NDIM >::reset_poisson_operator_ptr(), and madness::Coulomb< T, NDIM >::vcoul.

Member Function Documentation

◆ compute_density()

template<typename T , std::size_t NDIM>
real_function_3d madness::Coulomb< T, NDIM >::compute_density ( const SCF calc) const

◆ compute_potential() [1/3]

template<typename T , std::size_t NDIM>
Function< T, NDIM > madness::Coulomb< T, NDIM >::compute_potential ( const Function< T, NDIM > &  density) const
inline

◆ compute_potential() [2/3]

template<typename T , std::size_t NDIM>
real_function_3d madness::Coulomb< T, NDIM >::compute_potential ( const Nemo nemo) const

given a set of MOs in an SCF calculation, compute the Coulomb potential

same as above, but with the additional factor R^2 in the density

this function uses the Poisson operator of the SCF calculation

References madness::Nemo::get_calc(), madness::Nemo::make_density(), and madness::Function< T, NDIM >::scale().

◆ compute_potential() [3/3]

template<typename T , std::size_t NDIM>
real_function_3d madness::Coulomb< T, NDIM >::compute_potential ( const SCF calc) const

given a set of MOs in an SCF calculation, compute the Coulomb potential

this function uses the Poisson operator of the SCF calculation

References madness::truncate().

◆ info()

template<typename T , std::size_t NDIM>
std::string madness::Coulomb< T, NDIM >::info ( ) const
inlinevirtual

print some information about this operator

Implements madness::SCFOperatorBase< T, NDIM >.

◆ operator()() [1/4]

template<typename T , std::size_t NDIM>
T madness::Coulomb< T, NDIM >::operator() ( const Function< T, NDIM > &  bra,
const Function< T, NDIM > &  ket 
) const
inlinevirtual

compute the matrix element <bra | op | ket>

Parameters
brabra state
ketket state
Returns
the matrix element <bra | op | ket>

Implements madness::SCFOperatorBase< T, NDIM >.

References madness::inner(), and madness::Coulomb< T, NDIM >::vcoul.

◆ operator()() [2/4]

template<typename T , std::size_t NDIM>
Function< T, NDIM > madness::Coulomb< T, NDIM >::operator() ( const Function< T, NDIM > &  ket) const
inlinevirtual

apply this operator on the argument function

Parameters
ketthe argument function
Returns
op(ket)

Implements madness::SCFOperatorBase< T, NDIM >.

References madness::Coulomb< T, NDIM >::operator()().

Referenced by madness::Coulomb< T, NDIM >::operator()().

◆ operator()() [3/4]

template<typename T , std::size_t NDIM>
Tensor< T > madness::Coulomb< T, NDIM >::operator() ( const std::vector< Function< T, NDIM > > &  vbra,
const std::vector< Function< T, NDIM > > &  vket 
) const
inline

◆ operator()() [4/4]

template<typename T , std::size_t NDIM>
std::vector< Function< T, NDIM > > madness::Coulomb< T, NDIM >::operator() ( const std::vector< Function< T, NDIM > > &  vket) const
inline

◆ potential() [1/2]

template<typename T , std::size_t NDIM>
real_function_3d & madness::Coulomb< T, NDIM >::potential ( )
inline

setter for the Coulomb potential

References madness::Coulomb< T, NDIM >::vcoul.

◆ potential() [2/2]

template<typename T , std::size_t NDIM>
const real_function_3d & madness::Coulomb< T, NDIM >::potential ( ) const
inline

◆ reset_poisson_operator_ptr()

template<typename T , std::size_t NDIM>
void madness::Coulomb< T, NDIM >::reset_poisson_operator_ptr ( const double  lo,
const double  econv 
)

◆ set_taskq()

template<typename T , std::size_t NDIM>
Coulomb & madness::Coulomb< T, NDIM >::set_taskq ( std::shared_ptr< MacroTaskQ taskq1)
inline

Member Data Documentation

◆ lo

template<typename T , std::size_t NDIM>
double madness::Coulomb< T, NDIM >::lo =1.e-4
private

◆ poisson

template<typename T , std::size_t NDIM>
std::shared_ptr<real_convolution_3d> madness::Coulomb< T, NDIM >::poisson
private

◆ vcoul

template<typename T , std::size_t NDIM>
real_function_3d madness::Coulomb< T, NDIM >::vcoul
private

◆ world

template<typename T , std::size_t NDIM>
World& madness::Coulomb< T, NDIM >::world
private

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