8 #ifndef SPARROW_DFTB_ZEROORDERMATRICESCALCULATOR_H
9 #define SPARROW_DFTB_ZEROORDERMATRICESCALCULATOR_H
21 class AtomsOrbitalsIndexes;
36 const DFTBCommon::DiatomicParameterContainer& diatomicPar,
52 void calculateFockMatrix(Utils::DerivativeOrder ) {
55 void addDerivatives(Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::Derivative::First>& derivatives,
56 const Eigen::MatrixXd& overlapDerivativeMultiplier)
const;
57 void addDerivatives(Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::Derivative::SecondAtomic>& derivatives,
58 const Eigen::MatrixXd& overlapDerivativeMultiplier)
const;
59 void addDerivatives(Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::Derivative::SecondFull>& derivatives,
60 const Eigen::MatrixXd& overlapDerivativeMultiplier)
const;
63 void calculateOverlap(Utils::DerivativeOrder highestRequiredOrder);
69 template<Utils::DerivativeOrder O>
71 template<Utils::DerivativeOrder O>
72 void constructPartOfH0S();
73 template<Utils::Derivative O>
74 void addDerivativesImpl(Utils::AutomaticDifferentiation::DerivativeContainerType<O>& derivatives,
75 const Eigen::MatrixXd& overlapDerivativeMultiplier)
const;
82 const DFTBCommon::AtomicParameterContainer& atomicPar_;
83 const DFTBCommon::DiatomicParameterContainer& diatomicPar_;
91 #endif // SPARROW_DFTB_ZEROORDERMATRICESCALCULATOR_H
void constructH0S(Utils::DerivativeOrder order)
Calculate the remaining parts of the Hamiltonian and overlap matrices.
Definition: ZeroOrderMatricesCalculator.cpp:75
void initializeFockCalculator()
Correspond to functions from ElectronicContributionCalculator Some of these functions do nothing to a...
Definition: ZeroOrderMatricesCalculator.h:50
This class calculates the matrices resulting from the zeroth order expansion of the DFT energy for th...
Definition: ZeroOrderMatricesCalculator.h:32
void initializeH0S()
Initializes the zeroth order corrected Hamiltonian and the overlap matrices. Furthermore, the one-center blocks are already pre-calculated, as they remain constant.
Definition: ZeroOrderMatricesCalculator.cpp:58