Quantum 3xplorer (Q3)
Loading...
Searching...
No Matches
init.hpp
Go to the documentation of this file.
1
#pragma once
2
3
/**
4
* GaugeChoice — how the gauge inside the chosen subspace is fixed.
5
*
6
* The subspace selection hands over frames in the projection gauge, exact at
7
* the mesh points whatever else it does. A gauge choice is a unitary
8
* rotation of each frame: it changes nothing at the mesh points and
9
* everything between them, which is where an interpolator is actually used.
10
* ProjectionGaugeChoice keeps the frames as they are and evaluates their
11
* spread where it is defined; MaximallyLocalizedGaugeChoice minimises the
12
* Marzari-Vanderbilt spread over the rotations. Both fill the same report
13
* section, because the projection gauge has a spread too and a driver
14
* comparing two models wants it either way.
15
*
16
* Mirrors OverlapOperator: an interface, one class per physical context, and
17
* a factory (factory.hpp) that dispatches on the policy and the record.
18
*/
19
20
#include <vector>
21
22
#include "
layer_0_core/math/linear_algebra/dense_matrix.hpp
"
23
#include "
layer_0_core/types/init.hpp
"
24
#include "
layer_4_computation/interpolator/method/wannier/construction_inputs.hpp
"
25
#include "
layer_4_computation/interpolator/method/wannier/gauge/wannier_gauge.hpp
"
26
#include "
layer_4_computation/interpolator/method/wannier/internal/bloch_overlaps.hpp
"
27
#include "
layer_4_computation/interpolator/method/wannier/report/init.hpp
"
28
#include "
layer_4_computation/interpolator/method/wannier/subspace/init.hpp
"
29
30
namespace
q3
{
31
32
class
GaugeChoice
{
33
public
:
34
virtual
~GaugeChoice
() =
default
;
35
36
[[nodiscard]]
virtual
WannierGauge
choose
(
const
WannierConstructionInputs
& inputs,
37
const
WannierSubspace
& subspace)
const
= 0;
38
};
39
40
}
// namespace q3
bloch_overlaps.hpp
q3::GaugeChoice
Definition
init.hpp:32
q3::GaugeChoice::choose
virtual WannierGauge choose(const WannierConstructionInputs &inputs, const WannierSubspace &subspace) const =0
q3::GaugeChoice::~GaugeChoice
virtual ~GaugeChoice()=default
q3::WannierConstructionInputs
Definition
construction_inputs.hpp:41
construction_inputs.hpp
dense_matrix.hpp
init.hpp
init.hpp
init.hpp
q3
Definition
q3_core_api.hpp:33
q3::WannierGauge
Definition
wannier_gauge.hpp:17
q3::WannierSubspace
Definition
wannier_subspace.hpp:24
wannier_gauge.hpp
src
layer_4_computation
interpolator
method
wannier
gauge
init.hpp
Generated by
1.9.8