https://github.com/akio-tomiya/latticeqcd.jl

A native Julia code for lattice QCD with dynamical fermions in 4 dimension.

https://github.com/akio-tomiya/latticeqcd.jl

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.5%) to scientific vocabulary

Keywords

hep hep-lat hmc hpc julia julia-language julialang lattice-field-theory lattice-gauge-theory lattice-qcd monte-carlo particle-physics physics qcd sciml
Last synced: 5 months ago · JSON representation

Repository

A native Julia code for lattice QCD with dynamical fermions in 4 dimension.

Basic Info
Statistics
  • Stars: 159
  • Watchers: 8
  • Forks: 20
  • Open Issues: 7
  • Releases: 18
Topics
hep hep-lat hmc hpc julia julia-language julialang lattice-field-theory lattice-gauge-theory lattice-qcd monte-carlo particle-physics physics qcd sciml
Created about 5 years ago · Last pushed 6 months ago
Metadata Files
Readme License

README.md

LatticeQCD.jl

CI

This code enabales you to perform lattice QCD calculations! A native Julia code for Lattice QCD.

Q&A/Issues

If you have questions and comments. Please use the issues section of this repository or use Discussions in JuliaQCD.

[In Japanese] 質問やコメントを日本語でしたい方はJuliaQCDのディスカッションボードに書き込みをしてください。

Star History

Star History Chart

Tutorial

You can start it in Google Colab

Quick start

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.10 (or higher) is supported in LatticeQCD.jl 1.2.0 (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, julia using Plots using LatticeQCD demo() it takes time before showing up the window.

What is supported?

We support lattice gauge theory in 4 dimensional euclidean spacetime.

  • Wizard for parameter files
  • Gauge fields
    • Optimized SU(2), SU(3)
    • General SU(N)
    • General gauge action = plaquette + rect + etc action
  • Fermions
    • Wilson (2 flavor)
    • Staggered fermion (1-8 tastes ~ flavor)
    • Standard Domain-wall (2 flavor, experimental)
  • Configuration generation algorithms
    • Cold/Hot start for SU(N). One instanton configuration for SU(2)
    • Heatbath for SU(N) & overelaxation for a general gauge action
    • Even-odd heatbath for the plaquette action
    • Quenched HMC with SU(N) for a general gauge action
    • HMC (2 flavor Wilson) with SU(N) with a general gauge action
    • HMC (4 taste staggered fermions) with SU(N) with a general gauge action
    • RHMC (any flavor staggered) with SU(N) for a general gauge action*
    • SU(N) stout smeared dynamical fermions (experimental)
    • Self-learning HMC with the plaquette action
  • Measurements
    • Plaquette
    • Polyakov loop
    • Chiral condensates (Wilson, staggered)
    • Momentum projected pion correlator (Wilson fermion, staggered)
    • RxT Wilson loop
    • Energy density
    • Topological charge (plaquette, clover and O(a^2) improved definition)
    • Load & measurement mode (load and measure all configurations in a directory)
  • Smearing
    • Stout
    • Gradient flow for a generic action (experimental)
  • I/O for gauge configurations
    • ILDG format (Binary)
    • JLD format (Default binary file for Julia, one of HDF5)
    • Text file for Bridge++ (Bridgetext)

*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 - Fermion integrated HMC with a general gauge action - Self-learning Monte-Carlo with a general action (ref. this paper )

Version below 1.0, it uses ``.jlas 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.

Related packages

LatticeQCD.jl is basically a wrapper of the following packages - Wilsonloop.jl :Wilsonloop.jl helps us to treat with the Wilson loops and generic Wilson lines in any Nc and dimensions. Wilson lines can be defined in symbolly. - Gaugefields.jl: Gaugefields.jl is a package for lattice lattice SU(N) gauge fileds. Treating gauge fields (links), gauge actions with MPI and autograd. This can generate quenched configurations. - LatticeDiracOperators.jl: LatticeDiracOperators.jl is a package for Dirac operators and fermions on the lattice. Treating pseudo-femrion fields with various lattice Dirac operators, fermion actions with MPI. This can generate configurations with dynamical fermions. - QCDMeasurements.jl: QCDMeasurements.jl is a package for measuring physical quantities. This has measurements for basic quantities like chiral condensates, plaquettes. Moreover, pion correlators and topological charge with several definitions. This also has the gradient flow with several actions.

This package is a code in a project JuliaQCD.

USAGE/User interface

We support following two user interfaces

  1. Julia REPL interface (For beginners, just after the lattice QCD textbook)
  2. Genral interface (Experience with another code, for batch job, customised purpose)

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):

julia:wizard.jl using LatticeQCD run_wizard()

Then, you can run the wizard:

julia wizard.jl

You write the following code (& save as run.jl): julia: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.

Purpose of the code

