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