5.3. DSQSS/PMWAによるスピン鎖のエネルギー計算

このチュートリアルでは, S=1/2の反強磁性ハイゼンベルグ鎖の基底状態エネルギー計算をすることで、DSQSS/PMWAの使い方を学びます.

DSQSS/PMWAによる計算は,

  1. 入力ファイルの準備

  2. 計算の実行

  3. 計算結果の解釈

の3段階に分かれます.

5.3.1. 入力ファイルの準備

DSQSS/PMWAを実行するには,

  1. 格子定義ファイル

  2. パラメータファイル

の2つの入力ファイルが必要です. そのため, まずはこれらの入力ファイルを作成します. そのためのユーティリティツールが pmwa_pre です. これは単一の入力ファイルから, DSQSS/PMWA の入力ファイルを生成するPython スクリプトです. まず, pmwa_pre の入力ファイルとして, 次の内容を持つテキストファイル std.in を準備します.

[System]
solver = PMWA
[Hamiltonian]
model_type = spin
Jxy = -1.0
Jz = -1.0
Gamma = 0.1
[Lattice]
lattice_type = square
D = 1
L = 16
Beta = 100
[Parameter]
CB = 1
SEED = 31415
NSET = 10
NMCS = 100
NPRE = 100
NTHERM = 100
NDECOR = 100

自分の好きなエディタで書くか, sample/pmwa/1DDimer ディレクトリにあるものを利用してください. このファイルを pmwa_pre に与えます.

$ pmwa_pre std.in

この結果, パラメータファイル param.in, 格子定義ファイル lattice.xmlが作成されます.

5.3.2. 計算の実行

入力ファイルを作成したら, DSQSS/PMWA による計算を実行します.

$ pmwa_H param.in

なお, 計算を実行するときにMPI を用いることで, 乱数並列計算が可能です(入力ファイルの指定により空間分割, 虚時間方向の分割を行うこともできます. 詳細はDLAのユーザーマニュアルをご覧ください).

$ mpiexec -np 4 pmwa_H param.in

並列数 (今回は4) だけ独立に計算を行い, モンテカルロサンプル数を増やすことで計算精度を向上できます.

5.3.3. 計算結果の解釈

計算結果は出力ファイル sample.log に書き出されます. エネルギーは

$ grep ene sample.log
R ene  = -0.5705441 0.0003774399737579577

となります. なお, DSQSS/PMWAの場合は横磁場を必ず入れる必要があります. そのため, ゼロ磁場にするには外挿する必要があるので, ご注意ください.