MADNESS 0.10.1
|
#include <hartreefock.h>
Public Types | |
typedef Function< T, NDIM > | funcT |
Public Member Functions | |
HartreeFock (World &world, funcT V, std::vector< funcT > phis, std::vector< double > eigs, bool bCoulomb, bool bExchange, double thresh) | |
HartreeFock (World &world, std::shared_ptr< Nemo > nemo) | |
virtual | ~HartreeFock () |
funcT | calculate_coulomb (funcT psi) |
double | calculate_coulomb_energy (const std::vector< funcT > &phis, const funcT &psi) |
funcT | calculate_exchange (funcT psi) |
double | calculate_exchange_energy (const std::vector< funcT > &phis, const funcT &psi) |
double | calculate_ke_sp (funcT psi) |
double | calculate_pe_sp (funcT psi) |
double | calculate_tot_coulomb_energy (const std::vector< funcT > &phis) |
double | calculate_tot_exchange_energy (const std::vector< funcT > &phis) |
double | calculate_tot_ke_sp (const std::vector< funcT > &phis) |
double | calculate_tot_pe_sp (const std::vector< funcT > &phis) |
double | coord_chksum () const |
const std::vector< double > & | eigs () |
SCF & | get_calc () |
const SCF & | get_calc () const |
real_function_3d | get_coulomb_potential () const |
return the Coulomb potential | |
double | get_eig (int indx) |
real_function_3d | get_nuclear_potential () const |
return the nuclear potential | |
funcT | get_phi (int indx) |
World & | get_world () |
Tensor< double > | gradient (const Tensor< double > &x) |
void | hartree_fock (int maxits) |
bool | include_coulomb () |
bool | include_exchange () |
virtual void | iterateOutput (const std::vector< funcT > &phis, const std::vector< double > &eigs, const funcT &rho, const int &iter) |
T | matrix_element (const funcT &phii, const funcT &phij) |
real_function_3d | nemo (const int i) const |
return nemo i, which is the regularized orbital | |
std::vector< real_function_3d > | nemos () const |
return nemo, which are the regularized orbitals | |
int | nocc () const |
return the number of occupied orbitals | |
real_function_3d | orbital (const int i) const |
return full orbital i, multiplied with the nuclear correlation factor | |
double | orbital_energy (const int i) const |
return orbital energy i | |
std::vector< real_function_3d > | orbitals () const |
return full orbitals, multiplied with the nuclear correlation factor | |
const std::vector< funcT > & | phis () |
bool | provides_gradient () const |
real_function_3d | R2orbital (const int i) const |
return orbital i, multiplied with the square nuclear correlation factor | |
std::vector< real_function_3d > | R2orbitals () const |
return orbitals, multiplied with the square nuclear correlation factor | |
void | reset_orbitals (const MolecularOrbitals< double, 3 > &mos) |
double | value () |
double | value (const Tensor< double > &x) |
Public Member Functions inherited from madness::IEigSolverObserver< T, NDIM > | |
virtual | ~IEigSolverObserver () |
virtual void | iterateOutput (const std::vector< funcT > &phis, const std::vector< double > &eigs, const Function< double, NDIM > &rho, const int &iter, bool periodic)=0 |
Public Attributes | |
std::shared_ptr< Nemo > | nemo_ptr |
Private Member Functions | |
double | thresh () |
World & | world () |
Private Attributes | |
bool | _bCoulomb |
bool | _bExchange |
EigSolver< T, NDIM > * | _solver |
double | _thresh |
funcT | _V |
World & | _world |
double | coords_sum |
real_function_3d | coulomb |
std::vector< real_function_3d > | orbitals_ |
reconstructed orbitals: R * phi, where R is the nuclear correlation factor | |
std::vector< real_function_3d > | R2orbitals_ |
World & | world |
madness::HartreeFock< T, NDIM >::HartreeFock | ( | World & | world, |
funcT | V, | ||
std::vector< funcT > | phis, | ||
std::vector< double > | eigs, | ||
bool | bCoulomb, | ||
bool | bExchange, | ||
double | thresh | ||
) |
References madness::HartreeFock< T, NDIM >::_bCoulomb, madness::HartreeFock< T, NDIM >::_bExchange, madness::HartreeFock< T, NDIM >::_solver, madness::HartreeFock< T, NDIM >::eigs(), madness::HartreeFock< T, NDIM >::phis(), madness::HartreeFock< T, NDIM >::thresh(), V(), and madness::HartreeFock< T, NDIM >::world.
|
virtual |
|
inline |
funcT madness::HartreeFock< T, NDIM >::calculate_coulomb | ( | funcT | psi | ) |
double madness::HartreeFock< T, NDIM >::calculate_coulomb_energy | ( | const std::vector< funcT > & | phis, |
const funcT & | psi | ||
) |
References madness::apply(), e(), madness::inner(), op(), psi(), and madness::Function< T, NDIM >::truncate().
funcT madness::HartreeFock< T, NDIM >::calculate_exchange | ( | funcT | psi | ) |
double madness::HartreeFock< T, NDIM >::calculate_exchange_energy | ( | const std::vector< funcT > & | phis, |
const funcT & | psi | ||
) |
References madness::apply(), e(), madness::inner(), op(), psi(), and thresh.
double madness::HartreeFock< T, NDIM >::calculate_ke_sp | ( | funcT | psi | ) |
References axis, diff(), madness::inner(), and psi().
double madness::HartreeFock< T, NDIM >::calculate_pe_sp | ( | funcT | psi | ) |
References psi().
double madness::HartreeFock< T, NDIM >::calculate_tot_coulomb_energy | ( | const std::vector< funcT > & | phis | ) |
double madness::HartreeFock< T, NDIM >::calculate_tot_exchange_energy | ( | const std::vector< funcT > & | phis | ) |
double madness::HartreeFock< T, NDIM >::calculate_tot_ke_sp | ( | const std::vector< funcT > & | phis | ) |
double madness::HartreeFock< T, NDIM >::calculate_tot_pe_sp | ( | const std::vector< funcT > & | phis | ) |
|
inline |
References madness::HartreeFock< T, NDIM >::coords_sum.
|
inline |
References madness::HartreeFock< T, NDIM >::_solver.
Referenced by madness::HartreeFock< T, NDIM >::HartreeFock().
|
inline |
References madness::HartreeFock< T, NDIM >::nemo_ptr.
|
inline |
References madness::HartreeFock< T, NDIM >::nemo_ptr.
|
inline |
|
inline |
References madness::HartreeFock< T, NDIM >::_solver.
|
inline |
return the nuclear potential
References madness::HartreeFock< T, NDIM >::nemo_ptr.
|
inline |
References madness::HartreeFock< T, NDIM >::_solver.
|
inline |
References madness::HartreeFock< T, NDIM >::world.
void madness::HartreeFock< T, NDIM >::hartree_fock | ( | int | maxits | ) |
|
inline |
References madness::HartreeFock< T, NDIM >::_bCoulomb.
|
inline |
References madness::HartreeFock< T, NDIM >::_bExchange.
|
virtual |
|
inline |
References madness::HartreeFock< T, NDIM >::_solver.
|
inline |
return nemo i, which is the regularized orbital
note that nemo() and orbital() are the same if no nuclear correlation factor is used
References MADNESS_ASSERT, and madness::HartreeFock< T, NDIM >::nemo_ptr.
|
inline |
return nemo, which are the regularized orbitals
note that nemo() and orbital() are the same if no nuclear correlation factor is used
References MADNESS_ASSERT, and madness::HartreeFock< T, NDIM >::nemo_ptr.
Referenced by madness::HartreeFock< T, NDIM >::get_coulomb_potential().
|
inline |
return the number of occupied orbitals
References MADNESS_ASSERT, and madness::HartreeFock< T, NDIM >::nemo_ptr.
|
inline |
return full orbital i, multiplied with the nuclear correlation factor
note that nemo() and orbital() are the same if no nuclear correlation factor is used
References MADNESS_ASSERT, madness::HartreeFock< T, NDIM >::nemo_ptr, and madness::HartreeFock< T, NDIM >::orbitals_.
|
inline |
return orbital energy i
References MADNESS_ASSERT, and madness::HartreeFock< T, NDIM >::nemo_ptr.
|
inline |
return full orbitals, multiplied with the nuclear correlation factor
note that nemo() and orbital() are the same if no nuclear correlation factor is used
References MADNESS_ASSERT, madness::HartreeFock< T, NDIM >::nemo_ptr, and madness::HartreeFock< T, NDIM >::orbitals_.
|
inline |
References madness::HartreeFock< T, NDIM >::_solver.
Referenced by madness::HartreeFock< T, NDIM >::HartreeFock().
|
inline |
|
inline |
return orbital i, multiplied with the square nuclear correlation factor
note that nemo() and orbital() are the same if no nuclear correlation factor is used
References MADNESS_ASSERT, madness::HartreeFock< T, NDIM >::nemo_ptr, and madness::HartreeFock< T, NDIM >::R2orbitals_.
|
inline |
return orbitals, multiplied with the square nuclear correlation factor
note that nemo() and orbital() are the same if no nuclear correlation factor is used
References MADNESS_ASSERT, madness::HartreeFock< T, NDIM >::nemo_ptr, and madness::HartreeFock< T, NDIM >::R2orbitals_.
|
inline |
References madness::MolecularOrbitals< T, NDIM >::get_eps(), madness::MolecularOrbitals< T, NDIM >::get_mos(), MADNESS_CHECK, madness::HartreeFock< T, NDIM >::nemo_ptr, madness::HartreeFock< T, NDIM >::orbitals_, and madness::HartreeFock< T, NDIM >::R2orbitals_.
Referenced by madness::HartreeFock< T, NDIM >::value().
|
inlineprivate |
References madness::HartreeFock< T, NDIM >::_thresh.
Referenced by madness::HartreeFock< T, NDIM >::HartreeFock().
|
inline |
|
inline |
|
inlineprivate |
References madness::HartreeFock< T, NDIM >::_world.
|
private |
|
private |
|
private |
Referenced by madness::HartreeFock< T, NDIM >::thresh().
|
private |
|
private |
Referenced by madness::HartreeFock< T, NDIM >::world().
|
mutableprivate |
|
mutableprivate |
Referenced by madness::HartreeFock< T, NDIM >::get_coulomb_potential().
std::shared_ptr<Nemo> madness::HartreeFock< T, NDIM >::nemo_ptr |
Referenced by madness::HartreeFock< T, NDIM >::get_calc(), madness::HartreeFock< T, NDIM >::get_calc(), madness::HartreeFock< T, NDIM >::get_coulomb_potential(), madness::HartreeFock< T, NDIM >::get_nuclear_potential(), madness::HartreeFock< T, NDIM >::gradient(), madness::HartreeFock< T, NDIM >::nemo(), madness::HartreeFock< T, NDIM >::nemos(), madness::HartreeFock< T, NDIM >::nocc(), madness::HartreeFock< T, NDIM >::orbital(), madness::HartreeFock< T, NDIM >::orbital_energy(), madness::HartreeFock< T, NDIM >::orbitals(), madness::HartreeFock< T, NDIM >::R2orbital(), madness::HartreeFock< T, NDIM >::R2orbitals(), madness::HartreeFock< T, NDIM >::reset_orbitals(), madness::HartreeFock< T, NDIM >::value(), and madness::HartreeFock< T, NDIM >::value().
|
private |
reconstructed orbitals: R * phi, where R is the nuclear correlation factor
Referenced by madness::HartreeFock< T, NDIM >::orbital(), madness::HartreeFock< T, NDIM >::orbitals(), and madness::HartreeFock< T, NDIM >::reset_orbitals().
|
private |
R^2 * phi, where R is the nuclear correlation factor, corresponds to the bra space of the transformed operators
Referenced by madness::HartreeFock< T, NDIM >::R2orbital(), madness::HartreeFock< T, NDIM >::R2orbitals(), and madness::HartreeFock< T, NDIM >::reset_orbitals().
|
private |