44 const std::shared_ptr<const PhaseBranch> branch =
45 guided ? std::shared_ptr<const PhaseBranch>(std::make_shared<const GuidedPhaseBranch>(
47 : std::make_shared<const PrincipalPhaseBranch>();
WannierGauge choose(const WannierConstructionInputs &inputs, const WannierSubspace &subspace) const override
SpreadTerms evaluate(const BlochOverlaps &rotated_overlaps) const
rotated_overlaps: N x N at every (k, b), between the Wannier-gauge states at k and k+b.
Real gauge_invariant_spread_bohr_squared
Omega_I of the subspace the iteration settled on, bohr squared.
static SpreadReport evaluated_as(const SpreadTerms &terms, bool guided_by_trial_orbitals, std::vector< Vector3D > trial_orbital_centers_bohr, Real initial_minimizable_bohr_squared)
Real gauge_invariant_bohr_squared
Real minimizable_bohr_squared() const
The only part this gauge can move; what the minimiser actually descends.
std::vector< DenseMatrix< Complex > > frames
BandClassification classification
std::vector< DenseMatrix< Complex > > frames
DisentanglementReport report