A native Julia code for lattice QCD with dynamical fermions in 4 dimension.
This code enabales you to perform lattice QCD calculations! A native Julia code for Lattice QCD.
What is lattice QCD? (PDG) : Lattice regulated quantum chromo-dynamics used in high energy physics.
What is Julia? : An easy and fast scientific programming launguage with the JIT compiler
You can start it in Google Colab
You can start lattice QCD in 5 steps!
1.Download a Julia binary from Julialang.org. Set a path to the binary of Julia. Julia 1.6 (or higher) is supported. Julia 1.9 (or higher) is supported in LatticeQCD.jl 1.0.4 (or higher).
2.In Julia REPL, push "]" key to enter the package mode and type
add LatticeQCD
and "return" key. Press "backspace" key ( "delete" key for mac) to exit the package mode.
You can get the latest version via add LatticeQCD#master
.
(All dependence will be solved automatically)
3.Include the package with
using LatticeQCD
4.Make a parameter file with wizard,
run_wizard()
Choose parameters as you want!
5.Start simulation with created your parameter file!
run_LQCD("my_parameters.toml")
You'll get results!
Of cource, you can write/modify a parameter file by yourself.
Enjoy life with lattice QCD.
To see our demonstration above, execute,
using Plots
using LatticeQCD
demo()
it takes time before showing up the window.
We support lattice gauge theory in 4 dimensional euclidean spacetime.
*If you specified other than Nf=4, 8 with the staggered fermion HMC, RHMC is automatically used. For a machine with the apple silicon, Nf=1-8 is avalable.
To use following functions, please use v 0.1.2
*Version below 1.0, it uses ***.jl
as a default parameter file, and now it uses ***.toml
. Version 1.0 supports both parameter file formats.
*Parallelazation is supported by LatticeDiracOperators.jl. See below.
LatticeQCD.jl is basically a wrapper of the following packages
We support following two user interfaces
Usage 1 was already explained.
For Usage 2, in Julia REPL, push "]" key to enter the package mode and type
add LatticeQCD
Then, LatticeQCD.jl is installed on your machine.
The "PARAMETER_FILE" can be created through the wizard. To use the wizard on the shell, you write the following code (& save as wizard.jl
):
using LatticeQCD
run_wizard()
Then, you can run the wizard:
julia wizard.jl
You write the following code (& save as run.jl
):
using LatticeQCD
run_LQCD(ARGS[1])
Then, you can execute like
julia run.jl PARAMETER_FILE
then, you get results though standard I/O.
We develop this code to achive following things:
This is the first open source Julia code for lattice QCD. High performance is out of our scope.
We compared results to following papers/codes
We refer "Lattice Tool Kit" https://nio-mon.riise.hiroshima-u.ac.jp/LTK/ written in Fortran 90.
If you write a paper using this package, please refer this code.
E.g. This work is in part based on LatticeQCD.jl (https://github.com/akio-tomiya/LatticeQCD.jl).