sc::TwoBodyMOIntsTransform(3)
๐
sc::TwoBodyMOIntsTransform(3) โ an MPQC manual page, bestie
โจ NAME โจ
okay so sc::TwoBodyMOIntsTransform is literally the class that computes two-body integrals in the MO basis using a parallel integrals-direct AO->MO transformation. thatโs the whole main-character job. periodt. ๐
๐ฆ SYNOPSIS ๐ฆ
#include <transform_tbint.h>
- Inherits
sc::SavableState. - Inherited by
sc::TwoBodyMOIntsTransform_ijxy,sc::TwoBodyMOIntsTransform_ikjy, andsc::TwoBodyMOIntsTransform_ixjy.
๐ Classes ๐
struct MOSpacesโ a predefined enumerated type for the MO spaces, bestie. itโs giving โorganized lil enum energy.โ โจ
๐ Public Member Functions ๐
TwoBodyMOIntsTransform (StateIn &)โ constructor that takes aStateIn &.TwoBodyMOIntsTransform (const std::string &name, const Ref< MOIntsTransformFactory > &factory, const Ref< MOIndexSpace > &space1, const Ref< MOIndexSpace > &space2, const Ref< MOIndexSpace > &space3, const Ref< MOIndexSpace > &space4)โ the full constructor: name, factory, and all fourMOIndexSpacerefs go in.void save_data_state (StateOut &)โ save the base classes (withsave_data_state) and the members in the same order that theStateInCTOR initializes them.std::string name () constโ returns the name of the transform.virtual std::string type () const =0โ returns a short label that uniquely identifies the type of transform. pure virtual, so the derived girlies have to bring it. ๐Ref< MemoryGrp > mem () constโ returns theMemoryGrpobject.Ref< MessageGrp > msg () constโ returns theMessageGrpobject.Ref< R12IntsAcc > ints_acc () constโ returns the integrals accumulator object.Ref< MOIndexSpace > space1 () constโ returnsMOIndexSpaceobject 1.Ref< MOIndexSpace > space2 () constโ returnsMOIndexSpaceobject 2.Ref< MOIndexSpace > space3 () constโ returnsMOIndexSpaceobject 3.Ref< MOIndexSpace > space4 () constโ returnsMOIndexSpaceobject 4.double print_percent () constโ returns the update print frequency.int batchsize () constโ returns the batchsize for each pass of the transformation.int debug () constโ returns the debug level.bool dynamic () constโ returns whether to use dynamic load balancing.int num_te_types () constโ returns the number of types of two body integrals computed.virtual const size_t memgrp_blksize () const =0โ returns the number of bytes allocated for each ij-block of integrals of one type inMemoryGrp. pure virtual, bestie.void set_top_mole (const Ref< MolecularEnergy > &top_mole)โ specifies the top-levelMolecularEnergyobject to use for checkpointing.void set_num_te_types (const int num_te_types)โ specifies how many integral types computed byTwoBodyIntto be transformed. Default is 1.void set_memory (const size_t memory)โ sets memory; the original page doesnโt spell out extra details here, so Iโm not gonna invent any. ๐void set_debug (int debug)โ sets the debug level.void set_dynamic (bool dynamic)โ sets whether to use dynamic load balancing.void set_print_percent (double print_percent)โ sets the update print frequency.virtual void compute ()=0โ computes transformed integrals. pure virtual, so yes, derived classes must do the actual work. ๐virtual void check_int_symm (double threshold=TwoBodyMOIntsTransform::zero_integral) const =0 throw (ProgrammingError)โ check symmetry of transformed integrals.virtual void obsolete ()โ make the transform obsolete. next call tocompute()will recompute.DistShellPair::SharedData * shell_pair_data ()โ returns the data that must be shared between allDistShellPairobjects.
๐ก๏ธ Protected Member Functions ๐ก๏ธ
unsigned int restart_orbital () constโ returns the index in the range ofspace1_where to start the transformation.void init_vars ()โ no extra description in the original; itโs just here doing its lil thing.void reinit_acc ()โ no extra description in the original.void alloc_mem (const size_t localmem)โ no extra description in the original.void dealloc_mem ()โ no extra description in the original.int compute_transform_batchsize_ (size_t mem_static, int rank_i)โ no extra description in the original.void memory_report (std::ostream &os=ExEnv::out0()) constโ generates a report on memory for the transform: user-specified limits, projected and actual use.void mospace_report (std::ostream &os=ExEnv::out0()) constโ generates a report on MO spaces for the transform.void print_header (std::ostream &os=ExEnv::out0()) constโ prints out standard header.void print_footer (std::ostream &os=ExEnv::out0()) constโ prints out standard footer.
๐ง Static Protected Member Functions ๐ง
static int compute_nij (const int rank_i, const int rank_j, const int nproc, const int me)โ no extra description in the original, bestie. itโs just chillinโ there.
๐ฎ Protected Attributes ๐ฎ
std::string name_Ref< MOIntsTransformFactory > factory_Ref< MolecularEnergy > top_mole_Ref< MessageGrp > msg_Ref< MemoryGrp > mem_Ref< ThreadGrp > thr_Ref< R12IntsAcc > ints_acc_Ref< MOIndexSpace > space1_Ref< MOIndexSpace > space2_Ref< MOIndexSpace > space3_Ref< MOIndexSpace > space4_int num_te_types_size_t memory_bool dynamic_double print_percent_DistShellPair::SharedData spdata_int debug_MOIntsTransformFactory::StoreMethod ints_method_std::string file_prefix_size_t mem_static_int batchsize_int npass_
๐ Static Protected Attributes ๐
static constexpr double zero_integral = 1.0e-12โ by default, integrals smaller thanzero_integralare considered zero. this constant is only used in checking integrals, not computing them. important distinction, bestie. ๐
๐ Additional Inherited Members ๐
the original page has this heading but doesnโt list any extra items under it, so weโre just leaving it cute and empty-ish. ๐ซถ
๐ธ Detailed Description ๐ธ
TwoBodyMOIntsTransform computes two-body integrals in the MO basis using a parallel integrals-direct AO->MO transformation. thatโs the entire vibe, no cap. โจ
๐ Member Function Documentation ๐
๐ง virtual const size_t sc::TwoBodyMOIntsTransform::memgrp_blksize () const [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). math girlie behavior ๐งฎ
implemented in sc::TwoBodyMOIntsTransform_ixjy, sc::TwoBodyMOIntsTransform_ijxy, and sc::TwoBodyMOIntsTransform_ikjy.
๐ void sc::TwoBodyMOIntsTransform::memory_report (std::ostream & os = ExEnv::out0()) const [protected]
generates a report on memory for the transform: user-specified limits, projected and actual use. assumes formatting info from ExEnv::out0().
๐ฆ void sc::TwoBodyMOIntsTransform::mospace_report (std::ostream & os = ExEnv::out0()) const [protected]
generates a report on MO spaces for the transform. assumes formatting info from ExEnv::out0().
๐ธ void sc::TwoBodyMOIntsTransform::print_footer (std::ostream & os = ExEnv::out0()) const [protected]
prints out standard footer. call at the end of compute(). closing credits energy ๐ฌ
โญ void sc::TwoBodyMOIntsTransform::print_header (std::ostream & os = ExEnv::out0()) const [protected]
prints out standard header. call at the beginning of compute(). opening credits energy ๐ฌ
๐ void sc::TwoBodyMOIntsTransform::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.
๐ Member Data Documentation ๐
๐ง constexpr double sc::TwoBodyMOIntsTransform::zero_integral = 1.0e-12 [static], [constexpr], [protected]
by default, integrals smaller than zero_integral are considered zero. this constant is only used in checking integrals, not computing them. read that twice, bestie ๐
โ๏ธ Author โ๏ธ
Generated automatically by Doxygen for MPQC from the source code.
xoxo, bestie ๐ โ this page is for MPQC, version 2.3.1, dated Sun Oct 4 2020, and itโs sc::TwoBodyMOIntsTransform(3) signing off โจ๐ซถ
๐ฆ where this page comes from
- ubuntu jammy: libsc-doc 2.3.1-21
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms