File SDFTB.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 SDFTB

Public Functions

SDFTB(const Utils::ElementTypeCollection &elements, const std::vector<std::unique_ptr<SKAtom>> &atomicParameters)
~SDFTB()
void spinPopulationAnalysis(const Eigen::MatrixXd &densityMatrixUp, const Eigen::MatrixXd &densityMatrixDn, const Eigen::MatrixXd &overlapMatrix)
void initialize(int nAtoms, int nAOs, Utils::AtomsOrbitalsIndexes indexes)
void calculateSpinContribution()
void constructSpinHamiltonians(Utils::SpinAdaptedMatrix &H, const Eigen::MatrixXd &overlap) const
double spinEnergyContribution() const
template<Utils::derivativeType O>
void addDerivatives(Utils::AutomaticDifferentiation::DerivativeContainerType<O> &derivativesContainer, const Utils::MatrixWithDerivatives &overlapDeriv, const Eigen::MatrixXd &pUp, const Eigen::MatrixXd &pDn) const

Private Functions

void spinPopulationAnalysis(const Eigen::MatrixXd &densityMatrix, const Eigen::MatrixXd &overlapMatrix, std::vector<double> &population)

Private Members

int nAtoms_
int nAOs_
std::vector<double> pup
std::vector<double> pdn
std::vector<double> pdif
const std::vector<std::unique_ptr<SKAtom>> &atomParameters
Utils::AtomsOrbitalsIndexes aoIndexes_
Eigen::MatrixXd spinContribution_
const Utils::ElementTypeCollection &elementTypes_