Fuzzy manifolds
FuzzyManifolds is a module to support calculations on other geometry regularised by lowest Landau level besides sphere. The supported geometries include torus . Other geometries (e.g., disk) can be added upon request. To use the module, include also at the start of your Julia script
using FuzzifiED.FuzzyManifolds
Torus
FuzzifiED.FuzzyManifolds.GetTorusLz2QNDiag
— MethodGetTorusLz2QNDiag(nm :: Int64, nf :: Int64) :: QNDiag
Return the QNDiag of twice the angular momentum , with an offset such that one fully filled LLL has angular momentum 0, implemented as
QNDiag("Lz", [2 * m - 1 + mod(nm, 2) for m = 1 : nm for f = 1 : nf], 2 * nm)
FuzzifiED.FuzzyManifolds.GetTorusTranslQNOffd
— MethodGetTorusTranslQNOffd(nm :: Int64, nf :: Int64, Δ :: Int64 = 1) :: QNOffd
Return the QNOffd of translation
on the torus, implemented as
QNOffd([((m - 1 + Δ) % nm) * nf + f for m = 1 : nm for f = 1 : nf], nm)
FuzzifiED.FuzzyManifolds.GetTorusIntMatrix
— MethodGetTorusIntMatrix(nm :: Int64, lx :: Number, ps_pot :: Vector{<:Number}) :: Array{ComplexF64, 3}
GetTorusIntMatrix(nm :: Int64, ps_pot :: Vector{<:Number} ; aspect_ratio :: Number = 1.0) :: Array{ComplexF64, 3}
Gives the interaction matrix from the pseudopotentials.
where , and the Kronecker is defined in a sense of mod
Argument
nm :: Int64
is the number of orbitals.lx :: Number
is the length along -direction. Facultative.ps_pot :: Vector{<:Number}
is the vector of non-zero pseudopotentials.aspect_ratio :: Number
is the ratio . Facultative, at most one oflx
andaspect_ratio
is given. If both are omitted, is taken.
Output
- A
nm
×nm
×nm
array giving the interaction matrix where .
FuzzifiED.FuzzyManifolds.GetTorusDenIntTerms
— FunctionGetTorusDenIntTerms(nm :: Int64, nf :: Int64, lx :: Number, ps_pot :: Vector{<:Number}[, mat_a :: Matrix{<:Number}[, mat_b :: Matrix{<:Number}]]) :: Terms
GetTorusDenIntTerms(nm :: Int64, nf :: Int64, ps_pot :: Vector{<:Number}[, mat_a :: Matrix{<:Number}[, mat_b :: Matrix{<:Number}]] ; aspect_ratio :: Number = 1.0) :: Terms
Return the normal-ordered density-density term in the Hamiltonian
Arguments
nm :: Int64
is the number of orbitals.nf :: Int64
is the number of flavours.lx :: Number
is the length along -direction. Facultative.ps_pot :: Vector{<:Number}
is a list of numbers specifying the pseudopotentials for the interacting matrix .mat_a :: Matrix{<:Number}
is anf
×nf
matrix specifying . Facultative, by default.mat_b :: Matrix{<:Number}
is anf
×nf
matrix specifying . Facultative, the Hermitian conjugate ofmat_a
by default.aspect_ratio :: Number
is the ratio . Facultative, at most one oflx
andaspect_ratio
is given. If both are omitted, is taken.
FuzzifiED.FuzzyManifolds.GetTorusPairIntTerms
— FunctionGetTorusPairIntTerms(nm :: Int64, nf :: Int64, lx :: Number, ps_pot :: Vector{<:Number}, mat_a :: Matrix{<:Number}[, mat_b :: Matrix{<:Number}]) :: Terms
GetTorusPairIntTerms(nm :: Int64, nf :: Int64, ps_pot :: Vector{<:Number}, mat_a :: Matrix{<:Number}[, mat_b :: Matrix{<:Number}] ; aspect_ratio :: Number = 1.0) :: Terms
Return the normal-ordered pair-pair interaction term in the Hamiltonian
Arguments
nm :: Int64
is the number of orbitals.nf :: Int64
is the number of flavours.lx :: Number
is the length along -direction. Facultative.ps_pot :: Vector{<:Number}
is a list of numbers specifying the pseudopotentials for the interacting matrix .mat_a :: Matrix{<:Number}
is anf
×nf
matrix specifying . Facultative, by default.mat_b :: Matrix{<:Number}
is anf
×nf
matrix specifying . Facultative, the Hermitian conjugate ofmat_a
by default.m_kept :: Vector{Int64}
is a list of orbitals that range from 1 tonm
. Facultative, if specified, only terms for which all are in the list are kept.aspect_ratio :: Number
is the ratio . Facultative, at most one oflx
andaspect_ratio
is given. If both are omitted, is taken.
Related examples
circle_ising.jl
calculates the spectrum of 2d Ising CFT on a fuzzy thin torus. This example reproduces Figure 4 and Tables I–III in Han 2025