sc::TwoBodyInt(3)
โจ sc::TwoBodyInt โจ
okay so real talk, this is the sc::TwoBodyInt page from the MPQC manual (yep, section 3, the library-call girlies ๐
). Buckle up bestie, we're going abstract-base-class mode ๐ฆ
๐ NAME ๐
sc::TwoBodyInt โ the abstract base type for all the classes that compute integrals involving two electrons. it's giving "template of a template", main character energy but make it pure-virtual ๐
๐ SYNOPSIS ๐
#include <tbint.h>
- Inherits
sc::RefCount. - Inherited by
sc::TwoBodyIntCCA,sc::TwoBodyIntCints, andsc::TwoBodyIntV3.
๐ธ Public Types ๐ธ
enum tbint_type { eri =0, r12 =1, r12t1 =2, r12t2 =3 }โ these are the types of two-body integrals thatTwoBodyIntunderstands, and the lore is:eristands for electron repulsion integral,r12stands for integrals of ther12operator, andr12t1andr12t2are integrals of the[r12,T1]and[r12,T2]operators. literally the whole cast of characters ๐ซถ
๐ฆ Public Member Functions ๐ฆ
int nbasis () constโ Return the number of basis functions on center one.int nbasis1 () constโ Return the number of basis functions on center one. (yes bestie, that's what it says, same words asnbasis()๐)int nbasis2 () constโ Return the number of basis functions on center two.int nbasis3 () constโ Return the number of basis functions on center three.int nbasis4 () constโ Return the number of basis functions on center four.int nshell () constโ Return the number of shells on center one.int nshell1 () constโ Return the number of shells on center one.int nshell2 () constโ Return the number of shells on center two.int nshell3 () constโ Return the number of shells on center three.int nshell4 () constโ Return the number of shells on center four.Ref< GaussianBasisSet > basis ()โ Return the basis set on center one.Ref< GaussianBasisSet > basis1 ()โ Return the basis set on center one.Ref< GaussianBasisSet > basis2 ()โ Return the basis set on center two.Ref< GaussianBasisSet > basis3 ()โ Return the basis set on center three.Ref< GaussianBasisSet > basis4 ()โ Return the basis set on center four.virtual const double * buffer (tbint_type type=eri) constโ the computed shell integrals get put in the buffer that this member returns. iconic behavior honestly โจvirtual void compute_shell (int, int, int, int)=0โ you hand it four shell indices, it computes the integrals and drops them in the buffer. that's the whole vibe.virtual int log2_shell_bound (int=-1, int=-1, int=-1, int=-1)=0โ Return log base 2 of the maximum magnitude of any integral in a shell block obtained fromcompute_shell.virtual int redundant () constโ ifredundantis true, then keep redundant integrals in the buffer. no notes ๐ฅvirtual void set_redundant (int i)โ Seeredundant(). (the world's shortest cross-reference, we love a low-effort icon ๐)virtual void set_integral_storage (size_t storage)โ This storage is used to cache computed integrals.Integral * integral () constโ Return the integral factory that was used to create this object.
๐ 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 ๐
TwoBodyInt (Integral *integral, const Ref< GaussianBasisSet > &bs1, const Ref< GaussianBasisSet > &bs2, const Ref< GaussianBasisSet > &bs3, const Ref< GaussianBasisSet > &bs4)โ the constructor, protected, so it's for the subclasses only, not for random people on the street ๐ง
โญ Protected Attributes โญ
Integral * integral_Ref< GaussianBasisSet > bs1_Ref< GaussianBasisSet > bs2_Ref< GaussianBasisSet > bs3_Ref< GaussianBasisSet > bs4_double * buffer_int redundant_
๐ Detailed Description ๐
This is an abstract base type for classes that compute integrals involving two electrons. abstract ๐ฎ like it's not doing the math itself, it's the concept of the math, and honestly? respect.
๐ Member Function Documentation ๐
virtual const double* sc::TwoBodyInt::buffer (tbint_type type = eri) const
[virtual]
The computed shell integrals will be put in the buffer returned by this member. Some TwoBodyInt specializations have more than one buffer, and the type argument selects which buffer you get back. and listen: if the requested type is not supported, then 0 is returned. no buffer, no drama, just a zero ๐ญ
- Reimplemented in
sc::TwoBodyIntCints. - Referenced by
sc::LocalGBuild< T >::run().
virtual void sc::TwoBodyInt::compute_shell (int, int, int, int)
[pure virtual]
Given four shell indices, integrals will be computed and placed in the buffer. the mapping is: the first two indices correspond to electron 1, and the second two indices correspond to electron 2. two electrons, two and two, the symmetry ate ๐ซถ
- Implemented in
sc::TwoBodyIntCCA,sc::TwoBodyIntCints, andsc::TwoBodyIntV3. - Referenced by
sc::LocalGBuild< T >::run().
virtual int sc::TwoBodyInt::log2_shell_bound (int = -1, int = -1, int = -1, int = -1)
[pure virtual]
Return log base 2 of the maximum magnitude of any integral in a shell block obtained from compute_shell. and here's the trick: an index of -1 for any argument indicates any shell. so -1 is the "idc, surprise me" value ๐
- Implemented in
sc::TwoBodyIntCCA,sc::TwoBodyIntCints, andsc::TwoBodyIntV3. - Referenced by
sc::LocalGBuild< T >::run().
virtual int sc::TwoBodyInt::redundant () const
[inline], [virtual]
If redundant is true, then keep redundant integrals in the buffer. The default is true. so yeah, redundant-by-default, that's just how she is ๐
- Reimplemented in
sc::TwoBodyIntCCA.
๐ Author ๐
Generated automatically by Doxygen for MPQC from the source code. (not a human, a robot, and it still ate ๐คโจ)
heads up bestie: this whole page is auto-generated docs. so if a description looks like it got copy-pasted from the line above it, that's because it did, and we are NOT fixing it, we are respecting the source ๐ซก
and that's the page!! ๐ made with MPQC Version 2.3.1, dated Sun Oct 4 2020 โ yeah she's a little vintage but she's still slaying, 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