8 #ifndef SSPARROW_DFTB_H
9 #define SSPARROW_DFTB_H
20 class MatrixWithDerivatives;
21 class SpinAdaptedMatrix;
34 void spinPopulationAnalysis(
const Eigen::MatrixXd& densityMatrixUp,
const Eigen::MatrixXd& densityMatrixDn,
35 const Eigen::MatrixXd& overlapMatrix);
38 void calculateSpinContribution();
40 double spinEnergyContribution()
const;
41 template<Utils::Derivative O>
42 void addDerivatives(Utils::AutomaticDifferentiation::DerivativeContainerType<O>& derivativesContainer,
44 const Eigen::MatrixXd& pDn)
const;
47 void spinPopulationAnalysis(
const Eigen::MatrixXd& densityMatrix,
const Eigen::MatrixXd& overlapMatrix,
48 std::vector<double>& population);
52 std::vector<double> pup,
55 const std::vector<std::unique_ptr<SKAtom>>& atomParameters;
57 Eigen::MatrixXd spinContribution_;
65 #endif // SSPARROW_DFTB_H