mpqc::lcao::f12::F12PairEnergyReductor< Tile > Struct Template Reference

Documentation

template<typename Tile>
struct mpqc::lcao::f12::F12PairEnergyReductor< Tile >

tile reductor that computes pair contributions to the F12 energy

Given (a tile of) an F12 theory intermediate (V, B, X, and C) computes its contribution to the pair energies in the diagonal F12 approximation. The energy contribution from intermediate element $ I^{ij}_{kl} $ is proportional to $ c^{ij}_{ij} I^{ij}_{ij} + c^{ji}_{ij} I^{ij}_{ji} $, (NB for $ i=j $ both terms contribute). The coefficients will depend on the definition of the geminal, will differ between intermediates linear and quadratic in the geminal; they will also vary with the reference case, e.g. closed-shell spin-restricted case, open-shell, or spin-unrestricted cases.

  1. if pairspin == none (closed-shell reference) will compute pair energies for i<=j
  2. if pairspin == aa/bb will compute pair energies for i<j
  3. if pairspin == ab will compute pair energies for all ij
  4. if pairspin == s0 will compute pair energies for all i<=j
  5. if pairspin == s1 will compute pair energies for all i<j

Public Types

enum  PairSpin {
  PairSpin::none, PairSpin::aa, PairSpin::bb, PairSpin::ab,
  PairSpin::s0, PairSpin::s1
}
 
using result_type = RowMatrix< typename Tile::scalar_type >
 
using argument_type = Tile
 

Public Member Functions

 F12PairEnergyReductor ()=default
 
 F12PairEnergyReductor (F12PairEnergyReductor const &)=default
 
 F12PairEnergyReductor (double cijij, double cijji, int _n1, int _n2=-1, PairSpin sc=PairSpin::none)
 
result_type operator() () const
 
result_type operator() (result_type const &t) const
 
void operator() (result_type &me, result_type const &other) const
 
void operator() (result_type &me, argument_type const &tile) const
 

Public Attributes

double c_ijij
 
double c_ijji
 
int n1
 
int n2
 
PairSpin spincase
 spin case More...
 

Member Typedef Documentation

◆ argument_type

template<typename Tile >
using mpqc::lcao::f12::F12PairEnergyReductor< Tile >::argument_type = Tile

◆ result_type

template<typename Tile >
using mpqc::lcao::f12::F12PairEnergyReductor< Tile >::result_type = RowMatrix<typename Tile::scalar_type>

Member Enumeration Documentation

◆ PairSpin

template<typename Tile >
enum mpqc::lcao::f12::F12PairEnergyReductor::PairSpin
strong
Enumerator
none 
aa 
bb 
ab 
s0 
s1 

Constructor & Destructor Documentation

◆ F12PairEnergyReductor() [1/3]

template<typename Tile >
mpqc::lcao::f12::F12PairEnergyReductor< Tile >::F12PairEnergyReductor ( )
default

◆ F12PairEnergyReductor() [2/3]

template<typename Tile >
mpqc::lcao::f12::F12PairEnergyReductor< Tile >::F12PairEnergyReductor ( F12PairEnergyReductor< Tile > const &  )
default

◆ F12PairEnergyReductor() [3/3]

template<typename Tile >
mpqc::lcao::f12::F12PairEnergyReductor< Tile >::F12PairEnergyReductor ( double  cijij,
double  cijji,
int  _n1,
int  _n2 = -1,
PairSpin  sc = PairSpin::none 
)
inline

Member Function Documentation

◆ operator()() [1/4]

template<typename Tile >
result_type mpqc::lcao::f12::F12PairEnergyReductor< Tile >::operator() ( ) const
inline

◆ operator()() [2/4]

template<typename Tile >
void mpqc::lcao::f12::F12PairEnergyReductor< Tile >::operator() ( result_type me,
argument_type const &  tile 
) const
inline

◆ operator()() [3/4]

template<typename Tile >
void mpqc::lcao::f12::F12PairEnergyReductor< Tile >::operator() ( result_type me,
result_type const &  other 
) const
inline

◆ operator()() [4/4]

template<typename Tile >
result_type mpqc::lcao::f12::F12PairEnergyReductor< Tile >::operator() ( result_type const &  t) const
inline

Member Data Documentation

◆ c_ijij

template<typename Tile >
double mpqc::lcao::f12::F12PairEnergyReductor< Tile >::c_ijij

◆ c_ijji

template<typename Tile >
double mpqc::lcao::f12::F12PairEnergyReductor< Tile >::c_ijji

◆ n1

template<typename Tile >
int mpqc::lcao::f12::F12PairEnergyReductor< Tile >::n1

of geminal orbitals for electron 1

◆ n2

template<typename Tile >
int mpqc::lcao::f12::F12PairEnergyReductor< Tile >::n2

of geminal orbitals for electron 2

◆ spincase

template<typename Tile >
PairSpin mpqc::lcao::f12::F12PairEnergyReductor< Tile >::spincase

spin case


The documentation for this struct was generated from the following file: