sc::Integral(3)

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

🌸 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 the Integral object from the given StateIn object. Import the vibe. 🫢
  • Integral (const Ref< KeyVal > &) β€” Construct the Integral object from the given KeyVal object. Slay, config-driven. ✨
  • 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. Order matters, bestie. πŸŽ€
  • virtual Integral * clone ()=0 β€” Clones the given Integral factory. The new factory may need to have set_basis and set_storage to be called on it. Don’t forget the wiring, fr fr. 🧚
  • virtual int equiv (const Ref< Integral > &) β€” Returns nonzero if this and the given Integral object 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 tell Integral how much memory they are using/freeing. Memory accounting, but make it couture. πŸŽ€
  • Ref< PetiteList > petite_list () β€” Return the PetiteList object. Tiny list, big energy. πŸ¦‹
  • Ref< PetiteList > petite_list (const Ref< GaussianBasisSet > &) β€” Return the PetiteList object for the given basis set. Basis-specific petite list, periodt. ✨
  • ShellRotation shell_rotation (int am, SymmetryOperation &, int pure=0) β€” Return the ShellRotation object 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 a CartesianIter object. Cartesian iterator: new, pure virtual, iconic. πŸ’…
  • virtual RedundantCartesianIter * new_redundant_cartesian_iter (int)=0 β€” Return a RedundantCartesianIter object. Redundant Cartesian iterator, but make it main character. πŸ‘‘
  • virtual RedundantCartesianSubIter * new_redundant_cartesian_sub_iter (int)=0 β€” Return a RedundantCartesianSubIter object. Sub-iterator behavior, slay. 🧚
  • virtual SphericalTransformIter * new_spherical_transform_iter (int l, int inv=0, int subl=-1)=0 β€” Return a SphericalTransformIter object. Spherical transform iterator with the defaults exactly as written. 🌐
  • virtual const SphericalTransform * spherical_transform (int l, int inv=0, int subl=-1)=0 β€” Return a SphericalTransform object. Transform object, no notes. ✨
  • virtual Ref< OneBodyInt > overlap ()=0 β€” Return a OneBodyInt that computes the overlap. Overlap integrals, cute. πŸ’–
  • virtual Ref< OneBodyInt > kinetic ()=0 β€” Return a OneBodyInt that computes the kinetic energy. Kinetic energy, literally. ⚑
  • virtual Ref< OneBodyInt > point_charge (const Ref< PointChargeData > &)=0 β€” Return a OneBodyInt that computes the integrals for interactions with point charges. Point charge interactions, handled. πŸ”Œ
  • virtual Ref< OneBodyOneCenterInt > point_charge1 (const Ref< PointChargeData > &) β€” Return a OneBodyInt that computes the integrals for interactions with point charges. Yes, that’s the description as written β€” the signature is right there saying OneBodyOneCenterInt, bestie. 🫢
  • virtual Ref< OneBodyInt > nuclear ()=0 β€” Return a OneBodyInt that computes the nuclear repulsion integrals. Nuclear repulsion, but make it fashion. πŸŽ€
  • virtual Ref< OneBodyInt > hcore ()=0 β€” Return a OneBodyInt that computes the core Hamiltonian integrals. Core Hamiltonian, core aesthetic. πŸ‘‘
  • virtual Ref< OneBodyInt > efield_dot_vector (const Ref< EfieldDotVectorData > &)=0 β€” Return a OneBodyInt that 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 a OneBodyInt that computes electric dipole moment integrals. Dipole moment integrals, obsessed. πŸ’…
  • virtual Ref< OneBodyInt > quadrupole (const Ref< DipoleData > &)=0 β€” Return a OneBodyInt that computes electric quadrupole moment integrals. Quadrupole, highkey extra. ✨
  • virtual Ref< OneBodyDerivInt > overlap_deriv ()=0 β€” Return a OneBodyDerivInt that computes overlap derivatives. Derivatives of overlap, no cap. πŸ¦‹
  • virtual Ref< OneBodyDerivInt > kinetic_deriv ()=0 β€” Return a OneBodyDerivInt that computes kinetic energy derivatives. Kinetic derivatives, periodt. ⚑
  • virtual Ref< OneBodyDerivInt > nuclear_deriv ()=0 β€” Return a OneBodyDerivInt that computes nuclear repulsion derivatives. Nuclear derivatives, handled. πŸŽ€
  • virtual Ref< OneBodyDerivInt > hcore_deriv ()=0 β€” Return a OneBodyDerivInt that computes core Hamiltonian derivatives. Core Hamiltonian derivatives, iconic. πŸ‘‘
  • virtual Ref< TwoBodyThreeCenterInt > electron_repulsion3 () β€” Return a TwoBodyThreeCenterInt that computes electron repulsion integrals. Three-center electron repulsion, served. πŸ”₯
  • virtual Ref< TwoBodyThreeCenterDerivInt > electron_repulsion3_deriv () β€” Return a TwoBodyThreeCenterInt that 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 a TwoBodyTwoCenterInt that computes electron repulsion integrals. Two-center electron repulsion, cute. πŸ’–
  • virtual Ref< TwoBodyTwoCenterDerivInt > electron_repulsion2_deriv () β€” Return a TwoBodyTwoCenterInt that computes electron repulsion integrals. Again, description says TwoBodyTwoCenterInt; the signature says derivative, bestie. 🧚
  • virtual Ref< TwoBodyInt > electron_repulsion ()=0 β€” Return a TwoBodyInt that computes electron repulsion integrals. The classic electron repulsion moment. ⚑
  • virtual Ref< TwoBodyDerivInt > electron_repulsion_deriv ()=0 β€” Return a TwoBodyDerivInt that computes electron repulsion derivatives. Derivatives of electron repulsion, slay. πŸ’…
  • virtual Ref< TwoBodyInt > grt () β€” Return a TwoBodyInt that computes two-electron integrals specific to linear R12 methods. Linear R12 integrals, very niche, very iconic. 🌈
  • Ref< MessageGrp > messagegrp () β€” Return the MessageGrp used 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 default Integral factory. New default, who dis. πŸ‘‘
  • static Integral * get_default_integral () β€” Returns the default Integral factory. 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 the Integral object given a GaussianBasisSet for 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, hence set_basis and set_storage need 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