mpqc::lcao::pno Namespace Reference
Namespaces | |
detail | |
tasks | |
Classes | |
class | MatrixGetter |
class | MP2Solver |
The PNO MP2 energy solver. More... | |
class | Pair |
class | PNOBuilder |
struct | PNODataTile |
Typedefs | |
using | SparseMap = RowMatrix< int > |
template<int N> | |
using | IdxHash = mpqc::utility::hash |
template<int N, typename T > | |
using | IdxMap = std::unordered_map< std::array< int, N >, T, IdxHash< N > > |
template<typename Tile , typename Policy > | |
using | Array = TA::DistArray< Tile, Policy > |
template<typename Tile , typename Policy > | |
using | ArrayVec = TA::DistArrayVector< Tile, Policy > |
Functions | |
template<typename DirectArray , typename Tile , typename Policy > | |
TA::DistArray< Tile, Policy > | EToZir (DirectArray const &E, TA::DistArray< Tile, Policy > const &Ci, SparseMap const &IX, SparseMap const &IR) |
Screen the construction of (X | i μ) using the maps IX and IR. More... | |
template<typename Tile , typename Policy > | |
void | ZirToZia (TA::DistArray< Tile, Policy > &Zir, TA::DistArray< Tile, Policy > const &P, SparseMap const &IX, SparseMap const &IA) |
Screen the construction of (X | i a) using the sparse maps IX and IA. More... | |
template<typename Tile , typename Policy > | |
TA::DistArray< Tile, Policy > | Zia (gaussian::AOFactory< Tile, Policy > &aof, TA::DistArray< Tile, Policy > const &Ci, TA::DistArray< Tile, Policy > const &P, SparseMap const &IX, SparseMap const &IA, SparseMap const &IJ, bool fastE, bool fastZir, bool fastZia, double tcutRS, double tcutScreen, bool diagonalIJ=false) |
Function that take LMOs, the PAO projector and a AOFactory and will apply various screening of the three center (X | i a) build. More... | |
template<typename Tile , typename Policy > | |
RowMatrixXd | orbital_pair_domain_G (TA::DistArray< Tile, Policy > const &G, SparseMap const &ij_ab, int i, int j, int pair_ord) |
template<typename Tile , typename Policy > | |
RowMatrixXd | orbital_pair_domain_matrix (TA::DistArray< Tile, Policy > const &M, SparseMap const &ij_mn, int pair_ord_m, int pair_ord_n) |
template<typename Tile , typename Policy > | |
RowMatrixXd | orbital_domain_three_center (TA::DistArray< Tile, Policy > const &E, SparseMap const &om, SparseMap const &on, int orb) |
template<typename Tile , typename Policy > | |
RowMatrixXd | orbital_domain_matrix (TA::DistArray< Tile, Policy > const &M, SparseMap const &om, SparseMap const &on, std::vector< int > const &orbs) |
template<typename Tile , typename Policy > | |
RowMatrixXd | orbital_domain_row (TA::DistArray< Tile, Policy > const &M, SparseMap const &on, int orb) |
void | d_gemm (char Atrans, char Btrans, RowMatrixXd const &A, RowMatrixXd const &B, RowMatrixXd &C, double alpha, double beta) |
weird name to avoid dgemm macro defined by MKL in MKL_DIRECT_CALL mode More... | |
void | d_gemm (char Atrans, char Btrans, RowMatrixXd const &A, double const *B, long ncols, RowMatrixXd &C, double alpha, double beta) |
weird name to avoid dgemm macro defined by MKL in MKL_DIRECT_CALL mode More... | |
std::pair< RowMatrixXd, VectorD > | SymmEVD (RowMatrixXd &A) |
RowMatrixXd | llt_solve (RowMatrixXd &A, RowMatrixXd const &B) |
RowMatrixXd | AT_B_C (RowMatrixXd const &A, RowMatrixXd const &B, RowMatrixXd const &C) |
RowMatrixXd | AT_x_B (RowMatrixXd const &A, RowMatrixXd const &B) |
RowMatrixXd | A_x_BT (RowMatrixXd const &A, RowMatrixXd const &B) |
RowMatrixXd | A_x_B (RowMatrixXd const &A, RowMatrixXd const &B) |
RowMatrixXd | A_x_B (RowMatrixXd const &A, TA::Tensor< double > const &B) |
std::pair< RowMatrixXd, Eigen::VectorXd > | semi_canonicalize (RowMatrixXd &F) |
std::pair< RowMatrixXd, Eigen::VectorXd > | general_semi_canonicalize (RowMatrixXd const &F, RowMatrixXd &S, double sc_thresh) |
template<typename Tile , typename Policy > | |
std::pair< SparseMap, SparseMap > | iX_and_ipao (TA::DistArray< Tile, Policy > const &Clmo, TA::DistArray< Tile, Policy > const &Sao, double iX_thresh, double imu_thresh) |
Variables | |
mpqc::detail::ForceLink< CCSD_PNO< TA::TensorD, TA::SparsePolicy > > | fl1 |
Typedef Documentation
◆ Array
template<typename Tile , typename Policy >
using mpqc::lcao::pno::Array = typedef TA::DistArray<Tile, Policy> |
◆ ArrayVec
template<typename Tile , typename Policy >
using mpqc::lcao::pno::ArrayVec = typedef TA::DistArrayVector<Tile, Policy> |
◆ IdxHash
template<int N>
using mpqc::lcao::pno::IdxHash = typedef mpqc::utility::hash |
◆ IdxMap
template<int N, typename T >
using mpqc::lcao::pno::IdxMap = typedef std::unordered_map<std::array<int, N>, T, IdxHash<N> > |
◆ SparseMap
using mpqc::lcao::pno::SparseMap = typedef RowMatrix<int> |
Function Documentation
◆ A_x_B() [1/2]
|
inline |
◆ A_x_B() [2/2]
|
inline |
◆ A_x_BT()
|
inline |
◆ AT_B_C()
|
inline |
◆ AT_x_B()
|
inline |
◆ d_gemm() [1/2]
void mpqc::lcao::pno::d_gemm | ( | char | Atrans, |
char | Btrans, | ||
RowMatrixXd const & | A, | ||
double const * | B, | ||
long | ncols, | ||
RowMatrixXd & | C, | ||
double | alpha, | ||
double | beta | ||
) |
weird name to avoid dgemm macro defined by MKL in MKL_DIRECT_CALL mode
◆ d_gemm() [2/2]
void mpqc::lcao::pno::d_gemm | ( | char | Atrans, |
char | Btrans, | ||
RowMatrixXd const & | A, | ||
RowMatrixXd const & | B, | ||
RowMatrixXd & | C, | ||
double | alpha, | ||
double | beta | ||
) |
weird name to avoid dgemm macro defined by MKL in MKL_DIRECT_CALL mode
◆ EToZir()
template<typename DirectArray , typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::pno::EToZir | ( | DirectArray const & | E, |
TA::DistArray< Tile, Policy > const & | Ci, | ||
SparseMap const & | IX, | ||
SparseMap const & | IR | ||
) |
Screen the construction of (X | i μ) using the maps IX and IR.
◆ general_semi_canonicalize()
|
inline |
◆ iX_and_ipao()
template<typename Tile , typename Policy >
std::pair<SparseMap, SparseMap> mpqc::lcao::pno::iX_and_ipao | ( | TA::DistArray< Tile, Policy > const & | Clmo, |
TA::DistArray< Tile, Policy > const & | Sao, | ||
double | iX_thresh, | ||
double | imu_thresh | ||
) |
◆ llt_solve()
RowMatrixXd mpqc::lcao::pno::llt_solve | ( | RowMatrixXd & | A, |
RowMatrixXd const & | B | ||
) |
Solves AX = B, where A is symm posdef matrix
- Parameters
-
[in,out] A In: matrix whose lower triangle specifies the symmetric input matrix; Out: A is in a valid but not defined state [in] B the right-hand side matrix
- Returns
- X the solution matrix
◆ orbital_domain_matrix()
template<typename Tile , typename Policy >
RowMatrixXd mpqc::lcao::pno::orbital_domain_matrix | ( | TA::DistArray< Tile, Policy > const & | M, |
SparseMap const & | om, | ||
SparseMap const & | on, | ||
std::vector< int > const & | orbs | ||
) |
◆ orbital_domain_row()
template<typename Tile , typename Policy >
RowMatrixXd mpqc::lcao::pno::orbital_domain_row | ( | TA::DistArray< Tile, Policy > const & | M, |
SparseMap const & | on, | ||
int | orb | ||
) |
◆ orbital_domain_three_center()
template<typename Tile , typename Policy >
RowMatrixXd mpqc::lcao::pno::orbital_domain_three_center | ( | TA::DistArray< Tile, Policy > const & | E, |
SparseMap const & | om, | ||
SparseMap const & | on, | ||
int | orb | ||
) |
◆ orbital_pair_domain_G()
template<typename Tile , typename Policy >
RowMatrixXd mpqc::lcao::pno::orbital_pair_domain_G | ( | TA::DistArray< Tile, Policy > const & | G, |
SparseMap const & | ij_ab, | ||
int | i, | ||
int | j, | ||
int | pair_ord | ||
) |
◆ orbital_pair_domain_matrix()
template<typename Tile , typename Policy >
RowMatrixXd mpqc::lcao::pno::orbital_pair_domain_matrix | ( | TA::DistArray< Tile, Policy > const & | M, |
SparseMap const & | ij_mn, | ||
int | pair_ord_m, | ||
int | pair_ord_n | ||
) |
◆ semi_canonicalize()
|
inline |
◆ SymmEVD()
std::pair< RowMatrixXd, VectorD > mpqc::lcao::pno::SymmEVD | ( | RowMatrixXd & | A | ) |
Computes the eigenvectors and eigenvalues of a symmetric matrix
- Parameters
-
[in,out] A In: matrix whose lower triangle specifies the symmetric input matrix; Out: A is in a valid but not defined state
- Returns
- eigenvectors and eigenvalues of the symmetric matric specified by the lower triangle of A
- Note
- If
NDEBUG
is defined, this uses dsyevr, otherwise uses dsyev to avoid floating-point exception issues
◆ Zia()
template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::pno::Zia | ( | gaussian::AOFactory< Tile, Policy > & | aof, |
TA::DistArray< Tile, Policy > const & | Ci, | ||
TA::DistArray< Tile, Policy > const & | P, | ||
SparseMap const & | IX, | ||
SparseMap const & | IA, | ||
SparseMap const & | IJ, | ||
bool | fastE, | ||
bool | fastZir, | ||
bool | fastZia, | ||
double | tcutRS, | ||
double | tcutScreen, | ||
bool | diagonalIJ = false |
||
) |
Function that take LMOs, the PAO projector and a AOFactory and will apply various screening of the three center (X | i a) build.
- Parameters
-
aof is an AO factory Ci the localized occupied orbitals (already truncated by tC) P is the PAO projector IX is a sparse map connecting (I -> X) the occupied orbital blocks with the their important auxiliary basis set blocks IA is the map of orbital specific PAO domains IJ is the important pair map. [in] fastE if true, utilize the maps to reduce the number of computed (X | μ ν) integrals [in] fastZir if true, a priori reduce the number of target (X | i μ) = (X | μ ν) * Ci(ν,i) [in] fastZia governs if we attempt to set the shape on the (X | i a) = (X | i μ) * P(μ,a) [in] tcutRS builds a map RS connecting (μ -> ν) [in] tcutScreen is the screening threshold for the Schwarz Screener in the AO integrals, it is only used if FastE is true [in] diagonalIJ if this is true then we don't form unions for IX and IA, this is useful because in the initial OSV construction we don't actually need unions
- Note
- when none of the fast options are set this will compute just like the AO factory would. This is nice for timing and debugging purposes
◆ ZirToZia()
template<typename Tile , typename Policy >
void mpqc::lcao::pno::ZirToZia | ( | TA::DistArray< Tile, Policy > & | Zir, |
TA::DistArray< Tile, Policy > const & | P, | ||
SparseMap const & | IX, | ||
SparseMap const & | IA | ||
) |
Screen the construction of (X | i a) using the sparse maps IX and IA.
Variable Documentation
◆ fl1
mpqc::detail::ForceLink<CCSD_PNO<TA::TensorD, TA::SparsePolicy> > mpqc::lcao::pno::fl1 |