MADNESS 0.10.1
|
#include <nemo.h>
Public Member Functions | |
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 | |
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 | |
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 | |
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 | |
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) | |
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 | |
virtual void | invalidate_factors_and_potentials () |
virtual std::shared_ptr< Fock< double, 3 > > | make_fock_operator () const |
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 | |
Public Member Functions inherited from madness::MolecularOptimizationTargetInterface | |
virtual Molecule & | molecule () |
return the molecule of the target | |
Public Member Functions inherited from madness::OptimizationTargetInterface | |
virtual | ~OptimizationTargetInterface () |
virtual Tensor< double > | gradient (const Tensor< double > &x) |
Should return the derivative of the function. | |
virtual bool | provides_gradient () const |
Override this to return true if the derivative is implemented. | |
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. | |
virtual double | value (const Tensor< double > &x)=0 |
Should return the value of the objective function. | |
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. | |
Static Public Member Functions | |
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 | |
template<typename T > | |
static Tensor< T > | Q2 (const Tensor< T > &s) |
Public Attributes | |
std::shared_ptr< NuclearCorrelationFactor > | ncf |
the nuclear correlation factor | |
real_function_3d | R |
the nuclear correlation factor | |
real_function_3d | R_square |
the square of the nuclear correlation factor | |
World & | world |
|
inline |
|
inlinevirtual |
|
inline |
References param, madness::print(), madness::World::rank(), and world.
Referenced by madness::OEP::iterate(), and madness::Nemo::solve().
|
inline |
References madness::abssq(), sum, and world.
Referenced by madness::Znemo::compute_nemo_density(), madness::Znemo::compute_nemo_spin_density(), and madness::Nemo::solve().
Tensor< double > madness::NemoBase::compute_gradient | ( | const real_function_3d & | rhonemo, |
const Molecule & | molecule | ||
) | const |
compute the nuclear gradients
References aa, axis, madness::compress(), madness::grad(), madness::inner(), madness::MolecularOptimizationTargetInterface::molecule(), madness::Molecule::natom(), madness::Molecule::nuclear_repulsion_derivative(), R_square, and world.
Referenced by madness::Nemo::gradient(), and madness::Znemo::gradient().
|
inline |
compute kinetic energy as square of the "analytical" expectation value
[in] | the | nemo orbitals F |
References madness::apply(), axis, madness::dot(), madness::WorldGopInterface::fence(), madness::World::gop, madness::inner(), NDIM, R_square, and world.
Referenced by madness::OEP::compute_and_print_final_energies(), madness::OEP::compute_energy(), madness::Nemo::compute_energy_regularized(), and madness::OEP::selftest().
|
inline |
compute kinetic energy as square of the "analytical" derivative of the orbitals
[in] | the | nemo orbitals F |
References madness::timer::end(), madness::grad(), madness::norm2(), R, and world.
|
inline |
compute kinetic energy as square of the "analytical" derivative of the orbitals
[in] | the | nemo orbitals F |
References madness::apply(), madness::timer::end(), madness::grad(), NDIM, madness::norm2(), R, and world.
|
inline |
compute kinetic energy as direct derivative of the orbitals (probably imprecise)
[in] | the | nemo orbitals F |
References madness::apply(), axis, madness::inner(), R, sum, and world.
|
inline |
|
inline |
create an instance of the derived object based on the input parameters
References ncf.
Referenced by test_ethylene(), and test_ne_boys().
|
inlinevirtual |
Reimplemented in madness::Znemo.
References madness::Function< T, NDIM >::clear(), R, and R_square.
Referenced by madness::Znemo::invalidate_factors_and_potentials(), and madness::Nemo::value().
|
inlinevirtual |
Reimplemented in madness::Nemo, and madness::OEP.
References MADNESS_EXCEPTION.
Referenced by madness::Fock< T, NDIM >::Fock().
|
inlinevirtual |
Reimplemented in madness::Znemo.
References madness::Function< T, NDIM >::is_initialized(), R, R_square, thresh, and madness::Function< T, NDIM >::thresh().
Referenced by madness::Znemo::need_recompute_factors_and_potentials(), and madness::Nemo::set_protocol().
|
inlinestatic |
normalize the nemos
References madness::norm2s(), madness::scale(), and world.
Referenced by madness::OEP::iterate(), madness::Nemo::localize(), madness::Znemo::normalize(), orthonormalize(), and madness::Nemo::solve().
|
inline |
orthonormalize the vectors
References std::abs(), madness::matrix_inner(), normalize(), Q(), Q2(), madness::transform(), madness::truncate(), and world.
Referenced by madness::OEP::iterate(), madness::Znemo::orthonormalize(), and madness::Nemo::solve().
|
inlinestatic |
References Q().
Referenced by orthonormalize(), madness::Zcis::orthonormalize(), and orthonormalize().
std::shared_ptr<NuclearCorrelationFactor> madness::NemoBase::ncf |
the nuclear correlation factor
Referenced by madness::DNuclear< T, NDIM >::DNuclear(), madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::ExchangeImpl(), madness::Nuclear< T, NDIM >::Nuclear(), madness::Coulomb< double, 3 >::compute_density(), get_ncf_ptr(), and main().
real_function_3d madness::NemoBase::R |
the nuclear correlation factor
Referenced by madness::OEP::compute_and_print_final_energies(), compute_kinetic_energy1(), compute_kinetic_energy1a(), compute_kinetic_energy2(), construct_nuclear_correlation_factor(), invalidate_factors_and_potentials(), madness::OEP::iterate(), madness::Nemo::kinetic_energy_potential(), madness::Nemo::localize(), need_recompute_factors_and_potentials(), madness::Znemo::normalize(), madness::Znemo::orthonormalize(), madness::OEP::selftest(), and madness::Nemo::solve().
real_function_3d madness::NemoBase::R_square |
the square of the nuclear correlation factor
Referenced by madness::Nemo::compute_all_cphf(), madness::OEP::compute_and_print_final_energies(), madness::Znemo::compute_current_density(), madness::Znemo::compute_density(), madness::OEP::compute_density(), madness::Nemo::compute_energy_regularized(), madness::OEP::compute_exchange_energy_vir(), madness::OEP::compute_exchange_potential(), madness::Nemo::compute_fock_matrix(), compute_gradient(), compute_kinetic_energy(), madness::OEP::compute_slater_potential(), madness::Znemo::compute_spin_density(), construct_nuclear_correlation_factor(), madness::Nemo::hessian(), invalidate_factors_and_potentials(), madness::OEP::iterate(), madness::Nemo::kinetic_energy_potential(), madness::Znemo::make_bra(), madness::Nemo::make_ddensity(), madness::Nemo::make_incomplete_hessian(), madness::Nemo::make_incomplete_hessian_response_part(), madness::Nemo::make_laplacian_density(), madness::Nemo::make_sigma(), need_recompute_factors_and_potentials(), madness::ParametrizedExchange::operator()(), madness::OEP::recompute_HF(), madness::OEP::save_restartdata(), madness::Nemo::solve(), madness::Nemo::solve_cphf(), test_nemo(), and madness::Nemo::value().
World& madness::NemoBase::world |
Referenced by madness::Nemo::Nemo(), madness::OEP::OEP(), madness::Znemo::potentials::potentials(), madness::Znemo::Znemo(), madness::OEP::analyze(), madness::Znemo::analyze(), madness::Znemo::canonicalize(), check_convergence(), madness::Nemo::compute_all_cphf(), madness::OEP::compute_and_print_final_energies(), madness::OEP::compute_coulomb_potential(), madness::Nemo::compute_cphf_parallel_term(), madness::Znemo::compute_current_density(), madness::OEP::compute_dcep_correction(), compute_density(), madness::OEP::compute_density(), madness::OEP::compute_E_first(), madness::Znemo::compute_energy(), madness::OEP::compute_energy(), madness::Nemo::compute_energy_regularized(), madness::OEP::compute_energy_weighted_density_local(), madness::OEP::compute_exchange_energy_conv(), madness::OEP::compute_exchange_energy_vir(), madness::OEP::compute_exchange_potential(), madness::OEP::compute_fock_diagonal_elements(), madness::Nemo::compute_fock_matrix(), compute_gradient(), compute_kinetic_energy(), compute_kinetic_energy1(), compute_kinetic_energy1a(), compute_kinetic_energy2(), madness::Znemo::compute_kinetic_momentum(), madness::Znemo::compute_linear_moment(), madness::Znemo::compute_magnetic_potential_expectation(), madness::Znemo::compute_magnetic_vector_potential(), madness::OEP::compute_mrks_correction(), madness::Nemo::compute_nemo_potentials(), madness::OEP::compute_nemo_potentials(), madness::Znemo::compute_nemo_spin_density(), madness::OEP::compute_ocep_correction(), madness::OEP::compute_Pauli_kinetic_density(), madness::Znemo::compute_potentials(), madness::Znemo::compute_residuals(), madness::OEP::compute_slater_potential(), madness::OEP::compute_total_kinetic_density(), madness::Znemo::compute_vmat(), construct_nuclear_correlation_factor(), madness::Znemo::custom_guess(), madness::Znemo::do_step_restriction(), madness::Znemo::get_initial_orbitals(), madness::Nemo::gradient(), madness::Znemo::gradient(), madness::Znemo::hcore_guess(), madness::Nemo::hessian(), madness::Znemo::iterate(), madness::OEP::iterate(), madness::Nemo::kinetic_energy_potential(), madness::Nemo::load_function(), madness::OEP::load_restartdata(), madness::Nemo::localize(), madness::Nemo::make_cphf_constant_term(), madness::Nemo::make_ddensity(), madness::Nemo::make_density(), madness::Nemo::make_density(), madness::Nemo::make_fock_operator(), madness::OEP::make_fock_operator(), madness::Nemo::make_incomplete_hessian(), madness::Nemo::make_incomplete_hessian_response_part(), madness::Nemo::make_laplacian_density(), madness::Nemo::make_plots(), madness::Nemo::make_sigma(), madness::Znemo::normalize(), normalize(), madness::Znemo::orthonormalize(), orthonormalize(), madness::Znemo::read_complex_guess(), madness::Znemo::read_explicit_guess_functions(), madness::Znemo::read_real_guess(), madness::Znemo::read_reference(), madness::Znemo::read_restartaodata(), madness::Znemo::recompute_factors_and_potentials(), madness::OEP::recompute_HF(), madness::Znemo::rotate_subspace(), madness::Nemo::rotate_subspace(), madness::Nemo::save_function(), madness::Znemo::save_orbitals(), madness::OEP::save_restartdata(), madness::OEP::selftest(), madness::Nemo::set_protocol(), madness::Nemo::solve(), madness::OEP::solve(), madness::Nemo::solve_cphf(), madness::Znemo::test_compute_current_density(), madness::Znemo::test_landau_wave_function(), madness::Znemo::test_U_potentials(), madness::Znemo::potentials::transform(), madness::Nemo::value(), and madness::OEP::value().