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