Loading...
Searching...
No Matches
q3::ProjectionGauge Class Reference

#include <projection_gauge.hpp>

Public Member Functions

 ProjectionGauge (Real singular_value_tolerance=math::tolerances::wannier_projection_singular_value_threshold)
 
DenseMatrix< Complex > compute (const DenseMatrix< Complex > &projections) const
 
std::vector< DenseMatrix< Complex > > compute_all (const std::vector< DenseMatrix< Complex > > &projections) const
 U(k) for every k-point's projection block; a refusal names the k-point it happened at.
 

Detailed Description

Definition at line 50 of file projection_gauge.hpp.

Constructor & Destructor Documentation

◆ ProjectionGauge()

q3::ProjectionGauge::ProjectionGauge ( Real  singular_value_tolerance = math::tolerances::wannier_projection_singular_value_threshold)
inlineexplicit

A smallest singular value below singular_value_tolerance means the trial orbitals fail to span the target manifold there, and every downstream quantity built on the resulting gauge would be quietly meaningless; it is refused.

Definition at line 58 of file projection_gauge.hpp.

Member Function Documentation

◆ compute()

DenseMatrix< Complex > q3::ProjectionGauge::compute ( const DenseMatrix< Complex > &  projections) const
inline

U from one k-point's projection block, bands x Wannier functions with the band as the row; U has the same shape.

Scientific notation, not std::to_string: the values compared here are near zero by construction, and six fixed decimals would report both of them as "0.000000" – a diagnostic that names no number.

Definition at line 83 of file projection_gauge.hpp.

References q3::DenseMatrix< T >::columns(), q3::SingularValueDecomposition::compute(), q3::gauge_singular, q3::SingularValueDecompositionResult::left_vectors, q3::multiply(), q3::None, q3::SingularValueDecompositionResult::right_vectors_adjoint, q3::DenseMatrix< T >::rows(), and q3::SingularValueDecompositionResult::singular_values.

Referenced by compute_all().

◆ compute_all()

std::vector< DenseMatrix< Complex > > q3::ProjectionGauge::compute_all ( const std::vector< DenseMatrix< Complex > > &  projections) const
inline

U(k) for every k-point's projection block; a refusal names the k-point it happened at.

Definition at line 64 of file projection_gauge.hpp.

References compute().

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


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