MADNESS
0.10.1
|
#include <mp3.h>
Classes | |
class | MacroTaskMP3 |
helper class for calculating the MP3 energy contributions More... | |
Public Member Functions | |
MP3 (const CCPotentials &ops) | |
MP3 (World &world, const std::shared_ptr< Nemo > nemo, const CCParameters ¶m) | |
double | mp3_energy_contribution (const Pairs< CCPair > &mp2pairs) const |
double | mp3_energy_contribution_macrotask_driver (const Pairs< CCPair > &mp2pairs) const |
compute the MP3 energy contribution, macrotask version More... | |
Private Member Functions | |
double | compute_mp3_cd (const Pairs< CCPair > &mp2pairs) const |
double | compute_mp3_ef (const Pairs< CCPair > &mp2pairs) const |
double | compute_mp3_ef_as_overlap (const Pairs< CCPair > &mp2pairs, const Pairs< std::vector< CCPairFunction< double, 6 >>> clusterfunctions) const |
double | compute_mp3_ef_low_scaling (const Pairs< CCPair > &mp2pairs, const Pairs< std::vector< CCPairFunction< double, 6 >>> clusterfunctions) const |
double | compute_mp3_ef_with_permutational_symmetry (const Pairs< CCPair > &mp2pairs) const |
compute the EF term of the MP3 energy with permutational symmetry More... | |
double | compute_mp3_ghij (const Pairs< CCPair > &mp2pairs, const Pairs< std::vector< CCPairFunction< double, 6 >>> clusterfunctions) const |
double | compute_mp3_ghij_fast (const Pairs< CCPair > &mp2pairs, const Pairs< std::vector< CCPairFunction< double, 6 >>> clusterfunctions) const |
double | compute_mp3_klmn (const Pairs< CCPair > &mp2pairs) const |
double | compute_mp3_klmn_fast (const Pairs< CCPair > &mp2pairs) const |
double | mp3_test (const Pairs< CCPair > &mp2pairs, const Pairs< std::vector< CCPairFunction< double, 6 >>> clusterfunctions) const |
Static Private Member Functions | |
static double | compute_mp3_cd (World &world, const long i, const long j, const Pairs< std::vector< CCPairFunction< double, 6 >>> &pair_square, const std::vector< Function< double, 3 >> &mo_ket, const std::vector< Function< double, 3 >> &mo_bra, const CCParameters ¶meters, const Molecule &molecule, const Function< double, 3 > &Rsquare, const std::vector< std::string > &argument) |
compute the cd term for single pair ij More... | |
static double | compute_mp3_ef (World &world, const long i, const long j, const Pairs< std::vector< CCPairFunction< double, 6 >>> &pair_square, const std::vector< Function< double, 3 >> &mo_ket, const std::vector< Function< double, 3 >> &mo_bra, const CCParameters ¶meters, const Molecule &molecule, const Function< double, 3 > &Rsquare, const std::vector< std::string > &argument) |
compute the ef term for single pair ij More... | |
static double | compute_mp3_ghij (World &world, const long i, const long j, const Pairs< std::vector< CCPairFunction< double, 6 >>> &pair_square, const std::vector< Function< double, 3 >> &mo_ket, const std::vector< Function< double, 3 >> &mo_bra, const CCParameters ¶meters, const Molecule &molecule, const Function< double, 3 > &Rsquare, const std::vector< std::string > &argument) |
static double | compute_mp3_klmn (World &world, const long i, const long j, const Pairs< std::vector< CCPairFunction< double, 6 >>> &pair_square, const std::vector< Function< double, 3 >> &mo_ket, const std::vector< Function< double, 3 >> &mo_bra, const CCParameters ¶meters, const Molecule &molecule, const Function< double, 3 > &Rsquare, const std::vector< std::string > &argument) |
compute the klmn term for single pair ij More... | |
|
inline |
|
inline |
References madness::inner(), madness::OT_G12, madness::print(), madness::print_header3(), and R2.
Referenced by mp3_energy_contribution(), and madness::MP3::MacroTaskMP3::operator()().
|
staticprivate |
compute the cd term for single pair ij
References bufsize, madness::inner(), madness::OT_G12, and madness::print().
References madness::inner(), k, madness::OT_G12, madness::print_header3(), and R2.
Referenced by madness::MP3::MacroTaskMP3::operator()().
|
staticprivate |
compute the ef term for single pair ij
<ij | kl > = (ik | jl)
References bufsize, madness::CCParameters::freeze(), madness::inner(), k, madness::permutation::make_all_tau_permutations(), madness::OT_G12, madness::print(), and weight().
|
private |
|
private |
<ij | kl > = (ik | jl)
References madness::inner(), madness::timer::interrupt(), k, madness::OT_G12, madness::timer::print(), madness::print_header3(), R2, madness::timer::resume(), and sigma.
|
private |
compute the EF term of the MP3 energy with permutational symmetry
there is the usual 8-fold permutational symmetry for 2-electron integrals <ij | kl > = <ji | lk > = <kj | il > = < il | kj > = <kl | ij> = <lk | ji > = <il | kj > = < kj | il > implemented as loop over (ij) = \sum_i<j and (ij) < (kl)
<ij | kl > = (ik | jl)
References ij(), madness::inner(), k, MADNESS_CHECK_THROW, madness::permutation::make_all_tau_permutations(), madness::PairVectorMap::map, madness::OT_G12, p(), pow(), madness::print_header3(), R2, madness::permutation::remove_duplicates(), madness::PairVectorMap::triangular_map(), and weight().
Referenced by mp3_energy_contribution().
|
private |
References madness::g, I, madness::inner(), madness::multiply(), madness::OT_G12, madness::print(), R2, and madness::timer::tag().
Referenced by madness::MP3::MacroTaskMP3::operator()().
|
staticprivate |
compute the ghij term for single pair ij
the term actually scales linearly with the number of occupied orbitals i, so for all i!=j return zero
References bufsize, madness::CCParameters::freeze(), madness::g, madness::inner(), molecule, madness::multiply(), madness::OT_G12, madness::print(), madness::print_header3(), and madness::timer::tag().
|
private |
References madness::g, madness::inner(), molecule, madness::multiply(), madness::OT_G12, madness::print(), madness::print_header3(), R2, and madness::timer::tag().
Referenced by mp3_energy_contribution().
References madness::inner(), madness::Pairs< T >::insert(), madness::timer::interrupt(), k, K(), L, madness::multiply(), N, madness::OT_G12, madness::timer::print(), R2, and madness::timer::resume().
Referenced by madness::MP3::MacroTaskMP3::operator()().
|
staticprivate |
compute the klmn term for single pair ij
References bufsize, madness::CCParameters::freeze(), madness::inner(), madness::Pairs< T >::insert(), madness::timer::interrupt(), k, madness::multiply(), madness::OT_G12, madness::timer::print(), madness::print(), madness::print_header3(), and madness::timer::resume().
References madness::inner(), madness::Pairs< T >::insert(), madness::timer::interrupt(), k, madness::multiply(), madness::OT_G12, madness::timer::print(), R2, and madness::timer::resume().
Referenced by mp3_energy_contribution().
double madness::MP3::mp3_energy_contribution_macrotask_driver | ( | const Pairs< CCPair > & | mp2pairs | ) | const |
compute the MP3 energy contribution, macrotask version
References madness::Pairs< T >::allpairs, madness::print(), madness::print_header2(), madness::PairVectorMap::quadratic_map(), and madness::timer::tag().
Referenced by madness::CC2::compute_mp3().
|
private |
References ij(), madness::inner(), madness::OT_G12, madness::print(), madness::print_header2(), and R2.