File ZeroOrderMatricesCalculator.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
dftb -
class
ZeroOrderMatricesCalculator - #include <ZeroOrderMatricesCalculator.h>
This class calculates the matrices resulting from the zeroth order expansion of the DFT energy for the DFTB methods.
Public Functions
-
ZeroOrderMatricesCalculator(const Utils::ElementTypeCollection &elements, const Utils::PositionCollection &positions, const Utils::AtomsOrbitalsIndexes &aoIndexes, const DFTBCommon::AtomicParameterContainer &atomicPar, const DFTBCommon::DiatomicParameterContainer &diatomicPar, const Utils::DensityMatrix &densityMatrix)¶
-
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.
-
void
constructH0S(Utils::derivOrder order) Calculate the remaining parts of the Hamiltonian and overlap matrices.
-
void
initializeFockCalculator() Correspond to functions from ElectronicContributionCalculator Some of these functions do nothing to avoid double initialization (also called for the overlap)
-
void
calculateFockMatrix(Utils::derivOrder)¶
-
void
addDerivatives(Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::derivativeType::first> &derivatives, const Eigen::MatrixXd &overlapDerivativeMultiplier) const¶
-
void
addDerivatives(Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::derivativeType::second_atomic> &derivatives, const Eigen::MatrixXd &overlapDerivativeMultiplier) const¶
-
void
addDerivatives(Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::derivativeType::second_full> &derivatives, const Eigen::MatrixXd &overlapDerivativeMultiplier) const¶
-
void
calculateOverlap(Utils::derivOrder highestRequiredOrder)¶
-
const Utils::MatrixWithDerivatives &
getOverlap() const¶
-
const Utils::MatrixWithDerivatives &
getZeroOrderHamiltonian() const¶
-
void
resetOverlap()¶
Private Functions
-
template<Utils::derivOrder
O>
voidconstructH0S()¶
-
template<Utils::derivOrder
O>
voidconstructPartOfH0S()¶
-
template<Utils::derivativeType
O>
voidaddDerivativesImpl(Utils::AutomaticDifferentiation::DerivativeContainerType<O> &derivatives, const Eigen::MatrixXd &overlapDerivativeMultiplier) const¶
Private Members
-
Utils::MatrixWithDerivatives
zeroOrderHamiltonian_¶
-
Utils::MatrixWithDerivatives
overlap_¶
-
const Utils::ElementTypeCollection &
elements_¶
-
const Utils::PositionCollection &
positions_¶
-
const Utils::AtomsOrbitalsIndexes &
aoIndexes_¶
-
const DFTBCommon::AtomicParameterContainer &
atomicPar_¶
-
const DFTBCommon::DiatomicParameterContainer &
diatomicPar_¶
-
const Utils::DensityMatrix &
densityMatrix_¶
-
-
class
-
namespace
-
namespace