sc::Integral(3)
πΈ NAME πΈ
sc::Integral β straight from the MPQC manual, bestie. This is the <pink>Integral</pink> abstract class, and it acts as a factory to provide objects that compute one and two electron integrals. Factory energy, no cap. π
β¨
β¨ SYNOPSIS β¨
#include <integral.h>
Inherits sc::SavableState.
Inherited by sc::IntegralCCA, sc::IntegralCints, and sc::IntegralV3.
π Public Member Functions π
Integral (StateIn &)β Restore theIntegralobject from the givenStateInobject. Import the vibe. π«ΆIntegral (const Ref< KeyVal > &)β Construct theIntegralobject from the givenKeyValobject. Slay, config-driven. β¨void save_data_state (StateOut &)β Save the base classes (withsave_data_state) and the members in the same order that theStateInCTOR initializes them. Order matters, bestie. πvirtual Integral * clone ()=0β Clones the givenIntegralfactory. The new factory may need to haveset_basisandset_storageto be called on it. Donβt forget the wiring, fr fr. π§virtual int equiv (const Ref< Integral > &)β Returns nonzero if this and the givenIntegralobject have the same integral ordering, normalization conventions, etc. Vibe check: same ordering, same conventions. πvoid set_storage (size_t i)β Sets the total amount of storage, in bytes, that is available. Storage budget: set. πΎsize_t storage_used ()β Returns how much storage has been used. The receipts. π§Ύsize_t storage_unused ()β Returns how much storage was not needed. Leftovers, iconic. πvirtual size_t storage_required_eri (const Ref< GaussianBasisSet > &b1, const Ref< GaussianBasisSet > &b2=0, const Ref< GaussianBasisSet > &b3=0, const Ref< GaussianBasisSet > &b4=0)β Returns how much storage will be needed to initialize a two-body integrals evaluator for electron repulsion integrals. Plan the storage, bestie. π₯virtual size_t storage_required_grt (const Ref< GaussianBasisSet > &b1, const Ref< GaussianBasisSet > &b2=0, const Ref< GaussianBasisSet > &b3=0, const Ref< GaussianBasisSet > &b4=0)β Returns how much storage will be needed to initialize a two-body integrals evaluator for linear R12 integrals. Same storage math, R12 flavor. πvirtual size_t storage_required_eri_deriv (const Ref< GaussianBasisSet > &b1, const Ref< GaussianBasisSet > &b2=0, const Ref< GaussianBasisSet > &b3=0, const Ref< GaussianBasisSet > &b4=0)β Returns how much storage will be needed to initialize a two-body integrals evaluator for derivative electron repulsion integrals. Derivatives need space too. πvoid adjust_storage (ptrdiff_t s)β The specific integral classes use this to tellIntegralhow much memory they are using/freeing. Memory accounting, but make it couture. πRef< PetiteList > petite_list ()β Return thePetiteListobject. Tiny list, big energy. π¦Ref< PetiteList > petite_list (const Ref< GaussianBasisSet > &)β Return thePetiteListobject for the given basis set. Basis-specific petite list, periodt. β¨ShellRotation shell_rotation (int am, SymmetryOperation &, int pure=0)β Return theShellRotationobject for a shell of the given angular momentum. Shell rotation, served fresh. πΈvirtual void set_basis (const Ref< GaussianBasisSet > &b1, const Ref< GaussianBasisSet > &b2=0, const Ref< GaussianBasisSet > &b3=0, const Ref< GaussianBasisSet > &b4=0)β Set the basis set for each center. Four centers can catch these basis sets, no cap. π«Άvirtual CartesianIter * new_cartesian_iter (int)=0β Return aCartesianIterobject. Cartesian iterator: new, pure virtual, iconic. πvirtual RedundantCartesianIter * new_redundant_cartesian_iter (int)=0β Return aRedundantCartesianIterobject. Redundant Cartesian iterator, but make it main character. πvirtual RedundantCartesianSubIter * new_redundant_cartesian_sub_iter (int)=0β Return aRedundantCartesianSubIterobject. Sub-iterator behavior, slay. π§virtual SphericalTransformIter * new_spherical_transform_iter (int l, int inv=0, int subl=-1)=0β Return aSphericalTransformIterobject. Spherical transform iterator with the defaults exactly as written. πvirtual const SphericalTransform * spherical_transform (int l, int inv=0, int subl=-1)=0β Return aSphericalTransformobject. Transform object, no notes. β¨virtual Ref< OneBodyInt > overlap ()=0β Return aOneBodyIntthat computes the overlap. Overlap integrals, cute. πvirtual Ref< OneBodyInt > kinetic ()=0β Return aOneBodyIntthat computes the kinetic energy. Kinetic energy, literally. β‘virtual Ref< OneBodyInt > point_charge (const Ref< PointChargeData > &)=0β Return aOneBodyIntthat computes the integrals for interactions with point charges. Point charge interactions, handled. πvirtual Ref< OneBodyOneCenterInt > point_charge1 (const Ref< PointChargeData > &)β Return aOneBodyIntthat computes the integrals for interactions with point charges. Yes, thatβs the description as written β the signature is right there sayingOneBodyOneCenterInt, bestie. π«Άvirtual Ref< OneBodyInt > nuclear ()=0β Return aOneBodyIntthat computes the nuclear repulsion integrals. Nuclear repulsion, but make it fashion. πvirtual Ref< OneBodyInt > hcore ()=0β Return aOneBodyIntthat computes the core Hamiltonian integrals. Core Hamiltonian, core aesthetic. πvirtual Ref< OneBodyInt > efield_dot_vector (const Ref< EfieldDotVectorData > &)=0β Return aOneBodyIntthat computes the electric field integrals dotted with a given vector. Dot product the electric field, slay. πvirtual Ref< OneBodyInt > dipole (const Ref< DipoleData > &)=0β Return aOneBodyIntthat computes electric dipole moment integrals. Dipole moment integrals, obsessed. πvirtual Ref< OneBodyInt > quadrupole (const Ref< DipoleData > &)=0β Return aOneBodyIntthat computes electric quadrupole moment integrals. Quadrupole, highkey extra. β¨virtual Ref< OneBodyDerivInt > overlap_deriv ()=0β Return aOneBodyDerivIntthat computes overlap derivatives. Derivatives of overlap, no cap. π¦virtual Ref< OneBodyDerivInt > kinetic_deriv ()=0β Return aOneBodyDerivIntthat computes kinetic energy derivatives. Kinetic derivatives, periodt. β‘virtual Ref< OneBodyDerivInt > nuclear_deriv ()=0β Return aOneBodyDerivIntthat computes nuclear repulsion derivatives. Nuclear derivatives, handled. πvirtual Ref< OneBodyDerivInt > hcore_deriv ()=0β Return aOneBodyDerivIntthat computes core Hamiltonian derivatives. Core Hamiltonian derivatives, iconic. πvirtual Ref< TwoBodyThreeCenterInt > electron_repulsion3 ()β Return aTwoBodyThreeCenterIntthat computes electron repulsion integrals. Three-center electron repulsion, served. π₯virtual Ref< TwoBodyThreeCenterDerivInt > electron_repulsion3_deriv ()β Return aTwoBodyThreeCenterIntthat computes electron repulsion integrals. Thatβs the description as written, even with the derivative return type sitting right there. π«Άvirtual Ref< TwoBodyTwoCenterInt > electron_repulsion2 ()β Return aTwoBodyTwoCenterIntthat computes electron repulsion integrals. Two-center electron repulsion, cute. πvirtual Ref< TwoBodyTwoCenterDerivInt > electron_repulsion2_deriv ()β Return aTwoBodyTwoCenterIntthat computes electron repulsion integrals. Again, description saysTwoBodyTwoCenterInt; the signature says derivative, bestie. π§virtual Ref< TwoBodyInt > electron_repulsion ()=0β Return aTwoBodyIntthat computes electron repulsion integrals. The classic electron repulsion moment. β‘virtual Ref< TwoBodyDerivInt > electron_repulsion_deriv ()=0β Return aTwoBodyDerivIntthat computes electron repulsion derivatives. Derivatives of electron repulsion, slay. πvirtual Ref< TwoBodyInt > grt ()β Return aTwoBodyIntthat computes two-electron integrals specific to linear R12 methods. Linear R12 integrals, very niche, very iconic. πRef< MessageGrp > messagegrp ()β Return theMessageGrpused by the integrals objects. Message group, delivered. π¬
π Static Public Member Functions π
static Integral * initial_integral (int &argc, char **argv)β Create an integral factory. Initial integral factory, go off. β¨static void set_default_integral (const Ref< Integral > &)β Specifies a new defaultIntegralfactory. New default, who dis. πstatic Integral * get_default_integral ()β Returns the defaultIntegralfactory. The default factory, retrieved. π
π‘οΈ Protected Member Functions π‘οΈ
Integral (const Ref< GaussianBasisSet > &b1, const Ref< GaussianBasisSet > &b2, const Ref< GaussianBasisSet > &b3, const Ref< GaussianBasisSet > &b4)β Initialize theIntegralobject given aGaussianBasisSetfor each center. Four basis sets walk into a constructorβ¦ π
π Protected Attributes π
Ref< GaussianBasisSet > bs1_Ref< GaussianBasisSet > bs2_Ref< GaussianBasisSet > bs3_Ref< GaussianBasisSet > bs4_size_t storage_size_t storage_used_Ref< MessageGrp > grp_
π Detailed Description π
The Integral abstract class acts as a factory to provide objects that compute one and two electron integrals. Thatβs the whole thesis, bestie β itβs the factory, not the integrals themselves. β¨π
π Member Function Documentation π
okay bestie, this is the function-by-function era of the page and every single method gets its moment β¨
πΈ dipole
virtual Ref<OneBodyInt> sc::Integral::dipole (const Ref< DipoleData > &)
[pure virtual]
Return a OneBodyInt that computes electric dipole moment integrals. The canonical order of integrals in a set is x, y, z.
Implemented in sc::IntegralCCA, sc::IntegralCints, and sc::IntegralV3.
β‘ electron_repulsion2
virtual Ref<TwoBodyTwoCenterInt> sc::Integral::electron_repulsion2 ()
[virtual]
Return a TwoBodyTwoCenterInt that computes electron repulsion integrals.
π¨ If this is not re-implemented it will throw.
Reimplemented in sc::IntegralV3.
β‘ electron_repulsion2_deriv
virtual Ref<TwoBodyTwoCenterDerivInt> sc::Integral::electron_repulsion2_deriv ()
[virtual]
Return a TwoBodyTwoCenterInt that computes electron repulsion integrals.
π¨ If this is not re-implemented it will throw.
β‘ electron_repulsion3
virtual Ref<TwoBodyThreeCenterInt> sc::Integral::electron_repulsion3 ()
[virtual]
Return a TwoBodyThreeCenterInt that computes electron repulsion integrals.
π¨ If this is not re-implemented it will throw.
Reimplemented in sc::IntegralV3.
β‘ electron_repulsion3_deriv
virtual Ref<TwoBodyThreeCenterDerivInt> sc::Integral::electron_repulsion3_deriv ()
[virtual]
Return a TwoBodyThreeCenterInt that computes electron repulsion integrals.
π¨ If this is not re-implemented it will throw.
π§ equiv
virtual int sc::Integral::equiv (const Ref< Integral > &)
[virtual]
Returns nonzero if this and the given Integral object have the same integral ordering, normalization conventions, etc.
π¦ grt
virtual Ref<TwoBodyInt> sc::Integral::grt ()
[virtual]
Return a TwoBodyInt that computes two-electron integrals specific to linear R12 methods. According to the convention in the literature, 'g' stands for electron repulsion integral, 'r' for the integral of r12 operator, and 't' for the commutator integrals. Implementation for this kind of TwoBodyInt is optional.
Reimplemented in sc::IntegralCints.
π initial_integral
static Integral* sc::Integral::initial_integral (int & argc, char ** argv)
[static]
Create an integral factory. This routine looks for a -integral argument, then the environmental variable INTEGRAL. The argument to -integral should be either string for a ParsedKeyVal constructor or a classname.
β οΈ This factory is not guaranteed to have its storage and basis sets set up properly, henceset_basisandset_storageneed to be called on it.
πΈ new_cartesian_iter
virtual CartesianIter* sc::Integral::new_cartesian_iter (int)
[pure virtual]
Return a CartesianIter object. The caller is responsible for freeing the object.
Implemented in sc::IntegralCCA, sc::IntegralCints, and sc::IntegralV3.
πΈ new_redundant_cartesian_iter
virtual RedundantCartesianIter* sc::Integral::new_redundant_cartesian_iter (int)
[pure virtual]
Return a RedundantCartesianIter object. The caller is responsible for freeing the object.
Implemented in sc::IntegralCCA, sc::IntegralCints, and sc::IntegralV3.
πΈ new_redundant_cartesian_sub_iter
virtual RedundantCartesianSubIter* sc::Integral::new_redundant_cartesian_sub_iter (int)
[pure virtual]
Return a RedundantCartesianSubIter object. The caller is responsible for freeing the object.
Implemented in sc::IntegralCCA, sc::IntegralCints, and sc::IntegralV3.
πΈ new_spherical_transform_iter
virtual SphericalTransformIter* sc::Integral::new_spherical_transform_iter
(int l, int inv = 0, int subl = -1) [pure virtual]
Return a SphericalTransformIter object. The caller is responsible for freeing the object.
Implemented in sc::IntegralCCA, sc::IntegralCints, and sc::IntegralV3.
π nuclear
virtual Ref<OneBodyInt> sc::Integral::nuclear ()
[pure virtual]
Return a OneBodyInt that computes the nuclear repulsion integrals. Charges from the atoms on center one are used. If center two is not identical to center one, then the charges on center two are included as well.
Implemented in sc::IntegralCCA, sc::IntegralCints, and sc::IntegralV3.
π quadrupole
virtual Ref<OneBodyInt> sc::Integral::quadrupole (const Ref< DipoleData > &)
[pure virtual]
Return a OneBodyInt that computes electric quadrupole moment integrals. The canonical order of integrals in a set is x^2, xy, xz, y^2, yz, z^2.
Implemented in sc::IntegralCCA, sc::IntegralCints, and sc::IntegralV3.
πΎ save_data_state
void sc::Integral::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.
Reimplemented in sc::IntegralCCA, sc::IntegralCints, and sc::IntegralV3.
π shell_rotation
ShellRotation sc::Integral::shell_rotation (int am, SymmetryOperation &, int pure = 0)
Return the ShellRotation object for a shell of the given angular momentum. Pass nonzero to pure to do solid harmonics.
β spherical_transform
virtual const SphericalTransform* sc::Integral::spherical_transform (int l,
int inv = 0, int subl = -1) [pure virtual]
Return a SphericalTransform object. The pointer is only valid while this Integral object is valid.
Implemented in sc::IntegralCCA, sc::IntegralCints, and sc::IntegralV3.
π Author π
Generated automatically by Doxygen for MPQC from the source code.
That's the whole sc::Integral(3) page, bestie: MPQC docs, version 2.3.1, dated Sun Oct 4 2020. Source/version/date noted, vibe intact, periodt πβ¨
π¦ 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