MPQC
3.0.0-alpha
|
TwoBodyMOIntsTransform computes two-body integrals in MO basis using parallel integrals-direct AO->MO transformation. More...
#include <chemistry/qc/lcao/transform_tbint.h>
Classes | |
struct | MOSpaces |
Predefined enumerated type for the MO spaces. More... | |
Public Member Functions | |
TwoBodyMOIntsTransform (StateIn &) | |
TwoBodyMOIntsTransform (const std::string &name, const Ref< MOIntsTransformFactory > &factory, const Ref< TwoBodyIntDescr > &tbintdescr, const Ref< OrbitalSpace > &space1, const Ref< OrbitalSpace > &space2, const Ref< OrbitalSpace > &space3, const Ref< OrbitalSpace > &space4) | |
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. More... | |
const Ref< MOIntsTransformFactory > & | factory () const |
factory who created this | |
std::string | name () const |
Returns the name of the transform. | |
virtual std::string | type () const =0 |
Returns a short label which uniquely identifies the type of transform. | |
const Ref< MemoryGrp > & | mem () const |
Returns the MemoryGrp object. | |
const Ref< MessageGrp > & | msg () const |
Returns the MessageGrp object. | |
const Ref< TwoBodyIntDescr > & | intdescr () const |
Returns the integral set descriptor. | |
const Ref< DistArray4 > & | ints_distarray4 () |
Returns the DistArray4 object that holds the integrals. | |
const Ref< OrbitalSpace > & | space1 () const |
Returns OrbitalSpace object 1. | |
const Ref< OrbitalSpace > & | space2 () const |
Returns OrbitalSpace object 2. | |
const Ref< OrbitalSpace > & | space3 () const |
Returns OrbitalSpace object 3. | |
const Ref< OrbitalSpace > & | space4 () const |
Returns OrbitalSpace object 4. | |
double | log2_epsilon () const |
void | set_log2_epsilon (double prec) |
virtual void | partially_transformed_ints (const Ref< DistArray4 > &) |
Supplies the partially transformed integrals. | |
size_t | memory () const |
Returns amount of memory used by this object after compute() has been called. | |
size_t | peak_memory () const |
Returns the maximum amount of memory that will be used by this object. | |
int | batchsize () const |
Returns the batchsize for each pass of the transformation. | |
bool | dynamic () const |
Returns whether to use dynamic load balancing. | |
unsigned int | num_te_types () const |
Returns the number of types of two body integrals computed. | |
virtual size_t | memgrp_blksize () const =0 |
Returns the number of bytes allocated for each ij-block of integrals of one type in MemoryGrp. More... | |
void | set_top_mole (const Ref< MolecularEnergy > &top_mole) |
Specifies the top-level MolecularEnergy object to use for checkpointing. | |
void | set_dynamic (bool dynamic) |
virtual void | compute ()=0 |
Computes transformed integrals. | |
virtual void | check_int_symm (double threshold=TwoBodyMOIntsTransform::zero_integral)=0 throw (ProgrammingError) |
Check symmetry of transformed integrals. | |
virtual void | obsolete () |
Make the transform obsolete. Next call to compute() will recompute. | |
DistShellPair::SharedData * | shell_pair_data () |
Returns a that data that must be shared between all DistShellPair objects. | |
Public Member Functions inherited from sc::SavableState | |
SavableState & | operator= (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 &) | |
DescribedClass & | operator= (const DescribedClass &) |
ClassDesc * | class_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< DescribedClass > | ref () |
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... | |
Static Public Member Functions | |
static void | set_print_percent (double pp) |
static double | print_percent () |
static void | set_debug (int d) |
static int | debug () |
Static Public Member Functions inherited from sc::SavableState | |
static void | save_state (SavableState *s, StateOut &) |
static SavableState * | restore_state (StateIn &si) |
Restores objects saved with save_state. More... | |
static SavableState * | key_restore_state (StateIn &si, const char *keyword) |
Like restore_state, but keyword is used to override values while restoring. | |
static SavableState * | dir_restore_state (StateIn &si, const char *objectname, const char *keyword=0) |
Protected Member Functions | |
unsigned int | restart_orbital () const |
returns index in range of space1_ where to start the transformation | |
void | init_vars () |
void | reinit_acc () |
void | alloc_mem (const size_t localmem) |
void | dealloc_mem () |
void | set_memgrp (const Ref< MemoryGrp > &new_mem) |
int | compute_transform_batchsize_ (size_t mem_static, int rank_i) |
void | memory_report (std::ostream &os=ExEnv::out0()) const |
Generates a report on memory for the transform : user-specified limits, projected and actual use. More... | |
void | mospace_report (std::ostream &os=ExEnv::out0()) const |
Generates a report on MO spaces for the transform. More... | |
void | print_header (std::ostream &os=ExEnv::out0()) const |
Prints out standard header. More... | |
void | print_footer (std::ostream &os=ExEnv::out0()) const |
Prints out standard footer. More... | |
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 &) | |
RefCount & | operator= (const RefCount &) |
Static Protected Member Functions | |
static int | compute_nij (const int rank_i, const int rank_j, const int nproc, const int me) |
Protected Attributes | |
std::string | name_ |
Ref< MOIntsTransformFactory > | factory_ |
Ref< MolecularEnergy > | top_mole_ |
Ref< MessageGrp > | msg_ |
Ref< MemoryGrp > | mem_ |
Ref< ThreadGrp > | thr_ |
Ref< TwoBodyIntDescr > | tbintdescr_ |
Ref< DistArray4 > | ints_acc_ |
Ref< OrbitalSpace > | space1_ |
Ref< OrbitalSpace > | space2_ |
Ref< OrbitalSpace > | space3_ |
Ref< OrbitalSpace > | space4_ |
int | restart_orbital_ |
size_t | peak_memory_ |
size_t | memory_ |
bool | dynamic_ |
DistShellPair::SharedData | spdata_ |
MOIntsTransform::StoreMethod::type | ints_method_ |
std::string | file_prefix_ |
double | log2_epsilon_ |
size_t | max_memory_ |
size_t | static_memory_ |
int | batchsize_ |
int | npass_ |
Static Protected Attributes | |
static double | zero_integral |
By default, integrals smaller than zero_integral are considered zero. More... | |
TwoBodyMOIntsTransform computes two-body integrals in MO basis using parallel integrals-direct AO->MO transformation.
The target MO integrals are put into an DistArray4 object.
|
inline |
|
pure virtual |
Returns the number of bytes allocated for each ij-block of integrals of one type in MemoryGrp.
It's guaranteed to be divisible by sizeof(double).
Implemented in sc::TwoBodyMOIntsTransform_ixjy_df, sc::TwoBodyMOIntsTransform_iRjS, sc::TwoBodyMOIntsTransform_ixjy, sc::TwoBodyMOIntsTransform_ijxy, and sc::TwoBodyMOIntsTransform_ikjy.
|
protected |
Generates a report on memory for the transform : user-specified limits, projected and actual use.
Assumes formatting info from ExEnv::out0().
|
protected |
Generates a report on MO spaces for the transform.
Assumes formatting info from ExEnv::out0().
|
protected |
Prints out standard footer.
Call at the end of compute().
|
protected |
Prints out standard header.
Call at the beginning of compute().
|
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.
void sc::TwoBodyMOIntsTransform::set_log2_epsilon | ( | double | prec | ) |
|
staticprotected |
By default, integrals smaller than zero_integral are considered zero.
This constant is only used in checking integrals, not computing them.