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

#include <spread_minimization_result.hpp>

Public Attributes

bool converged = false
 
std::vector< DenseMatrix< Complex > > gauges
 One N x N unitary per k-point; post-multiplies the gauge.
 
Real gradient_norm = 0.0
 Root-mean-square gradient per k-point where the minimisation stopped.
 
Real initial_minimizable_bohr_squared = 0.0
 Omega_D + Omega_OD before any rotation, for the log line and the report.
 
int iterations = 0
 
bool stationary = false
 
SpreadTerms terms
 

Detailed Description

Definition at line 16 of file spread_minimization_result.hpp.

Member Data Documentation

◆ converged

bool q3::SpreadMinimizationResult::converged = false

Whether the minimisation ended on its own terms rather than by running out of iterations. A line search that can find no step to take is the ordinary way to arrive at a minimum, not a failure, so it counts here.

Definition at line 28 of file spread_minimization_result.hpp.

◆ gauges

std::vector<DenseMatrix<Complex> > q3::SpreadMinimizationResult::gauges

One N x N unitary per k-point; post-multiplies the gauge.

Definition at line 18 of file spread_minimization_result.hpp.

Referenced by q3::MaximallyLocalizedGaugeChoice::choose().

◆ gradient_norm

Real q3::SpreadMinimizationResult::gradient_norm = 0.0

Root-mean-square gradient per k-point where the minimisation stopped.

Definition at line 40 of file spread_minimization_result.hpp.

Referenced by q3::MaximallyLocalizedGaugeChoice::choose().

◆ initial_minimizable_bohr_squared

Real q3::SpreadMinimizationResult::initial_minimizable_bohr_squared = 0.0

Omega_D + Omega_OD before any rotation, for the log line and the report.

Definition at line 22 of file spread_minimization_result.hpp.

Referenced by q3::MaximallyLocalizedGaugeChoice::choose().

◆ iterations

int q3::SpreadMinimizationResult::iterations = 0

◆ stationary

bool q3::SpreadMinimizationResult::stationary = false

Whether the gauge is actually stationary. This is the stricter question and it is a separate one: a step that has collapsed produces a spread that stops changing, which satisfies any progress test ever written while the gradient is still enormous. Copper stops with a gradient a thousandth of where it began, at a real minimum; a rattled four-atom supercell stops having barely moved, with a gradient still at 80% of its initial value. Only the first has earned the phrase "maximally localized".

Definition at line 38 of file spread_minimization_result.hpp.

Referenced by q3::MaximallyLocalizedGaugeChoice::choose().

◆ terms

SpreadTerms q3::SpreadMinimizationResult::terms

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