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 |
LCAOFactoryType & | lcao_factory () |
const LCAOFactoryType & | lcao_factory () const |
AOFactoryType & | ao_factory () |
const AOFactoryType & | ao_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 >
|
virtualdefault |
Member Function Documentation
◆ ao_factory() [1/2]
template<typename Tile , typename Policy >
|
inline |
◆ ao_factory() [2/2]
template<typename Tile , typename Policy >
|
inline |
◆ charge()
template<typename Tile , typename Policy >
|
inline |
◆ cluster_occupied_orbitals()
template<typename Tile , typename Policy >
|
inline |
- Returns
- true if occupied orbitals were clustered
◆ compute_canonical_occupied_orbitals()
template<typename Tile , typename Policy >
|
protected |
◆ compute_diagonal_fpq()
template<typename Tile , typename Policy >
|
protected |
computes the MO-basis Fock matrix and extracts the diagonal elements
◆ init_closed_shell_cabs_svd()
template<typename Tile , typename Policy >
|
protected |
◆ init_closed_shell_dualbasis_cabs_svd()
template<typename Tile , typename Policy >
|
protected |
◆ init_sdref()
template<typename Tile , typename Policy >
|
virtual |
initializes the orbital spaces associated with a (closed-shell, for now) single-determinant reference state
- Parameters
-
ref_wfn the reference wave function; expected to provide either CanonicalOrbitalSpace or PopulatedOrbitalSpace target_ref_precision the precision with which to compute the orbitals (also see OrbitalSpace::Provider::evaluate())
◆ is_frozen_core()
template<typename Tile , typename Policy >
|
inline |
◆ lcao_factory() [1/2]
template<typename Tile , typename Policy >
|
inline |
◆ lcao_factory() [2/2]
template<typename Tile , typename Policy >
|
inline |
◆ localizer()
template<typename Tile , typename Policy >
|
inline |
- Returns
- std::shared_ptr to the localizer object; default-initialized if not given
◆ obsolete()
template<typename Tile , typename Policy >
|
inlineoverride |
◆ occ_block()
template<typename Tile , typename Policy >
|
inline |
◆ trange1_engine()
template<typename Tile , typename Policy >
|
inline |
◆ unocc_block()
template<typename Tile , typename Policy >
|
inline |
The documentation for this class was generated from the following files:
- mpqc/chemistry/qc/lcao/wfn/fwd.h
- mpqc/chemistry/qc/lcao/wfn/lcao_wfn.h
- mpqc/chemistry/qc/lcao/wfn/lcao_wfn.ipp