フラストレート量子スピン系での磁化曲線計算
Last Update:2025/10/03
1. はじめに
TeNeSは、テンソルネットワーク法に基づいて多体量子状態を計算するプログラムパッケージです。二次元格子上で定義された多体ハミルトニアンの磁化や相関関数といった物理量の基底状態計算できます。また、有限温度や時間発展計算が可能です。さらに、OpenMP/MPIに対応しており、大規模並列計算も可能となっています。
本記事では、VirtualBox版のMateriApps Live!にプリインストールされているTeNeS v1.3.1を用いて、三角格子上で定義されたスピン1/2ハイゼンベルグ模型に対して、その磁化過程を計算していきます。
2. 実行方法
すでにVirtualBox版のMateriapps Live!にはTeNeS v1.3.1がプリインストールされており、チュートリアル用のサンプルコードが
/usr/share/tenes/sample/
にあります。本計算は、その中の05_magnetizationに対応しています。まず、テストディレクトリを作成し、テストディレクトリ内に該当するファイルの中身をコピーします:
mkdir test
cd test
cp -r /usr/share/tenes/sample/05_magnetization .
この時、テストディレクトリ内にある
basic.toml tutorial_magnetization.py
を利用して計算します。basic.tomlファイルには、模型の設定やパラメータなどが書き込まれています。basic.tomlファイル内の
[lattice] type = “triangular lattice” L = 3 W = 3
の部分でユニットセルの大きさが3×3の三角格子を設定しています。同じコード内で虚時間の分割幅は0.01、J = 1.0として設定されています。
tutorial_magnetization.pyは、磁場を掃引した時の磁化の計算を行うスクリプトとなっています。磁場hは分割幅0.25で0から5まで変化し、基底状態のエネルギーと磁化 \( ⟨S_z⟩\) を計算し、その結果が
energy.dat magnetization.dat
として出力されます。計算には、以下を実行:
python3 tutorial_magnetization.py
計算は、8プロセッサーを用いておよそ25分で程度で終了します。
3. 実行結果
計算終了後、gnuplotを用いて結果を描画します。
load ‘plot.gp’

この結果は、磁化の計算結果です。ステップ数が十分であると、磁化過程に点線の付近でプラトーが現れることが見て取れる。この構造は、三角格子特有のものであり、3つの格子上のスピンが↑↑↓と磁化した周期構造を成して、スピンギャップが生じていることを反映しています。
load ‘plot_ene.gp’

この結果は、エネルギーの計算結果になります。実際にこのグラフを描画してみたところ、縦軸・横軸ラベルがどちらもチュートリアルサイトと異なっていました。本レビューではチュートリアルサイトにあわせて修正しています。
4. 終わりに
本レビュー内では、VirtualBox版のMateriApps Live!にプリインストールされているTeNeSのチュートリアルを実行しました。公式サイト(https://issp-center-dev.github.io/TeNeS/manual/master/ja/html/index.html)では使用方法やファイルの説明など丁寧に解説がなされており、使用する際には非常に参考になります。より詳しい使い方やスクリプトの内容について知りたい方は、ぜひ公式サイトをご参照ください。
