8 #ifndef SPARROW_TWOELECTRONMATRIX_H
9 #define SPARROW_TWOELECTRONMATRIX_H
18 enum class ElementType : unsigned;
20 class AtomsOrbitalsIndexes;
27 class OneCenterIntegralContainer;
28 class OneCenterTwoElectronIntegrals;
29 class TwoCenterIntegralContainer;
30 class ElementParameters;
31 class AtomicParameters;
34 class Global2c2eMatrix;
50 void calculateBlocks();
51 void calculateSameAtomBlock(
int startIndex,
int nAOs, Utils::ElementType el, Eigen::MatrixXd& G,
52 Eigen::MatrixXd& GAlpha, Eigen::MatrixXd& GBeta);
54 Eigen::MatrixXd& G, Eigen::MatrixXd& GAlpha, Eigen::MatrixXd& GBeta);
55 template<Utils::Derivative O>
56 void addDerivatives(Utils::AutomaticDifferentiation::DerivativeContainerType<O>& derivativeContainer)
const;
57 const Eigen::MatrixXd& operator()()
const {
60 const Eigen::MatrixXd& getMatrix()
const {
63 const Eigen::MatrixXd& getAlpha()
const {
66 const Eigen::MatrixXd& getBeta()
const {
80 template<Utils::Derivative O>
81 void addDerivativesForBlock(Utils::AutomaticDifferentiation::DerivativeContainerType<O>& derivativeContainer,
int a,
int b,
85 const Eigen::MatrixXd &P, &PAlpha_, &PBeta_;
91 Eigen::MatrixXd G_, GAlpha_, GBeta_;
101 #endif // SPARROW_TWOELECTRONMATRIX_H
Definition: Global2c2eMatrix.h:31
Definition: ElementParameters.h:26
Definition: oneCenterIntegralContainer.h:32
Class to generate the two-electron matrix G for semi-empirical methods. This class is parallelized wi...
Definition: TwoElectronMatrix.h:42
ConceptualDftContainer calculate(double energy, const Eigen::VectorXd &atomicCharges, double energyPlus, const Eigen::VectorXd &atomicChargesPlus, double energyMinus, const Eigen::VectorXd &atomicChargesMinus)
This class contains smart pointers to two-center two-electron matrices for different atoms...
Definition: TwoCenterIntegralContainer.h:33