MPQC 3.0.0-alpha
Loading...
Searching...
No Matches

RefWavefunction specialization that is not an adaptor to a Wavefunction object. More...

#include <chemistry/qc/nbody/ref.h>

Inheritance diagram for sc::Extern_RefWavefunction:
sc::RefWavefunction sc::SavableState sc::DescribedClass sc::RefCount

Public Member Functions

 Extern_RefWavefunction (const Ref< WavefunctionWorld > &world, const Ref< GaussianBasisSet > &basis, const Ref< Integral > &integral, const RefSCMatrix &orbs, const std::vector< unsigned int > &orbsymm, const RefSymmSCMatrix &alpha_1rdm, const RefSymmSCMatrix &beta_1rdm, unsigned int nocc, unsigned int nfzc=0, unsigned int nfzv=0, bool omit_uocc=false)
 Constructs Extern_RefWavefunction using the MO-basis 1-RDMs + MO coefficients (same for alpha and beta spincase)
 
 Extern_RefWavefunction (const Ref< WavefunctionWorld > &world, const Ref< GaussianBasisSet > &basis, const Ref< Integral > &integral, const RefSCMatrix &orbs, const std::vector< unsigned int > &orbsymm, const RefSymmSCMatrix &alpha_1rdm, const RefSymmSCMatrix &beta_1rdm, std::vector< unsigned int > occpi, std::vector< unsigned int > fzcpi, std::vector< unsigned int > fzvpi, std::vector< unsigned int > holepi=std::vector< unsigned int >(), std::vector< unsigned int > partpi=std::vector< unsigned int >(), bool omit_uocc=false)
 Constructs Extern_RefWavefunction using the orbital coefficients and 1-RDM matrices(same for alpha and beta spincase)
 
 Extern_RefWavefunction (StateIn &)
 
void save_data_state (StateOut &)
 Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.
 
RefSymmSCMatrix ordm (SpinCase1 spin) const
 return the AO basis density
 
void print (std::ostream &os=ExEnv::out0()) const
 Print the object.
 
void obsolete ()
 obsoletes this object
 
bool sdref () const
 is this a single-determinantal reference?
 
double energy ()
 
double actual_value_accuracy () const
 Return the accuracy with which the value has been computed.
 
double desired_value_accuracy () const
 
int nelectron () const
 
bool spin_polarized () const
 
double magnetic_moment () const
 
bool spin_restricted () const
 
int dk () const
 reimplements RefWavefunction::dk(). Currently only nonrelativistic references are supported.
 
Ref< GaussianBasisSetmomentum_basis () const
 
RefSymmSCMatrix core_hamiltonian_for_basis (const Ref< GaussianBasisSet > &basis, const Ref< GaussianBasisSet > &p_basis)
 Returns the SO core Hamiltonian in the given basis and momentum basis.
 
unsigned int nfzc () const
 
unsigned int nfzv () const
 
bool omit_uocc () const
 
bool ordm_idempotent () const
 
- Public Member Functions inherited from sc::RefWavefunction
void save_data_state (StateOut &)
 Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.
 
virtual void purge ()
 purges the data from this object
 
const Ref< WavefunctionWorld > & world () const
 
const Ref< GaussianBasisSet > & basis () const
 
const Ref< Integral > & integral () const
 
virtual const Ref< GaussianBasisSet > & uocc_basis () const
 returns the basis supporting unoccupied orbitals. The defauls is same as returned by basis().
 
const Ref< OrbitalSpace > & valence_orbs () const
 This OrbitalSpace defines valence orbitals.
 
void set_desired_value_accuracy (double)
 Set the accuracy to which the value is to be computed.
 
virtual bool desired_value_accuracy_set_to_default () const
 
bool spin_polarized () const
 
virtual RefSymmSCMatrix ordm_orbs_sb (SpinCase1 spin) const
 return the density in the orbs_sb() space
 
virtual RefSymmSCMatrix ordm_occ_sb (SpinCase1 spin) const
 return the density in the occ_sb() space
 
const Ref< OrbitalSpace > & oso_space () const
 Returns the space of symmetry-blocked orthogonal SOs (spans the entire space of the basis)
 
const Ref< OrbitalSpace > & orbs_sb (SpinCase1 spin=AnySpinCase1) const
 Return the space of symmetry-blocked MOs of the given spin.
 
const Ref< OrbitalSpace > & orbs (SpinCase1 spin=AnySpinCase1) const
 Return the space of energy-sorted MOs of the given spin.
 
const Ref< OrbitalSpace > & occ_sb (SpinCase1 spin=AnySpinCase1) const
 Return the space of symmery-blocked occupied MOs of the given spin.
 
const Ref< OrbitalSpace > & occ_act_sb (SpinCase1 spin=AnySpinCase1) const
 Return the space of symmery-blocked active occupied MOs of the given spin.
 
const Ref< OrbitalSpace > & occ_frz_sb (SpinCase1 spin=AnySpinCase1) const
 Return the space of symmery-blocked frozen occupied MOs of the given spin.
 
const Ref< OrbitalSpace > & occ (SpinCase1 spin=AnySpinCase1) const
 Return the space of occupied MOs of the given spin.
 
const Ref< OrbitalSpace > & occ_act (SpinCase1 spin=AnySpinCase1) const
 Return the space of active occupied MOs of the given spin.
 
const Ref< OrbitalSpace > & occ_frz (SpinCase1 spin=AnySpinCase1) const
 Return the space of frozen occupied MOs of the given spin.
 
const Ref< OrbitalSpace > & uocc_sb (SpinCase1 spin=AnySpinCase1) const
 Return the space of symmetry-blocked unoccupied (virtual) MOs of the given spin.
 
const Ref< OrbitalSpace > & uocc_act_sb (SpinCase1 spin=AnySpinCase1) const
 Return the space of symmetry-blocked active unoccupied (virtual) MOs of the given spin.
 
const Ref< OrbitalSpace > & uocc (SpinCase1 spin=AnySpinCase1) const
 Return the space of unoccupied (virtual) MOs of the given spin.
 
const Ref< OrbitalSpace > & uocc_act (SpinCase1 spin=AnySpinCase1) const
 Return the space of active unoccupied (virtual) MOs of the given spin.
 
- Public Member Functions inherited from sc::SavableState
SavableStateoperator= (const SavableState &)
 
void save_state (StateOut &)
 Save the state of the object as specified by the StateOut object.
 
void save_object_state (StateOut &)
 This can be used for saving state when the exact type of the object is known for both the save and the restore.
 
virtual void save_vbase_state (StateOut &)
 Save the virtual bases for the object.
 
- Public Member Functions inherited from sc::DescribedClass
 DescribedClass (const DescribedClass &)
 
DescribedClassoperator= (const DescribedClass &)
 
ClassDescclass_desc () const MPQC__NOEXCEPT
 This returns the unique pointer to the ClassDesc corresponding to the given type_info object.
 
const char * class_name () const
 Return the name of the object's exact type.
 
int class_version () const
 Return the version of the class.
 
Ref< DescribedClassref ()
 Return this object wrapped up in a Ref smart pointer.
 
- Public Member Functions inherited from sc::RefCount
size_t identifier () const
 Return the unique identifier for this object that can be compared for different objects of different types.
 
int lock_ptr () const
 Lock this object.
 
int unlock_ptr () const
 Unlock this object.
 
void use_locks (bool inVal)
 start and stop using locks on this object
 
refcount_t nreference () const
 Return the reference count.
 
refcount_t reference ()
 Increment the reference count and return the new count.
 
refcount_t dereference ()
 Decrement the reference count and return the new count.
 
int managed () const
 Return 1 if the object is managed. Otherwise return 0.
 

Additional Inherited Members

- Static Public Member Functions inherited from sc::SavableState
static void save_state (SavableState *s, StateOut &)
 
static SavableStaterestore_state (StateIn &si)
 Restores objects saved with save_state.
 
static SavableStatekey_restore_state (StateIn &si, const char *keyword)
 Like restore_state, but keyword is used to override values while restoring.
 
static SavableStatedir_restore_state (StateIn &si, const char *objectname, const char *keyword=0)
 
