MoireSuperlattices.BLTMD — Type
BLTMD{
L<:MoireReciprocalLattice,
D<:Function,
S<:OperatorGenerator,
Q<:Quadraticization,
H<:CategorizedGenerator{<:OperatorSum{<:Quadratic}}
} <: MoireSystem{NamedTuple{(:a₀, :m, :θ, :Vᶻ, :μ), NTuple{5, Float64}}, L, D, S, Q, H}Twisted transition metal dichalcogenide homobilayers.
MoireSuperlattices.BLTMD — Method
BLTMD(a₀::Number, m::Number, θ::Number, Vᶻ::Number, μ::Number, V::Number, ψ::Number, w::Number; truncation::Int=4)Continuum model of twisted transition metal dichalcogenide homobilayers.
Here, the parameters are as follows:
a₀: monolayer lattice constant (Å)m: effective mass of the conduction band (mₑ)θ: twist angle (°)Vᶻ: perpendicular displacement field (meV)μ: chemical potential (meV)V: amplitude of Moire potential (meV)ψ: phase of Moire potential (°)w: interlayer hopping amplitude (meV)
MoireSuperlattices.BareCoulomb — Type
BareCoulomb(ϵ::Real)Bare (unscreened) 2D Coulomb potential: V(q) = 2π e² / (ϵ aₘ |q|). q=0 skipped (returns 0).
MoireSuperlattices.CommensurateBilayerHoneycomb — Type
CommensurateBilayerHoneycombCommensurate Moire superlattice composed of two layers of honeycomb lattices.
MoireSuperlattices.CoulombIntegral — Type
(coulomb::CoulombIntegral)(R::AbstractVector{<:Number}, potential=BareCoulomb(1.0))Compute U(R) = (1/(Nk Ω)) Σq V(|q|, aₘ) |M(q)|² e^{iq·R} in meV.
potential is a callable potential(q::Real, aₘ::Real) -> Real, e.g. BareCoulomb(ϵ), ImageCoulomb(ϵ, d), TanhCoulomb(ϵ, d), or a user-defined function. Defaults to BareCoulomb(1.0) (unscreened, ε=1).
Returns an nband×nband Matrix{Float64} Coulomb interaction matrix.
MoireSuperlattices.CoulombIntegral — Type
CoulombIntegral{W<:MoireWannier}Precomputed Coulomb form factor for a Wannier function.
Fields:
wannier::W— reference to the Wannier functionqs::Vector{SVector{2,Float64}}— unique q-vectors from the pairwise convolutionformfactor::Vector{Matrix{ComplexF64}}— M(q)†M(q) / Nₖ² matrices at each q, (nband×nband)
MoireSuperlattices.CoulombIntegral — Method
CoulombIntegral(wannier::MoireWannier)Construct by computing the form factor M(q) from Bloch coefficients via pairwise convolution.
Algorithm: compute gauge-transformed Bloch coefficients cn(p) for each Wannier function n at extended momenta p=k+G, then for each pair (n,m) accumulate M{m,n}(q) = Σp dot(cn(p+q), c_m(p)). The q-mesh emerges naturally from the G/G' truncation.
MoireSuperlattices.HoppingIntegral — Type
HoppingIntegral{W<:MoireWannier}Hopping amplitude calculator for a Wannier function.
Fields:
wannier::W— reference to the MoireWannier
Callable as (hopping::HoppingIntegral)(R::AbstractVector{<:Number}) -> Matrix{ComplexF64}:
\[t_{mn}(R) = (1/N) Σ_k exp(-ik·R) [U(k) diag(ε(k)) U†(k)]_{mn}\]
MoireSuperlattices.ImageCoulomb — Type
ImageCoulomb(ϵ::Real, d::Real)Image-charge screened Coulomb: V(q) = 2π e² (1 - e^{-2dₘ|q|}) / (ϵ aₘ |q|) where dₘ = d/aₘ.
MoireSuperlattices.MoireHoneycomb — Type
MoireHoneycomb{D<:Number} <: MoireSuperlattice{D}Emergent honeycomb superlattice in Moire systems, composed of XM and MX stacking sites.
MoireSuperlattices.MoireReciprocalLattice — Type
MoireReciprocalLattice{T<:Number} <: AbstractLattice{2, T, 0}Abstract type for Moire reciprocal lattices.
MoireSuperlattices.MoireSpace — Type
MoireSpace <: SimpleInternal{MoireSpinor{Int, Int, Int, Rational{Int}}}The internal degrees of freedom of Moire systems.
MoireSuperlattices.MoireSpinor — Type
MoireSpinor{V<:Union{Int, Colon}, L<:Union{Int, Colon}, S<:Union{Int, Colon}, P<:Union{Rational{Int}, Colon}} <: InternalIndexThe index of the internal degrees of freedom of Moire systems.
MoireSuperlattices.MoireSuperlattice — Type
MoireSuperlattice{D<:Number} <: AbstractLattice{2, D, 2}Abstract type of the emergent superlattices in Moire systems, parameterized by coordinate type D.
MoireSuperlattices.MoireSystem — Type
MoireSystem{P<:Parameters, L<:MoireReciprocalLattice, D<:Function, S<:OperatorGenerator, Q<:Quadraticization, H<:CategorizedGenerator{<:OperatorSum{<:Quadratic}}} <: TBA{Fermionic{:TBA}, H, Nothing}The continuum model of Moire systems.
MoireSuperlattices.MoireTriangular — Type
MoireTriangular{D<:Number} <: MoireSuperlattice{D}Emergent triangular superlattice in Moire systems.
MoireSuperlattices.MoireTriangularReciprocal — Type
MoireTriangularReciprocal{T<:Number} <: MoireReciprocalLattice{T}Moire reciprocal lattice with truncation.
MoireSuperlattices.MoireWannier — Type
(wannier::MoireWannier)(r::AbstractVector{<:Number}, sublattice::Int=1) -> Vector{ComplexF64}Evaluate the Wannier function at real-space position r for a given sublattice.
Formula: Wₙˡ(r) = (1/N√Ω) Σ{k, G, ν} bloch{G, l, ν}(k) · U_{ν, n}(k) · e^{i(k+G)·r}, where N is the number of k-points and Ω is the volume of the unit cell in the real space.
MoireSuperlattices.MoireWannier — Type
MoireWannier{L<:MoireSuperlattice, G<:MoireReciprocalLattice, B<:BrillouinZone}Wannier function constructed on an emergent Moire superlattice.
Fields:
aₘ::Float64— lattice constant of the moire superlatticelattice::L— emergent superlattice (MoireTriangular or MoireHoneycomb)reciprocallattice::G— truncated plane-wave basis (G-vectors) from the continuum modelbrillouinzone::B— uniform k-point mesh over the moire Brillouin zoneenergies::Matrix{Float64}— raw band energies, (nband, nk)bloch::Array{ComplexF64, 4}— raw Bloch eigenvectors, (nlayer, nG, nband, nk), pre-gaugeU::Array{ComplexF64, 3}— gauge transformation matrices, (nband, nband, nk)
MoireSuperlattices.MoireWannier — Method
MoireWannier(
moiresystem::MoireSystem, lattice::MoireHoneycomb, brillouinzone::BrillouinZone;
bands::UnitRange{Int}=dimension(moiresystem)-1:dimension(moiresystem), tol::Real=atol
)Construct Wannier functions for a 2-band subspace on a honeycomb lattice.
Steps:
- Extract raw Bloch states for the 2-band subspace
- SU(2) rotation: maximize layer polarization via diagonalizing layer projectors
- U(1) gauge fix: ψ₁(rXM) real positive (Wannier 1 at XM, bottom-layer), ψ₂(rMX) real positive (Wannier 2 at MX, top-layer)
MoireSuperlattices.MoireWannier — Method
MoireWannier(moiresystem::MoireSystem, lattice::MoireSuperlattice; nk=18, kwargs...)Convenience constructor that auto-generates a BrillouinZone with nk k-points per dimension from lattice and delegates to the full constructor.
MoireSuperlattices.MoireWannier — Method
MoireWannier(moiresystem::MoireSystem, lattice::MoireTriangular, brillouinzone::BrillouinZone; band::Int=dimension(moiresystem), tol::Real=atol)Construct the Wannier function for a single band on a triangular lattice.
Gauge fixing: U(1) phase such that the bottom-layer component at r=0 (MM site) is real and positive.
MoireSuperlattices.MoireWannier — Method
MoireWannier(moiresystem::Algorithm{<:MoireSystem}, args...; kwargs...)Forward to the wrapped MoireSystem frontend.
MoireSuperlattices.OnsiteAmplitude — Type
OnsiteAmplitude{N, D} <: FunctionOnsite amplitude.
Matches a self-bond to the registered set of reference onsite bonds via QuantumLattices.isparallel and returns 1 (match) or 0 (no match).
MoireSuperlattices.RealZone — Type
RealZone{N, S<:SVector, V<:Number}A rectangular zone in real space.
Alias for ReciprocalZone with the space-type parameter K = :r.
MoireSuperlattices.SpinOrbitalCouplingAmplitude — Type
SpinOrbitalCouplingAmplitude{N, D} <: FunctionSpin-orbital-coupling hopping amplitude under translation equivalence.
Matches a bond to the registered reference bonds via QuantumLattices.isparallel, which yields a parity $r = \pm 1$. The final SOC factor is $i \cdot s \cdot r$, where $s$ is the relative sign of the SOC coefficient $\lambda$ between bonds in the same $(t, |\lambda|)$ group (precomputed by terms and stored in signs).
MoireSuperlattices.SublatticeAmplitude — Type
SublatticeAmplitude{N, D} <: FunctionSpin-independent hopping amplitude.
Matches a bond to the registered set of reference bonds via QuantumLattices.isparallel and returns 1 (match) or 0 (no match).
MoireSuperlattices.TanhCoulomb — Type
TanhCoulomb(ϵ::Real, d::Real)Gate-screened Coulomb: V(q) = 2π e² tanh(dₘ|q|) / (ϵ aₘ |q|) where dₘ = d/aₘ.
QuantumLattices.Frameworks.Algorithm — Method
Algorithm(name::Symbol, bltmd::BLTMD, parameters::Parameters; kwargs...)Construct an Algorithm with a BLTMD as the frontend.
QuantumLattices.Spatials.Lattice — Method
Lattice(moire::CommensurateBilayerHoneycomb, type::Symbol)Get the minimum unit of the top/bottom layer of a commensurate Moire superlattice composed of two layers of honeycomb lattices.
Base.angle — Method
angle(moire::CommensurateBilayerHoneycomb) -> Float64Get the twist angle of a commensurate Moire superlattice composed of two layers of honeycomb lattices.
Base.count — Method
count(moire::CommensurateBilayerHoneycomb) -> IntCount the number of honeycomb unitcells contained in the unitcell of a commensurate Moire superlattice composed of two layers of honeycomb lattices.
The total number of atoms in the unitcell of the Moire superlattice is 4 times this result because of the AB sublattice and the top/bottom layer degrees of freedom.
Base.count — Method
count(wannier::MoireWannier) -> IntReturn the number of Wannier orbitals ($n_{\rm band}$).
MoireSuperlattices.terms — Function
terms(coulomb::CoulombIntegral, potential=BareCoulomb(1.0); order::Int, ismodulatable::Bool=true, atol::Real=1e-3, rtol::Real=1e-3) -> Tuple{Vararg{Term}}Generate Coulomb interaction terms from a CoulombIntegral.
potential is a callable potential(q::Real, aₘ::Real) -> Real.
Algorithm
- Reference bonds — All translationally-inequivalent bonds up to
orderfrombonds(lattice, order). - Per-bond extraction — For each neighbor order $k$, coefficient $V = coulomb(R, potential)[i, j]$ extracted per-bond.
- Grouping — Entries grouped by $V$ value using
isapproxwithatol/rtol. - Term construction — Each group yields a
Coulombterm withSublatticeAmplitude. - Onsite — Diagonal $coulomb(0, potential)[i, i]$ →
Hubbardonsite repulsion.
Naming
- R > 0, single group per shell:
V₁,V₂, … - R > 0, multiple groups per shell:
V₁₋₁,V₁₋₂, … - R = 0 (onsite):
U(all equal) orU₁,U₂, … (per-sublattice).
MoireSuperlattices.terms — Method
terms(hopping::HoppingIntegral; order::Int, ismodulatable::Bool=true, atol::Real=1e-3, rtol::Real=1e-3) -> Tuple{Vararg{Term}}Generate spin-independent and spin-orbital-coupling Hopping terms and Onsite terms from a HoppingIntegral.
Algorithm
- Reference bonds — All translationally-inequivalent bonds up to
orderfrombonds(lattice, order). - Per-bond extraction — For each neighbor order $k$, coefficient $t + iλ = hopping(R)[i,j]$ extracted per-bond.
- Grouping — Entries grouped by $(t, |λ|)$ using
isapproxwithatol/rtol. Relative signs among grouped $λ$ values are precomputed. - Term construction — Each group yields two terms:
t→HoppingwithSublatticeAmplitude.λ→Hoppingwith $σᶻ$ coupling andSpinOrbitalCouplingAmplitude.
- Onsite — Diagonal $hopping(0)[i, i]$ →
Onsitechemical potentials.
Naming
- Single group per shell:
t₁,λ₁,t₂,λ₂, … - Multiple groups per shell:
t₁₋₁,t₁₋₂, … andλ₁₋₁,λ₁₋₂, … - Onsite:
μ(all equal) orμ₁,μ₂, … (per-sublattice).
MoireSuperlattices.truncation — Method
truncation(lattice::MoireReciprocalLattice) -> IntGet the truncation (number of shells) of a Moire reciprocal lattice.
MoireSuperlattices.vectors — Method
vectors(moire::CommensurateBilayerHoneycomb) -> SVector{2, SVector{2, Float64}}Get the translation vectors of a commensurate Moire superlattice composed of two layers of honeycomb lattices.
QuantumLattices.Spatials.reciprocals — Method
reciprocals(lattice::MoireReciprocalLattice) -> SVector{2, SVector{2, scalartype(lattice)}}Get the reciprocal translation vectors of a Moire reciprocal lattice.
QuantumLattices.Spatials.reciprocals — Method
reciprocals(::Type{<:MoireHoneycomb}, [T=Float64]) -> SVector{2, SVector{2, T}}Delegates to MoireTriangularReciprocal (shared triangular Bravais lattice).
QuantumLattices.Spatials.reciprocals — Method
reciprocals(::Type{<:MoireTriangularReciprocal}, [T=Float64]) -> SVector{2, SVector{2, T}}Reciprocal-lattice translation vectors for the triangular Bravais lattice underlying Moire superlattices.
QuantumLattices.Spatials.reciprocals — Method
reciprocals(::Type{<:MoireTriangular}, [T=Float64]) -> SVector{2, SVector{2, T}}Delegates to MoireTriangularReciprocal (shared triangular Bravais lattice).