sc::TwoBodyThreeCenterInt(3)
π NAME π
okay so bestie, <pink>sc::TwoBodyThreeCenterInt</pink> is literally the abstract base type for classes that compute integrals involving, yep, two electrons in three Gaussian functions. that's the whole vibe. periodt β¨
Also β this page is straight out of the MPQC manual, so keep that in mind while you scroll, k? π«Ά
πΈ SYNOPSIS πΈ
lowkey the whole shape of it:
#include <tbint.h>
Inherits sc::RefCount.
Inherited by sc::TwoBodyThreeCenterIntV3.
β¨ Public Types
enum tbint_type { eri =0, r12 =1, r12t1 =2, r12t2 =3 }β these are the types of two-body integrals thatTwoBodyIntunderstands (yes, the class name in the original text isTwoBodyInt, not me being sloppy π):eristands for electron repulsion integral,r12stands for integrals ofr12operator, andr12t1andr12t2are integrals of[r12,T1]and[r12,T2]operators. iconic little enum ngl π
π Public Member Functions
int nbasis () constβ returns the number of basis functions on center one. yes, "center one" twice, see the next one, it's a mood πint nbasis1 () constβ returns the number of basis functions on center one.int nbasis2 () constβ returns the number of basis functions on center two.int nbasis3 () constβ returns the number of basis functions on center three.int nshell () constβ returns the number of shells on center one.int nshell1 () constβ returns the number of shells on center one.int nshell2 () constβ returns the number of shells on center two.int nshell3 () constβ returns the number of shells on center three.Ref< GaussianBasisSet > basis ()β returns the basis set on center one.Ref< GaussianBasisSet > basis1 ()β returns the basis set on center one.Ref< GaussianBasisSet > basis2 ()β returns the basis set on center two.Ref< GaussianBasisSet > basis3 ()β returns the basis set on center three.virtual const double * buffer (tbint_type type=eri) constβ the computed shell integrals get put in the buffer that this member hands you back. πvirtual void compute_shell (int, int, int)=0β give it three shell indices and the integrals get computed and dropped into the buffer. pure virtual, so no shortcuts bestie.virtual int log2_shell_bound (int=-1, int=-1, int=-1)=0β returns log base 2 of the maximum magnitude of any integral in a shell block obtained fromcompute_shell. also pure virtual.int redundant () constβ ifredundantis true, then keep the redundant integrals in the buffer. fr fr.void set_redundant (int i)β seeredundant(). that's the whole description, i don't make the rules π«virtual void set_integral_storage (size_t storage)β this storage is used to cache computed integrals. cute little cache moment.Integral * integral () constβ returns the integral factory that was used to create this object. main character factory energy πβ¨
β Static Public Attributes
static const int num_tbint_types = 4β the total number of such types. four. that's it. that's the number. π
π¦ Protected Member Functions
TwoBodyThreeCenterInt (Integral *integral, const Ref< GaussianBasisSet > &bs1, const Ref< GaussianBasisSet > &bs2, const Ref< GaussianBasisSet > &bs3)β the constructor, protected, so it's giving "invite only" π
π Protected Attributes
Integral * integral_Ref< GaussianBasisSet > bs1_Ref< GaussianBasisSet > bs2_Ref< GaussianBasisSet > bs3_double * buffer_int redundant_
π Detailed Description π
bestie. it's an abstract base type for classes that compute integrals involving two electrons in three Gaussian functions. that's the tea, that's the whole tea. π
π₯ Member Function Documentation π₯
virtual const double* sc::TwoBodyThreeCenterInt::buffer (tbint_type type = eri) const [virtual]
the computed shell integrals get put in the buffer returned by this member. and listen β some TwoBodyInt specializations have more than one buffer, so the type argument selects which buffer comes back. if the requested type isn't supported, then 0 is returned. no buffer for you, girlie π
virtual void sc::TwoBodyThreeCenterInt::compute_shell (int, int, int) [pure virtual]
given three shell indices, integrals get computed and placed in the buffer. the first two indices correspond to electron 1 and the second index corresponds to electron 2. (yes, that's exactly how the original words it β "the first two indices" and "the second index", i'm just the messenger π)
Implemented in sc::TwoBodyThreeCenterIntV3.
virtual int sc::TwoBodyThreeCenterInt::log2_shell_bound (int = -1, int = -1, int = -1) [pure virtual]
returns log base 2 of the maximum magnitude of any integral in a shell block obtained from compute_shell. an index of -1 for any argument indicates any shell. very "idk pick whatever" of it β¨
Implemented in sc::TwoBodyThreeCenterIntV3.
int sc::TwoBodyThreeCenterInt::redundant () const [inline]
if redundant is true, then keep the redundant integrals in the buffer. and the default? true. slay π
π«Ά Author π«Ά
"Generated automatically by Doxygen for MPQC from the source code." β so nobody actually hand-wrote this one, the robots did it. still ate tho π€β¨
ngl this is the vibe check page: abstract base class, three Gaussian functions, two electrons, zero apologies. iykyk π
and that's the page bestie!! π source says Version 2.3.1, dated Sun Oct 4 2020, and it's sc::TwoBodyThreeCenterInt(3) all day. mwah πππ§
π¦ 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