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