mpqc::lcao::cc::CCSDT< Tile, Policy > Class Template Reference
Collaboration diagram for mpqc::lcao::cc::CCSDT< Tile, Policy >:

Documentation

template<typename Tile, typename Policy>
class mpqc::lcao::cc::CCSDT< Tile, Policy >

CCSDT class that computes CCSDT energy

Public Types

using TArray = TA::DistArray< Tile, Policy >
 
using AOFactory = gaussian::AOFactory< Tile, Policy >
 
- Public Types inherited from mpqc::lcao::LCAOWavefunction< Tile, Policy >
using AOFactoryType = gaussian::AOFactory< Tile, Policy >
 
using ArrayType = typename AOFactoryType::TArray
 
using DirectTArray = typename AOFactoryType::DirectTArray
 
using LCAOFactoryType = LCAOFactory< Tile, Policy >
 

Public Member Functions

 CCSDT ()=default
 
 CCSDT (const KeyVal &kv)
 
virtual ~CCSDT ()
 
void obsolete () override
 
TArray t1 () const
 
TArray t2 () const
 
TArray t3 () const
 
bool is_df () const
 
void set_t1 (const TArray &t1)
 
void set_t2 (const TArray &t2)
 
void set_t3 (const TArray &t3)
 
bool print_detail () const
 
void set_target_precision (double precision)
 
const AOFactory::DirectTArrayget_direct_ao_integral () const
 
const TArray get_Ci () const
 
const TArray get_Ca () const
 vir part More...
 
const TArray get_Xab ()
 get three center integral (X|ab) More...
 
const TArray get_Xij ()
 get three center integral (X|ij) More...
 
const TArray get_Xai ()
 get three center integral (X|ai) More...
 
virtual const TArray get_ijab ()
 <ij|ab> More...
 
virtual const TArray get_ijkl ()
 <ij|kl> More...
 
virtual const TArray get_abcd ()
 <ab|cd> More...
 
virtual const TArray get_iabc ()
 <ia|bc> More...
 
virtual const TArray get_iajb ()
 <ia|jb> More...
 
virtual const TArray get_ijka ()
 <ij|ka> More...
 
virtual const TArray get_fock_ia ()
 <i|f|a> More...
 
virtual const TArray get_fock_ij ()
 <i|f|j> More...
 
virtual const TArray get_fock_ab ()
 <a|f|b> More...
 
virtual const TArray get_fock_pq ()
 <p|f|q> More...
 
bool can_evaluate (Energy *energy) override
 
void evaluate (Energy *energy) override
 
double compute_ccsdt (TArray &t1, TArray &t2, TArray &t3)
 
- Public Member Functions inherited from mpqc::lcao::LCAOWavefunction< Tile, Policy >
 LCAOWavefunction (const KeyVal &kv)
 The KeyVal constructor. More...
 
virtual ~LCAOWavefunction ()=default
 
LCAOFactoryTypelcao_factory ()
 
const LCAOFactoryTypelcao_factory () const
 
AOFactoryTypeao_factory ()
 
const AOFactoryTypeao_factory () const
 
void obsolete () override
 
virtual void init_sdref (std::shared_ptr< lcao::Wavefunction > ref_wfn, double target_ref_precision)
 initializes the orbital spaces associated with a (closed-shell, for now) single-determinant reference state More...
 
const std::shared_ptr< const ::mpqc::utility::TRange1Engine > & trange1_engine () const
 
bool is_frozen_core () const
 
int charge () const
 
size_t occ_block () const
 
size_t unocc_block () const
 
auto localizer () const
 
auto cluster_occupied_orbitals () const
 

Protected Member Functions

std::shared_ptr< const Eigen::VectorXd > orbital_energy ()
 
void set_orbital_energy (const Eigen::VectorXd &orbital_energy)
 
- Protected Member Functions inherited from mpqc::lcao::LCAOWavefunction< Tile, Policy >
std::tuple< Eigen::VectorXd, TA::DistArray< Tile, Policy > > compute_canonical_occupied_orbitals (bool use_df=true) const
 
std::unique_ptr< Eigen::VectorXd > compute_diagonal_fpq (bool df)
 computes the MO-basis Fock matrix and extracts the diagonal elements More...
 
void init_closed_shell_cabs_svd ()
 
void init_closed_shell_dualbasis_cabs_svd (std::string ri_method)
 

Protected Attributes

TArray T1_
 protected members More...
 
TArray T2_
 
TArray T3_
 
const KeyVal kv_
 
std::string solver_str_
 
std::shared_ptr<::mpqc::cc::Solver< TArray > > solver_
 
std::shared_ptr< Wavefunctionref_wfn_
 
AOFactory::DirectTArray direct_ao_array_
 
bool df_
 
bool reduced_abcd_memory_ = false
 
std::string method_
 
std::size_t max_iter_
 
double target_precision_
 
double computed_precision_ = std::numeric_limits<double>::max()
 
bool verbose_
 
double CCSDT_corr_energy_
 
bool cp_ccsdt_
 
bool cp_ccsd_
 
bool cp4_on_
 
double cp3_rank_
 
double cp4_rank_
 
double cp3_precision_
 
double cp4_precision_
 
bool cp_ps_
 
bool cp_robust_
 
double rank_block_factor_
 
int had_block_size_
 
int reblock_size_
 
std::string approximation_
 
double alpha_
 
double beta_
 
double gamma_
 
double delta_
 
double eta_
 
bool zero_t1_
 
bool ecorr_in_diagrams_
 
std::shared_ptr< const Eigen::VectorXd > f_pq_diagonal_
 

Member Typedef Documentation

◆ AOFactory

template<typename Tile , typename Policy >
using mpqc::lcao::cc::CCSDT< Tile, Policy >::AOFactory = gaussian::AOFactory<Tile, Policy>

◆ TArray

template<typename Tile , typename Policy >
using mpqc::lcao::cc::CCSDT< Tile, Policy >::TArray = TA::DistArray<Tile, Policy>

Constructor & Destructor Documentation

◆ CCSDT() [1/2]

template<typename Tile , typename Policy >
mpqc::lcao::cc::CCSDT< Tile, Policy >::CCSDT ( )
default

◆ CCSDT() [2/2]

template<typename Tile , typename Policy >
mpqc::lcao::cc::CCSDT< Tile, Policy >::CCSDT ( const KeyVal kv)
inline

KeyVal constructor

Parameters
kvkeywords : all keywords for LCAOWavefunciton
Keyword Type Default Description
ref Wavefunction none a reference Wavefunction; currently it needs to provide Energy and satisfy requirements for LCAOWavefunction::init_sdref (i.e. provide either CanonicalOrbitalSpace or PopulatedOrbitalSpace)
method string standard or df method to compute ccsd (valid choices are: standard , direct , df , direct_df , reduced_scaling ; see the CCSD KeyVal ctor documentation), the default depends on whether df_basis is provided
approximation string none approximation to the residual equations to employ (valid choices are none [no approximation, i.e. CCSDT], CCSDT1, CCSDT1b , CCSDT2 , CCSDT3 , CCSDT4 , CC3, DCSDT )
max_iter int 30 maximum number of solver iterations
verbose bool factory.verbose() if print more information in CCSDT iteration
reduced_abcd_memory bool false avoid store another abcd term in standard and df method
cp_ccsd bool false if method==df OR method==reduced_scaling compute Xab integrals using CP decomposition and use the decomposition in r2 residual equaiton
cp_ccsdt bool false if method==df or method == reduced_scaling compute Xab integrals using CP decomposition and use it in r3 residual equation
cp3_rank double 3.0 CP rank of the Xab integral decomposition set to number of auxiliary basis functions times cp3_rank
cp4_rank double 1.0 CP rank of the (Xai Xma) integral decomposition set to number of auxiliary basis functions times cp4_rank
cp3_precision double 1e-3 ALS threshold for CP3 decomposition of Xab
cp4_precision double 1e-3 ALS threshold for the CP4 decomposition
cp_ps bool false Should the particle particle ladder term be computed using the CP-PS approach?
cp_robust bool false Should the particle particle ladder term be computed using the CP-Robust approach? Isn't enabled if cp_ps==true
rank_block_factor double 1.0 Blocking of the rank dimension is rank_block_factor times the auxiliary block size
had_block_size int -1 New block size for the ab dimensions of the Xab CP decomposition. If new block size is the same as the old block size, no reblocking occurs. If had_block_size==-1 block size is set to occ_block*occ_block/2
reblock_size_ int 10 New block size for unocc dimension in the mixed contraction in the CP portion of the r3 residual equation.
zero_t1 bool false set T1 to zero, i.e. compute CCDT
ecorr_in_diagrams bool false correlation energy decomposed into individual diagrams from t2 residual equation

◆ ~CCSDT()

template<typename Tile , typename Policy >
virtual mpqc::lcao::cc::CCSDT< Tile, Policy >::~CCSDT ( )
inlinevirtual

Member Function Documentation

◆ can_evaluate()

template<typename Tile , typename Policy >
bool mpqc::lcao::cc::CCSDT< Tile, Policy >::can_evaluate ( Energy energy)
inlineoverride

◆ compute_ccsdt()

template<typename Tile , typename Policy >
double mpqc::lcao::cc::CCSDT< Tile, Policy >::compute_ccsdt ( TArray t1,
TArray t2,
TArray t3 
)

◆ evaluate()

template<typename Tile , typename Policy >
void mpqc::lcao::cc::CCSDT< Tile, Policy >::evaluate ( Energy energy)
override

◆ get_abcd()

template<typename Tile , typename Policy >
virtual const TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::get_abcd ( )
inlinevirtual

<ab|cd>

◆ get_Ca()

template<typename Tile , typename Policy >
const TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::get_Ca ( ) const
inline

vir part

◆ get_Ci()

template<typename Tile , typename Policy >
const TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::get_Ci ( ) const
inline

get mo coefficient occ part

◆ get_direct_ao_integral()

template<typename Tile , typename Policy >
const AOFactory::DirectTArray& mpqc::lcao::cc::CCSDT< Tile, Policy >::get_direct_ao_integral ( ) const
inline

◆ get_fock_ab()

template<typename Tile , typename Policy >
virtual const TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::get_fock_ab ( )
inlinevirtual

<a|f|b>

◆ get_fock_ia()

template<typename Tile , typename Policy >
virtual const TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::get_fock_ia ( )
inlinevirtual

<i|f|a>

◆ get_fock_ij()

template<typename Tile , typename Policy >
virtual const TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::get_fock_ij ( )
inlinevirtual

<i|f|j>

◆ get_fock_pq()

template<typename Tile , typename Policy >
virtual const TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::get_fock_pq ( )
inlinevirtual

<p|f|q>

◆ get_iabc()

template<typename Tile , typename Policy >
virtual const TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::get_iabc ( )
inlinevirtual

<ia|bc>

◆ get_iajb()

template<typename Tile , typename Policy >
virtual const TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::get_iajb ( )
inlinevirtual

<ia|jb>

◆ get_ijab()

template<typename Tile , typename Policy >
virtual const TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::get_ijab ( )
inlinevirtual

<ij|ab>

◆ get_ijka()

template<typename Tile , typename Policy >
virtual const TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::get_ijka ( )
inlinevirtual

<ij|ka>

◆ get_ijkl()

template<typename Tile , typename Policy >
virtual const TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::get_ijkl ( )
inlinevirtual

<ij|kl>

◆ get_Xab()

template<typename Tile , typename Policy >
const TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::get_Xab ( )
inline

get three center integral (X|ab)

◆ get_Xai()

template<typename Tile , typename Policy >
const TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::get_Xai ( )
inline

get three center integral (X|ai)

◆ get_Xij()

template<typename Tile , typename Policy >
const TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::get_Xij ( )
inline

get three center integral (X|ij)

◆ is_df()

template<typename Tile , typename Policy >
bool mpqc::lcao::cc::CCSDT< Tile, Policy >::is_df ( ) const
inline

◆ obsolete()

template<typename Tile , typename Policy >
void mpqc::lcao::cc::CCSDT< Tile, Policy >::obsolete ( )
inlineoverride

◆ orbital_energy()

template<typename Tile , typename Policy >
std::shared_ptr<const Eigen::VectorXd> mpqc::lcao::cc::CCSDT< Tile, Policy >::orbital_energy ( )
inlineprotected

◆ print_detail()

template<typename Tile , typename Policy >
bool mpqc::lcao::cc::CCSDT< Tile, Policy >::print_detail ( ) const
inline

◆ set_orbital_energy()

template<typename Tile , typename Policy >
void mpqc::lcao::cc::CCSDT< Tile, Policy >::set_orbital_energy ( const Eigen::VectorXd &  orbital_energy)
inlineprotected

◆ set_t1()

template<typename Tile , typename Policy >
void mpqc::lcao::cc::CCSDT< Tile, Policy >::set_t1 ( const TArray t1)
inline

◆ set_t2()

template<typename Tile , typename Policy >
void mpqc::lcao::cc::CCSDT< Tile, Policy >::set_t2 ( const TArray t2)
inline

◆ set_t3()

template<typename Tile , typename Policy >
void mpqc::lcao::cc::CCSDT< Tile, Policy >::set_t3 ( const TArray t3)
inline

◆ set_target_precision()

template<typename Tile , typename Policy >
void mpqc::lcao::cc::CCSDT< Tile, Policy >::set_target_precision ( double  precision)
inline

◆ t1()

template<typename Tile , typename Policy >
TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::t1 ( ) const
inline

◆ t2()

template<typename Tile , typename Policy >
TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::t2 ( ) const
inline

◆ t3()

template<typename Tile , typename Policy >
TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::t3 ( ) const
inline

Member Data Documentation

◆ alpha_

template<typename Tile , typename Policy >
double mpqc::lcao::cc::CCSDT< Tile, Policy >::alpha_
protected

◆ approximation_

template<typename Tile , typename Policy >
std::string mpqc::lcao::cc::CCSDT< Tile, Policy >::approximation_
protected

◆ beta_

template<typename Tile , typename Policy >
double mpqc::lcao::cc::CCSDT< Tile, Policy >::beta_
protected

◆ CCSDT_corr_energy_

template<typename Tile , typename Policy >
double mpqc::lcao::cc::CCSDT< Tile, Policy >::CCSDT_corr_energy_
protected

◆ computed_precision_

template<typename Tile , typename Policy >
double mpqc::lcao::cc::CCSDT< Tile, Policy >::computed_precision_ = std::numeric_limits<double>::max()
protected

◆ cp3_precision_

template<typename Tile , typename Policy >
double mpqc::lcao::cc::CCSDT< Tile, Policy >::cp3_precision_
protected

◆ cp3_rank_

template<typename Tile , typename Policy >
double mpqc::lcao::cc::CCSDT< Tile, Policy >::cp3_rank_
protected

◆ cp4_on_

template<typename Tile , typename Policy >
bool mpqc::lcao::cc::CCSDT< Tile, Policy >::cp4_on_
protected

◆ cp4_precision_

template<typename Tile , typename Policy >
double mpqc::lcao::cc::CCSDT< Tile, Policy >::cp4_precision_
protected

◆ cp4_rank_

template<typename Tile , typename Policy >
double mpqc::lcao::cc::CCSDT< Tile, Policy >::cp4_rank_
protected

◆ cp_ccsd_

template<typename Tile , typename Policy >
bool mpqc::lcao::cc::CCSDT< Tile, Policy >::cp_ccsd_
protected

◆ cp_ccsdt_

template<typename Tile , typename Policy >
bool mpqc::lcao::cc::CCSDT< Tile, Policy >::cp_ccsdt_
protected

◆ cp_ps_

template<typename Tile , typename Policy >
bool mpqc::lcao::cc::CCSDT< Tile, Policy >::cp_ps_
protected

◆ cp_robust_

template<typename Tile , typename Policy >
bool mpqc::lcao::cc::CCSDT< Tile, Policy >::cp_robust_
protected

◆ delta_

template<typename Tile , typename Policy >
double mpqc::lcao::cc::CCSDT< Tile, Policy >::delta_
protected

◆ df_

template<typename Tile , typename Policy >
bool mpqc::lcao::cc::CCSDT< Tile, Policy >::df_
protected

◆ direct_ao_array_

template<typename Tile , typename Policy >
AOFactory::DirectTArray mpqc::lcao::cc::CCSDT< Tile, Policy >::direct_ao_array_
protected

◆ ecorr_in_diagrams_

template<typename Tile , typename Policy >
bool mpqc::lcao::cc::CCSDT< Tile, Policy >::ecorr_in_diagrams_
protected

◆ eta_

template<typename Tile , typename Policy >
double mpqc::lcao::cc::CCSDT< Tile, Policy >::eta_
protected

◆ f_pq_diagonal_

template<typename Tile , typename Policy >
std::shared_ptr<const Eigen::VectorXd> mpqc::lcao::cc::CCSDT< Tile, Policy >::f_pq_diagonal_
protected

◆ gamma_

template<typename Tile , typename Policy >
double mpqc::lcao::cc::CCSDT< Tile, Policy >::gamma_
protected

◆ had_block_size_

template<typename Tile , typename Policy >
int mpqc::lcao::cc::CCSDT< Tile, Policy >::had_block_size_
protected

◆ kv_

template<typename Tile , typename Policy >
const KeyVal mpqc::lcao::cc::CCSDT< Tile, Policy >::kv_
protected

◆ max_iter_

template<typename Tile , typename Policy >
std::size_t mpqc::lcao::cc::CCSDT< Tile, Policy >::max_iter_
protected

◆ method_

template<typename Tile , typename Policy >
std::string mpqc::lcao::cc::CCSDT< Tile, Policy >::method_
protected

◆ rank_block_factor_

template<typename Tile , typename Policy >
double mpqc::lcao::cc::CCSDT< Tile, Policy >::rank_block_factor_
protected

◆ reblock_size_

template<typename Tile , typename Policy >
int mpqc::lcao::cc::CCSDT< Tile, Policy >::reblock_size_
protected

◆ reduced_abcd_memory_

template<typename Tile , typename Policy >
bool mpqc::lcao::cc::CCSDT< Tile, Policy >::reduced_abcd_memory_ = false
protected

◆ ref_wfn_

template<typename Tile , typename Policy >
std::shared_ptr<Wavefunction> mpqc::lcao::cc::CCSDT< Tile, Policy >::ref_wfn_
protected

◆ solver_

template<typename Tile , typename Policy >
std::shared_ptr<::mpqc::cc::Solver<TArray> > mpqc::lcao::cc::CCSDT< Tile, Policy >::solver_
protected

◆ solver_str_

template<typename Tile , typename Policy >
std::string mpqc::lcao::cc::CCSDT< Tile, Policy >::solver_str_
protected

◆ T1_

template<typename Tile , typename Policy >
TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::T1_
protected

protected members

◆ T2_

template<typename Tile , typename Policy >
TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::T2_
protected

◆ T3_

template<typename Tile , typename Policy >
TArray mpqc::lcao::cc::CCSDT< Tile, Policy >::T3_
protected

◆ target_precision_

template<typename Tile , typename Policy >
double mpqc::lcao::cc::CCSDT< Tile, Policy >::target_precision_
protected

◆ verbose_

template<typename Tile , typename Policy >
bool mpqc::lcao::cc::CCSDT< Tile, Policy >::verbose_
protected

◆ zero_t1_

template<typename Tile , typename Policy >
bool mpqc::lcao::cc::CCSDT< Tile, Policy >::zero_t1_
protected

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