Psi4
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
psi::psimrcc::MRCCSD_T Class Reference

#include <mrccsd_t.h>

Public Member Functions

 MRCCSD_T (Options &options, Hamiltonian *h_eff_)
 
 ~MRCCSD_T ()
 

Private Types

enum  TriplesAlgorithm { UnrestrictedTriples, RestrictedTriples, SpinAdaptedTriples }
 

Private Member Functions

void startup ()
 
void cleanup ()
 
void compute ()
 
void compute_ooo_triples ()
 
void compute_OOO_triples ()
 
void compute_ooO_triples ()
 
void compute_oOO_triples ()
 
void compute_restricted ()
 
void compute_ooo_triples_restricted ()
 
void compute_ooO_triples_restricted ()
 
void compute_oOO_triples_restricted ()
 
void compute_OOO_triples_restricted ()
 
void compute_spin_adapted ()
 
void compute_ooo_triples_spin_adapted ()
 
void compute_ooO_triples_spin_adapted ()
 
void compute_oOO_triples_spin_adapted ()
 
void compute_OOO_triples_spin_adapted ()
 
void compute_ooo_contribution_to_Heff (int i, int j, int k, int mu, BlockMatrix *T3)
 
void compute_ooO_contribution_to_Heff (int i, int j, int k, int mu, BlockMatrix *T3)
 
void compute_oOO_contribution_to_Heff (int i, int j, int k, int mu, BlockMatrix *T3)
 
void compute_OOO_contribution_to_Heff (int i, int j, int k, int mu, BlockMatrix *T3)
 
double compute_A_ooo_contribution_to_Heff (int u_abs, int x_abs, int i_abs, int j_abs, int k_abs, int mu, BlockMatrix *T3)
 
double compute_A_ooO_contribution_to_Heff (int u_abs, int x_abs, int i_abs, int j_abs, int k_abs, int mu, BlockMatrix *T3)
 
double compute_A_oOO_contribution_to_Heff (int u_abs, int x_abs, int i_abs, int j_abs, int k_abs, int mu, BlockMatrix *T3)
 
double compute_B_ooO_contribution_to_Heff (int U_abs, int X_abs, int i_abs, int j_abs, int k_abs, int mu, BlockMatrix *T3)
 
double compute_B_oOO_contribution_to_Heff (int U_abs, int X_abs, int i_abs, int j_abs, int k_abs, int mu, BlockMatrix *T3)
 
double compute_B_OOO_contribution_to_Heff (int U_abs, int X_abs, int i_abs, int j_abs, int k_abs, int mu, BlockMatrix *T3)
 
double compute_AB_ooO_contribution_to_Heff (int u_abs, int V_abs, int x_abs, int Y_abs, int i_abs, int j_abs, int k_abs, int mu, BlockMatrix *T3)
 
double compute_AB_oOO_contribution_to_Heff (int u_abs, int V_abs, int x_abs, int Y_abs, int i_abs, int j_abs, int k_abs, int mu, BlockMatrix *T3)
 
void compute_ooo_contribution_to_Heff_restricted (int i, int j, int k, int mu, BlockMatrix *T3)
 
void compute_ooO_contribution_to_Heff_restricted (int i, int j, int k, int mu, BlockMatrix *T3)
 
void compute_oOO_contribution_to_Heff_restricted (int i, int j, int k, int mu, BlockMatrix *T3)
 
void compute_OOO_contribution_to_Heff_restricted (int i, int j, int k, int mu, BlockMatrix *T3)
 
double compute_A_ooo_contribution_to_Heff_restricted (int u_abs, int x_abs, int i_abs, int j_abs, int k_abs, int mu, BlockMatrix *T3)
 
double compute_A_ooO_contribution_to_Heff_restricted (int u_abs, int x_abs, int i_abs, int j_abs, int k_abs, int mu, BlockMatrix *T3)
 
double compute_A_oOO_contribution_to_Heff_restricted (int u_abs, int x_abs, int i_abs, int j_abs, int k_abs, int mu, BlockMatrix *T3)
 
double compute_B_ooO_contribution_to_Heff_restricted (int U_abs, int X_abs, int i_abs, int j_abs, int k_abs, int mu, BlockMatrix *T3)
 
