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

#include <IntegralCalculator.hpp>

Collaboration diagram for GQCP::IntegralCalculator:
Collaboration graph

Static Public Member Functions

template<typename Shell , size_t N, typename IntegralScalar >
static auto calculate (BaseOneElectronIntegralEngine< Shell, N, IntegralScalar > &engine, const ShellSet< Shell > &left_shell_set, const ShellSet< Shell > &right_shell_set) -> std::array< MatrixX< IntegralScalar >, N >
 
template<typename Shell , size_t N, typename IntegralScalar >
static auto calculate (BaseTwoElectronIntegralEngine< Shell, N, IntegralScalar > &engine, const ShellSet< Shell > &left_shell_set, const ShellSet< Shell > &right_shell_set) -> std::array< Tensor< IntegralScalar, 4 >, N >
 
template<typename FQOneElectronOperator >
static Matrix< double > calculateLibintIntegrals (const FQOneElectronOperator &fq_one_op, const ScalarBasis< GTOShell > &left_scalar_basis, const ScalarBasis< GTOShell > &right_scalar_basis)
 
template<typename FQOneElectronOperator >
static SquareMatrix< double > calculateLibintIntegrals (const FQOneElectronOperator &fq_one_op, const ScalarBasis< GTOShell > &scalar_basis)
 
static std::array< Matrix< double >, 3 > calculateLibintIntegrals (const ElectronicDipoleOperator &fq_one_op, const ScalarBasis< GTOShell > &left_scalar_basis, const ScalarBasis< GTOShell > &right_scalar_basis)
 
static std::array< SquareMatrix< double >, 3 > calculateLibintIntegrals (const ElectronicDipoleOperator &fq_one_op, const ScalarBasis< GTOShell > &scalar_basis)
 
static SquareRankFourTensor< double > calculateLibintIntegrals (const CoulombRepulsionOperator &fq_two_op, const ScalarBasis< GTOShell > &scalar_basis)
 
static Tensor< double, 4 > calculateLibintIntegrals (const CoulombRepulsionOperator &fq_two_op, const ScalarBasis< GTOShell > &left_scalar_basis, const ScalarBasis< GTOShell > &right_scalar_basis)
 
template<typename FQOneElectronOperator >
static SquareMatrix< double > calculateLibcintIntegrals (const FQOneElectronOperator &fq_one_op, const ScalarBasis< GTOShell > &scalar_basis)
 
static std::array< SquareMatrix< double >, 3 > calculateLibcintIntegrals (const ElectronicDipoleOperator &fq_one_op, const ScalarBasis< GTOShell > &scalar_basis)
 
static SquareRankFourTensor< double > calculateLibcintIntegrals (const CoulombRepulsionOperator &fq_op, const ScalarBasis< GTOShell > &scalar_basis)
 

Detailed Description

A class that calculates integrals over ShellSets: it loops over all shells in the given ShellSets. It just has two static member functions, for cleaner interface calls.

Member Function Documentation

◆ calculate() [1/2]

template<typename Shell , size_t N, typename IntegralScalar >
static auto GQCP::IntegralCalculator::calculate ( BaseOneElectronIntegralEngine< Shell, N, IntegralScalar > &  engine,
const ShellSet< Shell > &  left_shell_set,
const ShellSet< Shell > &  right_shell_set 
) -> std::array<MatrixX<IntegralScalar>, N>
inlinestatic

Calculate all one-electron integrals over the basis functions inside the given shell sets.

Parameters
enginethe engine that can calculate one-electron integrals over shells (not const because we allow for non-const Engine::calculate() calls)
left_shell_setthe set of shells that should appear on the left of the operator
right_shell_setthe set of shells that should appear on the right of the operator
Template Parameters
Shellthe type of shell the integral engine is able to handle
Nthe number of components the operator has
IntegralScalarthe scalar representation of an integral

◆ calculate() [2/2]

template<typename Shell , size_t N, typename IntegralScalar >
static auto GQCP::IntegralCalculator::calculate ( BaseTwoElectronIntegralEngine< Shell, N, IntegralScalar > &  engine,
const ShellSet< Shell > &  left_shell_set,
const ShellSet< Shell > &  right_shell_set 
) -> std::array<Tensor<IntegralScalar, 4>, N>
inlinestatic

Calculate all two-electron integrals over the basis functions inside the given shell sets.

Parameters
enginethe engine that can calculate two-electron integrals over shells
left_shell_setthe set of shells that should appear on the left of the operator
right_shell_setthe set of shells that should appear on the right of the operator
Template Parameters
Shellthe type of shell the integral engine is able to handle
Nthe number of components the operator has
IntegralScalarthe scalar representation of an integral

◆ calculateLibcintIntegrals() [1/3]

static SquareRankFourTensor< double > GQCP::IntegralCalculator::calculateLibcintIntegrals ( const CoulombRepulsionOperator fq_op,
const ScalarBasis< GTOShell > &  scalar_basis 
)
inlinestatic

Calculate the Coulomb repulsion energy integrals, within a given scalar basis, using Libcint.

Parameters
fq_opthe first-quantized operator
scalar_basisthe scalar basis that contains the shells over which the integrals should be calculated
Note
Only use this function for all-Cartesian ShellSets.
Returns
the matrix representation of the Coulomb repulsion operator in this AO basis, using the libcint integral engine

◆ calculateLibcintIntegrals() [2/3]

static std::array< SquareMatrix< double >, 3 > GQCP::IntegralCalculator::calculateLibcintIntegrals ( const ElectronicDipoleOperator fq_one_op,
const ScalarBasis< GTOShell > &  scalar_basis 
)
inlinestatic

Calculate the integrals over the given electronic dipole operator, within a given scalar basis, using libcint.

Parameters
fq_one_opthe electronic dipole operator
scalar_basisthe scalar basis that contains the shells over which the integrals should be calculated
Note
Only use this function for all-Cartesian ShellSets.
Returns
the matrix representation of the Cartesian components of the electrical dipole operator in this AO basis, using the libcint integral engine

◆ calculateLibcintIntegrals() [3/3]

template<typename FQOneElectronOperator >
static SquareMatrix< double > GQCP::IntegralCalculator::calculateLibcintIntegrals ( const FQOneElectronOperator &  fq_one_op,
const ScalarBasis< GTOShell > &  scalar_basis 
)
inlinestatic

Calculate the integrals over the given (first-quantized) one-electron operator, within a given scalar basis, using libcint.

Parameters
fq_one_opthe first-quantized one-electron operator
scalar_basisthe scalar basis that contains the shells over which the integrals should be calculated
Template Parameters
FQOneElectronOperatorthe type of the first-quantized one-electron operator
Note
Only use this function for all-Cartesian ShellSets.
Returns
the matrix representation of the overlap operator in this AO basis, using the libcint integral engine

◆ calculateLibintIntegrals() [1/6]

static Tensor< double, 4 > GQCP::IntegralCalculator::calculateLibintIntegrals ( const CoulombRepulsionOperator fq_two_op,
const ScalarBasis< GTOShell > &  left_scalar_basis,
const ScalarBasis< GTOShell > &  right_scalar_basis 
)
inlinestatic

Calculate the integrals over the given (first-quantized) two-electron operator, over a left and right scalar basis, using Libint2.

Parameters
fq_two_opthe first-quantized operator
left_scalar_basisthe scalar basis that contains the shells that should appear to the left of the operator
right_scalar_basisthe scalar basis that contains the shells that should appear to the right of the operator
Returns
the matrix representation (integrals) of the given first-quantized operator in this scalar basis

◆ calculateLibintIntegrals() [2/6]

static SquareRankFourTensor< double > GQCP::IntegralCalculator::calculateLibintIntegrals ( const CoulombRepulsionOperator fq_two_op,
const ScalarBasis< GTOShell > &  scalar_basis 
)
inlinestatic

Calculate the integrals over the given (first-quantized) two-electron operator, within a given scalar basis, using Libint2.

Parameters
fq_two_opthe first-quantized operator
scalar_basisthe scalar basis that contains the shells over which the integrals should be calculated
Returns
the matrix representation (integrals) of the given first-quantized operator in this scalar basis

◆ calculateLibintIntegrals() [3/6]

static std::array< Matrix< double >, 3 > GQCP::IntegralCalculator::calculateLibintIntegrals ( const ElectronicDipoleOperator fq_one_op,
const ScalarBasis< GTOShell > &  left_scalar_basis,
const ScalarBasis< GTOShell > &  right_scalar_basis 
)
inlinestatic

Calculate the integrals over the given (first-quantized) one-electron operator, over a left and right scalar basis, using Libint2.

Parameters
fq_one_opthe first-quantized one-electron operator
left_scalar_basisthe scalar basis that contains the shells that should appear to the left of the operator
right_scalar_basisthe scalar basis that contains the shells that should appear to the right of the operator
Returns
the matrix representation (integrals) of the given first-quantized operator in this scalar basis

◆ calculateLibintIntegrals() [4/6]

static std::array< SquareMatrix< double >, 3 > GQCP::IntegralCalculator::calculateLibintIntegrals ( const ElectronicDipoleOperator fq_one_op,
const ScalarBasis< GTOShell > &  scalar_basis 
)
inlinestatic

Calculate the integrals over the given (first-quantized) one-electron operator, within a given scalar basis, using Libint2.

Parameters
fq_one_opthe first-quantized one-electron operator
scalar_basisthe scalar basis that contains the shells over which the integrals should be calculated
Returns
the matrix representation (integrals) of the given first-quantized operator in this scalar basis

◆ calculateLibintIntegrals() [5/6]

template<typename FQOneElectronOperator >
static Matrix< double > GQCP::IntegralCalculator::calculateLibintIntegrals ( const FQOneElectronOperator &  fq_one_op,
const ScalarBasis< GTOShell > &  left_scalar_basis,
const ScalarBasis< GTOShell > &  right_scalar_basis 
)
inlinestatic

Calculate the integrals over the given (first-quantized) one-electron operator, over a left and right scalar basis, using Libint2.

Parameters
fq_one_opthe first-quantized one-electron operator
left_scalar_basisthe scalar basis that contains the shells that appear to the left of the operator
right_scalar_basisthe scalar basis that contains the shell sets that appear to the right of the operator over which the integrals should be calculated
Template Parameters
FQOneElectronOperatorthe type of the first-quantized one-electron operator
Returns
the matrix representation (integrals) of the given first-quantized operator in this scalar basis

◆ calculateLibintIntegrals() [6/6]

template<typename FQOneElectronOperator >
static SquareMatrix< double > GQCP::IntegralCalculator::calculateLibintIntegrals ( const FQOneElectronOperator &  fq_one_op,
const ScalarBasis< GTOShell > &  scalar_basis 
)
inlinestatic

Calculate the integrals over the given (first-quantized) one-electron operator, within a given scalar basis, using Libint2.

Parameters
fq_one_opthe first-quantized one-electron operator
scalar_basisthe scalar basis that contains the shells over which the integrals should be calculated
Template Parameters
FQOneElectronOperatorthe type of the first-quantized one-electron operator
Returns
the matrix representation (integrals) of the given first-quantized operator in this scalar basis

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