- Protected Member Functions inherited from sc::RefWavefunction
bool use_world_dfinfo () const
 if true, override density fitting settings of RefWavefunction objects with those of WavefunctionWorld in which they live.
 
 RefWavefunction (const Ref< KeyVal > &kv)
 A KeyVal constructor is used to generate a RefWavefunction object from a KeyVal object.
 
 RefWavefunction (StateIn &)
 
 RefWavefunction (const Ref< WavefunctionWorld > &world, const Ref< GaussianBasisSet > &basis, const Ref< Integral > &integral, bool use_world_df=false)
 
void init () const
 initializes the object
 
virtual void reset ()
 calling this will cause the object to be re-initialized next time it is used
 
- Protected Member Functions inherited from sc::SavableState
 SavableState (const SavableState &)
 
 SavableState (StateIn &)
 Each derived class StateIn CTOR handles the restore corresponding to calling save_object_state, save_vbase_state, and save_data_state listed above.
 
- Protected Member Functions inherited from sc::RefCount
 RefCount (const RefCount &)
 
RefCountoperator= (const RefCount &)
 
- Protected Attributes inherited from sc::RefWavefunction
Ref< PopulatedOrbitalSpacespinspaces_ [NSpinCases1]
 
bool force_average_AB_rdm1_
 For spin-free algorithms, if this is true, we would set both alpha/beta 1-rdm to the average of them; defaults to false.
 

Detailed Description

RefWavefunction specialization that is not an adaptor to a Wavefunction object.

This should be used as a general reference wave function specified by its orbitals and rank-1 reduced density matrices

Constructor & Destructor Documentation

◆ Extern_RefWavefunction() [1/2]

sc::Extern_RefWavefunction::Extern_RefWavefunction ( const Ref< WavefunctionWorld > & world,
const Ref< GaussianBasisSet > & basis,
const Ref< Integral > & integral,
const RefSCMatrix & orbs,
const std::vector< unsigned int > & orbsymm,
const RefSymmSCMatrix & alpha_1rdm,
const RefSymmSCMatrix & beta_1rdm,
unsigned int nocc,
unsigned int nfzc = 0,
unsigned int nfzv = 0,
bool omit_uocc = false )

Constructs Extern_RefWavefunction using the MO-basis 1-RDMs + MO coefficients (same for alpha and beta spincase)

Parameters
[in]worldThe WavefunctionWorld in which this objects lives.
[in]basisThe basis set
[in]integralThe integral object that determines the ordering of basis functions in shells
[in]orbsThe MO coefficient matrix, ordered by occupancy, i.e. occupied orbitals come first
[in]orbsymmIrreps of MOs
[in]alpha_1rdmThe alpha-spin density matrix in the basis of orbs
[in]beta_1rdmThe beta-spin density matrix in MO basis (assuming if alpha_1rdm and beta_1rdm point to the SAME object then if alpha and beta densities are identical.
[in]noccorbitals [0,nocc) will be occupied
[in]nfzcorbitals [0,nfzc) will not be active, i.e. will not be involved in correlation treatment
[in]nfzvorbitals [nmo-nfzv,nmo) will not be active
[in]omit_uoccIf true, omit all unoccupied orbitals (i.e. make the unoccupied space empty). N.B. This is not the same as "freezing" the unoccupieds.

◆ Extern_RefWavefunction() [2/2]

sc::Extern_RefWavefunction::Extern_RefWavefunction ( const Ref< WavefunctionWorld > & world,
const Ref< GaussianBasisSet > & basis,
const Ref< Integral > & integral,
const RefSCMatrix & orbs,
const std::vector< unsigned int > & orbsymm,
const RefSymmSCMatrix & alpha_1rdm,
const RefSymmSCMatrix & beta_1rdm,
std::vector< unsigned int > occpi,
std::vector< unsigned int > fzcpi,
std::vector< unsigned int > fzvpi,
std::vector< unsigned int > holepi = std::vector< unsigned int >(),
std::vector< unsigned int > partpi = std::vector< unsigned int >(),
bool omit_uocc = false )

Constructs Extern_RefWavefunction using the orbital coefficients and 1-RDM matrices(same for alpha and beta spincase)

Parameters
[in]worldThe WavefunctionWorld in which this objects lives.
[in]basisThe basis set
[in]integralThe integral object that determines the ordering of basis functions in shells
[in]orbsAO coefficients of orbitals
[in]orbsymmIrreps of the orbitals
[in]alpha_1rdmThe alpha-spin density matrix in the basis of orbs
[in]beta_1rdmThe beta-spin density matrix (assuming if alpha_1rdm and beta_1rdm point to the SAME object then if alpha and beta densities are identical.
[in]occpispecifies how many orbitals of each irrep are occupied
[in]fzcpispecifies how many occupied orbitals of each irrep are excluded (frozen) from correlation treatment
[in]fzvpispecifies how many unoccupied orbitals of each irrep are excluded (frozen) from correlation treatment
[in]holepispecifies in how many correlated orbitals in each irrep holes can be created; the default (empty vector) means any non-frozen occupied orbital ("occpi - fzcpi")
[in]partpispecifies in how many correlated orbitals in each irrep particles can be created; the default (empty vector) means any non-frozen unoccupied orbital ("orbspi - occpi - fzvpi")
[in]omit_uoccIf true, omit all unoccupied orbitals (i.e. make the unoccupied space empty). N.B. This is not the same as "freezing" the unoccupieds.

Member Function Documentation

◆ actual_value_accuracy()

double sc::Extern_RefWavefunction::actual_value_accuracy ( ) const
inlinevirtual

Return the accuracy with which the value has been computed.

See also
Function::actual_value_accuracy()

Implements sc::RefWavefunction.

◆ core_hamiltonian_for_basis()

RefSymmSCMatrix sc::Extern_RefWavefunction::core_hamiltonian_for_basis ( const Ref< GaussianBasisSet > & basis,
const Ref< GaussianBasisSet > & p_basis )
virtual

Returns the SO core Hamiltonian in the given basis and momentum basis.

The momentum basis is not needed if no Douglas-Kroll correction is being performed.

See also
Wavefunction::core_hamiltonian_for_basis()

Implements sc::RefWavefunction.

◆ desired_value_accuracy()

double sc::Extern_RefWavefunction::desired_value_accuracy ( ) const
inlinevirtual
See also
Return the accuracy with which the value is to be computed.
Function::desired_value_accuracy()

Implements sc::RefWavefunction.

◆ dk()

int sc::Extern_RefWavefunction::dk ( ) const
inlinevirtual

reimplements RefWavefunction::dk(). Currently only nonrelativistic references are supported.

Implements sc::RefWavefunction.

◆ energy()

double sc::Extern_RefWavefunction::energy ( )
inlinevirtual

◆ magnetic_moment()

double sc::Extern_RefWavefunction::magnetic_moment ( ) const
virtual

◆ momentum_basis()

Ref< GaussianBasisSet > sc::Extern_RefWavefunction::momentum_basis ( ) const
inlinevirtual

◆ nelectron()

int sc::Extern_RefWavefunction::nelectron ( ) const
inlinevirtual

◆ obsolete()

void sc::Extern_RefWavefunction::obsolete ( )
virtual

obsoletes this object

See also
R12WavefunctionWorld::obsolete()

Reimplemented from sc::RefWavefunction.

◆ ordm()

RefSymmSCMatrix sc::Extern_RefWavefunction::ordm ( SpinCase1 spin) const
inlinevirtual

return the AO basis density

Implements sc::RefWavefunction.

◆ print()

void sc::Extern_RefWavefunction::print ( std::ostream & = ExEnv::out0()) const
virtual

Print the object.

Implements sc::RefWavefunction.

◆ save_data_state()

void sc::Extern_RefWavefunction::save_data_state ( StateOut & )
virtual

Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.

This must be implemented by the derived class if the class has data.

Reimplemented from sc::SavableState.

◆ sdref()

bool sc::Extern_RefWavefunction::sdref ( ) const
virtual

is this a single-determinantal reference?

Implements sc::RefWavefunction.


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

Generated at Wed Sep 25 2024 02:45:32 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.12.0.