File GTODipoleMatrixBlock.h¶
- Copyright
This code is licensed under the 3-clause BSD license.
Copyright ETH Zurich, Laboratory for Physical Chemistry, Reiher Group.
See LICENSE.txt for details.
-
namespace
Scine -
namespace
Sparrow -
class
GTODipoleMatrixBlock - #include <GTODipoleMatrixBlock.h>
Class responsible for calculating a block of the dipole matrix in GTO ao basis.
The basis must be one of the STO-nG type.
Public Types
-
using
oneDimensionalArray= std::array<double, 3>¶
-
using
twoDimensionalArray= std::array<oneDimensionalArray, 3>¶
-
using
threeDimensionalArray= std::array<twoDimensionalArray, 3>¶
Public Functions
-
GTODipoleMatrixBlock() Constructor.
It initializes the angular momenta and the orbital AO indices.
-
void
setIntegralMethod(IntegralMethod method) Sets the integral method to either Obara-Saika or analytical.
-
void
initialize(const Eigen::RowVector3d &Ra, const Eigen::RowVector3d &Rb, const Eigen::RowVector3d &dipoleEvaluationCoordinate, double expA, double expB, const Utils::GTOExpansion >oA, const Utils::GTOExpansion >oB) Initializes the data structures used throughout the calculation.
-
std::array<Eigen::MatrixXd, 3>
createSTOBlock(const Utils::GTOExpansion >oA, const Utils::GTOExpansion >oB, const Eigen::RowVector3d &Ra, const Eigen::RowVector3d &Rb, const Eigen::Vector3d &Rab, const Eigen::Vector3d &dipoleEvaluationCoordinate) Calculates a block of the dipole matrix.
Private Functions
-
void
dOrbitalsFromSixCartesianToFiveRealSolidHarmonics()¶
-
void
calculateAnalyticalDipoleIntegrals(int GaussTypeFunctionIndexA, int GaussTypeFunctionIndexB, const Utils::GTOExpansion >oA, const Utils::GTOExpansion >oB, const Eigen::RowVector3d &Ra, const Eigen::RowVector3d &Rb, const Eigen::Vector3d &dipoleEvaluationCoordinate)¶
-
void
calculateSingleGTFPair(int GaussTypeFunctionIndexA, int GaussTypeFunctionIndexB, const Utils::GTOExpansion >oA, const Utils::GTOExpansion >oB, const Eigen::RowVector3d &Ra, const Eigen::RowVector3d &Rb, const Eigen::Vector3d &Rab, const Eigen::Vector3d &dipoleEvaluationCoordinate)¶
-
void
calculateSingleGTFPairIntegralOverShell(const Utils::GTOExpansion >oA, const Utils::GTOExpansion >oB, double exponentSum)¶
-
void
createBlockForOneGTFOverShell(double normalizedCoefficientPrefactor)¶
Private Members
-
int
startAOonA_¶
-
int
startAOonB_¶
-
int
orbitalShellSizeA_¶
-
int
orbitalShellSizeB_¶
-
std::array<Eigen::Matrix<double, 6, 6>, 3>
dipoleComponentsBlocks_¶
-
std::array<nddo::AngularMomentum, 10>
AOMomenta_¶
-
std::array<int, 10>
AOIndexes_¶
-
oneDimensionalArray
PminusA_¶
-
oneDimensionalArray
PminusB_¶
-
oneDimensionalArray
PminusC_¶
-
threeDimensionalArray
overlapIntegral_¶
-
threeDimensionalArray
dipoleIntegral_¶
-
IntegralMethod
method_¶
Private Static Functions
-
static double
getNormalizationFactorAndCoefficient(int GaussTypeFunctionIndexA, int GaussTypeFunctionIndexB, const Utils::GTOExpansion >oA, const Utils::GTOExpansion >oB, double expCoefficientS_00, const Eigen::Vector3d &Rab)¶
-
using
-
class
-
namespace