MaximallyLocalizedWannierFunctions
Documentation for MaximallyLocalizedWannierFunctions.
MaximallyLocalizedWannierFunctions.HamiltonianMaximallyLocalizedWannierFunctions.MLWFMaximallyLocalizedWannierFunctions.MLWFMaximallyLocalizedWannierFunctions.MLWFMaximallyLocalizedWannierFunctions.δMaximallyLocalizedWannierFunctions.finitedifferencesMaximallyLocalizedWannierFunctions.gradientMaximallyLocalizedWannierFunctions.r²ₙMaximallyLocalizedWannierFunctions.rₙMaximallyLocalizedWannierFunctions.ΩMaximallyLocalizedWannierFunctions.Ω₁MaximallyLocalizedWannierFunctions.Ω₂QuantumLattices.update!TightBindingApproximation.optimize!
MaximallyLocalizedWannierFunctions.Hamiltonian — TypeHamiltonian{T<:Real, V<:AbstractVector{T}} <: FunctionThe Hamiltonian function based on Wannier interpolation.
MaximallyLocalizedWannierFunctions.MLWF — TypeMLWF(tba::TBA, brillouinzone::BrillouinZone, bands::AbstractVector{Int}, guess::Union{δ, Nothing}=nothing; kwargs...)
MLWF(hamiltonian::Function, lattice::Lattice, brillouinzone::BrillouinZone, bands::AbstractVector{Int}, guess::Union{δ, Nothing}=nothing; kwargs...)Initialize a set of maximally localized Wannier functions.
MaximallyLocalizedWannierFunctions.MLWF — TypeMLWF{L<:Lattice, B<:BrillouinZone, T<:Real, V<:AbstractVector{T}} <: FunctionMaximally localized Wannier functions on a Monkhorst-Pack mesh.
MaximallyLocalizedWannierFunctions.MLWF — Method(mlwf::MLWF)(coordinate::AbstractVector) -> Matrix{Complex{dtype(mlwf)}}Get the values of the wannier functions at each lattice point.
MaximallyLocalizedWannierFunctions.δ — Typeδ{T<:Real} <: FunctionDelta function like Wannier functions.
MaximallyLocalizedWannierFunctions.finitedifferences — Methodfinitedifferences(vectors::AbstractVector{<:AbstractVector}; nneighbor::Int=12, coordination::Int=12) -> Tuple{Vector, Vector{Vector}}Get the weights and difference vectors of a Monkhorst-Pack discretization scheme whose minimum mesh translations are given by vectors.
See Sec. 3.2 in Reference for the details of the method.
MaximallyLocalizedWannierFunctions.gradient — Methodgradient(mlwf::MLWF) -> Vector{Matrix{Complex{dtype(mlwf)}}}The gradient of the spread functional of the Wannier functions with respect to the infinitesimal gauge transformations at each momentum point.
MaximallyLocalizedWannierFunctions.r²ₙ — Methodr²ₙ(mlwf::MLWF) -> Vector{dtype(mlwf)}⟨r²ₙ⟩, i.e., the expectation value of r²ₙ for each Wannier function.
MaximallyLocalizedWannierFunctions.rₙ — Methodrₙ(mlwf::MLWF) -> Vector{Vector{dtype(mlwf)}}⟨rₙ⟩, i.e. the centers of the Wannier functions.
MaximallyLocalizedWannierFunctions.Ω — MethodΩ(mlwf::MLWF) -> dtype(mlwf)The value of the spread functional of the Wannier functions.
MaximallyLocalizedWannierFunctions.Ω₁ — MethodΩ₁(mlwf::MLWF) -> dtype(mlwf)The gauge-invariant part of the spread functional of the Wannier functions.
MaximallyLocalizedWannierFunctions.Ω₂ — MethodΩ₂(mlwf::MLWF) -> dtype(mlwf)The gauge-dependent part of the spread functional of the Wannier functions.
QuantumLattices.update! — Methodupdate!(mlwf::MLWF, ::GradientDescent) -> MLWFUpdate the maximally localized Wannier functions by the gradient descent method.
TightBindingApproximation.optimize! — Functionoptimize!(mlwf::MLWF, method::FirstOrderOptimizer=GradientDescent(); maxiter::Int=20000, atol=atol, rtol=rtol, verbose::Union{Nothing, Int}=nothing) -> MLWFOptimize a set of Wannier function to minimize the spread functional.