MPQC
3.0.0-alpha
|
The Compute class provides a means of keeping results up to date. More...
#include <util/misc/compute.h>
Public Member Functions | |
virtual bool | throw_if_tolerance_exceeded () const |
virtual void | obsolete () |
Marks all results as being out of date. More... | |
Protected Member Functions | |
virtual void | compute ()=0 |
Recompute at least the results that have compute true and are not already computed. More... | |
Friends | |
class | ResultInfo |
class | AccResultInfo |
The Compute class provides a means of keeping results up to date.
Derived classes can have member data which is registered with the compute class. When this member data is accessed and it is not available, the compute member function is called. The compute member must be implemented in derived classes and is responsible for computed the requested result.
|
protectedpure virtual |
Recompute at least the results that have compute true and are not already computed.
This should only be called by Result's members.
Implemented in sc::LMP2, sc::ETraIn, sc::Volume, mpqc::TA::CLSCF, sc::OBWfnRDMCumulantTwo, sc::SumMolecularEnergy, sc::SpinFreeRDM< R >, sc::SpinFreeRDM< Two >, sc::SpinFreeRDM< One >, sc::PT2R12, sc::PsiCorrWavefunction, sc::PsiRASSCF, sc::RDMCumulant< R >, sc::RDMCumulant< Two >, sc::MolcasPT2R12, sc::PsiCC3_PT2R12, sc::ExternSpinFreeRDMTwo, sc::PsiCCSD_PT2R12T, sc::PsiCCSD_PT2R12, sc::ExternSpinFreeRDMOne, sc::SuperpositionOfAtomicDensities, sc::BatchElectronDensity, sc::RDM< R >, sc::RDM< Two >, sc::RDM< One >, sc::MBPT2_R12, sc::PsiWavefunction, sc::MBPT2, sc::SCF, sc::CCR12, sc::SpinOrbitalPT2R12, sc::PsiRASCI, sc::TaylorMolecularEnergy, sc::ExternPT2R12, sc::CI, sc::Shape, sc::ElectronDensity, sc::CCSD, sc::CCSD_R12, sc::CCSDPR12, sc::CCSDT, sc::CCSDTQ, sc::Orbital, and sc::MP2BasisExtrap.
|
virtual |
Marks all results as being out of date.
Any subsequent access to results will cause Compute::compute() to be called.
Reimplemented in sc::ETraIn, sc::PsiSCF, sc::Wavefunction, sc::PT2R12, sc::SCF, sc::SpinFreeRDM< R >, sc::SpinFreeRDM< Two >, sc::SpinFreeRDM< One >, sc::MBPT2, sc::PsiCorrWavefunction, sc::MolcasPT2R12, sc::RDMCumulant< R >, sc::RDMCumulant< Two >, sc::PsiCC, sc::MBPT2_R12, mpqc::TA::Wavefunction, sc::ExternSpinFreeRDMTwo, sc::PsiWavefunction, sc::ExternSpinFreeRDMOne, sc::SuperpositionOfAtomicDensities, sc::PsiCC_PT2R12, sc::RDM< R >, sc::RDM< Two >, sc::RDM< One >, sc::SpinOrbitalPT2R12, sc::ManyBodyWavefunction, sc::CCR12, and sc::ExternPT2R12.
Referenced by sc::Function::get_x_reference().