Parametric bandstructures with cuts #52
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #28
This implements the
bandstructure(::ParametricHamiltonian, mesh)
and thebandstructure(::Union{Hamiltonian,ParametricHamiltonian}, mesh; cut =...)
functionality.This new feature is quite powerful. It allows to treat parameters in a
ParametricHamiltonian
as equivalent to Bloch phases when computingbandstructure(ph::ParametricHamiltonian, mesh)
. Themesh
should be a discretization of the parameter space ⊗ Brillouin zone forph
. Each vertexv
ofmesh
is interpreted asv = (p₁,..., pᵢ, ϕ₁,..., ϕⱼ)
, with parameter valuesp
coming before Bloch phasesϕ
.A possible application: obtain the bandstructure of a planar Josephson junction as a function of parallel momentum and superconductor phase difference. In general, this is useful when needing to compute the bandstructure of a system (or any associated observable) as a function of external parameters.
When providing a
cut
of the formcut = (mesh_coordinates...) -> v
, withmesh_coordinates
a Tuple of coordinates ofmesh
andv
the corresponding Bloch phases in the full Brillouin zonev = (ϕ₁,..., ϕⱼ)
(orv = (p₁,..., pᵢ, ϕ₁,..., ϕⱼ)
in parameter space ⊗ Brillouin zone forParametricHamiltonian
s), a section of the bandstructure in the target space ofcut
is constructed.The machinery of degeneracy resolution and band reconnection has been generalized to work with cuts and parametric spaces, resulting in clean reconnected bands even when mixing Bloch phases and parameters in an arbitrary way.
There is a rather small performance penalty for using cuts or parameter sampling. Essentially, the user should not have to worry about performance when using this feature. Example: