MetaQCD.jl
Inspired by the LatticeQCD.jl package by Akio Tomiya et al.
For detailed information on how to use this package, see the docs.
Features:
- [x] Simulations of 4D-SU(3) Yang-Mills (Pure Gauge) theory
- [x] Simulations of full lattice QCD with arbitrary number of flavours (Staggered, Wilson-Clover)
- [x] Metadynamics
- [x] PT-MetaD
- [x] Several update algorithms (HMC, Metropolis, Heatbath, Overrelaxation)
- [x] Several symplectic integrators for HMC (Leapfrog, OMF2, OMF4)
- [x] Gradient flow with variable integrators (Euler, RK2, RK3, RK3W7)
- [x] Improved Gauge actions (Symanzik tree, Iwasaki, DBW2)
- [x] Improved Topological charge definitions (clover, rectangle clover-improved)
- [x] Wilson(-Clover) fermions
- [x] Staggered fermions
- [x] RHMC to simulate odd number of flavours
- [x] Even-odd preconditioner for Wilson(-Clover)
- [x] Even-odd preconditioner for Staggered
- [ ] Mass-splitting preconditioner / Hasenbusch trick
- [ ] Full support for CUDA and ROCm backends
- [ ] Multi-node parallelism using MPI (not working with even-odd preconditioned fermions yet)
Installation:
First make sure you have Julia version 1.9.4 installed. You can use juliaup for that or just install the release from the Julia website.
Versions above this work too, but all development and optimization is done on 1.9.4 up until now and for the foreseeable future.
Then:
- Clone the latest release onto your machine.
- Open Julia in the directory which you cloned the repo into, with the project specific environment. This can either be done by starting Julia with the command line argument "–project" or by activating the environment within an opened Julia instance via the package manager:
using Pkg
Pkg.activate(".")
Or you can switch to package manager mode by typing "]" and then do
pkg> activate .
- Instantiate the project to install all the dependencies using the package manager:
Pkg.instantiate()
or
pkg> instantiate
If you want to use a GPU (not yet fully ready), make sure you not only have CUDA.jl or AMDGPU.jl installed, but also a fairly recent version of the CUDA Toolkit or ROCm.