MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
sc::FockBuildRuntime Class Reference

Build Fock matrices using some combination of FockBuilder objects. More...

#include <chemistry/qc/lcao/fockbuild_runtime.h>

Inheritance diagram for sc::FockBuildRuntime:
sc::SavableState sc::DescribedClass sc::RefCount

Public Types

typedef RefSCMatrix ResultType
 
typedef Registry< std::string, RefSCMatrix, detail::NonsingletonCreationPolicyFockMatrixRegistry
 
typedef Registry< RefSymmSCMatrix, Ref< OrbitalSpace >, detail::NonsingletonCreationPolicy, RefSymmSCMatrixEqual, RefObjectEqual< OrbitalSpace > > PSqrtRegistry
 the way I compute exchange matrices is by computing square root of the density (P) this Registry keeps track of P->sqrt(P) mapping
 

Public Member Functions

 FockBuildRuntime (const Ref< OrbitalSpaceRegistry > &oreg, const Ref< AOSpaceRegistry > &aoreg, const Ref< GaussianBasisSet > &refbasis, const RefSymmSCMatrix &aodensity_alpha, const RefSymmSCMatrix &aodensity_beta, const Ref< Integral > &integral, const RefSCVector &electric_field, Ref< MessageGrp > msg=MessageGrp::get_default_messagegrp(), Ref< ThreadGrp > thr=ThreadGrp::get_default_threadgrp())
 
 FockBuildRuntime (StateIn &si)
 
void save_data_state (StateOut &so)
 Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.
 
void obsolete ()
 obsoletes this object
 
bool exists (const std::string &key) const
 Returns true if the given matrix is available.
 
ResultType get (const std::string &key)
 Returns the matrix corresponding to key.
 
const Ref< Integral > & integral () const
 
const Ref< MessageGrp > & msg () const
 
const Ref< ThreadGrp > & thr () const
 
const Ref< GaussianBasisSet > & basis () const
 
const Ref< DensityFittingInfo > & dfinfo () const
 
void dfinfo (const Ref< DensityFittingInfo > &d)
 
const Ref< OrbitalSpaceRegistry > & orbital_registry () const
 
const Ref< FockMatrixRegistry > & fock_registry () const
 
const Ref< AOSpaceRegistry > & ao_registry () const
 
double log2_precision () const
 
void set_densities (const RefSymmSCMatrix &aodensity_alpha, const RefSymmSCMatrix &aodensity_beta)
 sets AO densities. Unless these are identical to the current densities, density-dependent contents will be cleared.
 
RefSymmSCMatrix P () const
 return total density in AO basis
 
RefSymmSCMatrix Po () const
 return open-shell density in AO basis
 
const RefSCVectorelectric_field () const
 returns the uniform electric field (may be a null reference)
 
void set_electric_field (const RefSCVector &efield)
 sets uniform electric field.
 
void set_log2_precision (double prec)
 Specifies the precision of the computed operator matrices.
 
- 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.
 
virtual void print (std::ostream &=ExEnv::out0()) const
 Print the object.
 
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::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 &)
 

Detailed Description

Build Fock matrices using some combination of FockBuilder objects.

Member Function Documentation

◆ get()

ResultType sc::FockBuildRuntime::get ( const std::string & key)

Returns the matrix corresponding to key.

key must be in format recognized by ParsedOneBodyIntKey. If this key is not known, the matrix will be computed by an appropriate FockMatrixBuild object.

◆ log2_precision()

double sc::FockBuildRuntime::log2_precision ( ) const
inline
Returns
prec $ \log_2(\epsilon) $, where $ \epsilon $ is the abolute numerical precision of the integrals requested from the produced operator matrices

◆ save_data_state()

void sc::FockBuildRuntime::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.

◆ set_electric_field()

void sc::FockBuildRuntime::set_electric_field ( const RefSCVector & efield)

sets uniform electric field.

In presence of electric field the core and total Fock matrices will not be cached (i.e. only field-free Fock matrices and their components are cached; assembly of in-field Fock matrices is done each time)

◆ set_log2_precision()

void sc::FockBuildRuntime::set_log2_precision ( double prec)

Specifies the precision of the computed operator matrices.

The default precision assumed by a newly constructed FockBuildRuntime is -50 ( $ 2^{-50} \approx 10^{-15} $ ). Using this function to increase the precision may cause some matrices of lower precision to be purged from cache.

Parameters
prec$ \log_2(\epsilon) $, where $ \epsilon $ is the absolute numerical precision of the integrals requested from the produced Fock matrices.

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.