GQCP
Loading...
Searching...
No Matches
Static Public Member Functions | List of all members
GQCP::IntegralEngine Class Reference

#include <IntegralEngine.hpp>

Collaboration diagram for GQCP::IntegralEngine:
Collaboration graph

Static Public Member Functions

template<typename Shell >
static auto InHouse (const OverlapOperator &op) -> OneElectronIntegralEngine< PrimitiveOverlapIntegralEngine< Shell > >
 
template<typename Shell >
static auto InHouse (const ElectronicDipoleOperator &op) -> OneElectronIntegralEngine< PrimitiveElectronicDipoleIntegralEngine< Shell > >
 
template<typename Shell >
static auto InHouse (const LinearMomentumOperator &op) -> OneElectronIntegralEngine< PrimitiveLinearMomentumIntegralEngine< Shell > >
 
template<typename Shell >
static auto InHouse (const KineticOperator &op) -> OneElectronIntegralEngine< PrimitiveCanonicalKineticEnergyIntegralEngine< Shell > >
 
template<typename Shell >
static auto InHouse (const AngularMomentumOperator &op) -> OneElectronIntegralEngine< PrimitiveAngularMomentumIntegralEngine< Shell > >
 
template<typename Shell >
static auto InHouse (const ElectronicQuadrupoleOperator &op) -> OneElectronIntegralEngine< PrimitiveElectronicQuadrupoleIntegralEngine< Shell > >
 
template<typename Shell >
static auto InHouse (const NuclearAttractionOperator &op) -> OneElectronIntegralEngine< PrimitiveNuclearAttractionIntegralEngine< Shell > >
 
template<typename Shell >
static auto InHouse (const CoulombRepulsionOperator &op) -> TwoElectronIntegralEngine< PrimitiveCoulombRepulsionIntegralEngine< Shell > >
 
static auto Libint (const CoulombRepulsionOperator &op, const size_t max_nprim, const size_t max_l) -> LibintTwoElectronIntegralEngine< CoulombRepulsionOperator::NumberOfComponents >
 
static auto Libint (const ElectronicDipoleOperator &op, const size_t max_nprim, const size_t max_l) -> LibintOneElectronIntegralEngine< ElectronicDipoleOperator::NumberOfComponents >
 
static auto Libint (const NuclearAttractionOperator &op, const size_t max_nprim, const size_t max_l) -> LibintOneElectronIntegralEngine< NuclearAttractionOperator::NumberOfComponents >
 
static auto Libint (const KineticOperator &op, const size_t max_nprim, const size_t max_l) -> LibintOneElectronIntegralEngine< KineticOperator::NumberOfComponents >
 
static auto Libint (const OverlapOperator &op, const size_t max_nprim, const size_t max_l) -> LibintOneElectronIntegralEngine< OverlapOperator::NumberOfComponents >
 
static auto Libcint (const CoulombRepulsionOperator &op, const ShellSet< GTOShell > &shell_set) -> LibcintTwoElectronIntegralEngine< GTOShell, CoulombRepulsionOperator::NumberOfComponents, double >
 
static auto Libcint (const ElectronicDipoleOperator &op, const ShellSet< GTOShell > &shell_set) -> LibcintOneElectronIntegralEngine< GTOShell, ElectronicDipoleOperator::NumberOfComponents, double >
 
static auto Libcint (const NuclearAttractionOperator &op, const ShellSet< GTOShell > &shell_set) -> LibcintOneElectronIntegralEngine< GTOShell, NuclearAttractionOperator::NumberOfComponents, double >
 
static auto Libcint (const KineticOperator &op, const ShellSet< GTOShell > &shell_set) -> LibcintOneElectronIntegralEngine< GTOShell, KineticOperator::NumberOfComponents, double >
 
static auto Libcint (const OverlapOperator &op, const ShellSet< GTOShell > &shell_set) -> LibcintOneElectronIntegralEngine< GTOShell, OverlapOperator::NumberOfComponents, double >
 

Detailed Description

A class that creates integral engines, like a factory class.

Member Function Documentation

◆ InHouse() [1/8]

template<typename Shell >
static auto GQCP::IntegralEngine::InHouse ( const AngularMomentumOperator op) -> OneElectronIntegralEngine<PrimitiveAngularMomentumIntegralEngine<Shell>>
inlinestatic

Create an in-house one-electron integral engine that can calculate integrals over the angular momentum operator.

Template Parameters
ShellThe type of shell that the integrals should be calculated over.
Parameters
opThe angular momentum operator.
Returns
A one-electron integral engine that can calculate integrals over the angular momentum operator.
Note
This integral engine can only calculate integrals over Cartesian d-shells, not spherical d-shells.

◆ InHouse() [2/8]

template<typename Shell >
static auto GQCP::IntegralEngine::InHouse ( const CoulombRepulsionOperator op) -> TwoElectronIntegralEngine<PrimitiveCoulombRepulsionIntegralEngine<Shell>>
inlinestatic

Create an in-house two-electron integral engine that can calculate integrals over the Coulomb repulsion operator.

Template Parameters
ShellThe type of shell that the integrals should be calculated over.
Parameters
opThe Coulomb repulsion operator.
Returns
A two-electron integral engine that can calculate integrals over the Coulomb repulsion operator.
Note
This integral engine can only calculate integrals over Cartesian d-shells, not spherical d-shells.

◆ InHouse() [3/8]

template<typename Shell >
static auto GQCP::IntegralEngine::InHouse ( const ElectronicDipoleOperator op) -> OneElectronIntegralEngine<PrimitiveElectronicDipoleIntegralEngine<Shell>>
inlinestatic

Create an in-house one-electron integral engine that can calculate integrals over the electronic dipole operator.

Template Parameters
ShellThe type of shell that the integrals should be calculated over.
Parameters
opThe electronic dipole operator.
Returns
A one-electron integral engine that can calculate integrals over the electronic dipole operator.
Note
This integral engine can only calculate integrals over Cartesian d-shells, not spherical d-shells.

◆ InHouse() [4/8]

template<typename Shell >
static auto GQCP::IntegralEngine::InHouse ( const ElectronicQuadrupoleOperator op) -> OneElectronIntegralEngine<PrimitiveElectronicQuadrupoleIntegralEngine<Shell>>
inlinestatic

Create an in-house one-electron integral engine that can calculate integrals over the electronic quadrupole operator.

Template Parameters
ShellThe type of shell that the integrals should be calculated over.
Parameters
opThe electronic quadrupole operator.
Returns
A one-electron integral engine that can calculate integrals over the electronic quadrupole operator.
Note
This integral engine can only calculate integrals over Cartesian d-shells, not spherical d-shells.

◆ InHouse() [5/8]

template<typename Shell >
static auto GQCP::IntegralEngine::InHouse ( const KineticOperator op) -> OneElectronIntegralEngine<PrimitiveCanonicalKineticEnergyIntegralEngine<Shell>>
inlinestatic

Create an in-house one-electron integral engine that can calculate integrals over the canonical kinetic energy operator.

Template Parameters
ShellThe type of shell that the integrals should be calculated over.
Parameters
opThe canonical kinetic energy operator.
Returns
A one-electron integral engine that can calculate integrals over the canonical kinetic energy operator.
Note
This integral engine can only calculate integrals over Cartesian d-shells, not spherical d-shells.

◆ InHouse() [6/8]

template<typename Shell >
static auto GQCP::IntegralEngine::InHouse ( const LinearMomentumOperator op) -> OneElectronIntegralEngine<PrimitiveLinearMomentumIntegralEngine<Shell>>
inlinestatic

Create an in-house one-electron integral engine that can calculate integrals over the linear momentum operator.

Template Parameters
ShellThe type of shell that the integrals should be calculated over.
Parameters
opThe linear momentum operator.
Returns
A one-electron integral engine that can calculate integrals over the linear momentum operator.
Note
This integral engine can only calculate integrals over Cartesian d-shells, not spherical d-shells.

◆ InHouse() [7/8]

template<typename Shell >
static auto GQCP::IntegralEngine::InHouse ( const NuclearAttractionOperator op) -> OneElectronIntegralEngine<PrimitiveNuclearAttractionIntegralEngine<Shell>>
inlinestatic

Create an in-house one-electron integral engine that can calculate integrals over the nuclear attraction operator.

Template Parameters
ShellThe type of shell that the integrals should be calculated over.
Parameters
opThe nuclear attraction operator.
Returns
A one-electron integral engine that can calculate integrals over the nuclear attraction operator.
Note
This integral engine can only calculate integrals over Cartesian d-shells, not spherical d-shells.

◆ InHouse() [8/8]

template<typename Shell >
static auto GQCP::IntegralEngine::InHouse ( const OverlapOperator op) -> OneElectronIntegralEngine<PrimitiveOverlapIntegralEngine<Shell>>
inlinestatic

Create an in-house one-electron integral engine that can calculate integrals over the overlap operator.

Template Parameters
ShellThe type of shell that the integrals should be calculated over.
Parameters
opThe overlap operator.
Returns
A one-electron integral engine that can calculate integrals over the overlap operator.
Note
This integral engine can only calculate integrals over Cartesian d-shells, not spherical d-shells.

◆ Libcint() [1/5]

auto GQCP::IntegralEngine::Libcint ( const CoulombRepulsionOperator op,
const ShellSet< GTOShell > &  shell_set 
) -> LibcintTwoElectronIntegralEngine<GTOShell, CoulombRepulsionOperator::NumberOfComponents, double>
static
Parameters
opthe Coulomb repulsion operator
shell_setthe ShellSet whose information should be converted to a RawContainer, which will serve as some kind of 'global' data for the libcint engine to use in all its calculate() calls
Returns
a two-electron integral engine that can calculate integrals over the Coulomb repulsion operator using the Libcint integral library backend

◆ Libcint() [2/5]

auto GQCP::IntegralEngine::Libcint ( const ElectronicDipoleOperator op,
const ShellSet< GTOShell > &  shell_set 
) -> LibcintOneElectronIntegralEngine<GTOShell, ElectronicDipoleOperator::NumberOfComponents, double>
static
Parameters
opthe electron electronic dipole operator
shell_setthe ShellSet whose information should be converted to a RawContainer, which will serve as some kind of 'global' data for the libcint engine to use in all its calculate() calls
Returns
a one-electron integral engine that can calculate integrals over the electronic dipole operator using the Libcint integral library backend
Parameters
opthe electron electronic dipole operator
Returns
a one-electron integral engine that can calculate integrals over the electronic dipole operator using the Libcint integral library backend

◆ Libcint() [3/5]

auto GQCP::IntegralEngine::Libcint ( const KineticOperator op,
const ShellSet< GTOShell > &  shell_set 
) -> LibcintOneElectronIntegralEngine<GTOShell, KineticOperator::NumberOfComponents, double>
static
Parameters
opthe kinetic operator
shell_setthe ShellSet whose information should be converted to a RawContainer, which will serve as some kind of 'global' data for the libcint engine to use in all its calculate() calls
Returns
a one-electron integral engine that can calculate integrals over the kinetic operator using the Libcint integral library backend

◆ Libcint() [4/5]

auto GQCP::IntegralEngine::Libcint ( const NuclearAttractionOperator op,
const ShellSet< GTOShell > &  shell_set 
) -> LibcintOneElectronIntegralEngine<GTOShell, NuclearAttractionOperator::NumberOfComponents, double>
static
Parameters
opthe nuclear attraction operator
shell_setthe ShellSet whose information should be converted to a RawContainer, which will serve as some kind of 'global' data for the libcint engine to use in all its calculate() calls
Returns
a one-electron integral engine that can calculate integrals over the nuclear attraction operator using the Libcint integral library backend

◆ Libcint() [5/5]

auto GQCP::IntegralEngine::Libcint ( const OverlapOperator op,
const ShellSet< GTOShell > &  shell_set 
) -> LibcintOneElectronIntegralEngine<GTOShell, OverlapOperator::NumberOfComponents, double>
static
Parameters
opthe overlap operator
shell_setthe ShellSet whose information should be converted to a RawContainer, which will serve as some kind of 'global' data for the libcint engine to use in all its calculate() calls
Returns
a one-electron integral engine that can calculate integrals over the overlap operator using the Libcint integral library backend

◆ Libint() [1/5]

auto GQCP::IntegralEngine::Libint ( const CoulombRepulsionOperator op,
const size_t  max_nprim,
const size_t  max_l 
) -> LibintTwoElectronIntegralEngine<CoulombRepulsionOperator::NumberOfComponents>
static
Parameters
opthe Coulomb repulsion operator
max_nprimthe maximum number of primitives per contracted Gaussian shell
max_lthe maximum angular momentum of Gaussian shell
Returns
a two-electron integral engine that can calculate integrals over the Coulomb repulsion operator using the Libint integral library backend

◆ Libint() [2/5]

auto GQCP::IntegralEngine::Libint ( const ElectronicDipoleOperator op,
const size_t  max_nprim,
const size_t  max_l 
) -> LibintOneElectronIntegralEngine<ElectronicDipoleOperator::NumberOfComponents>
static
Parameters
opthe electronic electric dipole operator
max_nprimthe maximum number of primitives per contracted Gaussian shell
max_lthe maximum angular momentum of Gaussian shell
Returns
a one-electron integral engine that can calculate integrals over the electronic electric dipole operator using the Libint integral library backend

◆ Libint() [3/5]

auto GQCP::IntegralEngine::Libint ( const KineticOperator op,
const size_t  max_nprim,
const size_t  max_l 
) -> LibintOneElectronIntegralEngine<KineticOperator::NumberOfComponents>
static
Parameters
opthe kinetic operator
max_nprimthe maximum number of primitives per contracted Gaussian shell
max_lthe maximum angular momentum of Gaussian shell
Returns
a one-electron integral engine that can calculate integrals over the kinetic operator using the Libint integral library backend

◆ Libint() [4/5]

auto GQCP::IntegralEngine::Libint ( const NuclearAttractionOperator op,
const size_t  max_nprim,
const size_t  max_l 
) -> LibintOneElectronIntegralEngine<NuclearAttractionOperator::NumberOfComponents>
static
Parameters
opthe nuclear attraction operator
max_nprimthe maximum number of primitives per contracted Gaussian shell
max_lthe maximum angular momentum of Gaussian shell
Returns
a one-electron integral engine that can calculate integrals over the nuclear attraction operator using the Libint integral library backend

◆ Libint() [5/5]

auto GQCP::IntegralEngine::Libint ( const OverlapOperator op,
const size_t  max_nprim,
const size_t  max_l 
) -> LibintOneElectronIntegralEngine<OverlapOperator::NumberOfComponents>
static
Parameters
opthe overlap operator
max_nprimthe maximum number of primitives per contracted Gaussian shell
max_lthe maximum angular momentum of Gaussian shell
Returns
a one-electron integral engine that can calculate integrals over the overlap operator using the Libint integral library backend

The documentation for this class was generated from the following files: