Loading...
Searching...
No Matches
init.hpp
Go to the documentation of this file.
1#pragma once
2
4
5namespace q3 {
6
7/**
8 * Plane-wave Kohn-Sham energy components in Rydberg.
9 *
10 * Extends KohnShamEnergies with energy terms specific to a plane-wave
11 * calculation: the Ewald ion-ion electrostatic energy and the smearing
12 * entropy contribution (-TS) that arises when fractional occupations
13 * are used (metals).
14 */
17 Real ewald_energy = 0.0; // ion-ion electrostatics (Ewald summation)
18
22
23 /**
24 * Dispersion (van der Waals) correction, in Ry. 0 unless a subclass
25 * (e.g. the pseudopotential energies struct) overrides this to expose
26 * its own dispersion-correction field, for reporting purposes.
27 */
28 [[nodiscard]] virtual Real dispersion_energy() const {
29 return 0.0;
30 }
31
32 /**
33 * DFT+U (Hubbard) correction, in Ry. 0 unless a subclass overrides this
34 * to expose its own hubbard-energy field, for reporting purposes.
35 */
36 [[nodiscard]] virtual Real hubbard_energy_contribution() const {
37 return 0.0;
38 }
39
40 /**
41 * PAW one-center contribution Σ_a (E¹_a − Ẽ¹_a), in Ry. 0 unless a
42 * subclass overrides this to expose its own field, for reporting purposes.
43 */
44 [[nodiscard]] virtual Real one_center_energy_contribution() const {
45 return 0.0;
46 }
47};
48
49} // namespace q3
double Real
Real total() const override
Return the total energy as the sum of all component fields.
Definition init.hpp:21
virtual Real dispersion_energy() const
Definition init.hpp:28
virtual Real one_center_energy_contribution() const
Definition init.hpp:44
virtual Real hubbard_energy_contribution() const
Definition init.hpp:36
Real total() const override
Return the total energy as the sum of all component fields.
Definition init.hpp:19