MADNESS
0.10.1
|
#include <oep.h>
Public Member Functions | |
OEP (World &world, const commandlineparser &parser) | |
void | analyze () |
double | compute_and_print_final_energies (const std::string model, const real_function_3d &Voep, const vecfuncT &KS_nemo, const tensorT &KS_Fock, const vecfuncT &HF_nemo, const tensorT &HF_Fock) const |
void | compute_coulomb_potential (const vecfuncT &nemo, vecfuncT &Jnemo) const |
compute Coulomb potential More... | |
real_function_3d | compute_dcep_correction (const real_function_3d &dcep_numerator_HF, const vecfuncT &nemoHF, const vecfuncT &nemoKS) const |
compute correction of the given model More... | |
double | compute_delta_rho (const real_function_3d rho_HF, const real_function_3d rho_KS) const |
compute Delta rho as an indicator for the result's quality More... | |
real_function_3d | compute_density (const vecfuncT &nemo) const |
compute density from orbitals with ragularization (Bischoff, 2014_1, equation (19)) More... | |
double | compute_E_first (const vecfuncT phi, const vecfuncT Jphi, const vecfuncT Kphi, const real_function_3d Vx) const |
compute E^(1) = 1/2*\sum_ij <ij||ij> - \sum_i <i|J + Vx|i> = \sum_i <i|- 0.5*J - 0.5*K - Vx|i> More... | |
double | compute_E_zeroth (const tensorT eigvals) const |
cumpute E^(0) = \sum_i \epsilon_i^KS More... | |
std::vector< double > | compute_energy (const vecfuncT &nemo, const double E_X) const |
real_function_3d | compute_energy_weighted_density_local (const vecfuncT &nemo, const tensorT &fock) const |
return without the NCF and factor 2 for closed shell ! More... | |
double | compute_exchange_energy_conv (const vecfuncT phi, const vecfuncT Kphi) const |
compute exchange energy using the expectation value of the exchange operator More... | |
double | compute_exchange_energy_vir (const vecfuncT &nemo, const real_function_3d Vx) const |
compute Evir using Levy-Perdew virial relation (Kohut_2014, (43) or Ospadov_2017, (25)) More... | |
void | compute_exchange_potential (const vecfuncT &nemo, vecfuncT &Knemo) const |
compute exchange potential (needed for Econv) More... | |
Tensor< double > | compute_fock_diagonal_elements (const Tensor< double > &KS_eigvals, const vecfuncT &phi, const vecfuncT &Kphi, const real_function_3d &Vx) const |
compute diagonal elements of Fock matrix More... | |
real_function_3d | compute_mrks_correction (const real_function_3d &mrks_numerator_HF, const vecfuncT &nemoHF, const vecfuncT &nemoKS) const |
compute correction of the given model More... | |
void | compute_nemo_potentials (const vecfuncT &nemo, vecfuncT &Jnemo, vecfuncT &Unemo) const |
compute all potentials from given nemos except kinetic energy More... | |
real_function_3d | compute_ocep_correction (const real_function_3d &ocep_numerator_HF, const vecfuncT &nemoHF, const vecfuncT &nemoKS, const tensorT &fockHF, const tensorT &fockKS) const |
compute correction of the given model More... | |
real_function_3d | compute_Pauli_kinetic_density (const vecfuncT &nemo) const |
compute the Pauli kinetic energy density divided by the density tau_P/rho with equation (16) from Ospadov, 2017 More... | |
real_function_3d | compute_slater_potential (const vecfuncT &nemo) const |
compute Slater potential (Kohut, 2014, equation (15)) More... | |
real_function_3d | compute_total_kinetic_density (const vecfuncT &nemo) const |
compute the total kinetic energy density of equation (6) from Kohut More... | |
real_function_3d | get_final_potential () const |
std::shared_ptr< Nemo > | get_reference () const |
double | iterate (const std::string model, const vecfuncT &HF_nemo, const tensorT &HF_eigvals, vecfuncT &KS_nemo, tensorT &KS_Fock, real_function_3d &Voep, const real_function_3d Vs) const |
void | load_restartdata (Tensor< double > &fock) |
virtual std::shared_ptr< Fock< double, 3 > > | make_fock_operator () const |
the OEP Fock operator is the HF Fock operator without exchange but with the OEP More... | |
std::string | name () const |
bool | need_dcep_correction (const std::string &model) const |
bool | need_mrks_correction (const std::string &model) const |
bool | need_ocep_correction (const std::string &model) const |
void | output_calc_info_schema (const double &energy) const |
update the json file with calculation input and output More... | |
void | print_orbens (const tensorT orbens) const |
print orbital energies in reverse order with optional shift More... | |
void | print_parameters (std::vector< std::string > what) const |
std::tuple< Tensor< double >, vecfuncT > | recompute_HF (const vecfuncT &HF_nemo) const |
void | save_restartdata (const Tensor< double > &fock) const |
bool | selftest () |
The following function tests all essential parts of the OEP program qualitatively and some also quantitatively. More... | |
void | set_reference (const std::shared_ptr< Nemo > reference1) |
double | solve (const vecfuncT &HF_nemo) |
virtual double | value () |
virtual double | value (const Tensor< double > &x) |
Should return the value of the objective function. More... | |
Public Member Functions inherited from madness::Nemo | |
Nemo (World &world, const commandlineparser &parser) | |
ctor More... | |
std::vector< vecfuncT > | compute_all_cphf () |
solve the CPHF equation for all displacements More... | |
vecfuncT | compute_cphf_parallel_term (const size_t iatom, const int iaxis) const |
tensorT | compute_fock_matrix (const vecfuncT &nemo, const tensorT &occ) const |
compute the Fock matrix from scratch More... | |
Tensor< double > | compute_IR_intensities (const Tensor< double > &normalmodes, const vecfuncT &dens_pt) const |
compute the IR intensities in the double harmonic approximation More... | |
bool | do_ac () const |
bool | do_pcm () const |
bool | do_symmetry () const |
AC< 3 > | get_ac () const |
std::shared_ptr< SCF > | get_calc () const |
const NemoCalculationParameters & | get_param () const |
PCM | get_pcm () const |
projector_irrep | get_symmetry_projector () const |
return the symmetry_projector More... | |
Tensor< double > | gradient (const Tensor< double > &x) |
compute the nuclear gradients More... | |
Tensor< double > | hessian (const Tensor< double > &x) |
returns the molecular hessian matrix at structure x More... | |
bool | is_dft () const |
real_function_3d | kinetic_energy_potential (const vecfuncT &nemo) const |
real_function_3d | make_ddensity (const real_function_3d &rhonemo, const int axis) const |
make the derivative of the density More... | |
real_function_3d | make_density (const Tensor< double > &occ, const vecfuncT &nemo) const |
make the density (alpha or beta) More... | |
real_function_3d | make_density (const tensorT &occ, const vecfuncT &bra, const vecfuncT &ket, const bool refine=false) const |
make the density using different bra and ket vectors More... | |
real_function_3d | make_laplacian_density (const real_function_3d &rhonemo) const |
the Laplacian of the density More... | |
real_function_3d | make_sigma (const real_function_3d &rho1, const real_function_3d &rho2) const |
compute the reduced densities sigma (gamma) for GGA functionals More... | |
Molecule & | molecule () |
return a reference to the molecule More... | |
Molecule & | molecule () const |
return a reference to the molecule More... | |
bool | provides_gradient () const |
Override this to return true if the derivative is implemented. More... | |
Tensor< double > | purify_hessian (const Tensor< double > &hessian) const |
purify and symmetrize the hessian More... | |
vecfuncT | solve_cphf (const size_t iatom, const int iaxis, const Tensor< double > fock, const vecfuncT &guess, const vecfuncT &rhsconst, const Tensor< double > incomplete_hessian, const vecfuncT ¶llel, const SCFProtocol &p, const std::string &xc_data) const |
solve the CPHF equations for the nuclear displacements More... | |
Public Member Functions inherited from madness::NemoBase | |
NemoBase (World &w) | |
virtual | ~NemoBase () |
bool | check_convergence (const std::vector< double > energies, const std::vector< double > oldenergies, const double bsh_norm, const double delta_density, const CalculationParameters ¶m, const double econv, const double dconv) const |
template<typename T , std::size_t NDIM> | |
Function< typename Tensor< T >::scalar_type, NDIM > | compute_density (const std::vector< Function< T, NDIM > > nemo) const |
Tensor< double > | compute_gradient (const real_function_3d &rhonemo, const Molecule &molecule) const |
compute the nuclear gradients More... | |
template<typename T , std::size_t NDIM> | |
double | compute_kinetic_energy (const std::vector< Function< T, NDIM > > &nemo) const |
compute kinetic energy as square of the "analytical" expectation value More... | |
template<typename T , std::size_t NDIM> | |
double | compute_kinetic_energy1 (const std::vector< Function< T, NDIM > > &nemo) const |
compute kinetic energy as square of the "analytical" derivative of the orbitals More... | |
template<typename T , std::size_t NDIM> | |
double | compute_kinetic_energy1a (const std::vector< Function< T, NDIM > > &nemo) const |
compute kinetic energy as square of the "analytical" derivative of the orbitals More... | |
template<typename T , std::size_t NDIM> | |
double | compute_kinetic_energy2 (const std::vector< Function< T, NDIM > > &nemo) const |
compute kinetic energy as direct derivative of the orbitals (probably imprecise) More... | |
void | construct_nuclear_correlation_factor (const Molecule &molecule, const std::shared_ptr< PotentialManager > pm, const std::pair< std::string, double > ncf_parameter) |
std::shared_ptr< NuclearCorrelationFactor > | get_ncf_ptr () const |
create an instance of the derived object based on the input parameters More... | |
virtual void | invalidate_factors_and_potentials () |
virtual bool | need_recompute_factors_and_potentials (const double thresh) const |
template<typename T , std::size_t NDIM> | |
void | orthonormalize (std::vector< Function< T, NDIM > > &nemo, const Function< double, NDIM > metric=Function< double, NDIM >(), const double trantol=FunctionDefaults< NDIM >::get_thresh() *0.01) const |
orthonormalize the vectors More... | |
Public Member Functions inherited from madness::OptimizationTargetInterface | |
virtual | ~OptimizationTargetInterface () |
double | test_gradient (Tensor< double > &x, double value_precision, bool doprint=true) |
Numerical test of the derivative ... optionally prints to stdout, returns max abs error. More... | |
virtual void | value_and_gradient (const Tensor< double > &x, double &value, Tensor< double > &gradient) |
Reimplement if more efficient to evaluate both value and gradient in one call. More... | |
Static Public Member Functions | |
static void | help () |
static void | print_parameters () |
Static Public Member Functions inherited from madness::Nemo | |
static void | help () |
static void | print_parameters () |
static void | smoothen (real_function_3d &f) |
smooth a function by projecting it onto k-1 and then average with k More... | |
Static Public Member Functions inherited from madness::NemoBase | |
template<typename T , std::size_t NDIM> | |
static void | normalize (std::vector< Function< T, NDIM > > &nemo, const Function< double, NDIM > metric=Function< double, NDIM >()) |
normalize the nemos More... | |
template<typename T > | |
static Tensor< T > | Q2 (const Tensor< T > &s) |
Private Attributes | |
OEP_Parameters | oep_param |
parameters for this OEP calculation More... | |
std::shared_ptr< Nemo > | reference |
the wave function reference that determines the local potential More... | |
real_function_3d | Vfinal |
the final local potential More... | |
Additional Inherited Members | |
Public Attributes inherited from madness::Nemo | |
NemoCalculationParameters | param |
Public Attributes inherited from madness::NemoBase | |
std::shared_ptr< NuclearCorrelationFactor > | ncf |
the nuclear correlation factor More... | |
real_function_3d | R |
the nuclear correlation factor More... | |
real_function_3d | R_square |
the square of the nuclear correlation factor More... | |
World & | world |
Protected Member Functions inherited from madness::Nemo | |
std::vector< double > | compute_energy_regularized (const vecfuncT &nemo, const vecfuncT &Jnemo, const vecfuncT &Knemo, const vecfuncT &Unemo) const |
given nemos, compute the HF energy using the regularized expressions for T and V More... | |
void | compute_nemo_potentials (const vecfuncT &nemo, vecfuncT &Jnemo, vecfuncT &Knemo, vecfuncT &xcnemo, vecfuncT &pcmnemo, vecfuncT &Unemo) const |
compute the reconstructed orbitals, and all potentials applied on nemo More... | |
real_function_3d | get_coulomb_potential (const vecfuncT &psi) const |
return the Coulomb potential More... | |
template<typename T , size_t NDIM> | |
void | load_function (std::vector< Function< T, NDIM > > &f, const std::string name) const |
load a function More... | |
vecfuncT | localize (const vecfuncT &nemo, const double dconv, const bool randomize) const |
localize the nemo orbitals More... | |
vecfuncT | make_cphf_constant_term (const size_t iatom, const int iaxis, const vecfuncT &R2nemo, const real_function_3d &rhonemo) const |
compute the constant term for the CPHF equations More... | |
Tensor< double > | make_incomplete_hessian () const |
compute the incomplete hessian More... | |
Tensor< double > | make_incomplete_hessian_response_part (const std::vector< vecfuncT > &xi) const |
compute the complementary incomplete hessian More... | |
void | make_plots (const real_function_3d &f, const std::string &name="function") const |
template<typename solverT > | |
void | rotate_subspace (World &world, const tensorT &U, solverT &solver, int lo, int nfunc) const |
rotate the KAIN subspace (cf. SCF.cc) More... | |
template<typename T , size_t NDIM> | |
void | save_function (const std::vector< Function< T, NDIM > > &f, const std::string name) const |
save a function More... | |
void | set_protocol (const double thresh) |
adapt the thresholds consistently to a common value More... | |
double | solve (const SCFProtocol &proto) |
solve the HF equations More... | |
double | trantol () const |
return the threshold for vanishing elements in orbital rotations More... | |
Protected Attributes inherited from madness::Nemo | |
AC< 3 > | ac |
asymptotic correction for DFT More... | |
std::shared_ptr< SCF > | calc |
std::shared_ptr< real_convolution_3d > | poisson |
a poisson solver More... | |
projector_irrep | symmetry_projector |
|
inline |
void madness::OEP::analyze | ( | ) |
double madness::OEP::compute_and_print_final_energies | ( | const std::string | model, |
const real_function_3d & | Voep, | ||
const vecfuncT & | KS_nemo, | ||
const tensorT & | KS_Fock, | ||
const vecfuncT & | HF_nemo, | ||
const tensorT & | HF_Fock | ||
) | const |
References madness::Nemo::calc, compute_coulomb_potential(), compute_delta_rho(), compute_density(), compute_E_first(), compute_E_zeroth(), compute_energy(), compute_exchange_energy_conv(), compute_exchange_energy_vir(), compute_exchange_potential(), compute_fock_diagonal_elements(), madness::NemoBase::compute_kinetic_energy(), madness::CalculationParameters::do_localize(), madness::inner(), K(), madness::CalculationParameters::lo(), madness::Nemo::param, madness::print(), print_orbens(), madness::NemoBase::R, madness::NemoBase::R_square, madness::syev(), and madness::NemoBase::world.
Referenced by iterate().
|
inline |
compute Coulomb potential
References compute_density(), madness::Coulomb< T, NDIM >::compute_potential(), madness::QCPropertyInterface::density(), madness::Coulomb< T, NDIM >::potential(), madness::truncate(), and madness::NemoBase::world.
Referenced by compute_and_print_final_energies(), compute_nemo_potentials(), and selftest().
|
inline |
compute correction of the given model
References compute_total_kinetic_density(), madness::OEP_Parameters::dens_thresh_hi(), madness::OEP_Parameters::dens_thresh_inv(), madness::OEP_Parameters::dens_thresh_lo(), madness::dot(), madness::multi_to_multi_op_values(), oep_param, op(), madness::refine_to_common_level(), and madness::NemoBase::world.
Referenced by iterate(), and selftest().
|
inline |
compute Delta rho as an indicator for the result's quality
References madness::abs(), and madness::Function< T, NDIM >::trace().
Referenced by compute_and_print_final_energies(), and selftest().
|
inline |
compute density from orbitals with ragularization (Bischoff, 2014_1, equation (19))
References madness::QCPropertyInterface::density(), madness::dot(), madness::NemoBase::R_square, and madness::NemoBase::world.
Referenced by compute_and_print_final_energies(), compute_coulomb_potential(), compute_energy(), and selftest().
|
inline |
compute E^(1) = 1/2*\sum_ij <ij||ij> - \sum_i <i|J + Vx|i> = \sum_i <i|- 0.5*J - 0.5*K - Vx|i>
References madness::Nemo::calc, madness::inner(), and madness::NemoBase::world.
Referenced by compute_and_print_final_energies().
|
inline |
cumpute E^(0) = \sum_i \epsilon_i^KS
References madness::BaseTensor::size().
Referenced by compute_and_print_final_energies().
|
inline |
compute all energy contributions except exchange and sum up for total energy the exchange energy must be computed priorly with the compute_exchange_energy_... methods
References madness::Nemo::calc, compute_density(), madness::NemoBase::compute_kinetic_energy(), madness::Coulomb< T, NDIM >::compute_potential(), madness::QCPropertyInterface::density(), energy, madness::inner(), madness::World::rank(), and madness::NemoBase::world.
Referenced by compute_and_print_final_energies(), iterate(), and selftest().
|
inline |
return without the NCF and factor 2 for closed shell !
follow Eq. (4) of Ryabinkin2014
References madness::dot(), madness::transform(), and madness::NemoBase::world.
Referenced by compute_ocep_correction(), iterate(), and selftest().
|
inline |
compute exchange energy using the expectation value of the exchange operator
References madness::inner(), and madness::NemoBase::world.
Referenced by compute_and_print_final_energies(), and selftest().
|
inline |
compute Evir using Levy-Perdew virial relation (Kohut_2014, (43) or Ospadov_2017, (25))
References madness::dot(), madness::grad(), madness::inner(), madness::NemoBase::R_square, and madness::NemoBase::world.
Referenced by compute_and_print_final_energies(), iterate(), and selftest().
|
inline |
compute exchange potential (needed for Econv)
References madness::Nemo::get_calc(), K(), madness::CalculationParameters::lo(), madness::Nemo::param, madness::NemoBase::R_square, madness::Exchange< T, NDIM >::set_bra_and_ket(), madness::truncate(), and madness::NemoBase::world.
Referenced by compute_and_print_final_energies(), and selftest().
|
inline |
compute diagonal elements of Fock matrix
References madness::inner(), and madness::NemoBase::world.
Referenced by compute_and_print_final_energies().
|
inline |
compute correction of the given model
References compute_Pauli_kinetic_density(), madness::OEP_Parameters::dens_thresh_hi(), madness::OEP_Parameters::dens_thresh_inv(), madness::OEP_Parameters::dens_thresh_lo(), madness::dot(), madness::multi_to_multi_op_values(), oep_param, op(), madness::refine_to_common_level(), madness::square(), and madness::NemoBase::world.
Referenced by iterate(), and selftest().
|
inline |
compute all potentials from given nemos except kinetic energy
References compute_coulomb_potential(), and madness::NemoBase::world.
Referenced by iterate().
|
inline |
compute correction of the given model
shift of the diagonal elements of the fock matrix results in a global shift of the potential
References compute_energy_weighted_density_local(), madness::copy(), madness::OEP_Parameters::dens_thresh_hi(), madness::OEP_Parameters::dens_thresh_inv(), madness::OEP_Parameters::dens_thresh_lo(), madness::BaseTensor::dim(), madness::dot(), madness::multi_to_multi_op_values(), madness::Tensor< T >::normf(), oep_param, op(), madness::refine_to_common_level(), madness::syev(), and madness::NemoBase::world.
Referenced by iterate(), and selftest().
|
inline |
compute the Pauli kinetic energy density divided by the density tau_P/rho with equation (16) from Ospadov, 2017
References madness::copy(), madness::CalculationParameters::dft_deriv(), madness::dot(), madness::grad(), madness::grad_bspline_one(), madness::Nemo::param, madness::refine(), madness::sum(), and madness::NemoBase::world.
Referenced by compute_mrks_correction(), iterate(), and selftest().
|
inline |
compute Slater potential (Kohut, 2014, equation (15))
References madness::Coulomb< T, NDIM >::compute_potential(), madness::OEP_Parameters::dens_thresh_hi(), madness::OEP_Parameters::dens_thresh_inv(), madness::OEP_Parameters::dens_thresh_lo(), madness::dot(), K(), madness::multi_to_multi_op_values(), madness::CalculationParameters::nalpha(), madness::CalculationParameters::nbeta(), oep_param, op(), madness::Nemo::param, madness::NemoBase::R_square, reference, madness::refine_to_common_level(), madness::save(), madness::OEP_Parameters::saving_amount(), and madness::NemoBase::world.
Referenced by analyze(), selftest(), and solve().
|
inline |
compute the total kinetic energy density of equation (6) from Kohut
return without the NCF and factor 2 for closed shell !
References madness::apply(), madness::copy(), madness::CalculationParameters::dft_deriv(), madness::dot(), madness::Nemo::param, madness::refine(), and madness::NemoBase::world.
Referenced by compute_dcep_correction(), iterate(), and selftest().
|
inline |
References Vfinal.
|
inline |
References reference.
Referenced by make_fock_operator(), and recompute_HF().
|
inlinestatic |
References madness::print(), and madness::print_header2().
Referenced by main().
double madness::OEP::iterate | ( | const std::string | model, |
const vecfuncT & | HF_nemo, | ||
const tensorT & | HF_eigvals, | ||
vecfuncT & | KS_nemo, | ||
tensorT & | KS_Fock, | ||
real_function_3d & | Voep, | ||
const real_function_3d | Vs | ||
) | const |
References madness::Tensor< T >::absmax(), madness::SCF::analyze_vectors(), madness::Nemo::calc, madness::NemoBase::check_convergence(), compute_and_print_final_energies(), compute_dcep_correction(), compute_energy(), compute_energy_weighted_density_local(), compute_exchange_energy_vir(), compute_mrks_correction(), compute_nemo_potentials(), compute_ocep_correction(), compute_Pauli_kinetic_density(), compute_total_kinetic_density(), madness::copy(), madness::CalculationParameters::dconv(), madness::BaseTensor::dim(), madness::CalculationParameters::do_localize(), madness::Nemo::do_symmetry(), madness::CalculationParameters::econv(), energy, madness::Nemo::get_calc(), madness::OEP_Parameters::kain_param(), madness::BSHApply< T, NDIM >::levelshift, madness::OEP_Parameters::levelshift(), madness::BSHApply< T, NDIM >::lo, madness::Nemo::localize(), madness::matrix_inner(), madness::OEP_Parameters::maxiter(), madness::CalculationParameters::maxsub(), madness::BSHApply< T, NDIM >::metric, need_dcep_correction(), need_mrks_correction(), need_ocep_correction(), madness::norm2(), madness::NemoBase::normalize(), oep_param, madness::NemoBase::orthonormalize(), p(), madness::Nemo::param, madness::print(), madness::CalculationParameters::print_level(), madness::NemoBase::R, madness::NemoBase::R_square, madness::World::rank(), residual(), madness::Nemo::rotate_subspace(), madness::save(), madness::OEP_Parameters::save_iter_corrections(), madness::OEP_Parameters::saving_amount(), madness::projector_irrep::set_ordering(), madness::projector_irrep::set_orthonormalize_irreps(), madness::projector_irrep::set_verbosity(), madness::BaseTensor::size(), madness::World::size(), madness::stringify(), madness::Nemo::symmetry_projector, T(), madness::timer::tag(), madness::transform(), madness::truncate(), madness::wall_time(), and madness::NemoBase::world.
Referenced by solve().
void madness::OEP::load_restartdata | ( | Tensor< double > & | fock | ) |
References madness::Nemo::calc, madness::Nemo::get_calc(), madness::MolecularOrbitals< T, NDIM >::get_eps(), madness::MolecularOrbitals< T, NDIM >::get_localize_sets(), madness::MolecularOrbitals< T, NDIM >::get_mos(), madness::MolecularOrbitals< T, NDIM >::get_occ(), p(), madness::MolecularOrbitals< T, NDIM >::pretty_print(), madness::print(), madness::World::rank(), madness::projector_irrep::set_ordering(), madness::projector_irrep::set_orthonormalize_irreps(), madness::projector_irrep::set_verbosity(), Vfinal, and madness::NemoBase::world.
|
virtual |
the OEP Fock operator is the HF Fock operator without exchange but with the OEP
Reimplemented from madness::Nemo.
References madness::Fock< T, NDIM >::add_operator(), get_reference(), MADNESS_CHECK, madness::Fock< T, NDIM >::remove_operator(), Vfinal, and madness::NemoBase::world.
Referenced by madness::Fock< T, NDIM >::Fock(), and selftest().
|
inlinevirtual |
Reimplemented from madness::Nemo.
|
inline |
Referenced by iterate().
|
inline |
Referenced by iterate().
|
inline |
Referenced by iterate().
void madness::OEP::output_calc_info_schema | ( | const double & | energy | ) | const |
update the json file with calculation input and output
References madness::Nemo::calc, energy, madness::OEP_Parameters::model(), oep_param, madness::Nemo::param, and madness::CalculationParameters::prefix().
Referenced by value().
|
inline |
print orbital energies in reverse order with optional shift
References madness::BaseTensor::size().
Referenced by compute_and_print_final_energies().
|
inlinestatic |
References madness::Nemo::param, madness::QCCalculationParametersBase::print(), madness::print(), and madness::Molecule::print_parameters().
Referenced by main().
|
inline |
References MADNESS_EXCEPTION, oep_param, madness::Nemo::param, madness::QCCalculationParametersBase::print(), reference, and w().
std::tuple< Tensor< double >, vecfuncT > madness::OEP::recompute_HF | ( | const vecfuncT & | HF_nemo | ) | const |
References madness::timer::end(), F, get_reference(), madness::NemoBase::R_square, madness::truncate(), and madness::NemoBase::world.
Referenced by selftest(), and solve().
void madness::OEP::save_restartdata | ( | const Tensor< double > & | fock | ) | const |
References madness::Nemo::calc, madness::Nemo::get_calc(), p(), madness::Nemo::param, madness::CalculationParameters::pointgroup(), madness::print(), madness::NemoBase::R_square, madness::World::rank(), madness::MolecularOrbitals< T, NDIM >::recompute_irreps(), madness::projector_irrep::set_ordering(), madness::projector_irrep::set_orthonormalize_irreps(), madness::projector_irrep::set_verbosity(), madness::MolecularOrbitals< T, NDIM >::update_mos_and_eps(), madness::MolecularOrbitals< T, NDIM >::update_occ(), Vfinal, and madness::NemoBase::world.
Referenced by solve().
|
virtual |
The following function tests all essential parts of the OEP program qualitatively and some also quantitatively.
Reimplemented from madness::Nemo.
References madness::Nemo::calc, compute_coulomb_potential(), compute_dcep_correction(), compute_delta_rho(), compute_density(), compute_energy(), compute_energy_weighted_density_local(), compute_exchange_energy_conv(), compute_exchange_energy_vir(), compute_exchange_potential(), madness::NemoBase::compute_kinetic_energy(), compute_mrks_correction(), compute_ocep_correction(), compute_Pauli_kinetic_density(), compute_slater_potential(), compute_total_kinetic_density(), madness::copy(), madness::CalculationParameters::econv(), madness::test_output::end(), madness::inner(), madness::load(), madness::test_output::logger, make_fock_operator(), madness::Function< T, NDIM >::norm2(), madness::norm2(), madness::Nemo::param, madness::print(), madness::NemoBase::R, recompute_HF(), reference, madness::save(), madness::Nemo::set_protocol(), slater(), solve(), and madness::NemoBase::world.
|
inline |
double madness::OEP::solve | ( | const vecfuncT & | HF_nemo1 | ) |
Iterative energy calculation for approximate OEP with EXACT EXCHANGE functional for other functionals, slater potential must be modified HF orbitals and eigenvalues are used as the guess here note that KS_nemo is a reference and changes oep->get_calc()->amo orbitals same for orbital energies (eigenvalues) KS_eigvals which is oep->get_calc()->aeps converged if norm, total energy difference and orbital energy differences (if not OAEP) are converged
References madness::Nemo::calc, compute_slater_potential(), madness::copy(), energy, iterate(), load_restartdata(), madness::OEP_Parameters::model(), oep_param, madness::print(), recompute_HF(), madness::OEP_Parameters::restart(), madness::save(), save_restartdata(), madness::OEP_Parameters::saving_amount(), madness::syev(), Vfinal, and madness::NemoBase::world.
Referenced by selftest(), and value().
|
inlinevirtual |
Reimplemented from madness::Nemo.
References madness::Nemo::calc.
|
inlinevirtual |
Should return the value of the objective function.
Reimplemented from madness::Nemo.
References madness::Nemo::calc, madness::CalculationParameters::econv(), energy, load_restartdata(), madness::OEP_Parameters::no_compute(), oep_param, output_calc_info_schema(), madness::Nemo::param, reference, madness::OEP_Parameters::restart(), madness::Nemo::set_protocol(), solve(), and madness::NemoBase::world.
|
private |
parameters for this OEP calculation
Referenced by OEP(), compute_dcep_correction(), compute_mrks_correction(), compute_ocep_correction(), compute_slater_potential(), iterate(), output_calc_info_schema(), print_parameters(), solve(), and value().
|
private |
the wave function reference that determines the local potential
Referenced by OEP(), analyze(), compute_slater_potential(), get_reference(), print_parameters(), selftest(), set_reference(), and value().
|
private |
the final local potential
Referenced by analyze(), get_final_potential(), load_restartdata(), make_fock_operator(), save_restartdata(), and solve().