Loading...
Searching...
No Matches
init.hpp
Go to the documentation of this file.
1#pragma once
2
4
5namespace q3 {
6
7/**
8 * Abstract base for a converged self-consistent field state.
9 *
10 * Produced by an SCFIterator at convergence. Carries the iteration count,
11 * the convergence flag, and the energy breakdown (via the energies()
12 * accessor). Concrete subtypes add the quantum system snapshot, charge
13 * density, and effective potential at the appropriate representation level.
14 *
15 * Mirrors the SCFIterator / Diagonalizer / FermiEnergyCalculator pattern:
16 * each top-level L4 concept has an abstract base in its folder's init.hpp.
17 */
18struct SCFState {
19 virtual ~SCFState() = default;
20 SCFState() = default;
21 SCFState(SCFState&&) = default;
23 SCFState(const SCFState&) = default;
24 SCFState& operator=(const SCFState&) = default;
25
27 bool converged{false};
28
29 /// Return the converged energy breakdown.
30 virtual const SCFEnergies& energies() const = 0;
31};
32
33} // namespace q3
SCFState & operator=(SCFState &&)=default
SCFState & operator=(const SCFState &)=default
SCFState()=default
bool converged
Definition init.hpp:27
SCFState(const SCFState &)=default
int scf_iterations
Definition init.hpp:26
SCFState(SCFState &&)=default
virtual const SCFEnergies & energies() const =0
Return the converged energy breakdown.
virtual ~SCFState()=default