MPQC  3.0.0-alpha
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. More...
 
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. More...
 
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. More...
 
void set_log2_precision (double prec)
 Specifies the precision of the computed operator matrices. More...
 
- 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. More...
 
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. More...
 
virtual void save_vbase_state (StateOut &)
 Save the virtual bases for the object. More...
 
- 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. More...
 
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. More...
 
- 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. More...
 
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
 
void unmanage ()
 Turn off the reference counting mechanism for this object. More...
 

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. More...
 
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. More...
 
- 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 Sun Jan 26 2020 23:24:05 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.