MADNESS 0.10.1
Classes | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
madness::MP3 Class Reference

#include <mp3.h>

Collaboration diagram for madness::MP3:
Collaboration graph
[legend]

Classes

class  MacroTaskMP3
 helper class for calculating the MP3 energy contributions More...
 

Public Member Functions

 MP3 (World &world, const Info &info)
 
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
 

Private Member Functions

double compute_mp3_cd (const Pairs< CCPair > &mp2pairs, const Info &info) const
 
double compute_mp3_ef (const Pairs< CCPair > &mp2pairs, const Info &info) const
 
double compute_mp3_ef_as_overlap (const Pairs< CCPair > &mp2pairs, const Pairs< std::vector< CCPairFunction< double, 6 > > > clusterfunctions, const Info &info) const
 
double compute_mp3_ef_low_scaling (const Pairs< CCPair > &mp2pairs, const Pairs< std::vector< CCPairFunction< double, 6 > > > clusterfunctions, const Info &info) const
 
double compute_mp3_ef_with_permutational_symmetry (const Pairs< CCPair > &mp2pairs, const Info &info) const
 compute the EF term of the MP3 energy with permutational symmetry
 
double compute_mp3_ghij (const Pairs< CCPair > &mp2pairs, const Pairs< std::vector< CCPairFunction< double, 6 > > > clusterfunctions, const Info &info) const
 
double compute_mp3_ghij_fast (const Pairs< CCPair > &mp2pairs, const Pairs< std::vector< CCPairFunction< double, 6 > > > clusterfunctions, const Info &info) const
 
double compute_mp3_klmn (const Pairs< CCPair > &mp2pairs, const Info &info) const
 
double compute_mp3_klmn_fast (const Pairs< CCPair > &mp2pairs, const Info &info) const
 
double mp3_test (const Pairs< CCPair > &mp2pairs, const Pairs< std::vector< CCPairFunction< double, 6 > > > clusterfunctions, const Info &info) 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 Info &info, const std::vector< std::string > &argument)
 compute the cd term for single pair ij
 
static double compute_mp3_ef (World &world, const long i, const long j, const Pairs< std::vector< CCPairFunction< double, 6 > > > &pair_square, const Info &info, const std::vector< std::string > &argument)
 compute the ef term for single pair ij
 
static double compute_mp3_ghij (World &world, const long i, const long j, const Pairs< std::vector< CCPairFunction< double, 6 > > > &pair_square, const Info &info, 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 Info &info, const std::vector< std::string > &argument)
 compute the klmn term for single pair ij
 

Private Attributes

const Infoinfo
 
Worldworld
 

Constructor & Destructor Documentation

◆ MP3()

madness::MP3::MP3 ( World world,
const Info info 
)
inline

Member Function Documentation

◆ compute_mp3_cd() [1/2]

double madness::MP3::compute_mp3_cd ( const Pairs< CCPair > &  mp2pairs,
const Info info 
) const
private

◆ compute_mp3_cd() [2/2]

double madness::MP3::compute_mp3_cd ( World world,
const long  i,
const long  j,
const Pairs< std::vector< CCPairFunction< double, 6 > > > &  pair_square,
const Info info,
const std::vector< std::string > &  argument 
)
staticprivate

◆ compute_mp3_ef() [1/2]

double madness::MP3::compute_mp3_ef ( const Pairs< CCPair > &  mp2pairs,
const Info info 
) const
private

◆ compute_mp3_ef() [2/2]

double madness::MP3::compute_mp3_ef ( World world,
const long  i,
const long  j,
const Pairs< std::vector< CCPairFunction< double, 6 > > > &  pair_square,
const Info info,
const std::vector< std::string > &  argument 
)
staticprivate

◆ compute_mp3_ef_as_overlap()

double madness::MP3::compute_mp3_ef_as_overlap ( const Pairs< CCPair > &  mp2pairs,
const Pairs< std::vector< CCPairFunction< double, 6 > > >  clusterfunctions,
const Info info 
) const
private

◆ compute_mp3_ef_low_scaling()

double madness::MP3::compute_mp3_ef_low_scaling ( const Pairs< CCPair > &  mp2pairs,
const Pairs< std::vector< CCPairFunction< double, 6 > > >  clusterfunctions,
const Info info 
) const
private

◆ compute_mp3_ef_with_permutational_symmetry()

double madness::MP3::compute_mp3_ef_with_permutational_symmetry ( const Pairs< CCPair > &  mp2pairs,
const Info info 
) const
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 madness::Pairs< T >::allpairs, madness::CCParameters::freeze(), ij(), info, madness::inner(), k, MADNESS_CHECK_THROW, madness::permutation::make_all_tau_permutations(), madness::PairVectorMap::map, madness::Info::mo_bra, madness::Info::mo_ket, madness::OT_G12, p(), madness::Info::parameters, madness::print_header3(), R2, madness::Info::R_square, madness::permutation::remove_duplicates(), madness::PairVectorMap::triangular_map(), weight(), and world.

Referenced by mp3_energy_contribution().

◆ compute_mp3_ghij() [1/2]

double madness::MP3::compute_mp3_ghij ( const Pairs< CCPair > &  mp2pairs,
const Pairs< std::vector< CCPairFunction< double, 6 > > >  clusterfunctions,
const Info info 
) const
private

◆ compute_mp3_ghij() [2/2]

double madness::MP3::compute_mp3_ghij ( World world,
const long  i,
const long  j,
const Pairs< std::vector< CCPairFunction< double, 6 > > > &  pair_square,
const Info info,
const std::vector< std::string > &  argument 
)
staticprivate

◆ compute_mp3_ghij_fast()

double madness::MP3::compute_mp3_ghij_fast ( const Pairs< CCPair > &  mp2pairs,
const Pairs< std::vector< CCPairFunction< double, 6 > > >  clusterfunctions,
const Info info 
) const
private

◆ compute_mp3_klmn() [1/2]

double madness::MP3::compute_mp3_klmn ( const Pairs< CCPair > &  mp2pairs,
const Info info 
) const
private

◆ compute_mp3_klmn() [2/2]

double madness::MP3::compute_mp3_klmn ( World world,
const long  i,
const long  j,
const Pairs< std::vector< CCPairFunction< double, 6 > > > &  pair_square,
const Info info,
const std::vector< std::string > &  argument 
)
staticprivate

◆ compute_mp3_klmn_fast()

double madness::MP3::compute_mp3_klmn_fast ( const Pairs< CCPair > &  mp2pairs,
const Info info 
) const
private

◆ mp3_energy_contribution()

double madness::MP3::mp3_energy_contribution ( const Pairs< CCPair > &  mp2pairs) const

◆ mp3_energy_contribution_macrotask_driver()

double madness::MP3::mp3_energy_contribution_macrotask_driver ( const Pairs< CCPair > &  mp2pairs) const

◆ mp3_test()

double madness::MP3::mp3_test ( const Pairs< CCPair > &  mp2pairs,
const Pairs< std::vector< CCPairFunction< double, 6 > > >  clusterfunctions,
const Info info 
) const
private

Member Data Documentation

◆ info

const Info& madness::MP3::info
private

◆ world

World& madness::MP3::world
private

The documentation for this class was generated from the following files: