🔬

LatticeQCD.jl を使ってみる

2020/12/06に公開

この記事では、簡単に格子QCDの計算ができる LatticeQCD.jl の使い方の説明をしたいと思います。

ノートパソコンでも本物の計算が簡単にできます。
あとJulia なのでmac でもWindows でもLinux でもライブラリを気にせず使えます。

格子QCDとは?

この世の物質は素粒子からできていると言われています。

水兵リーベ…と周期表を習ったと思います。
周期表には原子の種類がリストアップされています。
原子は原子核と電子で構成されていて、原子核が原子の質量のほとんどを占めていると言われています。

原子核は、陽子と中性子でできていて、陽子と中性子はクォークとグルーオンとという素粒子でできています。

詳しくは↓をみると外観がわかると思います。

陽子はクォーク 3 つからできている?【固体量子】

もう少し詳細は
スパコンの中のクォーク-素粒子から原子核をつくる

QCD相図の完成を目指して
あたりが参考になるかもしれません。

クォークとグルーオンは相対論と量子論の効果で生まれたり消えたりできるので、場の量子論という理論で計算する必要がありますが、だいたい計算が難しいです。
このクォークとグルーオンの相対論的な量子論をQCD(Quantum Chromo-dynamics)と呼びます。

計算ができないというのは、

\mathbb{E}(f(X)) \propto \int dx \mathrm{e}^{-\frac{1}{2}x^2 -\frac{g}{4}x^4 } f(x)

の計算が一般のg \in \mathbb{R}で難しいのと同じ原因です。普通はgでテイラー展開して計算するんですが、QCDの場合にはg\sim1となっておりテイラー展開での計算も難しいです。

そこで数値計算するというのが、格子QCDの数値計算です (正確には理論の正則化として機能するんですがそこは割愛します。詳しくは橋本省二さんのスライドなどが参考になります)。

積分なんで数値積分すれば良さそうな気がしますが、実際の格子QCDでは、100万次元ぐらいの多重積分が出てくるので台形法などの数値積分はできません。
そこでマルコフ連鎖モンテカルロ法が使われます。

LatticeQCD.jl では、格子QCDの計算をマルコフ連鎖モンテカルロ法を用いて行います。

使い方

5ステップで計算を始められます。

1.まずJulia を Julialang.orgからダウンロードして、 パスを通します。

2.次に、Juliaを起動して、そこ(REPL)で "]" キーをおして、パッケージモードに入ります。
そして

add https://github.com/akio-tomiya/LatticeQCD.jl

と入力しエンターキーをおします。そのあとバックスペースキーでパッケージモードを抜けます。

(必要なパッケージは自動的に入ります)

3.LatticeQCD.jl をロードします。つまりREPL に

using LatticeQCD

と入力します。

4.シミュレーションのパラメータファイルを作るのですが、それはウィザードでできます。
ウィザードを起動するには、

run_wizard()

と入力してください。好きなセットアップを選べます。

5.実際の計算は、

 run_LQCD("parameters_used.jl")

と入力することで行なえます。

詳細は、LatticeQCD.jl を御覧ください。

Discussion