8 #ifndef SPARROW_DFTBCOMMON_H
9 #define SPARROW_DFTBCOMMON_H
18 #include <boost/functional/hash.hpp>
24 class MatrixWithDerivatives;
25 class SingleParticleEnergies;
26 class AtomsOrbitalsIndexes;
35 using AtomicParameterContainer = std::vector<std::unique_ptr<SKAtom>>;
36 using DiatomicParameterKey = std::pair<int, int>;
37 using DiatomicParameterContainer = std::unordered_map<DiatomicParameterKey, SKPair, boost::hash<DiatomicParameterKey>>;
40 DiatomicParameterContainer& diatomicPar);
42 void initialize(
const std::string& path,
unsigned dftbType);
43 void setMethodDetails(
const std::string& path,
unsigned dftbType);
46 void reinitializeParameters();
48 unsigned getnAOs()
const {
51 bool hasHubbardDerivatives()
const {
54 bool unrestrictedCalculationPossible()
const override;
55 const DiatomicParameterContainer& getPairParameters()
const {
56 return pairParameters;
58 std::vector<double> getCoreCharges()
const override {
64 unsigned getNumberElectronsForUnchargedSpecies()
const override {
65 return nInitialElectrons_;
69 static constexpr
int nElements_ = 110;
71 std::vector<bool> atomTypePresent;
72 AtomicParameterContainer& atomParameters;
73 DiatomicParameterContainer& pairParameters;
78 unsigned nInitialElectrons_;
79 int& molecularCharge_;
80 double noInteractionEnergy;
81 bool spinPolarizedPossible;
83 std::vector<double> coreCharges_;
95 #endif // DFTBCOMMON_H
Definition: DFTBCommon.h:33