double compute_B_oOO_contribution_to_Heff_restricted (int U_abs, int X_abs, int i_abs, int j_abs, int k_abs, int mu, BlockMatrix *T3)
 
double compute_B_OOO_contribution_to_Heff_restricted (int U_abs, int X_abs, int i_abs, int j_abs, int k_abs, int mu, BlockMatrix *T3)
 
double compute_AB_ooO_contribution_to_Heff_restricted (int u_abs, int V_abs, int x_abs, int Y_abs, int i_abs, int j_abs, int k_abs, int mu, BlockMatrix *T3)
 
double compute_AB_oOO_contribution_to_Heff_restricted (int u_abs, int V_abs, int x_abs, int Y_abs, int i_abs, int j_abs, int k_abs, int mu, BlockMatrix *T3)
 
void form_T2_ij_a_b (IndexMatrix *T2_ij_a_b, bool spin1, bool spin2, bool transpose)
 
void form_T2_i_ab_j (IndexMatrix *T2_i_ab_j, bool spin1, bool spin2, bool transpose)
 
void form_V_k_bc_e (IndexMatrix *V_k_bc_e, double direct, double exchange)
 
void form_V_jk_c_m (IndexMatrix *V_jk_c_m, double direct, double exchange)
 
void build_W_intermediates ()
 
void check_intruders ()
 

Private Attributes

Optionsoptions_
 
int nirreps
 
int nrefs
 
double threshold
 
TriplesAlgorithm triples_algorithm
 
Hamiltonianh_eff
 
std::vector< std::vector< bool > > is_aocc
 
std::vector< std::vector< bool > > is_bocc
 
std::vector< std::vector< bool > > is_avir
 
std::vector< std::vector< bool > > is_bvir
 
std::vector< std::vector
< double > > 
e_oo
 
std::vector< std::vector
< double > > 
e_OO
 
std::vector< std::vector
< double > > 
e_vv
 
std::vector< std::vector
< double > > 
e_VV
 
std::vector< std::vector
< double > > 
Mk_factor
 
std::vector< double > Mk_shift
 
std::vector< double *** > F_ov
 
std::vector< double *** > F_OV
 
std::vector< double *** > F2_ov
 
std::vector< double *** > F2_OV
 
std::vector< double *** > T1_ov
 
std::vector< double *** > T1_OV
 
std::vector< double *** > W_ooov
 
std::vector< double *** > W_oOoV
 
std::vector< double *** > W_OoOv
 
std::vector< double *** > W_OOOV
 
std::vector< double *** > W_vovv
 
std::vector< double *** > W_vOvV
 
std::vector< double *** > W_VoVv
 
std::vector< double *** > W_VOVV
 
double *** V_oovv
 
double *** V_oOvV
 
std::vector< double *** > T2_oovv
 
std::vector< double *** > T2_oOvV
 
std::vector< double *** > T2_OOVV
 
CCIndexo
 
CCIndexoo
 
CCIndexv
 
CCIndexvv
 
CCIndexvvv
 
CCIndexvo
 
CCIndexov
 
CCIndexovv
 
CCIndexooo
 
BlockMatrix *** Z
 
BlockMatrix *** W
 
BlockMatrix *** W_ijk
 
BlockMatrix *** W_ikj
 
BlockMatrix *** W_jki
 
BlockMatrix *** T
 
IndexMatrixT2_ij_a_b
 
IndexMatrixT2_iJ_a_B
 
IndexMatrixT2_iJ_B_a
 
IndexMatrixT2_IJ_A_B
 
IndexMatrixT2_i_ab_j
 
IndexMatrixT2_i_aB_J
 
IndexMatrixT2_J_aB_i
 
IndexMatrixT2_I_AB_J
 
IndexMatrixV_k_bc_e
 
IndexMatrixV_K_bC_e
 
IndexMatrixV_k_bC_E
 
IndexMatrixV_jk_c_m
 
IndexMatrixV_jK_c_M
 
IndexMatrixV_jK_C_m
 
std::vector< double > e4T
 
std::vector< double > e4ST
 
std::vector< double > e4DT
 
double E4
 
double E4T
 
double E4ST
 
double E4DT
 
std::vector< double > E4T_ooo
 
