File GTOOverlapMatrixBlock.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 -
namespace
nddo -
-
template<Utils::derivOrder
O>
classGTOOverlapMatrixBlock - #include <GTOOverlapMatrixBlock.h>
This class calculates the overlap matrix block and its derivatives for two groups of orbitals on different atoms, each group of which shares the same angular momentum.
F.i. s-s, s-p, p-d, d-d, … according to the Obara-Saika method.
Public Types
-
template<>
usingValue3D= Utils::AutomaticDifferentiation::Value3DType<O>¶
-
template<>
usingValue1D= Utils::AutomaticDifferentiation::Value1DType<O>¶
Public Functions
-
GTOOverlapMatrixBlock() Constructor initializing the angular momenta and indices of the orbitals used for the calculation.
-
Eigen::Matrix<Value3D, Eigen::Dynamic, Eigen::Dynamic>
getMatrixBlock(const Utils::GTOExpansion &gA, const Utils::GTOExpansion &gB, const Eigen::Vector3d &Rab) Getter for the matrix block calculated.
Private Functions
-
void
addGTFContribution(int GTFA, int GTFB, const Utils::GTOExpansion &gA, const Utils::GTOExpansion &gB, const Eigen::Vector3d &Rab)¶
-
Eigen::Matrix<Value3D, Eigen::Dynamic, Eigen::Dynamic>
computeBlock(const Utils::GTOExpansion &gA, const Utils::GTOExpansion &gB)¶
-
Value3D
directionsProduct(const Value1D &X, const Value1D &Y, const Value1D &Z)¶
-
Value3D
getKBase(double x, double y, double z, double fac)¶
-
void
setRArray(double x, double y, double z, double expSum)¶
Private Members
-
const double
sqrt3¶
-
const double
pi¶
-
const Value1D
nullValue¶
-
int
startGTFA_¶
-
int
startGTFB_¶
-
int
nGTFsA_¶
-
int
nGTFsB_¶
-
Eigen::Matrix<Value3D, Eigen::Dynamic, Eigen::Dynamic>
result¶
-
template<>
AngularMomentummomenta[10]¶
-
template<>
intAOIndexes[10]¶
-
Value3D
KD¶
-
Value3D
contributionD¶
-
Value1D
Dist1¶
-
Value1D
Dist2¶
-
template<>
-
template<Utils::derivOrder
-
namespace
-
namespace