mpqc::lcao::LCAOWavefunction< Tile, Policy > Class Template Reference

Documentation

template<typename Tile, typename Policy>
class mpqc::lcao::LCAOWavefunction< Tile, Policy >

LCAOWavefunction is a Wavefunction with an LCAOFactory.

This models wave function methods expressed in LCAO basis (e.g. traditional electron correlation methods, like MO-basis CCSD).

Todo:
elaborate LCAOWavefunction documentation

Public Types

using AOFactoryType = gaussian::AOFactory< Tile, Policy >
 
using ArrayType = typename AOFactoryType::TArray
 
using DirectTArray = typename AOFactoryType::DirectTArray
 
using LCAOFactoryType = LCAOFactory< Tile, Policy >
 

Public Member Functions

 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::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)
 

Member Typedef Documentation

◆ AOFactoryType

template<typename Tile , typename Policy >
using mpqc::lcao::LCAOWavefunction< Tile, Policy >::AOFactoryType = gaussian::AOFactory<Tile, Policy>

◆ ArrayType

template<typename Tile , typename Policy >
using mpqc::lcao::LCAOWavefunction< Tile, Policy >::ArrayType = typename AOFactoryType::TArray

◆ DirectTArray

template<typename Tile , typename Policy >
using mpqc::lcao::LCAOWavefunction< Tile, Policy >::DirectTArray = typename AOFactoryType::DirectTArray

◆ LCAOFactoryType

template<typename Tile , typename Policy >
using mpqc::lcao::LCAOWavefunction< Tile, Policy >::LCAOFactoryType = LCAOFactory<Tile, Policy>

Constructor & Destructor Documentation

◆ LCAOWavefunction()

template<typename Tile , typename Policy >
LCAOWavefunction::LCAOWavefunction ( const KeyVal kv)

The KeyVal constructor.

The KeyVal object will be queried for all keywords of Wavefunction and LCAOFactory, and the following keywords:

Keyword Type Default Description
frozen_core bool true if true, core electrons (defined by the standard "large" core convention) are not correlated
n_frozen_core int the size of "large" core, if frozen_core is true, else 0 specifies the number of frozen core orbitals
n_frozen_uocc int 0 specifies the number of frozen unoccupied orbitals, i.e. the number of highest-energy unoccupied orbitals to be excluded from correlated treatment; nonzero value only supported for references producing canonical orbitals
"charge" int 0 the net charge of the molecule (derived classes may refine the meaning of this keyword)
"obs_block_size" int 24 the target OBS (Orbital Basis Set) space block size
"occ_block_size" int "$obs_block_size" the target block size of the occupied space
"uocc_block_size" int "$obs_block_size" the target block size of the unoccupied space
"localizer" OrbitalLocalizer null specifies the object used to localize the occupied orbitals (core and valence orbitals are localized separately)
"cluster_occupied_orbitals" bool true, if "localizer" is given, false otherwise whether the (localized) occupied orbitals will be clustered; only used if "localizer" is given
"export_orbitals" bool false if true, export orbitals to a molden file; file is written by rank 0
"population_analysis" PopulationAnalysis none if given, perform population analysis and print the results in ad-hoc format to the standard output

◆ ~LCAOWavefunction()

template<typename Tile , typename Policy >
virtual mpqc::lcao::LCAOWavefunction< Tile, Policy >::~LCAOWavefunction ( )
virtualdefault

Member Function Documentation

◆ ao_factory() [1/2]

template<typename Tile , typename Policy >
AOFactoryType& mpqc::lcao::LCAOWavefunction< Tile, Policy >::ao_factory ( )
inline

◆ ao_factory() [2/2]

template<typename Tile , typename Policy >
const AOFactoryType& mpqc::lcao::LCAOWavefunction< Tile, Policy >::ao_factory ( ) const
inline

◆ charge()

template<typename Tile , typename Policy >
int mpqc::lcao::LCAOWavefunction< Tile, Policy >::charge ( ) const
inline

◆ cluster_occupied_orbitals()

template<typename Tile , typename Policy >
auto mpqc::lcao::LCAOWavefunction< Tile, Policy >::cluster_occupied_orbitals ( ) const
inline
Returns
true if occupied orbitals were clustered

◆ compute_canonical_occupied_orbitals()

template<typename Tile , typename Policy >
std::tuple< Eigen::VectorXd, TA::DistArray< Tile, Policy > > LCAOWavefunction::compute_canonical_occupied_orbitals ( bool  use_df = true) const
protected

◆ compute_diagonal_fpq()

template<typename Tile , typename Policy >
std::unique_ptr< Eigen::VectorXd > LCAOWavefunction::compute_diagonal_fpq ( bool  df)
protected

computes the MO-basis Fock matrix and extracts the diagonal elements

◆ init_closed_shell_cabs_svd()

template<typename Tile , typename Policy >
void LCAOWavefunction::init_closed_shell_cabs_svd
protected

◆ init_closed_shell_dualbasis_cabs_svd()

template<typename Tile , typename Policy >
void LCAOWavefunction::init_closed_shell_dualbasis_cabs_svd ( std::string  ri_method)
protected

◆ init_sdref()

template<typename Tile , typename Policy >
void LCAOWavefunction::init_sdref ( std::shared_ptr< lcao::Wavefunction ref_wfn,
double  target_ref_precision 
)
virtual

initializes the orbital spaces associated with a (closed-shell, for now) single-determinant reference state

Parameters
ref_wfnthe reference wave function; expected to provide either CanonicalOrbitalSpace or PopulatedOrbitalSpace
target_ref_precisionthe precision with which to compute the orbitals (also see OrbitalSpace::Provider::evaluate())

◆ is_frozen_core()

template<typename Tile , typename Policy >
bool mpqc::lcao::LCAOWavefunction< Tile, Policy >::is_frozen_core ( ) const
inline

◆ lcao_factory() [1/2]

template<typename Tile , typename Policy >
LCAOFactoryType& mpqc::lcao::LCAOWavefunction< Tile, Policy >::lcao_factory ( )
inline

◆ lcao_factory() [2/2]

template<typename Tile , typename Policy >
const LCAOFactoryType& mpqc::lcao::LCAOWavefunction< Tile, Policy >::lcao_factory ( ) const
inline

◆ localizer()

template<typename Tile , typename Policy >
auto mpqc::lcao::LCAOWavefunction< Tile, Policy >::localizer ( ) const
inline
Returns
std::shared_ptr to the localizer object; default-initialized if not given

◆ obsolete()

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

◆ occ_block()

template<typename Tile , typename Policy >
size_t mpqc::lcao::LCAOWavefunction< Tile, Policy >::occ_block ( ) const
inline

◆ trange1_engine()

template<typename Tile , typename Policy >
const std::shared_ptr<const ::mpqc::utility::TRange1Engine>& mpqc::lcao::LCAOWavefunction< Tile, Policy >::trange1_engine ( ) const
inline

◆ unocc_block()

template<typename Tile , typename Policy >
size_t mpqc::lcao::LCAOWavefunction< Tile, Policy >::unocc_block ( ) const
inline

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