MADNESS 0.10.1
|
#include <SCFOperators.h>
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, NDIM > | compute_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, NDIM > | operator() (const Function< T, NDIM > &ket) const |
Tensor< T > | operator() (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_3d & | potential () |
setter for the Coulomb potential | |
const real_function_3d & | potential () const |
getter for the Coulomb potential | |
void | reset_poisson_operator_ptr (const double lo, const double econv) |
Coulomb & | set_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_3d > | poisson |
real_function_3d | vcoul |
the coulomb potential | |
World & | world |
Additional Inherited Members | |
Public Types inherited from madness::SCFOperatorBase< T, NDIM > | |
typedef Function< T, NDIM > | functionT |
typedef Tensor< T > | tensorT |
typedef std::vector< functionT > | vecfuncT |
Public Attributes inherited from madness::SCFOperatorBase< T, NDIM > | |
std::shared_ptr< MacroTaskQ > | taskq =0 |
|
inline |
default empty ctor
|
inline |
default empty ctor
References madness::Coulomb< T, NDIM >::lo, madness::Coulomb< T, NDIM >::reset_poisson_operator_ptr(), and thresh.
madness::Coulomb< T, NDIM >::Coulomb | ( | World & | world, |
const SCF * | calc | ||
) |
ctor with an SCF calculation providing the MOs and density
References madness::Coulomb< T, NDIM >::compute_potential(), madness::CalculationParameters::econv(), madness::CalculationParameters::lo(), madness::SCF::param, madness::Coulomb< T, NDIM >::reset_poisson_operator_ptr(), and madness::Coulomb< T, NDIM >::vcoul.
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.
real_function_3d madness::Coulomb< T, NDIM >::compute_density | ( | const SCF * | calc | ) | const |
|
inline |
given a density compute the Coulomb potential
this function uses a newly constructed Poisson operator. Note that the accuracy parameters must be consistent with the exchange operator.
References madness::Coulomb< T, NDIM >::poisson, and madness::truncate().
Referenced by madness::Coulomb< T, NDIM >::Coulomb(), madness::Coulomb< T, NDIM >::Coulomb(), madness::OEP::compute_coulomb_potential(), madness::OEP::compute_energy(), madness::Zcis::compute_potentials(), madness::OEP::compute_slater_potential(), madness::TDHF::get_tda_potential(), madness::Nemo::make_cphf_constant_term(), madness::Nemo::solve_cphf(), and test_coulomb().
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().
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().
|
inlinevirtual |
print some information about this operator
Implements madness::SCFOperatorBase< T, NDIM >.
|
inlinevirtual |
compute the matrix element <bra | op | ket>
bra | bra state |
ket | ket state |
Implements madness::SCFOperatorBase< T, NDIM >.
References madness::inner(), and madness::Coulomb< T, NDIM >::vcoul.
|
inlinevirtual |
apply this operator on the argument function
ket | the argument function |
Implements madness::SCFOperatorBase< T, NDIM >.
References madness::Coulomb< T, NDIM >::operator()().
Referenced by madness::Coulomb< T, NDIM >::operator()().
|
inline |
References madness::matrix_inner(), and madness::Coulomb< T, NDIM >::world.
|
inline |
setter for the Coulomb potential
References madness::Coulomb< T, NDIM >::vcoul.
|
inline |
getter for the Coulomb potential
References madness::Coulomb< T, NDIM >::vcoul.
Referenced by madness::OEP::compute_coulomb_potential(), madness::Nemo::compute_nemo_potentials(), madness::TDHF::get_tda_potential(), madness::Nemo::make_cphf_constant_term(), madness::Nemo::make_fock_operator(), madness::Nemo::solve_cphf(), and test_coulomb().
void madness::Coulomb< T, NDIM >::reset_poisson_operator_ptr | ( | const double | lo, |
const double | econv | ||
) |
References madness::CoulombOperatorPtr(), and lo.
Referenced by madness::Coulomb< T, NDIM >::Coulomb(), madness::Coulomb< T, NDIM >::Coulomb(), madness::Coulomb< T, NDIM >::Coulomb(), and test_coulomb().
|
inline |
References madness::SCFOperatorBase< T, NDIM >::taskq.
Referenced by madness::Nemo::compute_nemo_potentials().
|
private |
Referenced by madness::Coulomb< T, NDIM >::Coulomb().
|
private |
Referenced by madness::Coulomb< T, NDIM >::compute_potential().
|
private |
the coulomb potential
Referenced by madness::Coulomb< T, NDIM >::Coulomb(), madness::Coulomb< T, NDIM >::Coulomb(), madness::Coulomb< T, NDIM >::MacroTaskCoulomb::operator()(), madness::Coulomb< T, NDIM >::operator()(), madness::Coulomb< T, NDIM >::operator()(), madness::Coulomb< T, NDIM >::potential(), and madness::Coulomb< T, NDIM >::potential().
|
private |