File Repulsion.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
class Repulsion : public RepulsionCalculator

Public Types

using PairRepulsion = std::unique_ptr<dftb::PairwiseRepulsion>
using Container = std::vector<std::vector<PairRepulsion>>

Public Functions

Repulsion(const Utils::ElementTypeCollection &elements, const Utils::PositionCollection &positions, const DFTBCommon::DiatomicParameterContainer &diatomicParameters)
~Repulsion()
void initialize()
void calculateRepulsion(Utils::derivOrder order)
double getRepulsionEnergy() const
void addRepulsionDerivatives(Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::derivativeType::first> &derivatives) const
void addRepulsionDerivatives(Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::derivativeType::second_atomic> &derivatives) const
void addRepulsionDerivatives(Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::derivativeType::second_full> &derivatives) const

Private Functions

template<Utils::derivativeType O>
void addRepulsionDerivativesImpl(Utils::AutomaticDifferentiation::DerivativeContainerType<O> &derivatives) const
void calculatePairRepulsion(int i, int j, Utils::derivOrder order)
void initializePair(int i, int j)

Private Members

int nAtoms_
Container pairRepulsions_
const Utils::ElementTypeCollection &elements_
const Utils::PositionCollection &positions_
const DFTBCommon::DiatomicParameterContainer &diatomicParameters_