The goal of this pr will be to implement gauge-covariant derivative operators.
I explain the theory in the following memo:
gauge.pdf.
Given coefficients O_R for a Wannier interpolant of an operator O, the only additional data that is required for these derivatives is a Berry connection A_R.
What I would like to achieve is:
[ ] gauge-covariant derivatives of arbitrary order (based on DerivativeSeries in FourierSeriesEvaluators.jl) and a choice to transform between Wannier and Hamiltonian gauges
[ ] only make a distinction between operators that commute with the Hamiltonian (which defines the gauge that diagonalizes them) and those that don't
[ ] an interface to compute derivatives of eigenvalues from the gauge-covariant derivatives (e.g. a generalization of the current Intra/Inter-band velocities) and a perturbation-theory calculation of the Berry connection in the Hamiltonian gauge (see the memo for how to do this for the inverse effective mass)
[ ] refactoring AbstractWannierInterp to contain properties such as gauge and coord in a CommonSolve.jl problem
[ ] Simplifying load_wannier90_data's interp keyword so that it tries to load all possible input files into multiple Fourier series, and later pick those needed for the physical observable requested by the problem
[ ] some robust numerical test that an operator is in fact gauge-covariant (possibly based on symmetry)
It would be great to identify a unifying idea around which to organize the implementation, such as the gauge-covariant derivative mentioned above, as the current status of src/interp.jl is just a mish-mash of AbstractFourierSeries constructed from one another to obtain the requested observable.
The goal of this pr will be to implement gauge-covariant derivative operators. I explain the theory in the following memo: gauge.pdf. Given coefficients
O_R
for a Wannier interpolant of an operatorO
, the only additional data that is required for these derivatives is a Berry connectionA_R
.What I would like to achieve is:
DerivativeSeries
in FourierSeriesEvaluators.jl) and a choice to transform betweenWannier
andHamiltonian
gaugesIntra/Inter
-band velocities) and a perturbation-theory calculation of the Berry connection in the Hamiltonian gauge (see the memo for how to do this for the inverse effective mass)AbstractWannierInterp
to contain properties such asgauge
andcoord
in a CommonSolve.jl problemload_wannier90_data
'sinterp
keyword so that it tries to load all possible input files into multiple Fourier series, and later pick those needed for the physical observable requested by the problemIt would be great to identify a unifying idea around which to organize the implementation, such as the gauge-covariant derivative mentioned above, as the current status of
src/interp.jl
is just a mish-mash ofAbstractFourierSeries
constructed from one another to obtain the requested observable.