|
Quantum 3xplorer (Q3)
An AI-native quantum simulation engine
|
#include <spread_terms.hpp>
Public Member Functions | |
| Real | minimizable_bohr_squared () const |
| The only part this gauge can move; what the minimiser actually descends. | |
| Real | total_bohr_squared () const |
Public Attributes | |
| std::vector< Vector3D > | centers_bohr |
| One centre per Wannier function, in bohr, in the same Cartesian frame as b. | |
| Real | diagonal_bohr_squared = 0.0 |
| Real | gauge_invariant_bohr_squared = 0.0 |
| Real | off_diagonal_bohr_squared = 0.0 |
| std::vector< Real > | spreads_bohr_squared |
Definition at line 14 of file spread_terms.hpp.
|
inline |
The only part this gauge can move; what the minimiser actually descends.
Definition at line 35 of file spread_terms.hpp.
Referenced by q3::ProjectionGaugeChoice::choose().
|
inline |
Definition at line 31 of file spread_terms.hpp.
Referenced by q3::SpreadReport::evaluated_as().
| std::vector<Vector3D> q3::SpreadTerms::centers_bohr |
One centre per Wannier function, in bohr, in the same Cartesian frame as b.
Definition at line 19 of file spread_terms.hpp.
Referenced by q3::MaximallyLocalizedGaugeChoice::choose(), q3::SpreadFunctional::evaluate(), q3::SpreadReport::evaluated_as(), and q3::SpreadFunctional::gradient().
| Real q3::SpreadTerms::diagonal_bohr_squared = 0.0 |
Definition at line 16 of file spread_terms.hpp.
Referenced by q3::SpreadFunctional::evaluate().
| Real q3::SpreadTerms::gauge_invariant_bohr_squared = 0.0 |
Definition at line 15 of file spread_terms.hpp.
Referenced by q3::SpreadFunctional::evaluate(), and q3::SpreadReport::evaluated_as().
| Real q3::SpreadTerms::off_diagonal_bohr_squared = 0.0 |
Definition at line 17 of file spread_terms.hpp.
Referenced by q3::SpreadFunctional::evaluate().
| std::vector<Real> q3::SpreadTerms::spreads_bohr_squared |
One spread per Wannier function, Omega_n = <r^2>_n - |<r>_n|^2 in bohr squared (MV equations 31 and 32 in finite differences: <r^2>_n is (1/N_k) sum_kb w_b [(1 - |M_nn|^2) + (Im ln M_nn)^2]). They sum to the total, which is how the split above and this one are checked against each other. The three totals say how localised the set is; these say which function is not, and a driver that has no reference bands to compare against judges a model by their spread across functions.
Definition at line 29 of file spread_terms.hpp.
Referenced by q3::SpreadFunctional::evaluate(), and q3::SpreadReport::evaluated_as().