Classes | |
struct | R1SquaredNormReductionOp |
struct | R2SquaredNormReductionOp |
Functions | |
void | print_ccsd (int iter, double dE, double error, double E1, double time_total) |
void | print_ccsd_direct (int iter, double dE, double error, double E1, double time_u, double time_total) |
void | print_CCSDT (int iter, double dE, double error, double E1, double time) |
void | print_CCSDT_direct (int iter, double dE, double error, double E1, double time1, double time2) |
template<typename... Ts, class Array > | |
auto | direct_u2_u11 (const CCSDT< Ts... > &cc, const Array &t2, const Array &t1) |
void | print_local (TiledArray::World &world, const std::shared_ptr< TiledArray::Pmap > &pmap) |
template<typename Tile , typename Policy > | |
TA::DistArray< Tile, Policy > | jacobi_update_t3_abcijk (const TA::DistArray< Tile, Policy > &r3_abcijk, const EigenVector< typename Tile::numeric_type > &ens_occ, const EigenVector< typename Tile::numeric_type > &ens_uocc) |
template<typename Tile , typename Policy > | |
TA::DistArray< Tile, Policy > | jacobi_update_t2_abij (const TA::DistArray< Tile, Policy > &r2_abij, const EigenVector< typename Tile::numeric_type > &ens_occ, const EigenVector< typename Tile::numeric_type > &ens_uocc) |
template<typename Tile , typename Policy > | |
TA::DistArray< Tile, Policy > | jacobi_update_t1_ai (const TA::DistArray< Tile, Policy > &r1_ai, const EigenVector< typename Tile::numeric_type > &ens_occ, const EigenVector< typename Tile::numeric_type > &ens_uocc) |
template<typename Tile , typename Policy > | |
TA::DistArray< Tile, Policy > | pno_jacobi_update_t2 (const TA::DistArray< Tile, Policy > &r2_abij, const EigenVector< typename Tile::numeric_type > &eps_occ_act, const std::vector< EigenVector< typename Tile::numeric_type >> &eps_pno, const std::vector< RowMatrix< typename Tile::numeric_type >> &pnos, typename Tile::numeric_type shift=0.0) |
template<typename Tile , typename Policy > | |
TA::DistArray< Tile, Policy > | pno_jacobi_update_t1 (const TA::DistArray< Tile, Policy > &r1_ai, const EigenVector< typename Tile::numeric_type > &eps_occ_act, const std::vector< EigenVector< typename Tile::numeric_type >> &eps_osv, const std::vector< RowMatrix< typename Tile::numeric_type >> &osvs, typename Tile::numeric_type shift=0.0) |
template<typename Tile , typename Policy > | |
TA::DistArray< Tile, Policy > | pno_transform_abij (const TA::DistArray< Tile, Policy > &abij, const std::vector< RowMatrix< typename Tile::numeric_type >> &pnos) |
template<typename Tile , typename Policy > | |
TA::DistArray< Tile, Policy > | osv_transform_ai (const TA::DistArray< Tile, Policy > &ai, const std::vector< RowMatrix< typename Tile::numeric_type >> &osvs) |
template<typename Tile , typename Policy > | |
TA::DistArray< Tile, Policy > | t2_project_pno (const TA::DistArray< Tile, Policy > &t2, std::vector< RowMatrix< typename Tile::numeric_type >> &pnos) |
template<typename Tile , typename Policy > | |
TA::DistArray< Tile, Policy > | reblock_t2 (const TA::DistArray< Tile, Policy > &t2, const TA::DistArray< Tile, Policy > &i_block, const TA::DistArray< Tile, Policy > &a_block) |
template<typename Tile , typename Policy > | |
TA::DistArray< Tile, Policy > | unblock_t2 (const TA::DistArray< Tile, Policy > &t2, const TA::DistArray< Tile, Policy > &i_block, const TA::DistArray< Tile, Policy > &a_block) |
template<typename Tile , typename Policy > | |
TA::DistArray< Tile, Policy > | reblock_t1 (const TA::DistArray< Tile, Policy > &t1, const TA::DistArray< Tile, Policy > &i_block, const TA::DistArray< Tile, Policy > &a_block) |
template<typename Tile , typename Policy > | |
TA::DistArray< Tile, Policy > | unblock_t1 (const TA::DistArray< Tile, Policy > &t1, const TA::DistArray< Tile, Policy > &i_block, const TA::DistArray< Tile, Policy > &a_block) |
template<typename Tile , typename Policy > | |
double | compute_mp2 (const TA::DistArray< Tile, Policy > &K, const TA::DistArray< Tile, Policy > &t2) |
template<typename Tile , typename Policy > | |
TA::DistArray< Tile, Policy > | form_T_from_K (const TA::DistArray< Tile, Policy > &K, const RowMatrix< typename Tile::numeric_type > &F_occ_act, const RowMatrix< typename Tile::numeric_type > &F_uocc, std::vector< RowMatrix< typename Tile::numeric_type >> &pnos, int nocc_act) |
template<typename Tile , typename Policy > | |
TA::DistArray< Tile, Policy > | construct_density (const TA::DistArray< Tile, Policy > &t2) |
template<typename Tile , typename Policy > | |
void | construct_pno (const TA::DistArray< Tile, Policy > &D, const RowMatrix< typename Tile::numeric_type > &F_uocc, double tpno, double tosv, std::vector< RowMatrix< typename Tile::numeric_type >> &pnos, std::vector< int > &npnos, std::vector< int > &old_npnos, std::vector< EigenVector< typename Tile::numeric_type >> &F_pno_diag, std::vector< RowMatrix< typename Tile::numeric_type >> &osvs, std::vector< int > &nosvs, std::vector< int > &old_nosvs, std::vector< EigenVector< typename Tile::numeric_type >> &F_osv_diag, std::vector< EigenVector< typename Tile::numeric_type >> &pno_eigvals, bool pno_canonical=false, PNORankUpdateMethod update_pno_rank=PNORankUpdateMethod::standard) |
Function Documentation
◆ compute_mp2()
template<typename Tile , typename Policy >
double mpqc::lcao::cc::detail::compute_mp2 | ( | const TA::DistArray< Tile, Policy > & | K, |
const TA::DistArray< Tile, Policy > & | t2 | ||
) |
- Parameters
-
[in] K T2-like array wth dimension "a,b,i,j" [in] t2 T2-like array with dimension "a,b,i,j"
- Returns
◆ construct_density()
template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::cc::detail::construct_density | ( | const TA::DistArray< Tile, Policy > & | t2 | ) |
Step (2): Transform T to D
◆ construct_pno()
template<typename Tile , typename Policy >
void mpqc::lcao::cc::detail::construct_pno | ( | const TA::DistArray< Tile, Policy > & | D, |
const RowMatrix< typename Tile::numeric_type > & | F_uocc, | ||
double | tpno, | ||
double | tosv, | ||
std::vector< RowMatrix< typename Tile::numeric_type >> & | pnos, | ||
std::vector< int > & | npnos, | ||
std::vector< int > & | old_npnos, | ||
std::vector< EigenVector< typename Tile::numeric_type >> & | F_pno_diag, | ||
std::vector< RowMatrix< typename Tile::numeric_type >> & | osvs, | ||
std::vector< int > & | nosvs, | ||
std::vector< int > & | old_nosvs, | ||
std::vector< EigenVector< typename Tile::numeric_type >> & | F_osv_diag, | ||
std::vector< EigenVector< typename Tile::numeric_type >> & | pno_eigvals, | ||
bool | pno_canonical = false , |
||
PNORankUpdateMethod | update_pno_rank = PNORankUpdateMethod::standard |
||
) |
- Template Parameters
-
Tile Policy
- Parameters
-
D pair density F_uocc unocc-unocc portion of the Fock matrix tpno PNO truncation threshold tosv OSV truncation threshold pnos vector of PNO matrices npnos vector of nPNO values F_pno_diag vector of Vectors, where each Vector contains the diagonal elements of the PNO-transformed Fock matrix osvs vector of OSV matrices nosvs vector of nOSV values F_osv_diag vector of Vectors, where each Vector contains the diagonal elements of the OSV-transformed Fock matrix pno_canonical whether or not to canonicalize the PNOs
◆ direct_u2_u11()
template<typename... Ts, class Array >
auto mpqc::lcao::cc::detail::direct_u2_u11 | ( | const CCSDT< Ts... > & | cc, |
const Array & | t2, | ||
const Array & | t1 | ||
) |
AO integral-direct computation of (ab|cd) ints contributions to the doubles residual computes
- Parameters
-
t2 doubles amplitudes in MO basis t1 singles amplitudes in MO basis
- Returns
- U tensor
◆ form_T_from_K()
template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::cc::detail::form_T_from_K | ( | const TA::DistArray< Tile, Policy > & | K, |
const RowMatrix< typename Tile::numeric_type > & | F_occ_act, | ||
const RowMatrix< typename Tile::numeric_type > & | F_uocc, | ||
std::vector< RowMatrix< typename Tile::numeric_type >> & | pnos, | ||
int | nocc_act | ||
) |
- Template Parameters
-
Tile Policy
- Parameters
-
[in] K T2-like array with dimension "a,b,i,j" [in] F_occ_act active occ-active occ block of the Fock matrix [in] F_uocc unocc-unocc block of the Fock matrix [in] pnos vector of PNO matrices [in] nocc_act integer specifying the number of active occupied orbitals
- Returns
◆ jacobi_update_t1_ai()
template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::cc::detail::jacobi_update_t1_ai | ( | const TA::DistArray< Tile, Policy > & | r1_ai, |
const EigenVector< typename Tile::numeric_type > & | ens_occ, | ||
const EigenVector< typename Tile::numeric_type > & | ens_uocc | ||
) |
- Template Parameters
-
Tile Policy
- Parameters
-
[in] r1_ai T1-like array with dimension "a,i" [in] ens_occ 1-dimensional array consisting of the occ-occ diagonal elements of the Fock matrix or the occupied orbital epsilon values [in] ens_uocc 1-dimensional array consisting of the unocc-unocc diagonal elements of the Fock matrix or the unoccupied orbital epsilong values
- Returns
◆ jacobi_update_t2_abij()
template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::cc::detail::jacobi_update_t2_abij | ( | const TA::DistArray< Tile, Policy > & | r2_abij, |
const EigenVector< typename Tile::numeric_type > & | ens_occ, | ||
const EigenVector< typename Tile::numeric_type > & | ens_uocc | ||
) |
◆ jacobi_update_t3_abcijk()
template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::cc::detail::jacobi_update_t3_abcijk | ( | const TA::DistArray< Tile, Policy > & | r3_abcijk, |
const EigenVector< typename Tile::numeric_type > & | ens_occ, | ||
const EigenVector< typename Tile::numeric_type > & | ens_uocc | ||
) |
◆ osv_transform_ai()
template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::cc::detail::osv_transform_ai | ( | const TA::DistArray< Tile, Policy > & | ai, |
const std::vector< RowMatrix< typename Tile::numeric_type >> & | osvs | ||
) |
- Parameters
-
[in] ai T1 like Array with dimension "a,i", it should blocked by V in a,b and 1 in i,j [in] osvs vector of OSVs, only local i will be initialized
- Returns
◆ pno_jacobi_update_t1()
template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::cc::detail::pno_jacobi_update_t1 | ( | const TA::DistArray< Tile, Policy > & | r1_ai, |
const EigenVector< typename Tile::numeric_type > & | eps_occ_act, | ||
const std::vector< EigenVector< typename Tile::numeric_type >> & | eps_osv, | ||
const std::vector< RowMatrix< typename Tile::numeric_type >> & | osvs, | ||
typename Tile::numeric_type | shift = 0.0 |
||
) |
- Parameters
-
[in] r1_ai T1 like Array with dimension "a,i", it should blocked by V in a,b and 1 in i,j [in] eps_occ_act the diagonal of active occupied Fock matrix in canonical basis [in] eps_osv vector of the diagonal of Fock matrix in OSV basis, only local i,j will be initialized [in] osvs vector of OSVs, only local i will be initialized [in] shift value of the shift in the denominator (i.e. the demonimator is F
[i]-F[a]+shift
- Returns
◆ pno_jacobi_update_t2()
template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::cc::detail::pno_jacobi_update_t2 | ( | const TA::DistArray< Tile, Policy > & | r2_abij, |
const EigenVector< typename Tile::numeric_type > & | eps_occ_act, | ||
const std::vector< EigenVector< typename Tile::numeric_type >> & | eps_pno, | ||
const std::vector< RowMatrix< typename Tile::numeric_type >> & | pnos, | ||
typename Tile::numeric_type | shift = 0.0 |
||
) |
- Parameters
-
[in] r2_abij T2 like Array with dimension "a,b,i,j", it should blocked by V in a,b and 1 in i,j [in] eps_occ_act the diagonal of active occupied Fock matrix in canonical basis [in] eps_pno vector of diagonal Fock matrix in PNO basis, only local i,j will be initialized [in] pnos vector of PNOs, only local i,j will be initialized [in] shift value of the shift in the denominator (i.e. the demonimator is F
[i]+F[j]-F[a]-F[b]+shift
- Returns
◆ pno_transform_abij()
template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::cc::detail::pno_transform_abij | ( | const TA::DistArray< Tile, Policy > & | abij, |
const std::vector< RowMatrix< typename Tile::numeric_type >> & | pnos | ||
) |
- Parameters
-
[in] abij T2 like Array with dimension "a,b,i,j", it should blocked by V in a,b and 1 in i,j [in] pnos vector of PNOs, only local i,j will be initialized
- Returns
◆ print_ccsd()
|
inline |
◆ print_ccsd_direct()
|
inline |
◆ print_CCSDT()
|
inline |
◆ print_CCSDT_direct()
|
inline |
◆ print_local()
|
inline |
◆ reblock_t1()
template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::cc::detail::reblock_t1 | ( | const TA::DistArray< Tile, Policy > & | t1, |
const TA::DistArray< Tile, Policy > & | i_block, | ||
const TA::DistArray< Tile, Policy > & | a_block | ||
) |
- Parameters
-
[in] t1 T1-like array with dimension "a,i" [in] i_block array with dimension "i,j" that reblocks occupied dimension i to j [in] a_block array with dimension "a,b" that reblocks unoccupied dimension a to b
- Returns
◆ reblock_t2()
template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::cc::detail::reblock_t2 | ( | const TA::DistArray< Tile, Policy > & | t2, |
const TA::DistArray< Tile, Policy > & | i_block, | ||
const TA::DistArray< Tile, Policy > & | a_block | ||
) |
- Parameters
-
[in] t2 T2 like array with dimension "a,b,i,j" [in] i_block array with dimension "i,j" that reblocks occupied dimension i to j [in] a_block array with dimension "a,b" that reblocks unoccupied dimension a to b
- Returns
◆ t2_project_pno()
template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::cc::detail::t2_project_pno | ( | const TA::DistArray< Tile, Policy > & | t2, |
std::vector< RowMatrix< typename Tile::numeric_type >> & | pnos | ||
) |
- Template Parameters
-
Tile Policy
- Parameters
-
[in] t2 T2-like array with dimensions "a,b,i,j" [in] pnos Vector of PNO matrices
- Returns
◆ unblock_t1()
template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::cc::detail::unblock_t1 | ( | const TA::DistArray< Tile, Policy > & | t1, |
const TA::DistArray< Tile, Policy > & | i_block, | ||
const TA::DistArray< Tile, Policy > & | a_block | ||
) |
- Parameters
-
[in] t1 T1-like array with dimension "a,i" [in] i_block array with dimension "i,j" that reblocks occupied dimension j to i [in] a_block array with dimension "a,b" that reblocks unoccupied dimension b to a
- Returns
◆ unblock_t2()
template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::cc::detail::unblock_t2 | ( | const TA::DistArray< Tile, Policy > & | t2, |
const TA::DistArray< Tile, Policy > & | i_block, | ||
const TA::DistArray< Tile, Policy > & | a_block | ||
) |
- Parameters
-
[in] t2 T2-like array with dimension "a,b,i,j" [in] i_block array with dimension "i,j" that reblocks occupied dimension j to i [in] a_block array with dimension "a,b" that reblocks unoccupied dimension b to a
- Returns