8 #ifndef SPARROW_GTOOVERLAPMATRIXBLOCK_H
9 #define SPARROW_GTOOVERLAPMATRIXBLOCK_H
17 class MatrixWithDerivatives;
26 explicit AngularMomentum(
int lx = 0,
int ly = 0,
int lz = 0) : x(lx), y(ly), z(lz) {
39 template<Utils::DerivativeOrder O>
42 using Value3D = Utils::AutomaticDifferentiation::Value3DType<O>;
43 using Value1D = Utils::AutomaticDifferentiation::Value1DType<O>;
47 Eigen::Matrix<Value3D, Eigen::Dynamic, Eigen::Dynamic>
52 const Eigen::Vector3d& Rab);
53 Eigen::Matrix<Value3D, Eigen::Dynamic, Eigen::Dynamic> computeBlock(
const Utils::GtoExpansion& gA,
55 Value3D directionsProduct(
const Value1D& X,
const Value1D& Y,
const Value1D& Z);
56 Value3D getKBase(
double x,
double y,
double z,
double fac);
57 void setRArray(
double x,
double y,
double z,
double expSum);
59 const double sqrt3, pi;
61 const Value1D nullValue;
62 int startGTFA_, startGTFB_;
64 Eigen::Matrix<Value3D, Eigen::Dynamic, Eigen::Dynamic> result;
69 Value3D KD, contributionD;
77 #endif // SPARROW_GTOOVERLAPMATRIXBLOCK_H
GTOOverlapMatrixBlock()
Constructor initializing the angular momenta and indices of the orbitals used for the calculation...
Definition: GTOOverlapMatrixBlock.cpp:25
Definition: GTOOverlapMatrixBlock.h:25
This class calculates the overlap matrix block and its derivatives for two groups of orbitals on diff...
Definition: GTOOverlapMatrixBlock.h:40
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.
Definition: GTOOverlapMatrixBlock.cpp:51