File SecondOrderFock.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
SecondOrderFock
: public Scine::Sparrow::dftb::ScfFock - #include <SecondOrderFock.h>
Implementation of FockMatrixCalculator for DFTB2, the SCC-DFTB.
It calculates the electronic contributions to the energy and their derivatives with respect to the nuclear cartesian coordinates.
Public Functions
-
SecondOrderFock
(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 calling the ScfFock constructor.
-
void
initialize
() Initializes the gamma matrix G and the gamma matrix with the derivatives dG.
-
double
calculateElectronicEnergy
() const Sums up the electronic contributions of the zeroth order Hamiltonian, the gamma matrix and the spin contribution.
-
void
addDerivatives
(Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::derivativeType::first> &derivatives) const adds the derivatives for the first, second atomic and second full types.
-
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
()¶ completes the H matrix by adding the first order correction to H0.
-
void
constructG
(Utils::derivOrder order)¶
-
template<Utils::derivOrder
O
>
voidconstructG
()¶
-
template<Utils::derivOrder
O
>
Utils::AutomaticDifferentiation::Value1DType<O>gamma
(int a, int b) const¶ Return gamma and its derivative(s).
-
template<Utils::derivativeType
O
>
voidaddSecondOrderDerivatives
(Utils::AutomaticDifferentiation::DerivativeContainerType<O> &derivatives) const¶
-
-
class
-
namespace
-
namespace