sc::TwoBodyThreeCenterInt(3)

πŸ“¦
version 2.3.1 Β· 5 versions
, in ubuntu jammy

πŸ’… 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 that TwoBodyInt understands (yes, the class name in the original text is TwoBodyInt, not me being sloppy πŸ’€): eri stands for electron repulsion integral, r12 stands for integrals of r12 operator, and r12t1 and r12t2 are 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 from compute_shell. also pure virtual.
  • int redundant () const β€” if redundant is true, then keep the redundant integrals in the buffer. fr fr.
  • void set_redundant (int i) β€” see redundant(). 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