Loading...
Searching...
No Matches
contributions.hpp
Go to the documentation of this file.
1#pragma once
2
3/**
4 * AtomicForcesContributions — per-contribution force breakdown.
5 *
6 * Plain data holder for the diagnostic breakdown of Hellmann-Feynman forces
7 * by physical mechanism. Returned alongside the forces vector from
8 * ForceCalculator::compute_forces().
9 *
10 * This type has no JSON serialization dependency. If a diagnostic dump is
11 * needed, the Python layer reads the flat values from results.json and formats
12 * them as needed.
13 */
14
15#include <vector>
16
18
19namespace q3 {
20
21/// Per-contribution force breakdown (Ry/bohr).
23 std::vector<Vector3D> local; // local pseudopotential
24 std::vector<Vector3D> ewald; // Ewald ionic
25 std::vector<Vector3D> nonlocal; // nonlocal KB projector
26 std::vector<Vector3D> core_correction; // nonlinear core correction (NLCC)
27 std::vector<Vector3D> augmentation; // ultrasoft augmentation (USPP)
28 std::vector<Vector3D> dispersion; // DFT-D3(BJ) semi-empirical dispersion
29 std::vector<Vector3D> hubbard; // DFT+U (Dudarev) Hellmann-Feynman
30};
31
32} // namespace q3
Per-contribution force breakdown (Ry/bohr).
std::vector< Vector3D > nonlocal
std::vector< Vector3D > local
std::vector< Vector3D > augmentation
std::vector< Vector3D > dispersion
std::vector< Vector3D > hubbard
std::vector< Vector3D > core_correction
std::vector< Vector3D > ewald