We develop this code to achive following things:

  1. Good portability (If one has Julia, this code is runnable. All dependences are under control.)
  2. Easy to start/ pedagogical (start in 10 minutes)
  3. Suite (configuration generation with and without fermions, and measurements)
  4. Easy to modify (Good for prototyping)
  5. Compatitive speed with Fortran 90 codes

This is the first open source Julia code for lattice QCD. High performance is out of our scope.

How has it been tested?

We compared results to following papers/codes

  • Nf=4 SU(3) staggered HMC with https://inspirehep.net/literature/283285
  • Quenched SU(2) improved thermodynamics https://inspirehep.net/literature/1614325
  • RHMC https://doi.org/10.1051/epjconf/201817507041
  • HMC for Wilson and Clover Wilson fermions "Lattice Tool Kit": https://nio-mon.riise.hiroshima-u.ac.jp/LTK/
  • Pion correlator with the Wilson-Dirac operator https://inspirehep.net/literature/37901
  • Pion correlator with the staggered Dirac operator https://inspirehep.net/literature/21821
  • Domain-wall fermion https://inspirehep.net/literature/496758 fig4

Reference

We refer "Lattice Tool Kit" https://nio-mon.riise.hiroshima-u.ac.jp/LTK/ written in Fortran 90.

Acknowledgement

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).

BibTeX citation is following @article{Nagai:2024yaf, author = "Nagai, Yuki and Tomiya, Akio", title = "{JuliaQCD: Portable lattice QCD package in Julia language}", eprint = "2409.03030", archivePrefix = "arXiv", primaryClass = "hep-lat", month = "9", year = "2024" } and the paper is arXiv:2409.03030.

Owner

  • Name: Akio
  • Login: akio-tomiya
  • Kind: user
  • Company: Private univ in Japan

Theo. Physicist + ML, BNL& Riken(SPDR)-> Assistant prof. in Japan. Ph D. My textbook in & physics http://is.gd/8K9Fic Lattice QCD

GitHub Events

Total
  • Create event: 10
  • Release event: 5
  • Issues event: 18
  • Watch event: 14
  • Issue comment event: 39
  • Push event: 24
  • Pull request event: 13
  • Fork event: 2
Last Year
  • Create event: 10
  • Release event: 5
  • Issues event: 18
  • Watch event: 14
  • Issue comment event: 39
  • Push event: 24
  • Pull request event: 13
  • Fork event: 2

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 534
  • Total Committers: 4
  • Avg Commits per committer: 133.5
  • Development Distribution Score (DDS): 0.354
Past Year
  • Commits: 35
  • Committers: 3
  • Avg Commits per committer: 11.667
  • Development Distribution Score (DDS): 0.286
Top Committers
Name Email Commits
cometscome c****e@g****m 345
Akio Tomiya a****a@h****m 180
CompatHelper Julia c****y@j****g 8
Satoshi Terasaki t****h@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 34
  • Total pull requests: 45
  • Average time to close issues: 2 months
  • Average time to close pull requests: 4 months
  • Total issue authors: 10
  • Total pull request authors: 4
  • Average comments per issue: 4.03
  • Average comments per pull request: 0.07
  • Merged pull requests: 18
  • Bot issues: 0
  • Bot pull requests: 34
Past Year
  • Issues: 15
  • Pull requests: 10
  • Average time to close issues: 17 days
  • Average time to close pull requests: 4 days
  • Issue authors: 4
  • Pull request authors: 2
  • Average comments per issue: 1.27
  • Average comments per pull request: 0.0
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 5
Top Authors
Issue Authors
  • cometscome (20)
  • akio-tomiya (5)
  • pietro-butti (2)
  • YtihalX (1)
  • bjobilal (1)
  • xingmimfl (1)
  • Moelf (1)
  • terasakisatoshi (1)
  • erinaldi (1)
  • JuliaTagBot (1)
Pull Request Authors
  • github-actions[bot] (36)
  • cometscome (14)
  • akio-tomiya (1)
  • terasakisatoshi (1)
Top Labels
Issue Labels
enhancement (3) bug (1) help wanted (1) invalid (1) good first issue (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • julia 16 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 21
juliahub.com: LatticeQCD

A native Julia code for lattice QCD with dynamical fermions in 4 dimension.

  • Versions: 21
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 16 Total
Rankings
Stargazers count: 7.8%
Dependent repos count: 9.9%
Forks count: 11.7%
Average: 17.1%
Dependent packages count: 38.9%
Last synced: 6 months ago

Dependencies

.github/workflows/CI.yml actions
  • actions/cache v2 composite
  • actions/checkout v1 composite
  • julia-actions/julia-buildpkg latest composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest latest composite
  • julia-actions/setup-julia v1 composite
.github/workflows/CompatHelper.yml actions
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite