sc::TwoBodyMOIntsTransform(3)

๐Ÿ“ฆ
version 2.3.1 ยท 5 versions
, in ubuntu jammy

๐Ÿ’… 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, and sc::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 a StateIn &.
  • 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 four MOIndexSpace refs go in.
  • 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.
  • 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 the MemoryGrp object.
  • Ref< MessageGrp > msg () const โ€” returns the MessageGrp object.
  • Ref< R12IntsAcc > ints_acc () const โ€” returns the integrals accumulator object.
  • Ref< MOIndexSpace > space1 () const โ€” returns MOIndexSpace object 1.
  • Ref< MOIndexSpace > space2 () const โ€” returns MOIndexSpace object 2.
  • Ref< MOIndexSpace > space3 () const โ€” returns MOIndexSpace object 3.
  • Ref< MOIndexSpace > space4 () const โ€” returns MOIndexSpace object 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 in MemoryGrp. pure virtual, bestie.
  • void set_top_mole (const Ref< MolecularEnergy > &top_mole) โ€” specifies the top-level MolecularEnergy object to use for checkpointing.
  • void set_num_te_types (const int num_te_types) โ€” specifies how many integral types computed by TwoBodyInt to 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 to compute() will recompute.
  • DistShellPair::SharedData * shell_pair_data () โ€” returns the data that must be shared between all DistShellPair objects.

๐Ÿ›ก๏ธ Protected Member Functions ๐Ÿ›ก๏ธ

  • unsigned int restart_orbital () const โ€” returns the index in the range of space1_ 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 than zero_integral are 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().

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