#include <construction_inputs.hpp>
Public Member Functions | |
| WannierConstructionInputs (const WannierInputs &record) | |
| bool | has_overlaps () const |
| Whether the record carries M_mn(k,b); implies has_stencil(). | |
| bool | has_stencil () const |
| Whether the record names its neighbour directions, so k + b is resolved. | |
| int | number_of_kpoints () const |
| int | number_of_wannier_functions () const |
| const BlochOverlaps & | overlaps () const |
| BlochOverlaps | overlaps_in_gauge (const BandClassification &classification, const std::vector< DenseMatrix< Complex > > &frames) const |
| std::vector< DenseMatrix< Complex > > | projections_restricted_to (const BandClassification &classification) const |
A(k) restricted to the bands classification keeps at each k-point: kept x N, band as row. | |
| const WannierInputs & | record () const |
| The inputs as the record stores them. | |
| bool | spread_is_defined () const |
| const KPointStencil & | stencil () const |
| std::optional< int > | two_point_axis_direction () const |
| The direction of a two-point axis, if any; KPointStencil::two_point_axis_direction says why. | |
Definition at line 41 of file construction_inputs.hpp.
|
inlineexplicit |
The model is a Fourier sum over the Wigner-Seitz supercell of the grid, and that transform is exact only over the whole grid: a record holding some other number of k-points is not a smaller problem, it is a wrong one.
Definition at line 43 of file construction_inputs.hpp.
References q3::WannierInputs::eigenvalues_rydberg, q3::KPointStencil::from_grid(), q3::WannierInputs::has_overlaps(), q3::WannierInputs::kpoint_grid_dimensions, q3::WannierInputs::neighbor_directions, q3::WannierInputs::number_of_bands, number_of_kpoints(), q3::WannierInputs::number_of_kpoints(), q3::WannierInputs::number_of_trial_orbitals, q3::WannierInputs::overlap_matrices, q3::WannierInputs::projection_matrices, and record().
|
inline |
Whether the record carries M_mn(k,b); implies has_stencil().
Definition at line 138 of file construction_inputs.hpp.
Referenced by q3::create_gauge_choice(), and q3::MaximallyLocalizedGaugeChoice::require_supported().
|
inline |
Whether the record names its neighbour directions, so k + b is resolved.
Definition at line 127 of file construction_inputs.hpp.
|
inline |
Definition at line 119 of file construction_inputs.hpp.
References q3::WannierInputs::number_of_kpoints().
Referenced by WannierConstructionInputs(), and q3::IsolatedManifoldSelection::choose().
|
inline |
Definition at line 122 of file construction_inputs.hpp.
References q3::WannierInputs::number_of_trial_orbitals.
Referenced by q3::ProjectabilityDisentanglementSelection::choose(), q3::MaximallyLocalizedGaugeChoice::choose(), q3::ProjectionGaugeChoice::choose(), and projections_restricted_to().
|
inline |
Definition at line 141 of file construction_inputs.hpp.
Referenced by q3::ProjectabilityDisentanglementSelection::choose(), and overlaps_in_gauge().
|
inline |
M_mn(k,b) in a gauge: restricted to the bands classification keeps and rotated by frames, C(k)^dagger M(k,b) C(k+b). What a spread is evaluated on; defined only where has_overlaps().
Definition at line 169 of file construction_inputs.hpp.
References q3::BandClassification::kpoints, overlaps(), q3::BlochOverlaps::restricted_to(), stencil(), and q3::BlochOverlaps::transformed_by().
Referenced by q3::MaximallyLocalizedGaugeChoice::choose(), and q3::ProjectionGaugeChoice::choose().
|
inline |
A(k) restricted to the bands classification keeps at each k-point: kept x N, band as row.
Definition at line 151 of file construction_inputs.hpp.
References q3::BandClassification::kpoints, and number_of_wannier_functions().
Referenced by q3::IsolatedManifoldSelection::choose(), and q3::ProjectabilityDisentanglementSelection::choose().
|
inline |
The inputs as the record stores them.
Definition at line 116 of file construction_inputs.hpp.
Referenced by WannierConstructionInputs(), q3::IsolatedManifoldSelection::choose(), q3::ProjectabilityDisentanglementSelection::choose(), q3::MaximallyLocalizedGaugeChoice::choose(), q3::ProjectionGaugeChoice::choose(), and q3::MaximallyLocalizedGaugeChoice::require_supported().
|
inline |
Whether the spread is defined at all: it needs the overlaps, and a mesh without a two-point axis. The subspace iteration is untouched by the two-point rule – it never reads a phase – which is why a two-point axis is usable without localisation and not with it.
Definition at line 187 of file construction_inputs.hpp.
References two_point_axis_direction().
Referenced by q3::ProjectionGaugeChoice::choose().
|
inline |
|
inline |
The direction of a two-point axis, if any; KPointStencil::two_point_axis_direction says why.
Definition at line 177 of file construction_inputs.hpp.
Referenced by q3::MaximallyLocalizedGaugeChoice::require_supported(), and spread_is_defined().