excgrid 0.1.0
Grid + XC-kernel + D3 library
Loading...
Searching...
No Matches
dispersion.hpp
1#pragma once
2
3#include "excgrid/error.hpp"
4#include "excgrid/geometry.hpp"
5
6#include <array>
7#include <cstddef>
8#include <string_view>
9#include <vector>
10
11namespace excgrid {
12
24
28 double s6 = 1.0;
29 double s8 = 1.0;
30 double rs6 = 1.0;
31 double alpha6 = 14.0;
32 double rs8 = 1.0;
33 double alpha8 = 16.0;
34};
35
43Result<D3Parameters> D3Preset(std::string_view name);
44
51Result<double> GrimmeD3Energy(const Geometry& geometry, const D3Parameters& parameters);
52
60struct D3Result {
61 double energy = 0.0;
62 std::vector<std::array<double, 3>> gradient;
63};
64
71Result<D3Result> GrimmeD3(const Geometry& geometry, const D3Parameters& parameters);
72
73} // namespace excgrid
double alpha6
The a2 exponent of the R^6 term.
Definition dispersion.hpp:31
double s6
Global C6 scale.
Definition dispersion.hpp:28
double alpha8
The a2 exponent of the R^8 term (alpha6 + 2).
Definition dispersion.hpp:33
double rs8
The a1 damping scale of the R^8 term.
Definition dispersion.hpp:32
double energy
The dispersion energy (Hartree).
Definition dispersion.hpp:61
Result< D3Result > GrimmeD3(const Geometry &geometry, const D3Parameters &parameters)
std::vector< std::array< double, 3 > > gradient
One 3-vector per atom (Hartree/Bohr).
Definition dispersion.hpp:62
double rs6
The a1 damping scale of the R^6 term.
Definition dispersion.hpp:30
double s8
C8 scale.
Definition dispersion.hpp:29
Result< double > GrimmeD3Energy(const Geometry &geometry, const D3Parameters &parameters)
Result< D3Parameters > D3Preset(std::string_view name)
std::expected< T, ErrorCode > Result
Definition error.hpp:23
Definition dispersion.hpp:27
Definition dispersion.hpp:60
Definition geometry.hpp:24