File Dftd3Parameters.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

This header file contains functions that allow for common notation for common things that can be done at a different degree of derivatives.

This header contains alias definitions defining which classes to use for the different degrees of derivatives.

namespace Utils
namespace Dftd3
class Dftd3Parameters
#include <Dftd3Parameters.h>

A class handling the parameters involved in the calculation of D3 energies and gradients.

Most parameters in this method are static constexpr because they stay the same for all D3 methods. The parameters a1, s8 and a2 are specified by the user. One set of parameters, the reference pairs used to calculate the C6 coefficients, are outsourced to the Dftd3ReferencePairs class, because it involves a very large number of values.

Public Functions

Dftd3Parameters()

Default constructor.

Dftd3Parameters(double a1, double s8, double a2)

Constructor that allows for passing a1, s8 and a2 parameters.

~Dftd3Parameters()

Default destructor.

double getCovalentRadius(ElementType elementType)

Getter for a covalent radius for a given element type.

Return

double

double getK1()

Getter for the k1 parameter.

Return

double

double getK3()

Getter for the k3 parameter.

Return

double

const std::array<std::array<double, 3>, 25> &getReferencePairs(ElementType elementType1, ElementType elementType2)

Getter for reference pairs for one atom pair.

Return

const std::array<std::array<double, 3>, 75>& An 75 x 3 array which contains all the reference pairs for the atom pair consisting of element type 1 and element type 2. Some of the reference pairs are just placeholders.

double getR2r4(ElementType elementType)

Getter for the r2r4 parameter for a given element type.

The name r2r4 is copied from Grimme's implementation of D3.
It refers to the square root of the value Q, with Q being defined in
Eq.(9) of J. Chem. Phys. 132, 154104, (2010).

Return

double

double getA1()

Getter for the a1 parameter.

Return

double

double getS8()

Getter for the s8 parameter.

Return

double

double getA2()

Getter for the a1 parameter.

Return

double

Private Members

double a1_
double s8_
double a2_

Private Static Attributes

constexpr double covalentRadii_[94] = {0.80628308, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , }
constexpr double r2r4_[94] = {2.00734898, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , }
constexpr double k1_ = 16.0
constexpr double k3_ = 4.0