33 #ifndef HARTREEFOCK_H_
34 #define HARTREEFOCK_H_
46 template <
typename T,
int NDIM>
59 virtual bool is_od() {
return false;}
64 virtual bool is_rd() {
return true;}
68 virtual funcT
op_r(
const funcT& rho,
const funcT& rhon,
const funcT&
psi);
79 template <
typename T,
int NDIM>
92 virtual bool is_od() {
return false;}
97 virtual bool is_rd() {
return true;}
101 virtual funcT
op_r(
const funcT& rho,
const funcT& rhon,
const funcT&
psi);
108 template <
typename T,
int NDIM>
126 virtual bool is_rd() {
return false;}
130 virtual funcT
op_o(
const std::vector<funcT>& phis,
const funcT&
psi);
137 template <
typename T,
int NDIM>
145 std::vector<double>
eigs,
bool bCoulomb,
bool bExchange,
double thresh);
186 return _solver->matrix_element(phii, phij);
192 const std::vector<double>&
eigs,
const funcT& rho,
const int& iter);
212 return _solver->get_eig(indx);
219 return _solver->get_phi(indx);
224 const std::vector<double>&
eigs()
226 return _solver->eigs();
231 const std::vector<funcT>&
phis()
233 return _solver->phis();
279 World& world() {
return _world;}
283 double thresh() {
return _thresh;}
funcT calculate_coulomb(funcT psi)
Definition: eigsolver.h:52
double thresh()
Definition: eigsolver.h:194
Function< T, NDIM > funcT
Definition: hartreefock.h:113
Main include file for MADNESS and defines Function interface.
bool include_exchange()
Definition: hartreefock.h:203
virtual bool is_rd()
Is there a density-dependent term?
Definition: hartreefock.h:97
double calculate_ke_sp(funcT psi)
Definition: hartreefock.cc:167
virtual bool is_od()
Is there an orbitally-dependent term?
Definition: hartreefock.h:92
double coeff()
Definition: eigsolver.h:178
Definition: hartreefock.h:81
void hartree_fock(int maxits)
Definition: hartreefock.cc:159
double calculate_coulomb_energy(const std::vector< funcT > &phis, const funcT &psi)
Definition: hartreefock.cc:190
HartreeFockCoulombOp(World &world, double coeff, double thresh)
Definition: hartreefock.cc:53
double V(const Vector< double, 3 > &r)
Definition: apps/ii/hatom_energy.cc:46
This header should include pretty much everything needed for the parallel runtime.
Function< T, NDIM > funcT
Definition: hartreefock.h:141
Function< T, NDIM > funcT
Definition: hartreefock.h:84
Definition: hartreefock.h:48
const std::vector< funcT > & phis()
Definition: hartreefock.h:231
double calculate_tot_ke_sp(const std::vector< funcT > &phis)
Definition: hartreefock.cc:252
virtual bool is_od()
Is there an orbitally-dependent term?
Definition: hartreefock.h:59
Function< T, NDIM > funcT
Definition: hartreefock.h:51
virtual funcT op_r(const funcT &rho, const funcT &rhon, const funcT &psi)
Definition: hartreefock.cc:73
virtual ~HartreeFock()
Definition: hartreefock.cc:151
const T1 &f1 return GTEST_2_TUPLE_() T(f0, f1)
Definition: hartreefock.h:110
double calculate_tot_coulomb_energy(const std::vector< funcT > &phis)
Definition: hartreefock.cc:284
double calculate_pe_sp(funcT psi)
Definition: hartreefock.cc:181
funcT get_phi(int indx)
Definition: hartreefock.h:217
double psi(const Vector< double, 3 > &r)
Definition: apps/ii/hatom_energy.cc:42
HartreeFockExchangeOp(World &world, double coeff, double thresh)
Definition: hartreefock.cc:63
double calculate_tot_pe_sp(const std::vector< funcT > &phis)
Definition: hartreefock.cc:268
HartreeFock(World &world, std::shared_ptr< SCF > calc1)
Definition: mp2.h:104
funcT calculate_exchange(funcT psi)
Definition: eigsolver.h:99
A parallel world with full functionality wrapping an MPI communicator.
Definition: worldfwd.h:416
virtual bool is_rd()
Is there a density-dependent term?
Definition: hartreefock.h:126
A multiresolution adaptive numerical function.
Definition: derivative.h:61
double calculate_exchange_energy(const std::vector< funcT > &phis, const funcT &psi)
Definition: hartreefock.cc:222
HartreeFockNuclearPotentialOp(World &world, funcT V, double coeff, double thresh)
Definition: hartreefock.cc:41
virtual funcT op_r(const funcT &rho, const funcT &rhon, const funcT &psi)
Definition: hartreefock.cc:82
Definition: eigsolver.h:226
virtual bool is_od()
Is there an orbitally-dependent term?
Definition: hartreefock.h:121
virtual void iterateOutput(const std::vector< funcT > &phis, const std::vector< double > &eigs, const funcT &rho, const int &iter)
Definition: hartreefock.cc:316
virtual funcT op_o(const std::vector< funcT > &phis, const funcT &psi)
Orbital-dependent portion of operator.
Definition: hartreefock.cc:96
T matrix_element(const funcT &phii, const funcT &phij)
Definition: hartreefock.h:184
virtual bool is_rd()
Is there a density-dependent term?
Definition: hartreefock.h:64
double calculate_tot_exchange_energy(const std::vector< funcT > &phis)
Definition: hartreefock.cc:300
bool include_coulomb()
Definition: hartreefock.h:196
Holds machinery to set up Functions/FuncImpls using various Factories and Interfaces.
Definition: chem/atomutil.cc:45
double get_eig(int indx)
Definition: hartreefock.h:210
const std::vector< double > & eigs()
Definition: hartreefock.h:224