Quantum 3xplorer (Q3)
An AI-native quantum simulation engine
Loading...
Searching...
No Matches
record.hpp
Go to the documentation of this file.
1#pragma once
2
3/**
4 * InterpolationRecord — what an NSCF run leaves behind for the interpolation
5 * step, as plain data: which method built it, the lattice it lives on, and
6 * the method's own payload.
7 *
8 * Mirrors MeanFieldRecord (io/mean_field_record/init.hpp): purely
9 * descriptive, so the same record can come from a live run or be read back
10 * from `<prefix>.save/interpolation.q3ip`, and the same interpolator code
11 * consumes it either way. The lattice is carried here rather than looked up
12 * from the crystal because the evaluation step has no crystal -- it has this
13 * file -- and both the Wigner-Seitz construction and the Wannier90 export
14 * need the real-space vectors.
15 *
16 * One payload member per method, populated only for the method named. A
17 * variant would express the exclusivity in the type; with one method that is
18 * ceremony, and the factory beside this file dispatches on `method` in one
19 * place, which is where a second payload will be added alongside its member.
20 */
21
22#include <string>
23
26
27namespace q3 {
28
29struct [[nodiscard]] InterpolationRecord {
30 /// The method that built the payload: "wannier".
31 std::string method;
32
33 /// Rows a1, a2, a3, Cartesian, in bohr.
35 /// Rows b1, b2, b3, Cartesian, in inverse bohr, with the 2 pi included.
37
38 /**
39 * The run's Fermi energy, so an evaluation can report bands relative to
40 * it without knowing which payload carries it. Zero when the record was
41 * imported from files that do not state one.
42 */
43 Real fermi_energy_rydberg = 0.0;
44
45 /// Payload for method == "wannier": interface matrices on the full k-grid.
47};
48
49} // namespace q3
double Real
WannierInputs wannier
Payload for method == "wannier": interface matrices on the full k-grid.
Definition record.hpp:46
Matrix3x3 real_lattice_bohr
Rows a1, a2, a3, Cartesian, in bohr.
Definition record.hpp:34
std::string method
The method that built the payload: "wannier".
Definition record.hpp:31
Matrix3x3 reciprocal_lattice_inverse_bohr
Rows b1, b2, b3, Cartesian, in inverse bohr, with the 2 pi included.
Definition record.hpp:36
3×3 matrix stored row-major: row i = mat[i]