50[[nodiscard]]
inline QuantumStateInterpolatorConstruction
53 if (record.
method ==
"wannier") {
54 WannierConstruction construction =
57 QuantumStateInterpolatorConstruction result;
58 result.
interpolator = std::make_unique<LocalOrbitalQuantumStateInterpolator>(
59 std::move(construction.hamiltonian), construction.report.description());
60 result.wannier = std::move(construction.report);
63 throw std::runtime_error(
"create_quantum_state_interpolator: unknown interpolation method '" +
64 record.
method +
"'. Supported: wannier");
QuantumStateInterpolatorConstruction create_quantum_state_interpolator(const InterpolationRecord &record, const InterpolationSpecification &specification={})
WannierInputs wannier
Payload for method == "wannier": interface matrices on the full k-grid.
Matrix3x3 real_lattice_bohr
Rows a1, a2, a3, Cartesian, in bohr.
std::string method
The method that built the payload: "wannier".
std::unique_ptr< QuantumStateInterpolator > interpolator
static WannierConstructionSettings from(const InterpolationSpecification &specification)