mpqc::lcao::pno::MP2Solver Class Reference
Collaboration diagram for mpqc::lcao::pno::MP2Solver:

Documentation

The PNO MP2 energy solver.

Public Member Functions

template<typename Tile , typename Policy >
 MP2Solver (TA::DistArray< Tile, Policy > const &Focc, double precision, bool time_iters)
 Performs 1st-phase construction. More...
 
IdxMap< 2, PNODataTile > const & pairs () const
 Constant accessor for the hashtable holding local pairs data. More...
 
IdxMap< 2, PNODataTile > & pairs ()
 Accessor for the hashtable holding local pairs data. More...
 
IdxMap< 3, RowMatrixXd > const & overlaps () const
 Constant accessor for the hashtable holding local PNO overlaps. More...
 
IdxMap< 3, RowMatrixXd > & overlaps ()
 Accessor for the hashtable holding local PNO overlaps. More...
 
void write_pair (std::array< int, 2 > IJ, PNODataTile &&p)
 inserts pair data into pair data hashtable More...
 
double energy ()
 evaluates the PNO MP2 correlation energy by solving PNO MP1 equations iteratively More...
 

Constructor & Destructor Documentation

◆ MP2Solver()

template<typename Tile , typename Policy >
mpqc::lcao::pno::MP2Solver::MP2Solver ( TA::DistArray< Tile, Policy > const &  Focc,
double  precision,
bool  time_iters 
)
inline

Performs 1st-phase construction.

Note
MP2Solver has 2-phase construction: first metadata is initialized, then PNOs and overlaps are in initialized in the second phase.
Template Parameters
Tilea TA Tile type
Policya TA Policy type
Parameters
Foccactive occupied Fock matrix
precisiona positive real number; the MP1 amplitude solver will iterate until energy changes by less than precision as well as the (vector) 1-norm of the residual (per pair) is less than precision
time_itersif true, will print out verbose timing information

Member Function Documentation

◆ energy()

double mpqc::lcao::pno::MP2Solver::energy ( )
inline

evaluates the PNO MP2 correlation energy by solving PNO MP1 equations iteratively

Returns
the PNO MP2 correlation energy

◆ overlaps() [1/2]

IdxMap<3, RowMatrixXd>& mpqc::lcao::pno::MP2Solver::overlaps ( )
inline

Accessor for the hashtable holding local PNO overlaps.

Returns
a reference to the hashtable holding local PNO overlaps

◆ overlaps() [2/2]

IdxMap<3, RowMatrixXd> const& mpqc::lcao::pno::MP2Solver::overlaps ( ) const
inline

Constant accessor for the hashtable holding local PNO overlaps.

Returns
a const reference to the hashtable holding local PNO overlaps

◆ pairs() [1/2]

IdxMap<2, PNODataTile>& mpqc::lcao::pno::MP2Solver::pairs ( )
inline

Accessor for the hashtable holding local pairs data.

Returns
a reference to the hashtable holding local pairs data

◆ pairs() [2/2]

IdxMap<2, PNODataTile> const& mpqc::lcao::pno::MP2Solver::pairs ( ) const
inline

Constant accessor for the hashtable holding local pairs data.

Returns
a const reference to the hashtable holding local pairs data

◆ write_pair()

void mpqc::lcao::pno::MP2Solver::write_pair ( std::array< int, 2 >  IJ,
PNODataTile &&  p 
)
inline

inserts pair data into pair data hashtable

Note
this function is reentrant
Parameters
[in]IJpair index
[in]pa PnoPair object that contains pair data

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