8 #ifndef SPARROW_DFTB_REPULSION_H
9 #define SPARROW_DFTB_REPULSION_H
20 class PairwiseRepulsion;
25 const DFTBCommon::DiatomicParameterContainer& diatomicParameters);
28 using PairRepulsion = std::unique_ptr<dftb::PairwiseRepulsion>;
29 using Container = std::vector<std::vector<PairRepulsion>>;
31 void initialize()
override;
32 void calculateRepulsion(Utils::DerivativeOrder order)
override;
33 double getRepulsionEnergy()
const override;
34 void addRepulsionDerivatives(Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::Derivative::First>& derivatives)
const override;
35 void addRepulsionDerivatives(
36 Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::Derivative::SecondAtomic>& derivatives)
const override;
37 void addRepulsionDerivatives(
38 Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::Derivative::SecondFull>& derivatives)
const override;
41 template<Utils::Derivative O>
42 void addRepulsionDerivativesImpl(Utils::AutomaticDifferentiation::DerivativeContainerType<O>& derivatives)
const;
43 void calculatePairRepulsion(
int i,
int j, Utils::DerivativeOrder order);
44 void initializePair(
int i,
int j);
47 Container pairRepulsions_;
48 const DFTBCommon::DiatomicParameterContainer& diatomicParameters_;
55 #endif // SPARROW_DFTB_REPULSION_H
Definition: Repulsion.h:22