Loading...
Searching...
No Matches
init.hpp
Go to the documentation of this file.
1#pragma once
2
3/**
4 * PlanewaveProvenanceRecord — a provenance record for a quantum system that was
5 * solved in a plane-wave basis.
6 *
7 * The basis set is the first thing about a run that is not a fact about the
8 * quantum system itself: an energy cutoff means nothing without plane waves to
9 * bound. So the two cutoffs enter the record here rather than in
10 * QuantumSystemProvenanceRecord, and a future record for a basis Q3 does not
11 * have yet inherits everything above this without inheriting them.
12 *
13 * The datasets that fill that basis are one level further down, in
14 * planewave/pseudopotential.hpp: a plane-wave calculation need not be a
15 * pseudopotential one.
16 *
17 * Both cutoffs are reported in Rydberg, with the suffix that says so -- see the
18 * units note in provenance/init.hpp.
19 */
20
21#include <nlohmann/json.hpp>
22
24
25namespace q3 {
26
28 public:
30
31 protected:
32 void add_representation_method_details(nlohmann::json& method) const override {
33 method["wavefunction_cutoff_rydberg"] = input().wavefunction_energy_cutoff;
34 method["density_cutoff_rydberg"] = input().charge_density_energy_cutoff;
35 }
36};
37
38} // namespace q3
void add_representation_method_details(nlohmann::json &method) const override
Definition init.hpp:32
QuantumSystemProvenanceRecord(const InputData &input)
Definition init.hpp:71
const InputData & input() const
The input the calculation consumed, for a subclass to report on in turn.
Definition init.hpp:92
Real charge_density_energy_cutoff
Definition data.hpp:111
Real wavefunction_energy_cutoff
Definition data.hpp:110