File ThirdOrderFock.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
ThirdOrderFock
: public Scine::Sparrow::dftb::ScfFock - #include <ThirdOrderFock.h>
Implementation of FockMatrixCalculator for DFTB3.
It calculates the electronic contributions to the energy and their derivatives with respect to the nuclear cartesian coordinates.
Public Functions
-
ThirdOrderFock
(ZeroOrderMatricesCalculator &matricesCalculator, const Utils::ElementTypeCollection &elements, const Utils::PositionCollection &positions, const DFTBCommon::AtomicParameterContainer &atomicPar, const DFTBCommon::DiatomicParameterContainer &diatomicPar, const Utils::DensityMatrix &densityMatrix, const Eigen::MatrixXd &energyWeightedDensityMatrix, std::vector<double> &atomicCharges, const std::vector<double> &coreCharges, const Utils::AtomsOrbitalsIndexes &aoIndexes, const Eigen::MatrixXd &overlapMatrix, const bool &unrestrictedCalculationRunning) Constructor, calls the ScfFock constructor and sets zeta to 4.0.
-
void
initialize
() Calls ScfFock::initialize() and initializes the gamma, Gamma and the matrices containing the derivatives.
-
double
calculateElectronicEnergy
() const Sums up the electronic energy contributions of the zeroth, first and second order Hamiltonian corrections.
-
void
addDerivatives
(Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::derivativeType::first> &derivatives) const calculates automatically the derivatives of the energy with respect to the nuclear cartesian coordinates.
-
void
addDerivatives
(Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::derivativeType::second_atomic> &derivatives) const¶
-
void
addDerivatives
(Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::derivativeType::second_full> &derivatives) const¶
Private Functions
-
void
completeH
()¶
-
void
constructG
(Utils::derivOrder order)¶
-
template<Utils::derivOrder
O
>
voidconstructG
()¶
-
template<Utils::derivOrder
O
>
voidgammah
(int a, int b, Utils::AutomaticDifferentiation::Value1DType<O> &gamma, Utils::AutomaticDifferentiation::Value1DType<O> &Gab, Utils::AutomaticDifferentiation::Value1DType<O> &Gba) const¶
-
template<Utils::derivOrder
O
>
voidhFactor
(double Ua, double Ub, const Utils::AutomaticDifferentiation::Value1DType<O> &R, Utils::AutomaticDifferentiation::Value1DType<O> &h, Utils::AutomaticDifferentiation::Value1DType<O> &dhdU) const¶
-
template<Utils::derivativeType
O
>
voidaddThirdOrderDerivatives
(Utils::AutomaticDifferentiation::DerivativeContainerType<O> &derivatives) const¶
-
-
class
-
namespace
-
namespace