8 #ifndef SPARROW_DFTB_SKPAIR_H 
    9 #define SPARROW_DFTB_SKPAIR_H 
   23 template<Utils::DerivativeOrder O>
 
   25   std::array<Utils::AutomaticDifferentiation::Value1DType<O>, 28> derivIntegral;
 
   26   std::array<std::array<Utils::AutomaticDifferentiation::Value1DType<O>, 8>, 28> C;
 
   27   std::array<std::array<Utils::AutomaticDifferentiation::Value1DType<O>, 8>, 28> D;
 
   28   std::array<double, 8> xa;
 
   29   std::array<std::array<double, 8>, 28> ya;
 
   39   template<Utils::DerivativeOrder O>
 
   41   template<Utils::DerivativeOrder O>
 
   42   Utils::AutomaticDifferentiation::Value1DType<O> getRepulsion(
double const& r) 
const;
 
   45     double g1a, g1b, g2a, g2b;
 
   50     double dgab1a, dgab1b, dgab2a, dgab2b, dgba1a, dgba1b, dgba2a, dgba2b, dgadr, dgbdr;
 
   54   void precalculateGammaTerms();
 
   55   int getNIntegrals()
 const {
 
   64   template<Utils::DerivativeOrder O>
 
   65   int getHSIntegral(InterpolationValues<O>& val, 
double dist) 
const;
 
   66   template<Utils::DerivativeOrder O>
 
   67   void interpolate(InterpolationValues<O>& val, 
double x, 
int start) 
const;
 
   68   void precompute5Extrapolation();
 
   71   static constexpr 
double distFudge = 1.0;
 
   74   static constexpr 
int nInter = 8;
 
   75   static constexpr 
int nInterRight = 4;
 
   76   static constexpr 
int nInterLeft = 4;
 
   79   static constexpr 
double deltaR = 1e-5;
 
   82   static constexpr std::array<int, 28> integralIndexes = {
 
   83       {19, 9, 18, 8, 15, 5, 16, 6, 27, 23, 17, 7, 26, 22, 13, 3, 14, 4, 24, 20, 25, 21, 10, 0, 11, 1, 12, 2}};
 
   91   std::array<std::vector<double>, 28> integralTable; 
 
   93   dftb::RepulsionParameters repulsion_;
 
   96   std::vector<double> extrC3, extrC4, extrC5; 
 
  101   GammaDerivativeTerms gammaDerivative;
 
Definition: SkfParser.h:21
Definition: RepulsionParameters.h:20