File SKPair.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
template<Utils::derivOrder O>
struct InterpolationValues

Public Members

template<>
Utils::AutomaticDifferentiation::Value1DType<O> derivIntegral[28]
template<>
Utils::AutomaticDifferentiation::Value1DType<O> C[28][8]
template<>
Utils::AutomaticDifferentiation::Value1DType<O> D[28][8]
template<>
double xa[8]
template<>
double ya[28][8]
class SKPair

Public Functions

SKPair(const std::string &atom1, const std::string &atom2, SKAtom *atomicParameters1, SKAtom *atomicParameters2, const std::string &path)
void complete(SKPair *p)
template<Utils::derivOrder O>
int getHS(double dist, InterpolationValues<O> &val) const
template<Utils::derivOrder O>
Utils::AutomaticDifferentiation::Value1DType<O> getRepulsion(double const &r) const
void getGammaTerms(double &t1a, double &t1b, double &t2a, double &t2b)
void getGammaDerTerms(double &dtab1a, double &dtab1b, double &dtab2a, double &dtab2b, double &dtba1a, double &dtba1b, double &dtba2a, double &dtba2b, double &dtadr, double &dtbdr)
void precalculateGammaTerms()
int getNIntegrals() const
const dftb::RepulsionParameters &getRepulsionParameters() const

Private Functions

template<Utils::derivOrder O>
int getHSIntegral(InterpolationValues<O> &val, double dist) const
template<Utils::derivOrder O>
void interpolate(InterpolationValues<O> &val, double x, int start) const
void precompute5Extrapolation()
void readSKFfile(const std::string &atom1, const std::string &atom2, SKAtom *atomicParameters1, SKAtom *AtomParameters2, const std::string &path)

Private Members

SKAtom *atomType1
SKAtom *atomType2
double gridDist
int nGridPoints
double rMax
std::vector<std::vector<double>> M
dftb::RepulsionParameters repulsion_
double distFudge
std::vector<int> integralIndexes
std::vector<double> extrC3
std::vector<double> extrC4
std::vector<double> extrC5
int nInter
int nInterRight
int nInterLeft
int nIntegrals
double deltaR
double g1a
double g1b
double g2a
double g2b
double dgab1a
double dgab1b
double dgab2a
double dgab2b
double dgba1a
double dgba1b
double dgba2a
double dgba2b
double dgadr
double dgbdr