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