std::vector< double > E4T_ooO
 
std::vector< double > E4T_oOO
 
std::vector< double > E4T_OOO
 
std::vector< double > E4ST_ooo
 
std::vector< double > E4ST_ooO
 
std::vector< double > E4ST_oOO
 
std::vector< double > E4ST_OOO
 
std::vector< double > E4DT_ooo
 
std::vector< double > E4DT_ooO
 
std::vector< double > E4DT_oOO
 
std::vector< double > E4DT_OOO
 
std::vector< double > E4_ooo
 
std::vector< double > E4_ooO
 
std::vector< double > E4_oOO
 
std::vector< double > E4_OOO
 
std::vector< std::vector
< double > > 
d_h_eff
 

Member Enumeration Documentation

Enumerator
UnrestrictedTriples 
RestrictedTriples 
SpinAdaptedTriples 

Constructor & Destructor Documentation

psi::psimrcc::MRCCSD_T::MRCCSD_T ( Options options,
Hamiltonian h_eff_ 
)
psi::psimrcc::MRCCSD_T::~MRCCSD_T ( )

Member Function Documentation

void psi::psimrcc::MRCCSD_T::build_W_intermediates ( )
private
void psi::psimrcc::MRCCSD_T::check_intruders ( )
private
void psi::psimrcc::MRCCSD_T::cleanup ( void  )
private
void psi::psimrcc::MRCCSD_T::compute ( )
private
double psi::psimrcc::MRCCSD_T::compute_A_ooo_contribution_to_Heff ( int  u_abs,
int  x_abs,
int  i_abs,
int  j_abs,
int  k_abs,
int  mu,
BlockMatrix T3 
)
private
double psi::psimrcc::MRCCSD_T::compute_A_ooO_contribution_to_Heff ( int  u_abs,
int  x_abs,
int  i_abs,
int  j_abs,
int  k_abs,
int  mu,
BlockMatrix T3 
)
private
double psi::psimrcc::MRCCSD_T::compute_A_oOO_contribution_to_Heff ( int  u_abs,
int  x_abs,
int  i_abs,
int  j_abs,
int  k_abs,
int  mu,
BlockMatrix T3 
)
private
double psi::psimrcc::MRCCSD_T::compute_A_ooo_contribution_to_Heff_restricted ( int  u_abs,
int  x_abs,
int  i_abs,
int  j_abs,
int  k_abs,
int  mu,
BlockMatrix T3 
)
private
double psi::psimrcc::MRCCSD_T::compute_A_ooO_contribution_to_Heff_restricted ( int  u_abs,
int  x_abs,
int  i_abs,
int  j_abs,
int  k_abs,
int  mu,
BlockMatrix T3 
)
private
double psi::psimrcc::MRCCSD_T::compute_A_oOO_contribution_to_Heff_restricted ( int  u_abs,
int  x_abs,
int  i_abs,
int  j_abs,
int  k_abs,
int  mu,
BlockMatrix T3 
)
private
double psi::psimrcc::MRCCSD_T::compute_AB_ooO_contribution_to_Heff ( int  u_abs,
int  V_abs,
int  x_abs,
int  Y_abs,
int  i_abs,
int  j_abs,
int  k_abs,
int  mu,
BlockMatrix T3 
)
private
double psi::psimrcc::MRCCSD_T::compute_AB_oOO_contribution_to_Heff ( int  u_abs,
int  V_abs,
int  x_abs,
int  Y_abs,
int  i_abs,
int  j_abs,
int  k_abs,
int  mu,
BlockMatrix T3 
)
private
double psi::psimrcc::MRCCSD_T::compute_AB_ooO_contribution_to_Heff_restricted ( int  u_abs,
int  V_abs,
int  x_abs,
int  Y_abs,
int  i_abs,
int  j_abs,
int  k_abs,
int  mu,
BlockMatrix T3 
)
private
double psi::psimrcc::MRCCSD_T::compute_AB_oOO_contribution_to_Heff_restricted ( int  u_abs,
int  V_abs,
int  x_abs,
int  Y_abs,
int  i_abs,
int  j_abs,
int  k_abs,
int  mu,
BlockMatrix T3 
)
private
double psi::psimrcc::MRCCSD_T::compute_B_ooO_contribution_to_Heff ( int  U_abs,
int  X_abs,
int  i_abs,
int  j_abs,
int  k_abs,
int  mu,
BlockMatrix T3 
)
private
double psi::psimrcc::MRCCSD_T::compute_B_oOO_contribution_to_Heff ( int  U_abs,
int  X_abs,
int  i_abs,
int  j_abs,
int  k_abs,
int  mu,
BlockMatrix T3 
)
private
double psi::psimrcc::MRCCSD_T::compute_B_OOO_contribution_to_Heff ( int  U_abs,
int  X_abs,
int  i_abs,
int  j_abs,
int  k_abs,
int  mu,
BlockMatrix T3 
)
private
double psi::psimrcc::MRCCSD_T::compute_B_ooO_contribution_to_Heff_restricted ( int  U_abs,
int  X_abs,
int  i_abs,
int  j_abs,
int  k_abs,
int  mu,
BlockMatrix T3 
)
private
double psi::psimrcc::MRCCSD_T::compute_B_oOO_contribution_to_Heff_restricted ( int  U_abs,
int  X_abs,
int  i_abs,
int  j_abs,
int  k_abs,
int  mu,
BlockMatrix T3 
)
private
double psi::psimrcc::MRCCSD_T::compute_B_OOO_contribution_to_Heff_restricted ( int  U_abs,
int  X_abs,
int  i_abs,
int  j_abs,
int  k_abs,
int  mu,
BlockMatrix T3 
)
private
void psi::psimrcc::MRCCSD_T::compute_ooo_contribution_to_Heff ( int  i,
int  j,
int  k,
int  mu,
BlockMatrix T3 
)
private
void psi::psimrcc::MRCCSD_T::compute_ooO_contribution_to_Heff ( int  i,
int  j,
int  k,
int  mu,
BlockMatrix T3 
)
private
void psi::psimrcc::MRCCSD_T::compute_oOO_contribution_to_Heff ( int  i,
int  j,
int  k,
int  mu,
BlockMatrix T3 
)
private
void psi::psimrcc::MRCCSD_T::compute_OOO_contribution_to_Heff ( int  i,
int  j,
int  k,
int  mu,
BlockMatrix T3 
)
private
void psi::psimrcc::MRCCSD_T::compute_ooo_contribution_to_Heff_restricted ( int  i,
int  j,
int  k,
int  mu,
BlockMatrix T3 
)
private
void psi::psimrcc::MRCCSD_T::compute_ooO_contribution_to_Heff_restricted ( int  i,
int  j,
int  k,
int  mu,
BlockMatrix T3 
)
private
void psi::psimrcc::MRCCSD_T::compute_oOO_contribution_to_Heff_restricted ( int  i,
int  j,
int  k,
int  mu,
BlockMatrix T3 
)
private
void psi::psimrcc::MRCCSD_T::compute_OOO_contribution_to_Heff_restricted ( int  i,
int  j,
int  k,
int  mu,
BlockMatrix T3 
)
private
void psi::psimrcc::MRCCSD_T::compute_ooo_triples ( )
private
void psi::psimrcc::MRCCSD_T::compute_OOO_triples ( )
private
void psi::psimrcc::MRCCSD_T::compute_ooO_triples ( )
private
void psi::psimrcc::MRCCSD_T::compute_oOO_triples ( )
private
void psi::psimrcc::MRCCSD_T::compute_ooo_triples_restricted ( )
private
void psi::psimrcc::MRCCSD_T::compute_ooO_triples_restricted ( )
private
void psi::psimrcc::MRCCSD_T::compute_oOO_triples_restricted ( )
private
void psi::psimrcc::MRCCSD_T::compute_OOO_triples_restricted ( )
private
void psi::psimrcc::MRCCSD_T::compute_ooo_triples_spin_adapted ( )
private
void psi::psimrcc::MRCCSD_T::compute_ooO_triples_spin_adapted ( )
private
void psi::psimrcc::MRCCSD_T::compute_oOO_triples_spin_adapted ( )
private
void psi::psimrcc::MRCCSD_T::compute_OOO_triples_spin_adapted ( )
private
void psi::psimrcc::MRCCSD_T::compute_restricted ( )
private
void psi::psimrcc::MRCCSD_T::compute_spin_adapted ( )
private
void psi::psimrcc::MRCCSD_T::form_T2_i_ab_j ( IndexMatrix T2_i_ab_j,
bool  spin1,
bool  spin2,
bool  transpose 
)
private
void psi::psimrcc::MRCCSD_T::form_T2_ij_a_b ( IndexMatrix T2_ij_a_b,
bool  spin1,
bool  spin2,
bool  transpose 
)
private
void psi::psimrcc::MRCCSD_T::form_V_jk_c_m ( IndexMatrix V_jk_c_m,
double  direct,
double  exchange 
)
private
void psi::psimrcc::MRCCSD_T::form_V_k_bc_e ( IndexMatrix V_k_bc_e,
double  direct,
double  exchange 
)
private
void psi::psimrcc::MRCCSD_T::startup ( )
private

Member Data Documentation

std::vector<std::vector<double> > psi::psimrcc::MRCCSD_T::d_h_eff
private
double psi::psimrcc::MRCCSD_T::E4
private
std::vector<double> psi::psimrcc::MRCCSD_T::E4_ooo
private
std::vector<double> psi::psimrcc::MRCCSD_T::E4_ooO
private
std::vector<double> psi::psimrcc::MRCCSD_T::E4_oOO
private
std::vector<double> psi::psimrcc::MRCCSD_T::E4_OOO
private
std::vector<double> psi::psimrcc::MRCCSD_T::e4DT
private
double psi::psimrcc::MRCCSD_T::E4DT
private
std::vector<double> psi::psimrcc::MRCCSD_T::E4DT_ooo
private
std::vector<double> psi::psimrcc::MRCCSD_T::E4DT_ooO
private
std::vector<double> psi::psimrcc::MRCCSD_T::E4DT_oOO
private
std::vector<double> psi::psimrcc::MRCCSD_T::E4DT_OOO
private
std::vector<double> psi::psimrcc::MRCCSD_T::e4ST
private
double psi::psimrcc::MRCCSD_T::E4ST
private
std::vector<double> psi::psimrcc::MRCCSD_T::E4ST_ooo
private
std::vector<double> psi::psimrcc::MRCCSD_T::E4ST_ooO
private
std::vector<double> psi::psimrcc::MRCCSD_T::E4ST_oOO
private
std::vector<double> psi::psimrcc::MRCCSD_T::E4ST_OOO
private
std::vector<double> psi::psimrcc::MRCCSD_T::e4T
private
double psi::psimrcc::MRCCSD_T::E4T
private
std::vector<double> psi::psimrcc::MRCCSD_T::E4T_ooo
private
std::vector<double> psi::psimrcc::MRCCSD_T::E4T_ooO
private
std::vector<double> psi::psimrcc::MRCCSD_T::E4T_oOO
private
std::vector<double> psi::psimrcc::MRCCSD_T::E4T_OOO
private
std::vector<std::vector<double> > psi::psimrcc::MRCCSD_T::e_oo
private
std::vector<std::vector<double> > psi::psimrcc::MRCCSD_T::e_OO
private
std::vector<std::vector<double> > psi::psimrcc::MRCCSD_T::e_vv
private
std::vector<std::vector<double> > psi::psimrcc::MRCCSD_T::e_VV
private
std::vector<double***> psi::psimrcc::MRCCSD_T::F2_ov
private
std::vector<double***> psi::psimrcc::MRCCSD_T::F2_OV
private
std::vector<double***> psi::psimrcc::MRCCSD_T::F_ov
private
std::vector<double***> psi::psimrcc::MRCCSD_T::F_OV
private
Hamiltonian* psi::psimrcc::MRCCSD_T::h_eff
private
std::vector<std::vector<bool> > psi::psimrcc::MRCCSD_T::is_aocc
private
std::vector<std::vector<bool> > psi::psimrcc::MRCCSD_T::is_avir
private
std::vector<std::vector<bool> > psi::psimrcc::MRCCSD_T::is_bocc
private
std::vector<std::vector<bool> > psi::psimrcc::MRCCSD_T::is_bvir
private
std::vector<std::vector<double> > psi::psimrcc::MRCCSD_T::Mk_factor
private
std::vector<double> psi::psimrcc::MRCCSD_T::Mk_shift
private
int psi::psimrcc::MRCCSD_T::nirreps
private
int psi::psimrcc::MRCCSD_T::nrefs
private
CCIndex* psi::psimrcc::MRCCSD_T::o
private
CCIndex* psi::psimrcc::MRCCSD_T::oo
private
CCIndex* psi::psimrcc::MRCCSD_T::ooo
private
Options& psi::psimrcc::MRCCSD_T::options_
private
CCIndex* psi::psimrcc::MRCCSD_T::ov
private
CCIndex* psi::psimrcc::MRCCSD_T::ovv
private
BlockMatrix*** psi::psimrcc::MRCCSD_T::T
private
std::vector<double***> psi::psimrcc::MRCCSD_T::T1_ov
private
std::vector<double***> psi::psimrcc::MRCCSD_T::T1_OV
private
IndexMatrix* psi::psimrcc::MRCCSD_T::T2_i_ab_j
private
IndexMatrix* psi::psimrcc::MRCCSD_T::T2_i_aB_J
private
IndexMatrix* psi::psimrcc::MRCCSD_T::T2_I_AB_J
private
IndexMatrix* psi::psimrcc::MRCCSD_T::T2_ij_a_b
private
IndexMatrix* psi::psimrcc::MRCCSD_T::T2_iJ_a_B
private
IndexMatrix* psi::psimrcc::MRCCSD_T::T2_IJ_A_B
private
IndexMatrix* psi::psimrcc::MRCCSD_T::T2_iJ_B_a
private
IndexMatrix* psi::psimrcc::MRCCSD_T::T2_J_aB_i
private
std::vector<double***> psi::psimrcc::MRCCSD_T::T2_oovv
private
std::vector<double***> psi::psimrcc::MRCCSD_T::T2_oOvV
private
std::vector<double***> psi::psimrcc::MRCCSD_T::T2_OOVV
private
double psi::psimrcc::MRCCSD_T::threshold
private
TriplesAlgorithm psi::psimrcc::MRCCSD_T::triples_algorithm
private
CCIndex* psi::psimrcc::MRCCSD_T::v
private
IndexMatrix* psi::psimrcc::MRCCSD_T::V_jk_c_m
private
IndexMatrix* psi::psimrcc::MRCCSD_T::V_jK_c_M
private
IndexMatrix* psi::psimrcc::MRCCSD_T::V_jK_C_m
private
IndexMatrix* psi::psimrcc::MRCCSD_T::V_k_bc_e
private
IndexMatrix* psi::psimrcc::MRCCSD_T::V_K_bC_e
private
IndexMatrix* psi::psimrcc::MRCCSD_T::V_k_bC_E
private
double*** psi::psimrcc::MRCCSD_T::V_oovv
private
double*** psi::psimrcc::MRCCSD_T::V_oOvV
private
CCIndex* psi::psimrcc::MRCCSD_T::vo
private
CCIndex* psi::psimrcc::MRCCSD_T::vv
private
CCIndex* psi::psimrcc::MRCCSD_T::vvv
private
BlockMatrix*** psi::psimrcc::MRCCSD_T::W
private
BlockMatrix*** psi::psimrcc::MRCCSD_T::W_ijk
private
BlockMatrix*** psi::psimrcc::MRCCSD_T::W_ikj
private
BlockMatrix*** psi::psimrcc::MRCCSD_T::W_jki
private
std::vector<double***> psi::psimrcc::MRCCSD_T::W_ooov
private
std::vector<double***> psi::psimrcc::MRCCSD_T::W_oOoV
private
std::vector<double***> psi::psimrcc::MRCCSD_T::W_OoOv
private
std::vector<double***> psi::psimrcc::MRCCSD_T::W_OOOV
private
std::vector<double***> psi::psimrcc::MRCCSD_T::W_vovv
private
std::vector<double***> psi::psimrcc::MRCCSD_T::W_vOvV
private
std::vector<double***> psi::psimrcc::MRCCSD_T::W_VoVv
private
std::vector<double***> psi::psimrcc::MRCCSD_T::W_VOVV
private
BlockMatrix*** psi::psimrcc::MRCCSD_T::Z
private

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