This package currently implements composite fermion wavefunctions in the spherical geometry only (with plans to extend support to other geometries).
This repository contains code implementing the Jain-Kamilla (JK) projection in spherical geometry, following the approach outlined in this preprint. The primary application is the lowest Landau level (LLL) projection of composite fermion (CF) and, more generally, parton wavefunctions.
To use this package, follow these steps:
-
Install Julia: Download and install Julia from here.
-
Clone this Repository:
This package is not yet registered with the Julia General Registry. To use it:- Clone the repository:
git clone https://github.com/LordThunder333/CFsOnSphere.git
- Navigate to the cloned folder.
- Clone the repository:
-
Activate the Environment:
- If using Julia REPL:
Activate the folder by running:(This assumes you are in the cloned repository directory when opening the Julia REPL.)] activate .
- If running a Julia script:
Run your script while activating the environment:julia --project=path_to_folder myscript.jl
- If using Julia REPL:
This code is designed to work with single-component composite fermion wavefunctions, with plans to extend its scope in the future. Below are the typical steps for using the code:
Determine all the Λ-level orbitals (Landau levels of composite fermions) needed for your calculation.
Create a wavefunction object ψ using the constructor function:
Ψproj(Qstar, p, N, l_m_list)- Parameters:
Qstar: Effective monopole strength (as a rational number).p: The number of vortices bound to each electron.N: Number of electrons in the system.l_m_list: List of occupied Λ levels, represented as tuples(L, Lz)whereLandLzare rational numbers.
Before accessing the composite fermion orbitals for a given position, update the wavefunction:
-
For all particles:
update_wavefunction!(ψ, θ, φ)Updates the wavefunction assuming every particle is moved to the positions
(θ, φ). -
For a single particle:
update_wavefunction!(ψ, θ[i], φ[i], i)Updates the wavefunction assuming only the
i-th particle is moved to(θ[i], φ[i]).
After updating the wavefunction:
- Log of the Jastrow factor:
ψ.jastrow_factor_log - Elements of the CF Slater determinant:
Here, rows correspond to different orbitals, and columns correspond to different particles.
ψ.slater_det
From this point, users can extend the functionality as needed for their specific calculations.
We strongly recommend first-time users, especially those new to Monte Carlo methods in Haldane’s spherical geometry or the fractional quantum Hall effect, to review the provided example files for guidance.
- Upload tables from https://arxiv.org/pdf/cond-mat/9704031 so that a user can run MC chains for all the states listed and benchmark their energies.
- Create an automated system for sampling two-component (or more generally multi-component) wavefunctions, especially when the constituent electrons face different effective field.
- There are recursive implementations to calculate the Wigner-d matrices. But these are restricted to only integer spins. Currently, a speed comparison between the recursive implementations and the Fourier implementation (used in this package) has not been performed.