Quantum 3xplorer (Q3)
An AI-native quantum simulation engine
Loading...
Searching...
No Matches
q3::SpreadTerms Struct Reference

#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
 

Detailed Description

Definition at line 14 of file spread_terms.hpp.

Member Function Documentation

◆ minimizable_bohr_squared()

Real q3::SpreadTerms::minimizable_bohr_squared ( ) const
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().

◆ total_bohr_squared()

Real q3::SpreadTerms::total_bohr_squared ( ) const
inline

Definition at line 31 of file spread_terms.hpp.

Referenced by q3::SpreadReport::evaluated_as().

Member Data Documentation

◆ centers_bohr

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().

◆ diagonal_bohr_squared

Real q3::SpreadTerms::diagonal_bohr_squared = 0.0

Definition at line 16 of file spread_terms.hpp.

Referenced by q3::SpreadFunctional::evaluate().

◆ gauge_invariant_bohr_squared

Real q3::SpreadTerms::gauge_invariant_bohr_squared = 0.0

◆ off_diagonal_bohr_squared

Real q3::SpreadTerms::off_diagonal_bohr_squared = 0.0

Definition at line 17 of file spread_terms.hpp.

Referenced by q3::SpreadFunctional::evaluate().

◆ spreads_bohr_squared

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().


The documentation for this struct was generated from the following file: