Fuzzy manifolds
FuzzyManifolds is a module to support calculations on other geometry regularised by lowest Landau level besides sphere. The supported geometries include torus $T^2$. 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 $2L_z\mod 2N_m$, 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.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 $U_{m_1m_2m_3m_4}$ from the pseudopotentials.
\[ U_{m_1m_2m_3m_4}=δ'_{m_1+m_2,m_3+m_4}\frac{1}{N_m}∑_{l,𝐪}δ'_{m_1-m_4,t}U_lL_l(q^2)e^{-q^2/2}e^{2πis(m_1-m_3)/N_m}\]
where $𝐪=(2πs/L_x,2πt/L_y), s,t∈ℤ$, $L_xL_y=2πN_m$ and the Kronecker $δ$ is defined in a sense of mod $N_m$
Argument
nm :: Int64
is the number of orbitals.lx :: Number
is the length along $x$-direction. Facultative.ps_pot :: Vector{<:Number}
is the vector of non-zero pseudopotentials.aspect_ratio :: Number
is the ratio $L_y/L_x$. Facultative, at most one oflx
andaspect_ratio
is given. If both are omitted, $L_x=L_y$ is taken.
Output
- A
nm
*nm
*nm
array giving the interaction matrix $U_{m_1m_2m_3m_4}$ where $m_4=m_1+m_2-m_3\mod N_m$.
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
\[∑_{\{m_i,f_i\}}U_{m_1m_2m_3m_4}M^A_{f_1f_4}M^B_{f_2f_3}c^{†}_{m_1f_1}c^{†}_{m_2f_2}c_{m_3f_3}c_{m_4f_4}.\]
Arguments
nm :: Int64
is the number of orbitals.nf :: Int64
is the number of flavours.lx :: Number
is the length along $x$-direction. Facultative.ps_pot :: Vector{<:Number}
is a list of numbers specifying the pseudopotentials for the interacting matrix $U_{m_1m_2m_3m_4}$.mat_a :: Matrix{<:Number}
is anf
*nf
matrix specifying $M^A_{ff'}$. Facultative, $I_{N_f}$ by default.mat_b :: Matrix{<:Number}
is anf
*nf
matrix specifying $M^B_{ff'}$. Facultative, the Hermitian conjugate ofmat_a
by default.aspect_ratio :: Number
is the ratio $L_y/L_x$. Facultative, at most one oflx
andaspect_ratio
is given. If both are omitted, $L_x=L_y$ 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
\[∑_{\{m_i,f_i\}}U_{m_1m_2m_3m_4}M^A_{f_1f_2}M^B_{f_3f_4}c^{†}_{m_1f_1}c^{†}_{m_2f_2}c_{m_3f_3}c_{m_4f_4}.\]
Arguments
nm :: Int64
is the number of orbitals.nf :: Int64
is the number of flavours.lx :: Number
is the length along $x$-direction. Facultative.ps_pot :: Vector{<:Number}
is a list of numbers specifying the pseudopotentials for the interacting matrix $U_{m_1m_2m_3m_4}$.mat_a :: Matrix{<:Number}
is anf
*nf
matrix specifying $M^A_{ff'}$. Facultative, $I_{N_f}$ by default.mat_b :: Matrix{<:Number}
is anf
*nf
matrix specifying $M^B_{ff'}$. 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 $m_i$ are in the list are kept.aspect_ratio :: Number
is the ratio $L_y/L_x$. Facultative, at most one oflx
andaspect_ratio
is given. If both are omitted, $L_x=L_y$ 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