HΦ Documentation
リリース 3.5.0

University of Tokyo

2021 年 09 月 29 日

i

目次
第 1 章 What is HΦ?

1.1

1HΦ とは？ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.1.1

ライセンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.1.2

コピーライト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.1.3

開発貢献者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

第 2 章 How to use HΦ

52.1

要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

2.2

インストール方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

2.3

ディレクトリ構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

2.4

基本的な使い方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

2.4.1

スタンダードモード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

2.4.2

エキスパートモード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

2.4.3
2.4.4

プロセス数の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
バージョン番号の確認 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

第 3 章 チュートリアル

3.1

3.2

3.3

スタンダードモード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.1.1

Heisenberg 模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.1.2

その他の系でのチュートリアル . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

エキスパートモード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2.1

入力ファイルリストファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2.2

基本パラメータの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.2.3

Hamiltonian の指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.2.4

出力ファイルの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.2.5

計算の実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

相関関数のフーリエ変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

第 4 章 ファイルフォーマット

4.1

4.2

13

スタンダードモード用入力ファイル

27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.1.1

計算の種類に関する必須パラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.1.2

格子に関するパラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.1.3

保存量に関するパラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.1.4

ハミルトニアンの各項の係数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.1.5

計算条件のパラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.1.6

動的グリーン関数の計算に関するパラメータ . . . . . . . . . . . . . . . . . . . . . 44

4.1.7

実時間発展計算に関するパラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . 46

エキスパートモード用入力ファイル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.2.1

入力ファイル指定用ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4.2.2

CalcMod ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.3

ii

4.2.3

ModPara ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.2.4

LocSpin 指定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

4.2.5

Trans 指定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.2.6

InterAll 指定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

4.2.7

CoulombIntra 指定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

4.2.8

CoulombInter 指定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

4.2.9

Hund 指定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

4.2.10

PairHop 指定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

4.2.11

Exchange 指定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

4.2.12

Ising 指定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

4.2.13

PairLift 指定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

4.2.14

OneBodyG 指定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

4.2.15

TwoBodyG 指定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

4.2.16

SingleExcitation 指定ファイル

4.2.17

PairExcitation 指定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

4.2.18SpectrumVec 指定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

4.2.19

OneBodyTE 指定ファイル

4.2.20

TwoBodyTE 指定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

出力ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

4.3.1
4.3.2

CHECK_Chemi.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
CHECK_InterAll.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

4.3.3

CHECK_CoulombIntra.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

4.3.4

CHECK_Hund.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

4.3.5

CHECK_INTER_U.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

4.3.6

CHECK_Memory.dat

4.3.7

WarningOnTransfer.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

4.3.8

CalcTimer.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

4.3.9

TimeKeeper.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

4.3.10sz_TimeKeeper.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

4.3.11

Time_CG_EigenVector.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

4.3.12energy.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

4.3.13Lanczos_Step.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

4.3.14

Time_TPQ_Step.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

4.3.15

Norm_rand.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

4.3.16

SS_rand.dat

4.3.17

Flct_rand.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

4.3.18Time_TE_Step.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

4.3.19

Norm.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

4.3.20SS.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

4.3.21

Flct.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

4.3.22

Eigenvalue.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

4.3.23

phys.dat

4.3.24

ham.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

4.3.25cisajs.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

4.3.264.3.27

cisajscktalt.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
eigenvec.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

4.3.28tmpvec.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

4.4

4.3.29DynamicalGreen.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

4.3.30recalcvec.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

4.3.31

TMcomponents.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

4.3.32

excitedvec.dat

4.3.33

residual.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

エラーメッセージ一覧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

第 5 章 アルゴリズム

5.1

5.2

5.3

147

Lanczos 法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
5.1.1

手法概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

5.1.2

逆反復法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

5.1.3 実際の実装について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
完全対角化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
5.2.1

手法概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

5.2.2

有限温度物理量の計算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

熱的純粋量子状態による有限温度計算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

5.3.1

実際の実装について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

5.4

動的グリーン関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

5.5

実時間発展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

5.6

Bogoliubov 表現 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

第 6 章 謝辞

153

付 録 A 相関関数の Fourier 変換ユーティリティー

155

A.1

A.2

A.3

A.4

A.5

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

A.1.1

要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

A.1.2

対応する量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

チュートリアル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

A.2.1

HPhi/vmc.out の実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

A.2.2

相関関数のフーリエ変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

A.2.3

相関関数のプロット . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

ファイルフォーマット . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

A.3.1

サイトの位置と軌道のインデックス, k 点 . . . . . . . . . . . . . . . . . . . . . . . 159

A.3.2

サイト表示の 1 体および 2 体相関関数 . . . . . . . . . . . . . . . . . . . . . . . . . 160

A.3.3

k パス上での相関関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

A.3.4

gnuplot スクリプト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

A.3.5

運動量分布関数の等値面をプロットするための FermiSurfer ファイル . . . . . . . . 161

greenr2k ユーティリティの動作について . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
A.4.1

HPhi-Lanczos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

A.4.2

HPhi-TPQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

A.4.3

HPhi-全対角化および LOBCG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

A.4.4

mVMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

Contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

付 録 B Wannier 関数を用いたダウンフォールディング

B.1

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

B.1.1
B.2

165

要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

チュートリアル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166iii

電荷密度の SCF 計算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

B.2.2(Optional) バンド計算と描画 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

B.2.3

Kohn-Sham 軌道の計算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

B.2.4

Wannier 関数, 誘電関数, 有効相互作用の計算 . . . . . . . . . . . . . . . . . . . . . 171

B.2.5

HPhi/mVMC によるモデル計算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

B.3

スタンダードモードの入力パラメーター . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

B.4

ファイルフォーマット . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

B.5

iv

B.2.1

B.4.1

ジオメトリー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

B.4.2

ホッピング, Coulomb 積分, 交換積分, 電荷密度 . . . . . . . . . . . . . . . . . . . . 177

Contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

1

第 1 章 What is HΦ?

1.1 HΦ とは？
実験データと理論模型の解析結果との直接比較は、物質科学の研究プロセスの一つの核となっています。
例えば、低エネルギー励起構造を反映する比熱の温度依存性や、帯磁率から見積もった有効スピン・モー
メントおよびキュリー・ワイス温度等の実験データからその背後にある電子状態を理解するためには、理論模型の解析結果との比較が必要不可欠です。
理論模型の解析手法としては、厳密対角化法

が近似を用いず定量的な計算ができる最も信頼できる手法1です。この目的のためには、東京工業大学の西森秀稔教授が作られた固有値問題ソルバパッケージ TITPACK
が長年広く利用されてきました。これまでは計算機資源の制約もあり、その利用は比較的小さな系への適用に限られてきました。しかし、計算機の進歩によって、並列化を利用してハバード模型 18 格子点、スピン 1/2 の格子スピン模型 36 格子点程度の計算が容易に実行可能となっています。また、量子統計力学の発展2345

により、基底状態計算と同程度のコストでの有限温度計算が可能となり、比熱や帯磁率の実験との定量的比較が十分可能となってきています6。これらの計算が可能になった背景には低バンド幅で多数の分散メモリ計算コアを持つ新しい計算機アーキテクチャがあり、その性能を最大限に生かしつつ、簡便に利用可能な新しいソフトウェアの登場が待たれていました。
このような背景に基づき、汎用量子模型ソルバーパッケージ HΦ は、ランチョス法に基づく量子多体模型の基底状態および低励起状態に対する厳密対角化法と、熱的純粋量子状態?

を基礎とした有限温度計算

を、簡便かつ柔軟なユーザー・インターフェイスとともに並列実装されたアプリケーションを目指して開発されました。シンプルなハバード模型やハイゼンベルグ模型に始まり、多軌道ハバード模型やジャロシ
ンスキー-守谷相互作用やキタエフ項のように SU(2) 対称性を破る相互作用を持つ量子スピン模型、さらに遍歴電子と局在スピンが結合した近藤格子模型まで、ユーザーの興味に応じて広汎な量子格子模型を解析することができます。基底状態および有限温度での内部エネルギーはもちろん、比熱や電荷・スピン構造
因子を始めとする様々な物理量が計算可能となっています。実験研究者を含む幅広いユーザーに気楽にご利用いただければ幸いです。

1 E. Dagotto, Rev. Mod. Phys. 66, 763-840 (1994).
2 M. Imada, M. Takahashi, Journal of the Physical Society of Japan 55, 3354-3361 (1986).
3 J. Jaklič, P. Prelovšek, Phys. Rev. B 49, 5065-5068 (1994).
4 A. Hams, H. De Raedt, Phys. Rev. E 62, 4365-4377 (2000).
5 S. Sugiura, A. Shimizu, Phys. Rev. Lett. 108, 240401 (2012).
6 Y. Yamaji, Y. Nomura, M. Kurita, R. Arita, M. Imada, Phys. Rev. Lett. 113, 107201 (2014).

HΦ Documentation, リリース 3.5.0

1.1.1 ライセンス
本ソフトウェアのプログラムパッケージおよびソースコード一式は GNU General Public License version 3（GPL v3）に準じて配布されています。HΦ (hphi) を引用する際には、以下の文献を引用してください。

Mitsuaki Kawamura, Kazuyoshi Yoshimi, Takahiro Misawa, Youhei Yamaji, Synge Todo, and Naoki Kawashima,Comp. Phys. Commun. 217 (2017) 180-192.

1.1.2 コピーライト© 2015- The University of Tokyo. All rights reserved.
本ソフトウェアは 2015, 2016, 2017 年度 東京大学物性研究所ソフトウェア高度化プロジェクトの支援を受け開発されており、その著作権は東京大学が所持しています。

1.1.3 開発貢献者
本ソフトウェアは以下の開発貢献者により開発されています。

• ver.3.4 (2020/6/2 リリース)– 開発者∗ 井戸 康太 (東京大学 物性研究所)∗ 河村 光晶 (東京大学 物性研究所)∗ 本山 裕一 (東京大学 物性研究所)∗ 吉見 一慶 (東京大学 物性研究所)∗ 三澤 貴宏 (早稲田大学 理工学術院総合研究所)∗ 山地 洋平 (東京大学大学院 工学系研究科)∗ 藤堂 眞治 (東京大学 理学系研究科)∗ 小西 優祐 (株式会社 アカデメイア)– プロジェクトコーディネーター
∗ 川島 直輝 (東京大学 物性研究所)• ver.3.3 (2019/7/19 リリース)• ver.3.2 (2019/4/27 リリース)• ver.3.1 (2018/9/3 リリース)• ver.3.0 (2017/12/25 リリース)– 開発者∗ 三澤 貴宏 (東京大学 物性研究所)

2

第 1 章 What is HΦ?

HΦ Documentation, リリース 3.5.0∗ 河村 光晶 (東京大学 物性研究所)∗ 吉見 一慶 (東京大学 物性研究所)∗ 井戸 康太 (東京大学大学院 工学系研究科)∗ 山地 洋平 (東京大学大学院 工学系研究科)∗ 藤堂 眞治 (東京大学 理学系研究科)– プロジェクトコーディネーター
∗ 川島 直輝 (東京大学 物性研究所)• ver.2.0 (2017/4/11 リリース)• ver.1.2 (2016/11/14 リリース)• ver.1.1 (2016/5/13 リリース)• ver.1.0 (2016/4/5 リリース)– 開発者∗ 三澤 貴宏 (東京大学大学院 物性研究所)∗ 河村 光晶 (東京大学 物性研究所)∗ 吉見 一慶 (東京大学 物性研究所)∗ 山地 洋平 (東京大学大学院 工学系研究科)∗ 藤堂 眞治 (東京大学 理学系研究科)– プロジェクトコーディネーター
∗ 川島 直輝 (東京大学 物性研究所)

動作環境
以下の環境で動作することを確認しています。

• 東京大学物性研究所スーパーコンピューターシステム B「sekirei」、システム C「enaga」• 富士通 FX-10• Linux PC + intel コンパイラ• Linux PC + gcc• Mac + gcc

1.1. HΦ とは？

3

5

第 2 章 How to use HΦ

2.1 要件HΦ のコンパイルおよび使用には次のものが必要です。
• C/fortran コンパイラ (インテル、富士通、GNU など)• BLAS/LAPACK ライブラリ (インテル MKL, 富士通, ATLAS など)• MPI ライブラリ (MPI 並列を行わない場合は必要ありません)• ScaLAPACK ライブラリ (全対角化で使用しない場合は必要ありません)• MAGMA ライブラリ (全対角化で使用しない場合は必要ありません)

ちなみに:例/ intel コンパイラーでの設定

intel コンパイラを使用する場合には、コンパイラに付属の設定用スクリプトを使用するのが簡単です。
64 ビット OS で bash を使っている場合にはsource /opt/intel/bin/compilervars.sh intel64
またはsource /opt/intel/bin/iccvars.sh intel64
source /opt/intel/mkl/bin/mklvars.sh

等を~/.bashrc に記載してください。詳しくはお手持ちのコンパイラ、ライブラリのマニュアルをお読みください。

HΦ Documentation, リリース 3.5.0

2.2 インストール方法
HΦ は次の場所からダウンロードできます。
https://github.com/QLMS/HPhi/releases
ダウンロードしたファイルを次のように展開してください。

$ tar xzvf HPhi-xxx.tar.gz
HΦ は cmake を利用してインストールできます。

ちなみに:物性研スパコンシステムである sekirei と enaga で cmake を利用するには

module load cmakeをあらかじめ実行する必要があります。
なお、両システムでは HΦ がプレインストールされております。
詳しくは スパコン公式ページ をご参照ください。

HΦ を展開したディレクトリのパスを$PathTohphi 、ビルドディレクトリを$HOME/build/hphi (任意の場所を指定可能) とした場合に、

cd $HOME/build/hphi
cmake -DCONFIG=gcc $PathTohphi
make
でコンパイルすることができます。全対角化の計算に ScaLAPACK を使用する場合には、-DUSE_SCALAPACK=ONのオプションを cmake 時につけてください。コンパイル後、$HOME/build/hphi 直下に src フォルダが作成され、実行ファイルである HPhi がそのフォルダ内に作成されます。MPI ライブラリがない場合には、MPI非対応の実行ファイルが作成されます。
なお、上の例では gcc コンパイラを前提としたコンパイルになっていますが、• sekirei : 物性研究所システム B

sekirei• sekirei_acc : 物性研究所システム B

sekirei(MAGMA ライブラリを使用する場合)• fujitsu : 富士通コンパイラ• intel : intel コンパイラ + Linux PC• gcc : GCC + Linux PCのオプションが用意されています。以下、HPhi を展開したディレクトリでビルドする例を示します (intel
コンパイラの場合)。

mkdir ./build
cd ./build
cmake -DCONFIG=intel ../make6

第 2 章 How to use HΦ

HΦ Documentation, リリース 3.5.0
実行後、build フォルダ直下に src フォルダが作成され、HPhi が src フォルダ内に作成されます。なお、コン
パイラを変更しコンパイルし直したい場合には、都度 build フォルダごと削除を行った上で、新規に上記作業を行うことをお薦めします。また、SSE2 が使用出来る場合には、cmake でのコンパイル時-DHAVE_SSE2を付け加えてください.

ちなみに:CMake 中に StdFace (https://github.com/issp-center-dev/StdFace, スタンダードモードのパーサー) が自動でダウンロードされます。
もしもこのダウンロードに失敗した場合は、 sh src/StdFace/download.sh を実行してダウンロードをしてください。

もしくは、別の場所にダウンロードした StdFace を使いたい場合は、-DSTDFACE_DIR=<path_to_stdface> を cmake コマンドに渡してください。

2.3 ディレクトリ構成
HPhi-xxx.gz を解凍後に構成されるディレクトリ構成を以下に示します。
|--CMakeLists.txt|--COPYING|--config/||--fujitsu.cmake||--gcc.cmake||--intel.cmake||--sekirei.cmake||--sekirei_acc.cmake|--doc/||--en/||--ja/||--fourier/||--userguide_en.pdf||--userguide_jp.pdf|--samples/|--src/||--*.c||--CMakeLists.txt||--include/*.h||--makefile_src||--StdFace/|--test/|--tool/

2.3. ディレクトリ構成

7

HΦ Documentation, リリース 3.5.0

2.4 基本的な使い方
HΦ ではスタンダードモードとエキスパートモードの 2 つのモードが存在します。ここでは、スタンダー
ドモードおよびエキスパートモードでの計算に関して、それぞれ基本的な流れを記載します。

2.4.1 スタンダードモード
スタンダードモードでの動作方法は下記の通りです。

1. 計算用ディレクトリの作成
計算シナリオ名を記載したディレクトリを作成します。

2. スタンダードモード用入力ファイルの作成
スタンダードモードでは、あらかじめ用意されたいくつかのモデル (Heisenberg モデ
ルや Hubbard モデル) や格子 (正方格子など) を指定し、それらに対するいくつかのパラメーター (最近接 · 次近接スピン結合やオンサイトクーロン積分など) と計算手
法 (Lanczos 法、TPQ 法など) を設定します。 各ファイルは How to use HPhi に従い記載してください。

3. 実行-s ( --standard

でも可) をオプションとして指定の上、1 で作成した入力ファ

イル名を引数とし、HPhi を実行します。

• シリアル/OpenMP 並列 の場合$ Path /HPhi -s Input_file_name• MPI 並列/ハイブリッド並列 の場合$ mpiexec -np number_of_processes Path /HPhi -s Input_file_name
ワークステーションやスパコン等でキューイングシステムを利用している場合はプロセス数をジョブ投入コマンドの引数として与える場合があります。詳しくはお使いのシステムのマニュアルをご参照ください。プロセス数の指定に関しては計算する系により固定のものに設定する必要があります。詳細は プロセス数の設定 を参照ください。

4. 途中経過計算実行の経過について output フォルダにログファイルが出力されます。出力されるファイルの詳細に関しては 出力ファイル を参考にしてください。

5. 最終結果
計算が正常終了した場合、計算モードに従い output フォルダに計算結果ファイルが出力されます。出力されるファイルの詳細に関しては 出力ファイル を参考にしてく
ださい。

ちなみに:

8

第 2 章 How to use HΦ

HΦ Documentation, リリース 3.5.0
OpenMP スレッド数の指定
実行時の OpenMP のスレッド数を指定する場合は、

HΦ を実行する前に以下の様にしてください (16 スレッドの場合)。
export OMP_NUM_THREADS=16

2.4.2 エキスパートモード
エキスパートモードでの動作方法は下記の通りです。

1. 計算用ディレクトリの作成
計算シナリオ名 (名前は任意) を記載したディレクトリを作成します。

2. 詳細入力ファイルの作成
エキスパートモードでは、ハミルトニアンのすべての項を記述する詳細入力ファイルと計
算条件のファイル、およびそれらのファイル名のリストファイルを作成します。各ファイ
ルはエキスパートモード用入力ファイル に従い記載してください。

注釈:
リストファイルの作成はスタンダード用のファイル StdFace.def を用いると容易に作成することがで
きます。

3. 実行
-e ( --expert

でも可) をオプションとして指定の上、2 で作成した入力リストファ

イル名を引数とし、ターミナルから HΦ を実行します。

• シリアル/OpenMP 並列$ Path/HPhi -e Input_List_file_name• MPI 並列/ハイブリッド並列$ mpiexec -np number_of_processes Path/HPhi -e
Input_List_file_name
プロセス数の指定に関しては計算する系により固定のものに設定する必要があります。
詳細は プロセス数の設定 を参照ください。

4. 途中経過計算実行の経過について output フォルダにログファイルが出力されます。出力されるファイルの詳細に関しては 出力ファイル を参考にしてください。

5. 最終結果
計算が正常終了した場合、計算モードに従い output フォルダに計算結果ファイルが出力されます。出力されるファイルの詳細に関しては 出力ファイル を参考にしてください。

2.4. 基本的な使い方

9HΦ Documentation, リリース 3.5.0

2.4.3 プロセス数の設定
MPI 並列/ハイブリッド並列を用いる場合、プロセス数は以下のように設定してください。
1. Standard モード• 電子系及び近藤格子系
スタンダードモード用入力ファイルで model="Fermion Hubbard", "Kondo

Lattice", "Fermion HubbardGC"の場合は、プロセス数が 4n となるように設定してください。
• スピン系
スタンダードモード用入力ファイルで model="Spin", "SpinGC"の場合は、入力ファイルの 2S の値に対してプロセス数が (2S+1)n となるように設定してください (デフォルトは 2S=1)。

2. Expert モード• 電子系及び近藤格子系
CalcMod ファイル の CalcMod ファイルで、CalcModel として fermion Hubbard 模型、近藤模型を選択した場合は、プロセス数が 4n となるように設定
してください。

• スピン系
CalcMod ファイル の CalcMod ファイルで、CalcModel としてスピン模型を選択した場合は、LocSpin 指定ファイル の LocSpin ファイルを参考にプロセス数を指定する必要があります。許容されるプロセス数は、サイト数の大きいものから順に局在スピンの状態数 (2S+1) を掛けたもので指定されます。
例えば、LocSpin ファイルが================================
NlocalSpin

3========================================i_0IteElc_2S ======================================
0

3

1

2

2

1

で与えられる場合、許容されるプロセス数は 2 = 1+1, 6 = 2×(2+1), 24 = 6×(3+1)となります。

10

第 2 章 How to use HΦ

HΦ Documentation, リリース 3.5.0

2.4.4 バージョン番号の確認
次のように-v オプションをつけて HΦ を実行すると, バージョン番号を標準出力した後終了します。

$ PATH/HPhi -v

2.4. 基本的な使い方

11

13

第 3 章 チュートリアル

3.1 スタンダードモード
3.1.1 Heisenberg 模型
以下のチュートリアルはディレクトリ

samples/old/CG/Heisenberg/
内で行います。Heisenberg 模型におけるサンプル入力ファイルはsamples/old/CG/Heisenberg/stan.inにあります。この例では 2 次元正方格子の Heisenberg 模型 (最近接サイト間の反強磁性的スピン結合のみを持つ) を考察します。

H=J

4
X

(Sij · Si+1j + Sij · Sij+1 )

(3.1)

i,j=1

ただし、周期境界条件 (S15 = S51 = S11 ) を採用します。インプットファイルの中身は次のとおりです。

model = "Spin"method = "CG"lattice = "square"
W = 4
L = 4
J = 1.0
2Sz = 0
この例ではスピン結合 J = 1 (任意単位) とし、サイト数は 16 としました。

Log 出力標準出力でログが出力されます。また、 "output" ディレクトリが自動生成され、そこにも計算経過を示す
ログが出力されます。例えば、サンプル実行時には以下のファイルが出力されます。

CHECK_InterAll.dat

Time_CG_EigenVector.dat

zvo_Lanczos_Step.dat

CHECK_Memory.dat

WarningOnTransfer.dat

zvo_sz_TimeKeeper.dat

CHECK_Sdim.dat

zvo_TimeKeeper.dat

HΦ Documentation, リリース 3.5.0
ログ出力されるファイルの詳細は CHECK_Chemi.dat 等をご覧ください。
実行コマンドと標準出力 (MPI 並列/ハイブリッド並列でコンパイルした場合の結果) は次のとおりです。:$ Path/HPhi -s stan.in,ammmmmmmmmmmmmmb,,,@@` dmmb

Welcome to the===m,@@` d@@@@@@@@@@@@@@@@b Pm,

@@

@@

@@

d@

d@@@ @@@ @@@@@@ @@@@b ~@a@@@@@@@@@@@@d@@@@@ ^^^ @@@@ m m @@@

@, @@

@@

@

@@@@_@@@_@@@@mm mm@@@@| @@mmmmmmmmmm@@ @@P@

9@@@@@@@@@@@@@@@@@P@@~~9@@@@@@PPP~~@@b@@@@@@@~@@@m,,@@@@@@@@@~~9@@@@@@@@@

@@

@@@

@@

@@

@~ @@@@@@@@@@@@@@ @@

@@

@@

@P

@@

@@

@@

@@@

,@@~

@@

@@
@@

,m@~`
~

9@P~~~9@P

#####

@@@

Parallelization Info.

@@

@@@

@@@@@@@@@@

Version 2.0.3#####

OpenMP threads : 1
MPI PEs : 1######

Standard Intarface Mode STARTS######

Open Standard-Mode Inputfile stan.in
KEYWORD : model| VALUE : SpinKEYWORD : method| VALUE : CG

KEYWORD : lattice| VALUE : square

KEYWORD : w| VALUE : 4

KEYWORD : l| VALUE : 4

KEYWORD : j| VALUE : 1.0

KEYWORD : 2sz| VALUE : 0#######

Parameter Summary#######@ Lattice Size & Shapea = 1.00000######DEFAULT VALUE IS USED######

Wlength = 1.00000######DEFAULT VALUE IS USED######

Llength = 1.00000######DEFAULT VALUE IS USED######

Wx = 1.00000######DEFAULT VALUE IS USED######(次のページに続く)

14

第 3 章 チュートリアル

HΦ Documentation, リリース 3.5.0(前のページからの続き)

Wy = 0.00000######DEFAULT VALUE IS USED######

Lx = 0.00000######DEFAULT VALUE IS USED######

Ly = 1.00000######DEFAULT VALUE IS USED######

phase0 = 0.00000######DEFAULT VALUE IS USED######

phase1 = 0.00000######DEFAULT VALUE IS USED############DEFAULT VALUE IS USED######

h = 0.00000######DEFAULT VALUE IS USED######

Gamma = 0.00000
2S = 1############DEFAULT VALUE IS USEDDEFAULT VALUE IS USED############

D = 0.00000######DEFAULT VALUE IS USED############DEFAULT VALUE IS USED######@ Super-Lattice setting
L = 4
W = 4
Height = 1
Number of Cell = 16
@ Hamiltonian

J0x = 1.00000
J0y = 1.00000
J0z = 1.00000
J1x = 1.00000
J1y = 1.00000
J1z = 1.00000@ Numerical conditions
LargeValue = 4.50000######

Print Expert input files######

locspn.def is written.
coulombinter.def is written.
hund.def is written.
exchange.def is written.
CDataFileHead = zvo######DEFAULT VALUE IS USED######

Lanczos_max = 2000######DEFAULT VALUE IS USED######

initial_iv = -1######DEFAULT VALUE IS USED######

exct = 1############DEFAULT VALUE IS USEDDEFAULT VALUE IS USED##################DEFAULT VALUE IS USED######

NumAve = 5######DEFAULT VALUE IS USED######

ExpecInterval = 20######DEFAULT VALUE IS USED######

NOmega = 200######DEFAULT VALUE IS USED######

LanczosEps = 14
LanczosTarget = 2(次のページに続く)

3.1. スタンダードモード

15

HΦ Documentation, リリース 3.5.0(前のページからの続き)

OmegaMax = 72.00000######DEFAULT VALUE IS USED######

OmegaMin = -72.00000######DEFAULT VALUE IS USED######

OmegaIm = 0.04000######DEFAULT VALUE IS USED######

SpectrumQW = 0.00000######DEFAULT VALUE IS USED######

SpectrumQL = 0.00000######DEFAULT VALUE IS USED######

SpectrumQH = 0.00000######DEFAULT VALUE IS USED############DEFAULT VALUE IS USED############DEFAULT VALUE IS USED############DEFAULT VALUE IS USED######

EigenVecIO = none######DEFAULT VALUE IS USED######CalcSpec = none######DEFAULT VALUE IS USED############DEFAULT VALUE IS USED######

2Sz = 0
modpara.def is written.
@ Spectrum

SpectrumType = szsz
pair.def is written.

@ CalcMod
Restart = none
InitialVecType = ccalcmod.def is written.
ioutputmode = 1
greenone.def is written.
greentwo.def is written.
namelist.def is written.
######

Input files are generated.

######

Read File 'namelist.def'.
Read File 'calcmod.def' for CalcMod.
Read File 'modpara.def' for ModPara.
Read File 'locspn.def' for LocSpin.
Read File 'coulombinter.def' for CoulombInter.
Read File 'hund.def' for Hund.
Read File 'exchange.def' for Exchange.
Read File 'greenone.def' for OneBodyG.
Read File 'greentwo.def' for TwoBodyG.
Read File 'pair.def' for PairExcitation.
######

Definition files are correct.

######

Read File 'locspn.def'.
Read File 'coulombinter.def'.
(次のページに続く)

16

第 3 章 チュートリアル

HΦ Documentation, リリース 3.5.0(前のページからの続き)

Read File 'hund.def'.
Read File 'exchange.def'.
Read File 'greenone.def'.
Read File 'greentwo.def'.
Read File 'pair.def'.
######

Indices and Parameters of Definition files(*.def) are complete.

######MAX DIMENSION idim_max=12870
APPROXIMATE REQUIRED MEMORY######

max_mem=0.001647 GB

MPI site separation summary######INTRA process site
Site

Bit

0
1

2
2

2

2

3

2

4

2

5

2

6

2

7

2

8

2

9

2

10

2

11

2

12

2

13

2

14

2

15

2

INTER process site
Site

Bit

Process element info
Process

Dimension

Nup

Ndown

Nelec

Total2Sz

0

12870

8

8

8

0

State

Total dimension : 12870######LARGE ALLOCATE FINISH !

######(次のページに続く)

3.1. スタンダードモード

17

HΦ Documentation, リリース 3.5.0(前のページからの続き)Start: Calculate HilbertNum for fixed Sz.
End: Calculate HilbertNum for fixed Sz.

Start: Calculate diagaonal components of Hamiltonian.
End: Calculate diagaonal components of Hamiltonian.

######

Eigenvalue with LOBPCG#######

initial_mode=1 (random): iv = -1 i_max=12870 k_exct =1
Step

Residual-2-norm

ThresholdEnergy12.44343e+00

1.00000e-07-5.27456e-01

22.76604e+00

1.87217e-07-1.87217e+00

32.61923e+00

4.19088e-07-4.19088e+00

42.57106e+00

5.97098e-07-5.97098e+00

40

7.39431e-06

1.12285e-06-1.12285e+01

41

4.15948e-06

1.12285e-06-1.12285e+01422.04898e-06

1.12285e-06-1.12285e+01

439.92048e-07

1.12285e-06-1.12285e+01######End: Calculate Lanczos EigenValue.

######End: Calculate Lanczos EigenVec.

( snip )i=

0 Energy=-11.228483 N= 16.000000 Sz=############
0.000000 Doublon=

0.000000

この実行では、はじめにハミルトニアンの詳細を記述するファイル (locspin.def , trans.def , exchange.

def , coulombintra.def , hund.def , namelist.def , calcmod.def , modpara.def ) と、結果として出力する相関関数の要素を指定するファイル ( greenone.def , greentwo.def ) が生成されます。これらのファ
イルはエキスパートモードと共通です。

計算結果出力局所最適ブロック共役勾配 (LOBCG) 法
入力ファイルで method = "CG" を選択すると、LOBCG 法での計算が行われます。LOBCG 法での計算が正常終了すると、固有エネルギーおよび一体グリーン関数、二体グリーン関数が計算され、ファイル出力されます。以下に、このサンプルでの出力ファイル例を記載します。(xx には 0 から始まる固有値番号が入
ります)。

18

第 3 章 チュートリアル

HΦ Documentation, リリース 3.5.0

zvo_energy.dat
zvo_cisajscktalt_eigen_xx.dat

zvo_phys_Nup4_Ndown4.dat

スタンダードモードの場合は、"greenone.def"、"greentwo.def"に基づき、:

zvo_cisajs_eigen_xx.dat、zvo_cisajscktalt_eigen_xx.datに固有値番号に対応した一体グリーン関数および二体グリーン関数の値が出力されます。

Lanczos 法
Lanczos 法での計算が正常終了すると、固有エネルギーおよび一体グリーン関数、二体グリーン関数が計算され、ファイル出力されます。

zvo_energy.dat zvo_cisajs.dat
zvo_cisajscktalt.dat
スタンダードモードの場合は、greenone.def 、greentwo.def に基づき、一体グリーン関数には ⟨niσ ⟩ 、二体グリーン関数には ⟨niσ njσ′ ⟩ が自動出力されます。なお、Lanczos 法で求めた固有ベクトルが十分な精度を持つ場合にはその固有ベクトルで計算されます。一方、Lanczos 法で求めた固有ベクトルが十分な精度を持たない場合には、ログ出力に「Accuracy of Lanczos vetor is not enough」が表示され、CG 法で固有ベクトルが求められます。各ファイルの詳細は、セクション energy.dat , cisajs.dat , cisajscktalt.dat に記載がありますので、ご参照ください。

TPQ 法
入力ファイルで method = "TPQ" を選択すると、TPQ 法での計算が行われます。TPQ 法での計算が正常終了すると、以下のファイルが出力されます (%%には run の回数、&&には TPQ のステップ数が入ります)。:Norm_rand%%.dat SS_rand%%.dat
zvo_cisajs_set%%step&&.dat
zvo_cisajscktalt_set%%step&&.dat
Norm_rand%%.dat には、逆温度や波動関数の規格前の大きさなどの基礎情報が、各 run 回数に応じステッ
プ数とともに出力されます。また、SS_rand%%.dat には、逆温度、エネルギー、ハミルトニアンの二乗の期待値などの物理量が各 run 回数に応じステップ数とともに出力されます。zvo_cisajs_set%%step&&.datと zvo_cisajscktalt_set%%step&&.dat には各 run 回数でのステップ数に応じた一体グリーン関数および二体グリーン関数が出力されます。各ファイルの詳細はそれぞれ、セクション Norm_rand.dat, SS_rand.dat,

cisajs.dat, cisajscktalt.dat に記載がありますので、ご参照ください。

3.1. スタンダードモード

19

HΦ Documentation, リリース 3.5.0
全対角化法
入力ファイルで method = "fulldiag" を選択すると、全対角化法での計算が行われます。全対角化法での計算が正常終了すると、下記のファイルが出力されます (xx には 0 から始まる固有値番号が入ります)。:

Eigenvalue.dat zvo_cisajs_eigen_xx.dat
zvo_cisajscktalt_eigen_xx.dat

zvo_phys_Nup4_Ndown4.dat

Eigenvalue.dat には固有値番号およびエネルギー固有値が出力されます。また、zvo_cisajs_eigen_xx.dat、
zvo_cisajscktalt_eigen_xx.dat には固有値番号に対応した一体グリーン関数および二体グリーン関数の値が出力されます。また、zvo_phys_Nup4_Ndown4.dat, physical quantities には、エネルギーやダブロンの期待値などの物理量が出力されます。各ファイルの詳細は、それぞれ Eigenvalue.dat - cisajscktalt.dat に記載がありますので、ご参照ください。

3.1.2 その他の系でのチュートリアル
samples 以下にはこの他にも様々なチュートリアルが置いてあります。それぞれのチュートリ
アルの内容や手順については、各フォルダにある README.md または チュートリアル向けの説
明資料 をご覧ください。

3.2 エキスパートモード
エキスパートモードでは、入力ファイルとして

1. 入力ファイルリスト
2. 基本パラメータ用ファイル
3. Hamiltonian 作成用ファイル
4. 出力結果指定用ファイルを用意した後、計算を行います。計算開始後に関しては、スタンダードモードと同様です。ここでは前節のスタンダードモードでのチュートリアルを行った後の状況を例に入力ファイルの作成に関する説明を行います。

3.2.1 入力ファイルリストファイル
入力ファイルの種類と名前を指定するファイル namelist.def には、下記の内容が記載されています。各入力ファイルリストファイルでは、行毎に Keyword とファイル名を記載し、ファイルの種類の区別を行います。詳細はセクション 入力ファイル指定用ファイル をご覧ください。

ModParamodpara.def

LocSpinlocspn.def

CoulombInter

coulombinter.def(次のページに続く)

20

第 3 章 チュートリアル

HΦ Documentation, リリース 3.5.0(前のページからの続き)

Hundhund.def

Exchangeexchange.def

OneBodyG

greenone.def

TwoBodyG

greentwo.def

CalcMod

calcmod.def

PairExcitation
SpectrumVecpair.def
zvo_eigenvec_0

3.2.2 基本パラメータの指定
計算モード、計算用パラメータ、局在スピンの位置を以下のファイルで指定します。

計算モードの指定

CalcMod でひも付けられるファイル (ここでは calcmod.def) で計算モードを指定します。ファイルの中身は下記の通りです。計算モード、計算用パラメータ、局在スピンの位置を以下のファイルで指定します。:#CalcType = 0:Lanczos, 1:TPQCalc, 2:FullDiag, 3:CG, ...
#CalcModel = 0:Hubbard, 1:Spin, 2:Kondo, 3:HubbardGC, ...
#Restart = 0:None, 1:Save, 2:Restart&Save, 3:Restart#CalcSpec = 0:None, 1:Normal, 2:No H*Phi, 3:Save, ...
CalcType

3

CalcModel

1

ReStart0

CalcSpec0

CalcEigenVec0

InitialVecType0

InputEigenVec0

CalcType で計算手法の選択、CalcModel で対象モデルの選択を行います。ここでは、計算手法として LOBCG
法、対象モデルとしてスピン系 (カノニカル) を選択しています。CalcMod ファイルでは固有ベクトルの入出力機能も指定することができます。CalcMod ファイルの詳細は CalcMod ファイル をご覧ください。

計算用パラメータの指定

ModPara でひも付けられるファイル (ここでは modpara.def) で計算用パラメータを指定します。ファイルの中身は下記の通りです。:-------------------Model_Parameters0-------------------HPhi_Cal_Parameters(次のページに続く)

3.2. エキスパートモード

21HΦ Documentation, リリース 3.5.0(前のページからの続き)-------------------CDataFileHead

zvo

CParaFileHead

zqp-------------------Nsite

16

2Sz

0

Lanczos_max

2000

initial_iv

-1

exct

1

LanczosEps

14

LanczosTarget

2

LargeValue

4.500000000000000e+00

NumAve5

ExpecInterval

20

NOmega200

OmegaMax
OmegaMin

7.200000000000000e+01-7.200000000000000e+01

OmegaOrg

0.0 0.0

4.000000000000000e-02
4.000000000000000e-02

このファイルでは、サイト数、伝導電子の数、トータル Sz や Lanczos ステップの最大数などを指定します。ModPara ファイルの詳細はセクション ModPara ファイル をご覧ください。

局在スピンの位置の指定

LocSpin でひも付けられるファイル (ここでは locspn.def) で局在スピンの位置と S の値を指定します。ファイルの中身は下記の通りです。:================================
NlocalSpin

16========================================i_0IteElc_1LocSpn ======================================
0

1

1

1

2

1

3
4

1
1

5

1

...
LocSpin ファイルの詳細は LocSpin 指定ファイル をご覧ください。

22

第 3 章 チュートリアル

HΦ Documentation, リリース 3.5.0

3.2.3 Hamiltonian の指定
基本パラメータを設定した後は、Hamiltonian を構築するためのファイルを作成します。 HΦ では、電子系の表現で計算を行うため、スピン系では以下の関係式

Siz = (c†i↑ ci↑ − c†i↓ ci↓ )/2,
Si+ = c†i↑ ci↓ ,(3.2)

Si− = c†i↓ ci↑ .
を用い、電子系の演算子に変換し Hamiltonian の作成をする必要があります。

Transfer 部の指定Trans でひも付けられるファイル (ここでは zTrans.def) で電子系の Transfer に相当する HamiltonianX
H+ = −
tijσ1 σ2 c†iσ1 cjσ2 .

(3.3)

ijσ1 σ2を指定します。ファイルの中身は下記の通りです。:========================
NTransfer0================================i_j_s_tijs==============================(1)

スピン系では外場を掛ける場合などに使用することができます。例えば、サイト 1 に −0.5Sz( S = 1/2 )の外場を掛けたい場合には、電子系の表現 −0.5/2(c†1↑ c1↑ − c†1↓ c1↓ ) に書き換えた以下のファイルを作成することで計算することが出来ます。

========================
NTransfer1================================i_j_s_tijs==============================
1 0 1 0 -0.25 0
1 1 1 1 0.25 0
Trans ファイルの詳細はセクション Trans 指定ファイル をご覧ください。

二体相互作用部の指定InterAll でひも付けられるファイル (ここでは zInterAll.def) で電子系の二体相互作用部に相当する HamiltonianX
X
H+ =Iijklσ1 σ2 σ3 σ4 c†iσ1 cjσ2 c†kσ3 clσ4 .
(3.4)
i,j,k,l σ1 ,σ2 ,σ3 ,σ4を指定します。ファイルの中身は下記の通りです。

3.2. エキスパートモード

23

HΦ Documentation, リリース 3.5.0======================
NInterAll
96==============================zInterAll===========================
0

0

0

0

1

0

1

0

0.500000

0.000000

0

0

0

0

1

1

1

1

-0.500000

0.000000

0

1

0

1

1

0

1

0

-0.500000

0.000000

0

1

0

1

1

1

1

1

0.500000

0.000000

0

0

0

1

1

1

1

0

1.000000

0.000000

0

1

0

0

1

0

1

1

1.000000

0.000000...
ここでは、簡単のためサイト i とサイト i + 1 間の相互作用に着目して説明します。S = 1/2 の場合、相互作用の項をフェルミオン演算子で書き換えると、
yxzHi,i+1 = J(Six Si+1
+ Siy Si+1
+ Siz Si+1
)


1 + −
1
+
z
=J
Si Si+1 + Si− Si+1
+ Siz Si+1
2
2


1 †
1
1
=J
ci↑ ci↓ c†i+1↓ ci+1↑ + c†i↓ ci↑ c†i+1↑ ci+1↓ + (c†i↑ ci↑ − c†i↓ ci↓ )(c†i+1↑ ci+1↑ − c†i+1↓ ci+1↓ ) .
2
2
4となります。したがって、 J = 2 に対して InterAll ファイルのフォーマットを参考に相互作用を記載すると、z
Siz Si+1の相互作用は

i

0

i

0

i+1

0

i+1

0

0.500000

0.000000

i

0

i

0

i+1

1

i+1

1

-0.500000

0.000000

i

1

i

1

i+1

0

i+1

0

-0.500000

0.000000

i

1

i

1

i+1

1

i+1

1

0.500000

0.000000となり、それ以外の項は

i

0

i

1

i+1

1

i+1

0

1.000000

0.000000

i

1

i

0

i+1

0

i+1

1

1.000000

0.000000と表せばよいことがわかります。なお、InterAll 以外にも、Hamiltonian を簡易的に記載するための下記のファイル形式に対応しています。詳細はセクション InterAll 指定ファイル - PairLift 指定ファイル をご覧ください。

3.2.4 出力ファイルの指定
一体 Green 関数および二体 Green 関数の計算する成分を、それぞれ OneBodyG, TwoBodyG でひも付けられるファイルで指定します。

24

第 3 章 チュートリアル

HΦ Documentation, リリース 3.5.0
一体 Green 関数の計算対象の指定

OneBodyG でひも付けられるファイル (ここでは greenone.def) で計算する一体 Green 関数 ⟨c†iσ1 cjσ2 ⟩ の成分を指定します。ファイルの中身は下記の通りです===============================
NCisAjs32======================================= Green functions =====================================
0

0

0

0

0

1

0

1

1

0

1

0

1

1

1

1

2

0

2

0

...
一体 Green 関数計算対象成分の指定に関するファイル入力形式の詳細はセクション OneBodyG 指定ファイ
ル をご覧ください。

二体 Green 関数の計算対象の指定

TwoBodyG でひも付けられるファイル (ここでは greentwo.def) で計算する二体 Green 関数 ⟨c†iσ1 cjσ2 c†kσ3 clσ4 ⟩の成分を指定します。ファイルの中身は下記の通りです。

=============================================
NCisAjsCktAltDC

1024===================================================== Green functions for Sq AND Nq ===================================================
0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

0

0

0

0

1

0

1

0

0

0

0

0

1

1

1

1

0

0

0

0

2

0

2

0

...
二体 Green 関数計算対象成分の指定に関するファイル入力形式の詳細はセクション TwoBodyG 指定ファイ
ル をご覧ください。

3.2. エキスパートモード

25

HΦ Documentation, リリース 3.5.0

3.2.5 計算の実行
全ての入力ファイルが準備できた後、計算実行します。実行時はエキスパートモードを指定する "-e" をオプションとして指定の上、入力ファイルリストファイル (ここでは namelist.def) を引数とし、ターミナルから HΦ を実行します。

$ Path/HPhi -e namelist.def
計算開始後のプロセスは、スタンダードモードと同様になります。

3.3 相関関数のフーリエ変換
このパッケージには、上で求めた相関関数をフーリエ変換し、プロットするユーティリティーが付属しています。このユーティリティーに関するマニュアルは

doc/fourier/ja/_build/html/index.html
doc/fourier/ja/_build/latex/fourier.pdf
doc/fourier/en/_build/html/index.html
doc/fourier/en/_build/latex/fourier.pdfにありますので、そちらを参照してください。

26

第 3 章 チュートリアル

27

第 4 章 ファイルフォーマット

4.1 スタンダードモード用入力ファイル
スタンダードモード用入力ファイルは次のような格好をしています。

W = 2
L = 4
model = "spin"
method = "Lanczos"
lattice = "triangular lattice"//mu = 1.0// t = -1.0// t' = -0.5// U = 8.0//V = 4.0//V'=2.0
J = -1.0
J'=-0.5// nelec = 8
2Sz = 0

大まかなルールは次のとおりです。

• 各行にはひと組ずつキーワード (=の前) とパラメータ (=の後) が書かれており間は=で区切られています。

• 各キーワードは順不同に記述できます。
• 空白行、または//で始まる行 (コメントアウト) は読み飛ばされます。
• 各キーワード、パラメータの大文字 · 小文字は区別されません。ダブルクオート、空白は無視されます。

• パラメータには三種類あります。
1. 必ず指定しなければいけないパラメータ(もし存在しない場合には、 HΦ のエラーメッセージが出力され、プログラムは終了します)

2. 指定しない場合デフォルト値が使われるパラメータ
使用されます)(もし存在しない場合は、デフォルト値がHΦ Documentation, リリース 3.5.0
3. 使われないパラメータ(使われないパラメータが指定された場合には"入力ファイルをチェックするように"というメッセージが表示され、プログラムは終了します。)
例えば、ハイゼンベルグ模型でトランスファー積分 t を指定した場合が相当します。 もし"model=spin" とした場合には、 "t" は使用できません。
次に各キーワードの説明をします。

4.1.1 計算の種類に関する必須パラメータ• model
形式 : 文字列 ("Fermion Hubbard", "Spin", "Kondo Lattice", "Fermion HubbardGC", "SpinGC","Kondo LatticeGC", "SpinGCCMA"のいずれか)1
説明 : 計算対象の模型を指定します。上記の文字列はそれぞれカノニカル集団のフェルミ粒子 Hubbard
模型

H = −µX †X
X
X
ciσ ciσ −tij c†iσ cjσ +U ni↑ ni↓ +Vij ni nj ,iσii̸=j,σ

(4.1)

i̸=j

同じくカノニカル集団のスピン模型 ({α, β} = {x, y, z})XXX
H = −hSiz − ΓSix + D
Siz Siz

+

X

i

i

Jijα Siα Sjα +

ij,α

X

i

Jijαβ Siα Sjβ ,ij,α̸=βカノニカル集団の近藤格子模型 (Hubbard 模型と同様に U と J を入れることも可能)
o
X †
X †
J Xn + †H = −µciσ ciσ − tciσ cjσ +Si ci↓ ci↑ + Si− c†i↑ ci↓ + Siz (ni↑ − ni↓ ) ,
2
iσ

⟨ij⟩σ

(4.2)

i

グランドカノニカル集団のフェルミ粒子 Hubbard 模型 [式 (4.1) ]、グランドカノニカル集団のスピン模型 [式 (4.2) ]、グランドカノニカル集団の近藤格子模型 [式 (4.2) ] に対応します。

"SpinGCCMA"では"SpinGC"と同じ計算をより速いアルゴリズム2 を用いて行います。ただし、扱うことのできるモデルや MPI 並列数に強い制約があります。以下の"Lattice"の項もご参照ください。

• method
形式 : 文字列 ("Lanczos", "TPQ", "Full Diag", "CG", "Time-Evolution"のいずれか)
説明 : 実行する計算の種類を指定します。上記の文字列はそれぞれランチョス法による少数固有状態の計算, 熱力学的純粋状態を用いた有限温度計算, 直接法による全固有状態計算, LOBCG 法34 による
少数固有状態の計算, 実時間発展計算 に対応します。
後述のスペクトル計算において使用される手法もこのパラメーターで指定されます"CG"とした場合には付属している Kω ライブラリ5 が呼び出され、シードスイッチ6 付きシフト双共役勾配法7 が適用されます。
1 GC=Grand Canonical
2 Y. Yamaji et. al., manuscript in preparation.
3 A.V.Knyazev, SIAM Journal on Scientiﬁc Computing 23, 517 (2001).
4 S.Yamada, T.Imamura, M.Machida, The Japan Society for Computational Engineering and Science 2006, 20060027 (2006).
5 https://github.com/issp-center-dev/Komega.
6 S.Yamamoto, T. Sogabe, T. Hoshi, S.-L. Zhang, T. Fujiwara, Journal of the Physical Society of Japan 77, 114713 (2008).
7 A.Frommer, Computing 70, 87-109 (2003).

28

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0• lattice形式 :文 字 列 ("Chain Lattice", "Square Lattice", "Triangular Lattice", "Honeycomb

Lattice", "Kagome", "Ladder"のいずれか)
説明 : 格子の形状を指定します。 上記文字列はそれぞれ 1 次元鎖 ( 図 4.1 (a))、 2 次元正方格子 ( 図

4.1 (b))、 2 次元三角格子 ( 図 4.1 (c))、 2 次元異方的蜂の巣格子 ( 図 4.2)、 カゴメ格子 (図 4.3)、梯子
格子 (図 4.4) に対応します。

method="SpinGCCMA"で は 、 こ の う ち"Chain Lattice", "Honeycomb Lattice", "Kagome","Ladder"に対応しています。各格子についてのサイズ (L,W ) と MPI 並列数 (Nproc ) の制限は次のとおりです (次節の L, W もご参照ください)。

– "Chain Lattice"
L = 8n(ただし n は n ≥ 1 の整数), Nproc ≤ 2(L = 8), Nproc ≤ 2L/2−2 (L > 8).
– "Honeycomb Lattice"
W = 3, L ≥ 2, Nproc ≤ 2(L = 2), Nproc ≤ 64(L > 2).
– "Kagome"W = 3, L ≥ 2, Nproc ≤ 1(L = 2), Nproc ≤ 512(L > 2).
– "Ladder"
W = 2, L = 2n(ただし n は n ≥ 4 の整数), Nproc ≤ 2L−4 .

4.1. スタンダードモード用入力ファイル

29

HΦ Documentation, リリース 3.5.0

4.1.2 格子に関するパラメータ
1 次元鎖 [ 図 4.1 (a)]• L
形式 : 自然数
説明 : 鎖の長さを指定します.

図 4.1: (a)1 次元鎖、(b)2 次元正方格子、(c)2 次元三角格子の模式図. ホッピング積分、オフサイトクーロン
積分、スピン結合は、再近接サイト間 (マゼンタの実線) ではそれぞれ t, V, J となり、次近接サイト間 (緑の破線) ではそれぞれ t′ , V ′ , J ′ となります。

30

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

図 4.2: 2 次元異方的蜂の巣格子の模式図. ホッピング積分、オフサイトクーロン積分、スピン結合は、ボンドの方向によって異なります。
梯子格子 ( 図 4.4 )• L
形式 : 自然数
説明 : 梯子の長さを指定します.

• W
形式 : 自然数
説明 : 梯子の本数を指定します.

矩形格子 [ 図 4.1 (b)], 三角格子 [ 図 4.1 (c)], 蜂の巣格子 [ 図 4.2 ], カゴメ格子 [ 図 4.3 ]これらの格子では、標準の単位胞 (図中の黒の破線を参照) を用いて格子形状を指定する方法と、それらとは別の方向に格子ベクトルを取る方法が選択できます。ただし、model=SpinGCCMA の時には前者のみが使えます。また、両方を指定した場合には HΦ を終了します。

• W, L
形式 : 自然数
説明 : 標準の単位胞の並び方を指定します。

4.1. スタンダードモード用入力ファイル

31

HΦ Documentation, リリース 3.5.0

図 4.3: カゴメ格子の模式図.

32

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

図 4.4: 梯子格子の模式図.

図 4.5: 三角格子において、⃗a0 = (6, 2), ⃗a1 = (2, 4) とした場合のセル形状。⃗a0 (マゼンタ) および ⃗a1 (グリーン) で囲まれた部分 (サイト数は 20) が計算するセルとなる。

4.1. スタンダードモード用入力ファイル

33

HΦ Documentation, リリース 3.5.0• a0W, a0L, a1W, a1L
形式 : 自然数
説明 : 格子を指定する 2 本のベクトル (⃗a0 , ⃗a1 ) を指定します (図 4.5)。これらのベクトルは標準の並進ベクトルを基底とした座標 (Fractional coordinate) で指定されます。
スタンダードモードで出力される lattice.gp というファイルを使うと、自分の意図した通りの格子のとり方になっているかどうかを確かめる事が出来ます。このファイルは、次のようにして gnuplot に読み込ませることが出来ます。

$ gnuplot lattice.gp

34

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.1.3 保存量に関するパラメータ• nelec
形式 : 整数
説明 : 伝導電子数を指定します。 model = "Fermion HubbardGC", "Spin", "SpinGC" のときには指定しないでください。

• 2Sz
形式 : 整数
説明 : 全スピンの z 成分の 2 倍を指定します。model = "Fermion HubbardGC", "SpinGC" のときには指定しないでください。

4.1. スタンダードモード用入力ファイル

35

HΦ Documentation, リリース 3.5.0

4.1.4 ハミルトニアンの各項の係数
デフォルト値は特に記載されていないものについては 0 に設定してあります。型が複素数のパラメータは「実部, 虚部」(間に ,) の形式で指定し、実数の場合には「実部」で指定が可能です。

局所項

• mu
形式 : 実数
説明 : Hubbard および近藤格子模型での化学ポテンシャルを指定します。

• U
形式 : 実数
説明 : Hubbard および近藤格子模型でのオンサイトクーロン積分を指定します。

• Jx, Jy, Jz, Jxy, Jyx, Jxz, Jzx, Jyz, Jzy
形式 : 実数
説明 : 近藤格子模型での、局在電子と遍歴電子のスピン結合を指定します。また対角項について, Jx,

Jy, Jz を指定する代わりに、パラメータ J を指定すると Jx = Jy = Jz = J が代入されます。 J を指定した上で Jx, Jy, Jz を指定した場合は HΦ を終了します。

• h
形式 : 実数
説明 : 縦磁場を指定します。

• Gamma, D
形式 : 実数
説明 : スピン模型での縦磁場、横磁場、異方性パラメータを指定します。ただし異方性パラメー
タについては、model=SpinGCCMA では使用できません。
下記の非局所項は、梯子格子の場合とそれ以外 (１次元鎖、矩形格子、三角格子、蜂の巣格子、カゴメ格子)の場合で指定の仕方が異なります。また、各格子で指定可能なパラメーターを Table 表 4.1 に表します。

36

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

表 4.1: 各格子で定義可能な相互作用一覧。ただし、スピン結合については行列として与えることが可能。
相互作用

1 次元鎖

矩形格子

三角格子

蜂の巣格子

カゴメ格子

梯子格子

J, t, V (省略形)

◦

◦

◦

◦

◦

-

J0, t0, V0

◦

◦

◦

◦

◦

◦

J1, t1, V1

-

◦

◦

◦

◦

◦

J2, t2, V2

-

-

◦

◦

◦

◦

J', t', V' (省略形)

◦

◦

◦

◦

◦

-

J0', t0', V0'

◦

◦

◦

◦

◦

-

J1', t1', V1'

-

◦

◦

◦

◦

◦

J2', t2', V2'

-

-

◦

◦

◦

◦

J'', t'', V'' (省略形)

◦

◦

◦

◦

-

-

J0'', t0'', V0''

◦

◦

◦

◦

-

-

J1'', t1'', V1''

-

◦

◦

◦

-

-

J2'', t2'', V2''

-

-

◦

◦

-

-

非局所項 [ 梯子格子 ( 図 4.4 )]• t0, t1, t1', t2, t2'
形式 : 複素数
説明 : 梯子格子でのホッピング (図 4.4 参照) を指定します。

• V0, V1, V1', V2, V2'
形式 : 実数
説明 : 梯子格子でのオフサイトクーロン積分 (図 4.2 参照) を指定します。

• J0x, J0y, J0z, J0xy, J0yx, J0xz, J0zx, J0yz, J0zy
• J1x, J1y, J1z, J1xy, J1yx, J1xz, J1zx, J1yz, J1zy
• J1'x, J1'y, J1'z, J1'xy, J1'yx, J1'xz, J1'zx, J1'yz, J1'zy• J2x, J2y, J2z, J2xy, J2yx, J2xz, J2zx, J2yz, J2zy
• J2'x, J2'y, J2'z, J2'xy, J2'yx, J2'xz, J2'zx, J2'yz, J2'zy.
形式 : 実数
説明 : 梯子格子でのスピン相互作用 (図 4.4 参照) を指定します。また対角項について、例えば J0x,J0y, J0z を指定する代わりにパラメータ J0 を指定すると J0x = J0y = J0z = J0 が代入されます。
J0 を指定した上で J0x, J0y, J0z 等も指定した場合は HΦ を終了します。J1, J1', J2, J2' についても同様です。

4.1. スタンダードモード用入力ファイル

37

HΦ Documentation, リリース 3.5.0
非局所項 [梯子格子以外 ( 図 4.1 , 図 4.2 , 図 4.3 )]• t, t0, t1, t2
形式 : 複素数
説明 : Hubbard および近藤格子模型での、最近接サイト間の各方向のホッピングを指定します。また、ホッピングのボンド方向依存性がない場合は t0, t1, t2 を別々に指定する代わりにパラメータ tを指定すると、t0 = t1 = t2 = t が代入されます。t と t0 等の両方が指定された場合には HΦ を終了します。

• t', t0', t1', t2'
形式 : 複素数
説明 : Hubbard および近藤格子模型での、次近接サイト間の各方向のホッピングを指定します。また、ホッピングのボンド方向依存性がない場合は t0', t1', t2' を別々に指定する代わりにパラメー
タ t' を指定すると、t0' = t1' = t2' = t' が代入されます。t' と t0' 等の両方が指定された場
合には HΦ を終了します。

• t'', t0'', t1'', t2''
形式 : 複素数
説明 : Hubbard および近藤格子模型での、第三近接サイト間の各方向のホッピングを指定します。また、ホッピングのボンド方向依存性がない場合は t0'', t1'', t2'' を別々に指定する代わりにパラ
メータ t'' を指定すると、t0'' = t1'' = t2'' = t'' が代入されます。t'' と t0'' 等の両方が指定された場合には HΦ を終了します。

• V, V0, V1, V2
形式 : 実数
説明 : Hubbard および近藤格子模型での、最近接サイト間の Coulomb 積分を指定します。また、サイト間 Coulomb 積分のボンド方向依存性がない場合は V0, V1, V2 を別々に指定する代わりにパラメー
タ V を指定すると、V0 = V1 = V2 = V が代入されます。V と V0 等の両方が指定された場合には HΦ
を終了します。

• V', V0', V1', V2'
形式 : 実数
説明 : Hubbard および近藤格子模型での、次近接サイト間の Coulomb 積分を指定します。また、サイト間 Coulomb 積分のボンド方向依存性がない場合は V0', V1', V2' を別々に指定する代わりにパラ
メータ V' を指定すると、V0' = V1' = V2' = V' が代入されます。V' と V0' 等の両方が指定された場合には HΦ を終了します。

• V'', V0'', V1'', V2''
形式 : 実数
説明 : Hubbard および近藤格子模型での、第三近接サイト間の Coulomb 積分を指定します。また、サイト間 Coulomb 積分のボンド方向依存性がない場合は V0'', V1'', V2'' を別々に指定する代わりにパラメータ V'' を指定すると、V0'' = V1'' = V2'' = V'' が代入されます。V'' と V0'' 等の両方が指定された場合には HΦ を終了します。

38

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0• J0x, J0y, J0z, J0xy, J0yx, J0xz, J0zx, J0yz, J0zy
• J1x, J1y, J1z, J1xy, J1yx, J1xz, J1zx, J1yz, J1zy
• J2x, J2y, J2z, J2xy, J2yx, J2xz, J2zx, J2yz, J2zy
形式 : 実数
説明 : スピン模型での、最近接サイト間のスピン相互作用を指定します。また対角項について、例えば J0x, J0y, J0z を指定する代わりにパラメータ J0 を指定すると J0x = J0y = J0z = J0 が代入されます。J0 を指定した上で J0x, J0y, J0z 等も指定した場合は HΦ を終了します。J1, J2 についても同様です。
スピン間相互作用のボンド方向依存性がない場合には、 Jx, Jy, Jz, Jxy, Jyx, Jxz,

Jzx, Jyz, Jzy を指定すると、J0x = J1x = J2x = Jx のようにすべてのボンド方向のスピン間相互作用に同じ値を代入することが出来ます。Jx∼Jzy 系列のどれかとJ0x∼J2zy 系列のどれかを両方指定した場合には HΦ を終了します。
以下に最近接間スピン相互作用の指定方法の例を挙げます。

• ボンド方向依存性、スピン方向依存性、相互作用の非対角成分 (Jxy 等) がない
場合

J を指定
• ボンド方向依存性、相互作用の非対角成分がなく、スピン方向依存性がある場合
Jx, Jy, Jz のうち 0 でないものを指定• ボンド方向依存性がなく、スピン方向依存性、相互作用の非対角成分がある場合
Jx, Jy, Jz, Jxy, Jyz, Jxz, Jyx, Jzy, Jzx のうち 0 でないものを指定• スピン方向依存性、相互作用の非対角成分がなく、ボンド方向依存性がある場合
J0, J1, J2 のうち 0 でないものを指定• スピン方向依存性がなく、ボンド方向依存性、相互作用の非対角成分がある場合
J0x, J0y, J0z, J1x, J1y, J1z, J2x, J2y, J2z のうち 0 でないものを指定• ボンド方向依存性、スピン方向依存性、相互作用の非対角成分がある場合
J0x∼J2zy のすべてのうち 0 でないものを指定• J'x, J'y, J'z, J'xy, J'yx, J'xz, J'zx, J'yz, J'zy
• J0'x, J0'y, J0'z, J0'xy, J0'yx, J0'xz, J0'zx, J0'yz, J0'zy• J1'x, J1'y, J1'z, J1'xy, J1'yx, J1'xz, J1'zx, J1'yz, J1'zy• J2'x, J2'y, J2'z, J2'xy, J2'yx, J2'xz, J2'zx, J2'yz, J2'zy
形式 : 実数
説明 : スピン模型での、次近接サイト間のスピン相互作用を指定します。ただし、蜂の巣格子またはカゴメ格子で model=SpinGCCMA の場合にはまだ対応していません。また対角項について、J'x,

J'y, J'z を指定する代わりにパラメータ J' を指定すると J'x = J'y = J'z = J' が代入されます。
J' を指定した上で J'x, J'y, J'z も指定した場合は HΦ を終了します。
4.1. スタンダードモード用入力ファイル

39

HΦ Documentation, リリース 3.5.0• J''x, J''y, J''z, J''xy, J''yx, J''xz, J''zx, J''yz, J''zy• J0''x, J0''y, J0''z, J0''xy, J0''yx, J0''xz, J0''zx, J0''yz, J0''zy• J1''x, J1''y, J1''z, J1''xy, J1''yx, J1''xz, J1''zx, J1''yz, J1''zy• J2''x, J2''y, J2''z, J2''xy, J2''yx, J2''xz, J2''zx, J2''yz, J2''zy
形式 : 実数
説明 : スピン模型での、第三近接サイト間のスピン相互作用を指定します。ただし、蜂の巣格子またはカゴメ格子で model=SpinGCCMA の場合にはまだ対応していません。また対角項について、J''x,

J''y, J''z を指定する代わりにパラメータ J'' を指定すると J''x = J''y = J''z = J'' が代入されます。J'' を指定した上で J''x, J''y, J''z も指定した場合は HΦ を終了します。

• phase0, phase1
形式 : 実数 (デフォルトでは 0.0)
説明 : 計算するセルの境界をまたいだホッピング項に付く因子の位相を指定することが出来ます (単位: 度)。⃗a0 方向、⃗a1 方向それぞれ別の位相因子を用いることが出来ます。１次元系では phase0 のみ使用できます。例えば、i サイトから j サイトへのホッピングで、正の方向に境界をまたいだ場合には次のようになります。

exp(i × phase0 × π/180) × tc†jσ ciσ + exp(−i × phase0 × π/180) × t∗ c†iσ cjσ

40

(4.3)

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.1.5 計算条件のパラメータ• 2S
形式 : 正の整数 (デフォルト値は 1)
説明 : スピン模型での局在スピンの大きさ S の 2 倍を指定します。 (例/ 1/2 スピンならば 1)• Restart
形式 : 文字列 ("None", "Restart_out", "Restart_in", "Restart"のいずれか。デフォルト
は"None")説明 :再 計 算 に 関 す る 設 定 を 行 う 。"None"で は 再 計 算 に 関 連 す る フ ァ イ ル 出 力 を し な い 。

"Restart_out"では一から計算を始めて、反復が終了した時点で再計算用のデータをファイル出力する。
"Restart_in"では再計算用のデータをファイルから受け取り途中から計算を始める。"Restart"では再計算用のデータをファイルから受け取り途中から計算を始め、反復が終了した時点で再計算用のデータをファイル出力する。

• Lanczos_max
形式 : 整数 (デフォルト値は 2000)
説明 : ランチョスステップの上限、LOBCG ステップの上限、TPQ ステップ数、時間発展ステップ
数、BiCG ステップの上限を指定します。

• initial_iv
形式 : 整数 (デフォルト値は-1)
説明 : 初期条件のベクトルを与えます。

– ランチョス法∗ カノニカル集団かつ initial_iv ≥ 0 の場合
ノンゼロの成分が指定されます。

∗ initial_iv < 0 の場合
乱数のシードが指定され、全ての成分に対して係数がランダムに与えられます。なお、
グランドカノニカルの場合は初期状態として多くの状態を持つよう、こちらの様式が適用されます。

– TPQ 法乱数のシードが指定され、全ての成分に対して係数がランダムに与えられます。
初期ベクトル設定の詳細については、アルゴリズム を参照ください。

• exct
形式 : 整数 (デフォルト値は 1)
説明 : method="Lancoz"ではエネルギーの低いものから数えて、何番目の固有状態を計算するかを指定します。method="CG"の時には求める固有状態の本数を指定します。

Note: nvec >= exct を満たす必要があります。

4.1. スタンダードモード用入力ファイル

41

HΦ Documentation, リリース 3.5.0• LanczosEps
形式 : 整数 (デフォルト値は 14)
説明 : ランチョスの収束判定条件を指定します。ひとつ前のステップの固有値との相対誤差が,10−LanczosEps 以下になったら収束したと判断します。method="CG"の時には残差ベクトルの 2-ノル
ムが 10−LanczosEps/2 以下になったら収束したと判断します。

• LanczosTarget
形式 : 整数 (デフォルト値は 2)
説明 : エネルギーの低いものから数えて、何番目の固有値でランチョスの収束判定を行うかを指定します。

• LargeValue
形式 : 実数 (デフォルト値は下記参照)
説明 : (TPQ 法のみで使用) l − H/Ns の l。ハミルトニアンの各項の係数の絶対値の総和をサイト数で割ったものがデフォルト値になります。cTPQ 計算では, LargeValue は虚時間発展の刻み幅として使われます ( ∆τ = 1/LargeV alue). ∆τ の定義はアルゴリズムの章を見てください (アルゴリズム) 。

• NumAve
形式 : 整数 (デフォルト値は 5)
説明 : (TPQ 法のみで使用) 独立な run を何回行うかを指定します。

• ExpecInterval
形式 : 整数 (デフォルト値は 20)
説明 : (TPQ 法のみで使用) 相関関数の計算を何回の TPQ ステップおきに行うかの指定。頻度を上げると計算コストが増大するので注意してください。

• OutputMode
形式 : "none", "correlation", "full"のいずれか (デフォルトは correlation)
説明 : 計算を行う相関関数を指定します。"none"の場合は相関関数を計算しません。

"correlation"を指定した場合には、付属のユーティリティ fourier でサポートする
ものに対応した相関関数を計算します。詳しくは doc/fourier/内のマニュアルを参照してください。"full"を指定した場合には、1 体部分はすべての i, j, σ, σ ′ について ⟨c†iσ cjσ′ ⟩を、2 体部分はすべての i1 , i2 , i3 , i4 , σ1 , σ2 , σ3 , σ4 について ⟨c†i1 σ1 ci2 σ2 c†i3 σ3 ci4 σ4 ⟩ を計算します。スピン系の演算子は Bogoliubov 表現により生成消滅演算子で表されています。詳
しくは Bogoliubov 表現 をご覧ください。

• InitialVecType
形式 : 文字 ("C", "R"のいずれか。デフォルトは"C")
説明 : 固有ベクトルの初期値の型を指定する。C では複素数型、R では実数型とする。

• EigenVecIO
形式 : 文字列 ("None", "Out", "In"のいずれか。デフォルトは"None")42

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0
説明 : 固有ベクトルの入出力を指定する。"None"では固有ベクトルの入出力を行わない。"Out"では求めた固有ベクトルをファイルに出力する。"In"では固有ベクトルをファイルから取り出し、その後の計算 (動的グリーン関数など) を行う。

• OutputIO
形式 : 文字列 ("None", "Out", "In"のいずれか。デフォルトは"None")
説明 : (FullDiag のみ有効) ハミルトニアンの入出力を指定します。"None"では 入出力なし。"Out"では出力あり。"In"では入力あり。

• OutputExcitedVec
形式 : 文字列 ("None", "Out"のいずれか。デフォルトは"None")
説明 : (動的グリーン関数を計算するモードの場合のみ有効) 励起ベクトルの出力の指定を行います。

"None"では 出力なし。"Out"では出力あり。

4.1. スタンダードモード用入力ファイル

43

HΦ Documentation, リリース 3.5.0

4.1.6 動的グリーン関数の計算に関するパラメータ• CalcSpec
形式 : 文字列 ("None", "Normal", "NoIteration", "Restart_out", "Restart_in", "Restart"。デフォルトは"None")
説明 : 動的グリーン関数の計算に関する設定を行う。"None"では動的グリーン関数を計算しない。

"Normal"では一から動的グリーン関数の計算を始める。"NoIteration"では、前回の反復回数と同
じところまで反復させる。このとき、ハミルトニアン-ベクトル積演算は行われないため、計算コス
トは非常に軽いが、十分な精度が出せない場合がある。"Restart_out"では一から計算を始めて、反復が終了した時点で再計算用のデータをファイル出力する。"Restart_in"では再計算用のデータをファイルから受け取り途中から計算を始める。"Restart"では再計算用のデータをファイルから受け取り途中から計算を始め、反復が終了した時点で再計算用のデータをファイル出力する。スペクトル計算において使用される手法はパラメーター method で指定されます。(method="CG"とした場合には付属している Kω ライブラリ1 が呼び出され、シードスイッチ2 付きシフト双共役勾配法3 が使われます。

• SpectrumType
形式 : 文字列 ("SzSz", "S+S-", "Density", "up", "down"のいずれか。デフォルトは"SzSz")+zSq− ⟩、
Sqz ⟩、"S+S-"では ⟨S−q
説明 : 計算する動的グリーン関数の種類を指定する。"SzSz"では ⟨S−q

"Density"では ⟨n−q nq ⟩、"up"では ⟨c†q↑ cq↑ ⟩、"down"では ⟨c†q↓ cq↓ ⟩ となる。
• SpectrumQW, SpectrumQL
形式 : 実数 (デフォルトはともに 0.0)

説明 : 計算する動的グリーン関数の波数を Fractional coordinate で指定する。 逆格子ベクトルは図4.1, 図 4.2, 図 4.3, 図 4.4 に表されている格子ベクトルと対応するものとなる。
• OmegaOrg
形式 : 実数 (デフォルトは 0.0)
説明 : 動的グリーン関数を計算する際の振動数 ω の実部の原点。

• OmegaMin
形式 : 実数 (デフォルトは-LargeValue× サイト数)
説明 : 計算する動的グリーン関数の振動数の実部の下限。

• OmegaMax
形式 : 実数 (デフォルトは LargeValue× サイト数)
説明 : 計算する動的グリーン関数の振動数の実部の上限。

• OmegaIm
形式 : 実数 (デフォルトは 0.01*LargeValue)
1 https://github.com/issp-center-dev/Komega.
2 S. Yamamoto, T. Sogabe, T. Hoshi, S.-L. Zhang, T. Fujiwara, Journal of the Physical Society of Japan 77, 114713 (2008).
3 A. Frommer, Computing 70, 87-109 (2003).

44

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0
説明 : 計算する動的グリーン関数の振動数の虚部。

• NOmega
形式 : 正の整数 (デフォルトは 200)
説明 : 計算する動的グリーン関数の振動数のグリッド数。

4.1. スタンダードモード用入力ファイル

45

HΦ Documentation, リリース 3.5.0

4.1.7 実時間発展計算に関するパラメータ• dt
形式 : 正の実数 (デフォルトは 0.1)
説明 : 時間ステップ幅。

• PumpType
形式 : 文字列 ("Quench", "Pulse Laser", "AC Laser", "DC Laser"のいずれか。デフォルト
は"Quench")P
説明 : 時間依存ハミルトニアンの種類を指定する。"Quench"では 2 体演算子 Uquench i ni↑ ni↓ が加Pえられる。"Pulse Laser", "AC Laser", "DC Laser"では、ホッピング項に − ijσ tij exp[−iA(t) ·(Ri − Rj )/(2π)]cd aggeriσ cjσ のように位相因子が付く。ここで A(t) はベクトルポテンシャルであり、"Pulse Laser"では A(t) = A0 exp[−(t − t0 )2 /(2t2dump )] cos[ω(t − t0 )]、"AC Laser"では A(t) =A0 sin[ω(t − t0 )]、"DC Laser"では A(t) = A0 t となる。
また、各時刻でのベクトルポテンシャルと電場を図示するためのファイル potential.dat が出力される。

• Uquench
形式 : 実数 (デフォルトは 0.0)
説明 : Uquench• freq
形式 : 実数 (デフォルトは 0.1)
説明 : ω

• tshift
形式 : 実数 (デフォルトは 0.0)
説明 : t0• tdump
形式 : 実数 (デフォルトは 0.1)
説明 : tdump• VecPotW, VecPotL
形式 : 実数 (デフォルトはともに 0.0)
説明 : 時刻 t = t0 でのベクトルポテンシャル A0 を逆格子の Fractional coordinate で指定する。 逆格子ベクトルは Figs. 図 4.1, 図 4.2, 図 4.3, 図 4.4 に表されている格子ベクトルと対応するものとなる。

46

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.2 エキスパートモード用入力ファイル
HΦ のエキスパートモードで使用する入力ファイル (*def) に関して説明します。入力ファイルの種別は以下の 4 つで分類されます。

(1) List:
キーワード指定なし: 使用する input ﬁle の名前のリストを書きます。なお、ファイル名は任意に指定することができます。

(2) Basic parameters:
CalcMod: 計算モードを指定するパラメーターを設定します。
ModPara: 計算時に必要な基本的なパラメーター (サイトの数、電子数、Lanczos ステップを何回やるかなど) を設定します。

LocSpin: 局在スピンの位置を設定します (近藤模型でのみ利用)。
(3) Hamiltonian:HΦ の Hamiltonian を電子系の表式により指定します。具体的には以下のファイルで指定されます。

Trans: c†iσ1 cjσ2 で表される一体項を指定します。
InterAll: c†iσ1 cjσ2 c†kσ3 clσ4 で表される一般二体相互作用を指定します。

なお、使用頻度の高い相互作用に関しては下記のキーワードで指定することも可能です。

CoulombIntra: ni↑ ni↓ で表される相互作用を指定します (niσ = c†iσ ciσ )。
CoulombInter: ni nj で表される相互作用を指定します (ni = ni↑ + ni↓ )。
Hund: ni↑ nj↑ + ni↓ nj↓ で表される相互作用を指定します。
PairHop: c†i↑ cj↑ c†i↓ cj↓ で表される相互作用を指定します。
Exchange: Si+ Sj− で表される相互作用を指定します。
Ising: Siz Sjz で表される相互作用を指定します。
PairLift: c†i↑ ci↓ c†j↑ cj↓ で表される相互作用を指定します。

(4) Output:

OneBodyG :出力する一体 Green 関数を指定します。⟨c†iσ1 cjσ2 ⟩ が出力されます。
TwoBodyG :出力する二体 Green 関数を指定します。

⟨c†iσ1 cjσ2 c†kσ3 clσ4 ⟩ が出力されます。

4.2. エキスパートモード用入力ファイル

47

HΦ Documentation, リリース 3.5.0

4.2.1 入力ファイル指定用ファイル
計算で使用する入力ファイル一式を指定します。ファイル形式に関しては、以下のようなフォーマットをしています。

CalcMod

calcmod.def

ModParamodpara.def

LocSpinzlocspn.def

Transztransfer.def

InterAll zinterall.def
OneBodyG zcisajs.def
TwoBodyG zcisajscktaltdc.def

ファイル形式[string01] [string02]

パラメータ• [string01]
形式 : string 型 (固定)
説明 : キーワードを指定します。

• [string02]
形式 : string 型
説明 : キーワードにひも付けられるファイル名を指定します (任意)。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• キーワードを記載後、半角空白を開けた後にファイル名を書きます。ファイル名は自由に設定できます。

• 必ず指定しなければいけないパラメータは CalcMod, ModPara, LocSpin です。
• 各キーワードは順不同に記述できます。
• 指定したキーワード、ファイルが存在しない場合はエラー終了します。

48

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0• # で始まる行は読み飛ばされます。
• ファイル読込用キーワードは 表 4.2 により指定します。
表 4.2: 定義ファイル一覧

Keywords

指定ファイルの概要

CalcMod

計算モードに関する指定をします。

ModPara計算で用いるパラメータの指定をします。

LocSpin各サイトに対して遍歴電子もしくは局在スピンの指定をします。

Trans

一般的一体相互作用に関する設定をします。

InterAll

一般的二体相互作用に関する設定をします。

CoulombIntra

内部クーロン相互作用に関する設定をします。

CoulombInter

サイト間クーロン相互作用に関する設定をします。

Hund

フント結合に関する設定をします。

PairHop

ペアホッピングに関する設定をします。

Exchange

交換相互作用に関する設定をします。

Ising

イジング相互作用に関する設定をします。

PairLift

ペアリフト相互作用に関する設定をします。

OneBodyG

出力する一体グリーン関数 ⟨c†iσ1 cjσ2 ⟩ に関する設定をします。

TwoBodyG

出力する二体グリーン関数 ⟨c†iσ1 cjσ2 c†kσ3 clσ4 ⟩ に関する設定をします。

SingleExcita-

一体励起状態の生成演算子に関する指定をします。

tion
PairExcitation

二体励起状態の生成演算子に関する指定をします。

SpectrumVec

スペクトル関数を計算するためのリスタート用の入力ベクトルを指定します。

OneBodyTE

各時刻で付加される一体型の演算子に関する設定をします。

TwoBodyTE

各時刻で付加される二体型の演算子に関する設定をします。

4.2. エキスパートモード用入力ファイル

49

HΦ Documentation, リリース 3.5.0

4.2.2 CalcMod ファイル
計算手法、計算モデル、出力モードを指定します。以下のようなフォーマットをしています。

CalcType

0

CalcModel

2

CalcEigenVec 0

ファイル形式[string01] [int01]

パラメータ• [string01]
形式 : string 型 (固定)
説明 : キーワードを指定します。

• [int01]
形式 : int 型

説明 : キーワードにひも付けられるパラメータを指定します。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• キーワードを記載後、半角空白を開けた後に整数値を書きます。
• 各キーワードは順不同に記述できます。
• 指定したキーワード、ファイルが存在しない場合はエラー終了します。
• キーワード CalcType, CalcModel は省略できません。省略した場合はエラー終了します。
• # で始まる行は読み飛ばされます。

50

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0
キーワード
次に各キーワードで指定されるパラメータに関して説明します。

• CalcType
形式 : int 型

説明 : 計算手法の指定を行います。

0: Lanczos 法
1: mTPQ 計算
2: 全対角化
3: LOBCG 法
4: 実時間発展
5: cTPQ 計算を選択することができます。

• CalcModel
形式 : int 型

説明 : 計算モデルの指定を行います。

0: fermion Hubbard 模型 (カノニカル：粒子数・Sz 保存、粒子数・Sz 非保存)
1: スピン模型 (カノニカル：Sz 保存)
2: 近藤模型 (カノニカル：粒子数・Sz 保存)
3: fermion Hubbard 模型 (グランドカノニカル：粒子数・Sz 非保存)
4: スピン模型 (グランドカノニカル：Sz 非保存)
5: 近藤模型 (グランドカノニカル：粒子数・Sz 非保存)を選択することが出来ます。 ferimon Hubbard 模型で粒子数保存・Sz 非保存を選択する場合は、粒子数のみを指定することで計算が可能となります。

• CalcEigenVec
形式 : int 型 (デフォルト値 0)

説明 : 固有ベクトルを計算する際の手法の指定を行います。

0: Lanczos 法+CG 法 (Lanczos 法での収束が十分でない場合に CG 法での固有ベクトル計算が行われます)

1: Lanczos 法
で選択することが出来ます。

4.2. エキスパートモード用入力ファイル

51

HΦ Documentation, リリース 3.5.0• InitialVecType
形式 : int 型 (デフォルト値 0)

説明 : 固有ベクトル (v0) の初期値の型の指定を行います。

-1:実部、虚部ともに正規分布乱数で与えられます。したがって, 規格化した初期ベクトルは NH 次元の超球面上に一様分布したものとなります。

0: 複素数 (Re[v0] ∈ [−1 : 1], Im[v0] ∈ [−1 : 1] ).
1: 実数 (Re[v0] ∈ [−1 : 1], Im[v0] = 0).
から選択することが出来ます。

• OutputEigenVec
形式 : int 型 (デフォルト値 0)
説明 : 固有ベクトルの出力の指定を行います。0: 出力なし 1: 出力ありから選択することが出来ます。

• InputEigenVec
形式 : int 型 (デフォルト値 0)
説明 : 固有ベクトルの入力の指定を行います。0: 入力なし 1: 入力ありから選択することが出来ます。

• ReStart
形式 : int 型 (デフォルト値 0)
説明 : 再計算用のモードを指定します。0: 再計算なし 1: リスタートベクトル入力なし、出力あり 2:
リスタートベクトル入力あり、出力あり 3: リスタートベクトル入力あり、出力なしから選択することが出来ます。

• CalcSpec
形式 : int 型 (デフォルト値 0)
説明 : 動的グリーン関数の計算モードを指定します。0: 動的グリーン関数の計算なし 1: 入力ベクト
ル・励起状態生成ファイルを読み込み計算 2: 三重対角行列の成分を読み込み再計算 3: 三重対角行列の成分と再計算用ベクトルを出力 4: 三重対角行列の成分と再計算用ベクトルを読み込み再計算 5: 三重対角行列の成分と再計算用ベクトルを読み込み再計算・再出力から選択することが出来ます。

• OutputHam
形式 : int 型 (デフォルト値 0)
説明 : (FullDiag) ハミルトニアンの出力モードを指定します。0: 出力なし 1: 出力ありから選択することが出来ます。

• InputHam
形式 : int 型 (デフォルト値 0)
説明 : (FullDiag) ハミルトニアンの入力モードを指定します。0: 入力なし 1: 入力ありから選択することが出来ます。

52

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0• OutputExcitedVec
形式 : int 型 (デフォルト値 0)
説明 : 励起ベクトルの出力の指定を行います。0: 出力なし 1: 出力ありから選択することが出来ます。

• Scalapack
形式 : int 型 (デフォルト値 0)

説明 : (FullDiag) 全対角化計算での ScaLAPACK ライブラリの使用有無を指定します。

0: ScaLAPACK を使用しない。
1: ScaLAPACK を使用する。
で選択することが出来ます。

• NGPU
形式 : int 型 (デフォルト値 2)
説明 : (FullDiag) 全対角化計算での MAGMA ライブラリを使用する場合の GPU 数を指定します。なお、 HΦ ではマルチノードでの GPU 計算には対応していません。

4.2. エキスパートモード用入力ファイル

53

HΦ Documentation, リリース 3.5.0

4.2.3 ModPara ファイル計算で使用するパラメータを指定します。以下のようなフォーマットをしています。

-------------------Model_Parameters0-------------------HPhi_Cal_Parameters-------------------CDataFileHead

zvo

CParaFileHead

zqp-------------------Nsite
Ncond

16
16

2Sz

0

Lanczos_max

1000

initial_iv

12

exct

1

LanczosEps

14

LanczosTarget

2

LargeValue

12

NumAve5

ExpecInterval

20

ファイル形式
以下のように行数に応じ異なる形式をとります。

• 1 - 5 行: ヘッダ (何が書かれても問題ありません)。
• 6 行: [string01] [string02]• 7 - 8 行: ヘッダ (何が書かれても問題ありません)• 9 行以降: [string01] [int01]
各項目の対応関係は以下の通りです。

• [string01]
形式 : string 型 (固定)
説明 : キーワードの指定を行います。

• [string02]
形式 : string 型 (空白不可)
説明 : アウトプットファイルのヘッダを指定します。

54

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0• [int01]
形式 : int 型 (空白不可)
説明 : キーワードでひも付けられるパラメータを指定します。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• 9 行目以降ではキーワードを記載後、半角空白を開けた後に整数値を書きます。
• 行数固定で読み込みを行う為、パラメータの省略はできません。

キーワード
以下、共通パラメータと各手法毎に必要なパラメータを記載します。

共通パラメータ• CDataFileHead
形式 : string 型 (空白不可)
説明 :ア ウ ト プ ッ ト フ ァ イ ル の ヘ ッ ダ 。例 え ば 、一 体 の Green 関 数 の 出 力 フ ァ イ ル 名 がxxx_Lanczos_cisajs.dat として出力されます (xxx に CDataFileHead で指定した文字が記載)。
• Nsite
形式 : int 型 (自然数)
説明 : サイト数を指定する整数。

• Ncond
形式 : int 型 (非負整数)
説明 : 伝導電子数を指定する整数。グランドカノニカルの場合には使用されません。

• 2Sz
形式 : int 型 (非負整数)
説明 : 2Sz を指定する整数。グランドカノニカルの場合には使用されません。電子系、近藤格子模型
で Sz 保存の計算を行う場合には Ncond を指定する必要があります。

• initial_iv
形式 : int 型 (整数)
説明 : 初期条件のベクトルを与えます。

– Lanczos 法, CG 法

4.2. エキスパートモード用入力ファイル

55

HΦ Documentation, リリース 3.5.0∗ カノニカル集団かつ initial_iv ≥ 0 の場合
ノンゼロの成分が指定されます。

∗ initial_iv < 0 の場合
乱数のシードが指定され、全ての成分に対して係数がランダムに与えられます。なお、
グランドカノニカルの場合は初期状態として多くの状態を持つよう、こちらの様式が適用されます。

– TPQ 法乱数のシードが指定され、全ての成分に対して係数がランダムに与えられます。
初期ベクトル設定の詳細については、アルゴリズム を参照ください。

• CalcHS
形式 : int 型 (自然数)
説明 : CalcHS=1 で量子数を指定したときのヒルベルト空間生成が高速化されます (詳細はhttp://www.pasums.issp.u-tokyo.ac.jp/wp-content/themes/HPhi/media/develop/tips.pdf を参照)。デフォルトの値は 1 で、高速化アルゴリズムが使用されます。

Lanczos 法で使用するパラメータ• exct
形式 : int 型 (自然数)
説明 : Lanczos 法で求める固有ベクトルの番号を指定する整数。例えば、1 なら基底状態のベクトル、

2 なら第一励起状態のベクトルを求めます。
• Lanczos_max
形式 : int 型 (自然数)
説明 : Lanczos ステップを行う回数の最大値を与えます。指定した精度内で収束した場合には、これより短い回数で終了します。この回数以内で収束しない場合はエラー終了します。再計算を行う場
合には、Lanczos_max の最大数を過去のステップ数よりも大きくする必要があります。

• LanczosEps
形式 : int 型 (自然数)
説明 : Lanczos 法の収束判定条件を指定する整数。一つ前のステップの固有値との相対誤差が,10−LanczosEps 以下になった場合に収束したと判定します。
• LanczosTarget
形式 : int 型 (自然数)
説明 : 何番目の固有値でランチョスの収束判定を行うかを指定する整数。1 なら基底状態。2 なら第一励起状態を示します。

56

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0
CG 法で使用するパラメータ• exct
形式 : int 型 (自然数)
説明 : 求める固有ベクトルの本数を指定します。

• Lanczos_max
形式 : int 型 (自然数)
説明 : CG 法を行う際のステップ数の最大値を与えます。指定した精度内で収束した場合には、これより短い回数で終了します。この回数以内で収束しない場合はエラー終了します。再計算を行う場
合には、Lanczos_max の最大数を過去のステップ数よりも大きくする必要があります。

• LanczosEps
形式 : int 型 (自然数)
説明 : 残差ベクトルの 2-ノルムが 10−LanczosEps/2 以下になった場合に収束したと判定します。

TPQ 法で使用するパラメータ• Lanczos_max
形式 : int 型 (自然数)
説明 : TPQ 法の総ステップ数を与えます。再計算を行う場合には、Lanczos_max の最大数を過去のステップ数よりも大きくする必要があります。

• LargeValue
形式 : double 型 (実数)
説明 : TPQ で使用する l − H/Ns の l を指定する実数。cTPQ 計算では, l は虚時間発展の刻み幅として使われます (∆τ = 1/l). cTPQ 計算の詳細は アルゴリズム を参照してください.

• NumAve
形式 : int 型 (自然数)
説明 : 独立な run を何回行うかを指定する整数。

• ExpecInterval
形式 : int 型 (自然数)
説明 : 相関関数の計算を何回の TPQ ステップおきに行うかの指定する整数。頻度を上げると計算コストが増大するので注意してください。

• ExpandCoef
Type : Int (自然数)4.2. エキスパートモード用入力ファイル

57

HΦ Documentation, リリース 3.5.0
Description : cTPQ 計算における展開次数を指定する整数です (nmax );U (∆τ ) =

nX
max

1
n!
n=0


−

∆τ
H
2

n
.

(4.4)

詳しくは, :ref:`Ch:algorithm`を参照してください.

動的グリーン関数の計算で使用するパラメータ• OmegaOrg
形式 : complex 型 (複素数)
説明 : 動的グリーン関数を計算する際の振動数 ω の原点を指定します。スペース区切りで実部、虚部の順に指定し、虚部がない場合は実数として扱います。

• OmegaIm
形式 : double 型 (実数)
説明 : 動的グリーン関数を計算する際の振動数 ω の中心点の虚部を指定します。中心点 OmegaOrg が指定されている場合は OmegaOrg に虚部 OmegaIm を加えます。

• OmegaMax
形式 : complex 型 (複素数)
説明 : 動的グリーン関数を計算する際の振動数 ω の終点を指定します。終点は OmegaOrg+OmegaMax
で与えられます。スペース区切りで実部、虚部の順に指定し、虚部がない場合は実数として扱います。

• OmegaMin
形式 : complex 型 (複素数)
説明 : 動的グリーン関数を計算する際の振動数 ω の始点を指定します。始点は OmegaOrg+OmegaMin
で与えられます。スペース区切りで実部、虚部の順に指定し、虚部がない場合は実数として扱います。

• NOmega
形式 : int 型 (自然数)
説明 : 動的グリーン関数を計算する際の振動数の刻み幅 ∆ω = ( OmegaMax- OmegaMin)/Nω を与える
ための整数。振動数は zn =OmegaOrg+OmegaMin+∆ω × n で与えられます。

実時間発展法で使用するパラメータ• Lanczos_max
形式 : int 型 (自然数)
説明 : 実時間発展法の総ステップ数を与えます。再計算を行う場合には、Lanczos_max の最大数を
過去のステップ数よりも大きくする必要があります。

58

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0• ExpandCoef
形式 : int 型 (自然数)
説明 : 微小時間 ∆t に対して実時間発展を行う際のexp (−iH·⊔) ≈

N
X
1

n!
n=0

n

(−iH·⊔)(4.5)

に対する展開次数 N を与えます。

• ExpecInterval
形式 : int 型 (自然数)
説明 : 相関関数の計算を行う際のステップ間隔を指定する整数。頻度を上げると計算コストが増大するので注意してください。

• OutputInterval
形式 : int 型 (自然数)
説明 : 時間発展中の波動関数を出力するステップ間隔を指定する整数。(CalcMod ファイルでOutputEigenVec=1 にすると有効になります)4.2. エキスパートモード用入力ファイル

59

HΦ Documentation, リリース 3.5.0

4.2.4 LocSpin 指定ファイル
局在スピンを指定します。以下のようなフォーマットをしています。

================================
NlocalSpin

6========================================i_0IteElc_1LocSpn ======================================
0

1

1

0

2

1

3
4

0
1

5

0

6

1

7

0

8

1

9

0

10

1

11

0

ファイル形式
以下のように行数に応じ異なる形式をとります。

• 1 行: ヘッダ (何が書かれても問題ありません)。
• 2 行: [string01] [int01]• 3-5 行: ヘッダ (何が書かれても問題ありません)。
• 6 行以降: [int02] [int03]

パラメータ• [string01]
形式 : string 型 (空白不可)
説明 : 局在スピンの総数を示すキーワード (任意)。

• [int01]
形式 : int 型 (空白不可)
説明 : 局在スピンの総数を指定する整数。

60

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0• [int02]
形式 : int 型 (空白不可)
説明 : サイト番号を指定する整数。0 以上 Nsite 未満で指定します。

• [int03]
形式 : int 型 (空白不可)

説明 : 局在スピンか遍歴電子かを指定する整数。

0: 遍歴電子 n > 0: 2S = n の局在スピンを選択することが出来ます。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• 行数固定で読み込みを行う為、ヘッダの省略はできません。
• [int01] と [int03] で指定される局在電子数の総数が異なる場合はエラー終了します。
• [int02] の総数が全サイト数と異なる場合はエラー終了します。
• [int02] が全サイト数以上もしくは負の値をとる場合はエラー終了します。

4.2. エキスパートモード用入力ファイル

61

HΦ Documentation, リリース 3.5.0

4.2.5 Trans 指定ファイル
ここではハミルトニアン

H+ = −

X

tijσ1 σ2 c†iσ1 cjσ2

(4.6)

ijσ1 σ2に対する Transfer 積分 tijσ1 σ2 を指定します。以下にファイル名を記載します。

========================
NTransfer24================================i_j_s_tijs==============================
0

0

2

0

1.000000

0.000000

2

0

0

0

1.000000

0.000000

0
2

1
1

2
0

1
1

1.000000
1.000000

0.000000
0.000000

2

0

4

0

1.000000

0.000000

4

0

2

0

1.000000

0.000000

2

1

4

1

1.000000

0.000000

4

1

2

1

1.000000

0.000000

4

0

6

0

1.000000

0.000000

6

0

4

0

1.000000

0.000000

4

1

6

1

1.000000

0.000000

6

1

4

1

1.000000

0.000000

6

0

8

0

1.000000

0.000000

8

0

6

0

1.000000

0.000000…

ファイル形式
以下のように行数に応じ異なる形式をとります。

• 1 行: ヘッダ (何が書かれても問題ありません)。
• 2 行: [string01] [int01]• 3-5 行: ヘッダ (何が書かれても問題ありません)。
• 6 行以降: [int02] [int03] [int04] [int05] [double01] [double02]

62

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0
パラメータ• [string01]
形式 : string 型 (空白不可)
説明 : Transfer 総数のキーワード名を指定します (任意)。

• [int01]
形式 : int 型 (空白不可)
説明 : Transfer の総数を指定します。

• [int02], [int04]
形式 : int 型 (空白不可)
説明 : サイト番号を指定する整数。0 以上 Nsite 未満で指定します。

• [int03], [int05]
形式 : int 型 (空白不可)

説明 : スピンを指定する整数。

0: アップスピン
1: ダウンスピン
を選択することが出来ます。

• [double01]
形式 : double 型 (空白不可)
説明 : tijσ1 σ2 の実部を指定します。

• [double02]
形式 : double 型 (空白不可)
説明 : tijσ1 σ2 の虚部を指定します。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• 行数固定で読み込みを行う為、ヘッダの省略はできません。
• Hamiltonian がエルミートという制限から tijσ1 σ2 = t†jiσ2 σ1 の関係を満たす必要があります。上記の関係が成立しない場合にはエラー終了します。

• 成分が重複して指定された場合にはエラー終了します。
• [int01] と定義されている Trasfer の総数が異なる場合はエラー終了します。
4.2. エキスパートモード用入力ファイル

63

HΦ Documentation, リリース 3.5.0• [int02]-[int05] を指定する際、範囲外の整数を指定した場合はエラー終了します。

64

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.2.6 InterAll 指定ファイル
ここでは一般二体相互作用をハミルトニアンに付け加えます。付け加える項は以下で与えられます。
X
X
H+ =Iijklσ1 σ2 σ3 σ4 c†iσ1 cjσ2 c†kσ3 clσ4
(4.7)
i,j,k,l σ1 ,σ2 ,σ3 ,σ4

なお、スピンに関して計算する場合には、i = j, k = l となるよう設定してください。以下にファイル例を記載します。

======================
NInterAll

36==============================zInterAll===========================
0

0

0

1

1

1

1

0

0.50

0.0

0

1

0

0

1

0

1

1

0.50

0.0

0

0

0

0

1

0

1

0

0.25

0.0

0

0

0

0

1

1

1

1

-0.25

0.0

0

1

0

1

1

0

1

0

-0.25

0.0

0

1

0

1

1

1

1

1

0.25

0.0

2
2

0
1

2
2

1
0

3
3

1
0

3
3

0
1

0.50
0.50

0.0
0.0

2

0

2

0

3

0

3

0

0.25

0.0

2

0

2

0

3

1

3

1

-0.25

0.0

2

1

2

1

3

0

3

0

-0.25

0.0

2

1

2

1

3

1

3

1

0.25

0.0

4

0

4

1

5

1

5

0

0.50

0.0

4

1

4

0

5

0

5

1

0.50

0.0

4

0

4

0

5

0

5

0

0.25

0.0

4

0

4

0

5

1

5

1

-0.25

0.0

4

1

4

1

5

0

5

0

-0.25

0.0

4

1

4

1

5

1

5

1

0.25

0.0

…

ファイル形式
以下のように行数に応じ異なる形式をとります。

• 1 行: ヘッダ (何が書かれても問題ありません)。
• 2 行: [string01] [int01]• 3-5 行: ヘッダ (何が書かれても問題ありません)。
• 6 行以降: [int02] [int03] [int04] [int05] [int06] [int07] [int08] [int09] [double01] [double02]

4.2. エキスパートモード用入力ファイル

65

HΦ Documentation, リリース 3.5.0
パラメータ• [string01]
形式 : string 型 (空白不可)
説明 : 二体相互作用の総数のキーワード名を指定します (任意)。

• [int01]
形式 : int 型 (空白不可)
説明 : 二体相互作用の総数を指定します。

• [int02], [int04], [int06], [int08]
形式 : int 型 (空白不可)
説明 : サイト番号を指定する整数。0 以上 Nsite 未満で指定します。

• [int03], [int05], [int07], [int09]
形式 : int 型 (空白不可)

説明 : スピンを指定する整数。

0: アップスピン
1: ダウンスピン
を選択することが出来ます。

• [double01]
形式 : double 型 (空白不可)
説明 : Iijklσ1 σ2 σ3 σ4 の実部を指定します。

• [double02]
形式 : double 型 (空白不可)
説明 : Iijklσ1 σ2 σ3 σ4 の虚部を指定します。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• 行数固定で読み込みを行う為、ヘッダの省略はできません。
†• Hamiltonian がエルミートという制限から Iijklσ1 σ2 σ3 σ4 = Ilkjiσの関係を満たす必要があ4 σ3 σ2 σ1

ります。上記の関係が成立しない場合にはエラー終了します。また、エルミート共役の形式はIijklσ1 σ2 σ3 σ4 c†iσ1 cjσ2 c†kσ3 clσ4 に対して、Ilkjiσ4 σ3 σ2 σ1 c†lσ4 ckσ3 c†jσ2 ciσ1 を満たすように入力してください。

66

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0• スピンに関して計算する場合、i = j, k = l を満たさないペアが存在するとエラー終了します。
• 成分が重複して指定された場合にはエラー終了します。
• [int01] と定義されている InterAll の総数が異なる場合はエラー終了します。
• [int02]-[int09] を指定する際、範囲外の整数を指定した場合はエラー終了します。

4.2. エキスパートモード用入力ファイル

67

HΦ Documentation, リリース 3.5.0

4.2.7 CoulombIntra 指定ファイル
オンサイトクーロン相互作用をハミルトニアンに付け加えます (S = 1/2 の系でのみ使用可能)。付け加える項は以下で与えられます。

H+ =

X

Ui ni↑ ni↓

(4.8)

i

以下にファイル例を記載します。

======================
NCoulombIntra 6========================== CoulombIntra ==========================
04.000000

1

4.000000

2

4.000000

344.000000
4.000000

54.000000

ファイル形式
以下のように行数に応じ異なる形式をとります。

• 1 行: ヘッダ (何が書かれても問題ありません)。
• 2 行: [string01] [int01]• 3-5 行: ヘッダ (何が書かれても問題ありません)。
• 6 行以降: [int02] [double01]

パラメータ• [string01]
形式 : string 型 (空白不可)
説明 : オンサイトクーロン相互作用の総数のキーワード名を指定します (任意)。

• [int01]
形式 : int 型 (空白不可)
説明 : オンサイトクーロン相互作用の総数を指定します。

• [int02]
形式 : int 型 (空白不可)

68

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0
説明 : サイト番号を指定する整数。0 以上 Nsite 未満で指定します。

• [double01]
形式 : double 型 (空白不可)
説明 : Ui を指定します。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• 行数固定で読み込みを行う為、ヘッダの省略はできません。
• 成分が重複して指定された場合にはエラー終了します。
• [int01] と定義されているオンサイトクーロン相互作用の総数が異なる場合はエラー終了します。
• [int02] を指定する際、範囲外の整数を指定した場合はエラー終了します。

4.2. エキスパートモード用入力ファイル

69

HΦ Documentation, リリース 3.5.0

4.2.8 CoulombInter 指定ファイル
オフサイトクーロン相互作用をハミルトニアンに付け加えます (S = 1/2 の系でのみ使用可能)。付け加える項は以下で与えられます。

H+ =

X

Vij ni nj

(4.9)

i,j

以下にファイル例を記載します。

======================
NCoulombInter 6==============================CoulombInter ============================
0

1 -0.125000

1

2 -0.125000

2

3 -0.125000

34

4 -0.125000
5 -0.125000

50 -0.125000

ファイル形式
以下のように行数に応じ異なる形式をとります。

• 1 行: ヘッダ (何が書かれても問題ありません)。
• 2 行: [string01] [int01]• 3-5 行: ヘッダ (何が書かれても問題ありません)。
• 6 行以降: [int02] [int03] [double01]

パラメータ• [string01]
形式 : string 型 (空白不可)
説明 : オフサイトクーロン相互作用の総数のキーワード名を指定します (任意)。

• [int01]
形式 : int 型 (空白不可)
説明 : オフサイトクーロン相互作用の総数を指定します。

• [int02], [int03]
形式 : int 型 (空白不可)

70

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0
説明 : サイト番号を指定する整数。0 以上 Nsite 未満で指定します。

• [double01]
形式 : double 型 (空白不可)
説明 : Vij を指定します。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• 行数固定で読み込みを行う為、ヘッダの省略はできません。
• 成分が重複して指定された場合にはエラー終了します。
• [int01] と定義されているオフサイトクーロン相互作用の総数が異なる場合はエラー終了します。
• [int02]-[int03] を指定する際、範囲外の整数を指定した場合はエラー終了します。

4.2. エキスパートモード用入力ファイル

71

HΦ Documentation, リリース 3.5.0

4.2.9 Hund 指定ファイル
Hund カップリングをハミルトニアンに付け加えます (S = 1/2 の系でのみ使用可能)。付け加える項は以下で与えられます。

H+ = −X

Hund
Jij(ni↑ nj↑ + ni↓ nj↓ )(4.10)

i,j

以下にファイル例を記載します。

======================
NHund 6==============================Hund ============================
0

1 -0.250000

1

2 -0.250000

2

3 -0.250000

34

4 -0.250000
5 -0.250000

50 -0.250000

ファイル形式
以下のように行数に応じ異なる形式をとります。

• 1 行: ヘッダ (何が書かれても問題ありません)。
• 2 行: [string01] [int01]• 3-5 行: ヘッダ (何が書かれても問題ありません)。
• 6 行以降: [int02] [int03] [double01]

パラメータ• [string01]
形式 : string 型 (空白不可)
説明 : Hund カップリングの総数のキーワード名を指定します (任意)。

• [int01]
形式 : int 型 (空白不可)
説明 : Hund カップリングの総数を指定します。

• [int02], [int03]
形式 : int 型 (空白不可)

72

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0
説明 : サイト番号を指定する整数。0 以上 Nsite 未満で指定します。

• [double01]
形式 : double 型 (空白不可)
Hund
説明 : Jij
を指定します。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• 行数固定で読み込みを行う為、ヘッダの省略はできません。
• 成分が重複して指定された場合にはエラー終了します。
• [int01] と定義されている Hund カップリングの総数が異なる場合はエラー終了します。
• [int02]-[int03] を指定する際、範囲外の整数を指定した場合はエラー終了します。

4.2. エキスパートモード用入力ファイル73

HΦ Documentation, リリース 3.5.0

4.2.10 PairHop 指定ファイル
PairHop カップリングをハミルトニアンに付け加えます (S = 1/2 の系でのみ使用可能)。付け加える項は以下で与えられます。

H+ =X

Pair †
Jij(ci↑ cj↑ c†i↓ cj↓ + h.c.)(4.11)

i,j

以下にファイル例を記載します。

======================
NPairhop 6==============================Pairhop ============================
01

0.50000

120.50000230.50000

344
50.50000
0.50000

500.50000

ファイル形式
以下のように行数に応じ異なる形式をとります。

• 1 行: ヘッダ (何が書かれても問題ありません)。
• 2 行: [string01] [int01]• 3-5 行: ヘッダ (何が書かれても問題ありません)。
• 6 行以降: [int02] [int03] [double01]

パラメータ• [string01]
形式 : string 型 (空白不可)
説明 : PairHop カップリングの総数のキーワード名を指定します (任意)。

• [int01]
形式 : int 型 (空白不可)
説明 : PairHop カップリングの総数を指定します。

• [int02], [int03]
形式 : int 型 (空白不可)

74

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0
説明 : サイト番号を指定する整数。0 以上 Nsite 未満で指定します。

• [double01]
形式 : double 型 (空白不可)
Pair
説明 : Jij
を指定します。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• 行数固定で読み込みを行う為、ヘッダの省略はできません。
• [int01] と定義されている PairHop カップリングの総数が異なる場合はエラー終了します。
• [int02]-[int03] を指定する際、範囲外の整数を指定した場合はエラー終了します。

4.2. エキスパートモード用入力ファイル

75

HΦ Documentation, リリース 3.5.0

4.2.11 Exchange 指定ファイル
Exchange カップリングをハミルトニアンに付け加えます (S = 1/2 の系でのみ使用可能)。 電子系の場合
には

H+ =

X

Ex †
Jij
(ci↑ cj↑ c†j↓ ci↓ + c†i↓ cj↓ c†j↑ ci↑ )(4.12)

i,jが付け加えられ、スピン系の場合には

H+ =

X

Ex
Jij
(Si+ Sj− + Si− Sj+ )(4.13)

i,jが付け加えられます。 スピン系の (Si+ Sj− + Si− Sj+ ) を電子系の演算子で書き直すと、−(c†i↑ cj↑ c†j↓ ci↓ +c†i↓ cj↓ c†j↑ ci↑ ) となることに注意して下さい。以下にファイル例を記載します。
======================
NExchange 6==============================Exchange ============================
01

0.50000

120.50000230.50000

340.50000

450.50000

500.50000

ファイル形式
以下のように行数に応じ異なる形式をとります。

• 1 行: ヘッダ (何が書かれても問題ありません)。
• 2 行: [string01] [int01]• 3-5 行: ヘッダ (何が書かれても問題ありません)。
• 6 行以降: [int02] [int03] [double01]

パラメータ• [string01]
形式 : string 型 (空白不可)
説明 : Exchange カップリングの総数のキーワード名を指定します (任意)。

• [int01]
形式 : int 型 (空白不可)
説明 : Exchange カップリングの総数を指定します。

76

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0• [int02], [int03]
形式 : int 型 (空白不可)
説明 : サイト番号を指定する整数。0 以上 Nsite 未満で指定します。

• [double01]
形式 : double 型 (空白不可)
Ex
説明 : Jij
を指定します。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• 行数固定で読み込みを行う為、ヘッダの省略はできません。
• 成分が重複して指定された場合にはエラー終了します。
• [int01] と定義されている Exchange カップリングの総数が異なる場合はエラー終了します。
• [int02]-[int03] を指定する際、範囲外の整数を指定した場合はエラー終了します。

4.2. エキスパートモード用入力ファイル

77

HΦ Documentation, リリース 3.5.0

4.2.12 Ising 指定ファイル
Ising 相互作用をハミルトニアンに付け加えます (S = 1/2 の系でのみ使用可能)。 電子系の場合には
X
z
H+ =
Jij
(ni↑ − ni↓ )(nj↑ − nj↓ )(4.14)
i,jが付け加えられ、スピン系の場合には

H+ =

X

z z z
Jij
Si Sj

(4.15)

i,jが付け加えられます。 以下にファイル例を記載します。

======================
NIsing 6==============================Ising ============================
01

0.50000

120.50000230.50000

340.50000

450.50000

500.50000

ファイル形式
以下のように行数に応じ異なる形式をとります。

• 1 行: ヘッダ (何が書かれても問題ありません)。
• 2 行: [string01] [int01]• 3-5 行: ヘッダ (何が書かれても問題ありません)。
• 6 行以降: [int02] [int03] [double01]

パラメータ• [string01]
形式 : string 型 (空白不可)
説明 : Ising 相互作用の総数のキーワード名を指定します (任意)。

• [int01]
形式 : int 型 (空白不可)
説明 : Ising 相互作用の総数を指定します。

78

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0• [int02], [int03]
形式 : int 型 (空白不可)
説明 : サイト番号を指定する整数。0 以上 Nsite 未満で指定します。

• [double01]
形式 : double 型 (空白不可)z
説明 : Jij
を指定します。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• 行数固定で読み込みを行う為、ヘッダの省略はできません。
• 成分が重複して指定された場合にはエラー終了します。
• [int01] と定義されている Ising 相互作用の総数が異なる場合はエラー終了します。
• [int02]-[int03] を指定する際、範囲外の整数を指定した場合はエラー終了します。

4.2. エキスパートモード用入力ファイル

79

HΦ Documentation, リリース 3.5.0

4.2.13 PairLift 指定ファイル
PairLift カップリングをハミルトニアンに付け加えます (S = 1/2 の系でのみ使用可能)。 付け加える項は以下で与えられます。

H+ =

X

PairLift †Jij(ci↑ ci↓ c†j↑ cj↓ + c†i↓ ci↑ c†j↓ cj↑ )(4.16)

i,j

以下にファイル例を記載します。

======================
NPairLift 6==============================NPairLift ============================
01

0.50000

120.50000230.50000

344
50.50000
0.50000

500.50000

ファイル形式
以下のように行数に応じ異なる形式をとります。

• 1 行: ヘッダ (何が書かれても問題ありません)。
• 2 行: [string01] [int01]• 3-5 行: ヘッダ (何が書かれても問題ありません)。
• 6 行以降: [int02] [int03] [double01]

パラメータ• [string01]
形式 : string 型 (空白不可)
説明 : PairLift カップリングの総数のキーワード名を指定します (任意)。

• [int01]
形式 : int 型 (空白不可)
説明 : PairLift カップリングの総数を指定します。

• [int02], [int03]
形式 : int 型 (空白不可)

80

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0
説明 : サイト番号を指定する整数。0 以上 Nsite 未満で指定します。

• [double01]
形式 : double 型 (空白不可)
PairLift
説明 : Jij
を指定します。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• スピン系のみで使用可能です。電子系、近藤系で指定した場合は計算に使用されません。
• 行数固定で読み込みを行う為、ヘッダの省略はできません。
• 成分が重複して指定された場合にはエラー終了します。
• [int01] と定義されている PairLift カップリングの総数が異なる場合はエラー終了します。
• [int02]-[int03] を指定する際、範囲外の整数を指定した場合はエラー終了します。

4.2. エキスパートモード用入力ファイル

81

HΦ Documentation, リリース 3.5.0

4.2.14 OneBodyG 指定ファイル
一体グリーン関数 ⟨c†iσ1 cjσ2 ⟩ を計算します。以下にファイル例を記載します。

===============================
NCisAjs24======================================= Green functions =====================================
0

0

0

0

0

1

0

1

1

0

1

0

1

1

1

1

2
2

0
1

2
2

0
1

3

0

3

0

3

1

3

1

4

0

4

0

4

1

4

1

5

0

5

0

5

1

5

1

6

0

6

0

6

1

6

1

7

0

7

0

7

1

7

1

8

0

8

0

8

1

8

1

9

0

9

0

9

1

9

1

10

0

10

0

10

1

10

1

11

0

11

0

11

1

11

1

ファイル形式
以下のように行数に応じ異なる形式をとります。

• 1 行: ヘッダ (何が書かれても問題ありません)。
• 2 行: [string01] [int01]• 3-5 行: ヘッダ (何が書かれても問題ありません)。
• 6 行以降: [int02] [int03] [int04] [int05]

82

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0
パラメータ• [string01]
形式 : string 型 (空白不可)
説明 : 一体グリーン関数成分総数のキーワード名を指定します (任意)。

• [int01]
形式 : int 型 (空白不可)
説明 : 一体グリーン関数成分の総数を指定します。

• [int02], [int04]
形式 : int 型 (空白不可)
説明 : サイト番号を指定する整数。0 以上 Nsite 未満で指定します。

• [int03], [int05]
形式 : int 型 (空白不可)

説明 : スピンを指定する整数。電子系・近藤格子系の場合は

0: アップスピン、
1: ダウンスピン、
スピン系の場合には、

0, 1, · · · , 2S + 1 (−S − 0.5, −S + 0.5, · · · , S + 0.5 に対応 )を選択することが出来ます。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• 行数固定で読み込みを行う為、ヘッダの省略はできません。
• 成分が重複して指定された場合にはエラー終了します。
• [int01] と定義されている一体グリーン関数成分の総数が異なる場合はエラー終了します。
• [int02]-[int05] を指定する際、範囲外の整数を指定した場合はエラー終了します。

4.2. エキスパートモード用入力ファイル

83

HΦ Documentation, リリース 3.5.0

4.2.15 TwoBodyG 指定ファイル
二体グリーン関数 ⟨c†iσ1 cjσ2 c†kσ3 clσ4 ⟩ を計算します。なお、スピンに関して計算する場合には、i = j, k = lとなるよう設定してください。以下にファイル例を記載します。

=============================================
NCisAjsCktAltDC

576===================================================== Green functions for Sq AND Nq ===================================================
0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

0

0

0

0

1

0

1

0

0

0

0

0

1

1

1

1

0
0

0
0

0
0

0
0

2
2

0
1

2
2

0
1

0

0

0

0

3

0

3

0

0

0

0

0

3

1

3

1

0

0

0

0

4

0

4

0

0

0

0

0

4

1

4

1

0

0

0

0

5

0

5

0

0

0

0

0

5

1

5

1

0

0

0

0

6

0

6

0

0

0

0

0

6

1

6

1

0

0

0

0

7

0

7

0

0

0

0

0

7

1

7

1

0

0

0

0

8

0

8

0

0

0

0

0

8

1

8

1

0

0

0

0

9

0

9

0

0

0

0

0

9

1

9

1

0

0

0

0

10

0

10

0

0

0

0

0

10

1

10

1

0

0

0

0

11

0

11

0

0

0

0

0

11

1

11

1

0

1

0

1

0

0

0

0

…

ファイル形式
以下のように行数に応じ異なる形式をとります。

• 1 行: ヘッダ (何が書かれても問題ありません)。
• 2 行: [string01] [int01]• 3-5 行: ヘッダ (何が書かれても問題ありません)。

84

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0• 6 行以降: [int02] [int03] [int04] [int05] [int06] [int07] [int08] [int09]

パラメータ• [string01]
形式 : string 型 (空白不可)
説明 : 二体グリーン関数成分総数のキーワード名を指定します (任意)。

• [int01]
形式 : int 型 (空白不可)
説明 : 二体グリーン関数成分の総数を指定します。

• [int02], [int04],[int06], [int08]
形式 : int 型 (空白不可)
説明 : サイト番号を指定する整数。0 以上 Nsite 未満で指定します。

• [int03], [int05],[int07], [int09]
形式 : int 型 (空白不可)

説明 : スピンを指定する整数。電子系、近藤格子系の場合には

0: アップスピン、
1: ダウンスピン、
スピン系の場合には、

0, 1, · · · , 2S + 1 (−S − 0.5, −S + 0.5, · · · , S + 0.5 に対応 )を選択することが出来ます。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• 行数固定で読み込みを行う為、ヘッダの省略はできません。
• 成分が重複して指定された場合にはエラー終了します。
• スピンに関して計算する場合、i = j, k = l を満たさない場合ペアが存在するとエラー終了します。
• [int01] と定義されているニ体グリーン関数成分の総数が異なる場合はエラー終了します。
• [int02]-[int09] を指定する際、範囲外の整数を指定した場合はエラー終了します。

4.2. エキスパートモード用入力ファイル

85

HΦ Documentation, リリース 3.5.0

4.2.16 SingleExcitation 指定ファイル
一体励起状態を作成するための演算子 ciσ1 (c†iσ1 ) を定義します。以下にファイル例を記載します。

===============================
NSingle24======================================= Single Excitation =====================================
0

0

0

1.0

0.0

0

1

0

1.0

0.0

1

0

0

1.0

0.0

1.0
1.0

0.0
0.0

(continue...)
11
11

0
1

0
0

ファイル形式
以下のように行数に応じ異なる形式をとります。

• 1 行: ヘッダ (何が書かれても問題ありません)。
• 2 行: [string01] [int01]• 3-5 行: ヘッダ (何が書かれても問題ありません)。
• 6 行以降: [int02] [int03] [int04] [double01] [double02]

パラメータ• [string01]
形式 : string 型 (空白不可)
説明 : 一体励起演算子のキーワード名を指定します (任意)。

• [int01]
形式 : int 型 (空白不可)
説明 : 一体励起演算子の総数を指定します。

• [int02]
形式 : int 型 (空白不可)
説明 : サイト番号を指定する整数。0 以上 Nsite 未満で指定します。

• [int03]
形式 : int 型 (空白不可)

86

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0
説明 : スピンを指定する整数。電子系・近藤格子系の場合は

0: アップスピン、
1: ダウンスピン、
スピン系の場合には、

0, 1, · · · , 2S + 1 (−S − 0.5, −S + 0.5, · · · , S + 0.5 に対応 )を選択することが出来ます。

• [int04]
形式 : int 型 (空白不可)

説明 : 一体励起演算子のタイプを指定する整数。

0: ciσ1
1: c†iσ1を選択することが出来ます。

• [double01], [double02]
形式 : double 型 (空白不可)
説明:ciσ1 (c†iσ1 ) の実部を [double01]、虚部を [double02] でそれぞれ指定します。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• 行数固定で読み込みを行う為、ヘッダの省略はできません。
• 成分が重複して指定された場合にはエラー終了します。
• [int01] と定義されている一体励起演算子の総数が異なる場合はエラー終了します。
• [int02]-[int04] を指定する際、範囲外の整数を指定した場合はエラー終了します。

4.2. エキスパートモード用入力ファイル

87

HΦ Documentation, リリース 3.5.0

4.2.17 PairExcitation 指定ファイル
二体励起状態を作成するための演算子 ciσ1 c†jσ2 (c†iσ1 cjσ2 ) を定義します。なお、ciσ1 c†jσ2 と c†iσ1 cjσ2 を混同することは出来ません。また、Sz 保存の系に対しては σ1 = σ2 とする必要があります。以下にファイル例を記載します。

===============================
NPair

24

======================================= Pair Excitation =====================================
0

0

0

0

0

1.0

0.0

0

1

0

1

0

1.0

0.0

1

0

1

0

0

1.0

0.0

(continue...)
11
0
11

0

0

1.0

0.0

11

1

0

1.0

0.0

1

11

ファイル形式
以下のように行数に応じ異なる形式をとります。

• 1 行: ヘッダ (何が書かれても問題ありません)。
• 2 行: [string01] [int01]• 3-5 行: ヘッダ (何が書かれても問題ありません)。
• 6 行以降: [int02] [int03] [int04] [int05] [int06] [double01] [double02]

パラメータ• [string01]
形式 : string 型 (空白不可)
説明 : 二体励起演算子のキーワード名を指定します (任意)。

• [int01]
形式 : int 型 (空白不可)
説明 : 二体励起演算子の総数を指定します。

• [int02], [int04]
形式 : int 型 (空白不可)
説明 : サイト番号を指定する整数。0 以上 Nsite 未満で指定します。

88

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0• [int03], [int05]
形式 : int 型 (空白不可)

説明 : スピンを指定する整数。電子系・近藤格子系の場合は

0: アップスピン、
1: ダウンスピン、
スピン系の場合には、

0, 1, · · · , 2S + 1 (−S − 0.5, −S + 0.5, · · · , S + 0.5 に対応 )を選択することが出来ます。

• [int06]
形式 : int 型 (空白不可)

説明 : 二体励起演算子のタイプを指定する整数。

0: ciσ1 c†jσ2
1: c†iσ1 cjσ2を選択することが出来ます。

• [double01], [double02]
形式 : double 型 (空白不可)
説明 : ciσ1 c†jσ2 (c†iσ1 cjσ2 ) の実部を [double01]、虚部を [double02] でそれぞれ指定します。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• 行数固定で読み込みを行う為、ヘッダの省略はできません。
• 成分が重複して指定された場合にはエラー終了します。
• [int01] と定義されている二体励起演算子の総数が異なる場合はエラー終了します。
• [int02]-[int06] を指定する際、範囲外の整数を指定した場合はエラー終了します。

4.2. エキスパートモード用入力ファイル

89

HΦ Documentation, リリース 3.5.0

4.2.18 SpectrumVec 指定ファイル
スペクトル計算用の入力ファイルのヘッダを指定します。ファイル名およびファイル形式は以下の通りです (ファイル形式は eigenvec.dat と同様です)。ファイルデータはバイナリ形式です。

ファイル名• ##_rank_$$.dat##は SpectrumVec で指定されるヘッダ、$$はランク番号を表します。また、&&は TPQ 時のサンプリングの番号を表します。

ファイル形式• 1 行目：[int01]• 2 行目：[int02]• 2 行目-: [double01] [double02]

パラメータ• [int01]
形式 : int 型
説明 : 計算対象のヒルベルト空間数を指定する整数。

• [int02]
形式 : int 型
説明 : 計算に要したステップ数を表します。Lanczos 法では Lanczos ステップ数、TPQ 法ではハミルトニアンを乗算した回数を記載します。

• [double01], [double02]
形式 : double 型

説明 : 入力するベクトルの値を表します。

[double01] が実部、[double02] が虚部を表します。

90

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.2.19 OneBodyTE 指定ファイル
各時刻で付加される一体型の演算子 tiσ1 jσ2 (t)c†iσ1 cjσ2 を定義します。以下にファイル例を記載します。

==================================
AllTimeStep100======================================= OneBody Time Evolution =======================================
0.0

4

0

0

1

0

1.0

0.0

1

0

0

0

1.0

0.0

0

1

1

1

1.0

0.0

1 1
0.2

0
4

1

1.0

0.0

(continue...)ファイル形式
以下のように行数に応じ異なる形式をとります。

• 1 行: ヘッダ (何が書かれても問題ありません)。
• 2 行: [string01] [int01]• 3-5 行: ヘッダ (何が書かれても問題ありません)。
6 行以降は時刻 t およびその時刻での非ゼロの相互作用の個数を最初に指定し、続けて対応する一体相互作用を指定する形式を取ります。

• m 行: [double01] [int02]• (m+1) - (m+1+[int02]) 行: [int03] [int04] [int05] [int06] [double02] [double03]

パラメータ• [string01]
形式 : string 型 (空白不可)
説明 : ファイル内で定義されている総タイムステップ数を表すキーワード名を指定します (任意)。

• [int01]
形式 : int 型 (空白不可)
説明 : ファイル内で定義されている総タイムステップ数を指定します。

4.2. エキスパートモード用入力ファイル

91

HΦ Documentation, リリース 3.5.0• [double01]
形式 : double 型 (空白不可)
説明 : 時刻 t を指定します。

• [int02]
形式 : int 型 (空白不可)
説明 : 時刻 t で付加される一体相互作用の個数を指定します。

• [int03], [int05]
形式 : int 型 (空白不可)
説明 : サイト番号を指定する整数。0 以上 Nsite 未満で指定します。

• [int04], [int06]
形式 : int 型 (空白不可)

説明 : スピンを指定する整数。

0: アップスピン
1: ダウンスピン
を選択することが出来ます。

• [double02], [double03]
形式 : double 型 (空白不可)
説明 : 時刻 t で付加される一体相互作用の実部を [double02]、虚部を [double03] でそれぞれ指定し
ます。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• 行数固定で読み込みを行う為、ヘッダの省略はできません。
• ModPara ファイルで指定される LanczosStep が [int02] よりも大きい場合にはエラー終了します。
• [int03]-[int06] を指定する際、範囲外の整数を指定した場合はエラー終了します。

92

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.2.20 TwoBodyTE 指定ファイル
各時刻で付加される二体型の演算子 Iiσ1 jσ2 kσ3 lσ4 (t)c†iσ1 cjσ2 c†kσ3 clσ4 を定義します。以下にファイル例を記載します。

==================================
AllTimeStep100======================================= TwoBody Time Evolution =======================================
0.0

3

0

1

0

1

0

0

0

0

1.0

0.0

1

0

1

0

0

0

0

0

1.0

0.0

1

0

1

0

2

0

2

0

1.0

0.0

0.2
3
(continue...)ファイル形式
以下のように行数に応じ異なる形式をとります。

• 1 行: ヘッダ (何が書かれても問題ありません)。
• 2 行: [string01] [int01]• 3-5 行: ヘッダ (何が書かれても問題ありません)。
6 行以降は時刻 t およびその時刻での非ゼロの相互作用の個数を最初に指定し、続けて対応する二体相互作用を指定する形式を取ります。

• m 行: [double01] [int02]• (m+1) - (m+1+[int02]) 行: [int03] [int04] [int05] [int06] [int07] [int08] [int09] [int10] [double02] [double03]

パラメータ• [string01]
形式 : string 型 (空白不可)
説明 : ファイル内で定義されている総タイムステップ数を表すキーワード名を指定します (任意)。

• [int01]
形式 : int 型 (空白不可)
説明 : ファイル内で定義されている総タイムステップ数を指定します。

4.2. エキスパートモード用入力ファイル

93

HΦ Documentation, リリース 3.5.0• [double01]
形式 : double 型 (空白不可)
説明 : 時刻 t を指定します。

• [int02]
形式 : int 型 (空白不可)
説明 : 時刻 t で付加される二体相互作用の個数を指定します。

• [int03], [int05], [int07], [int09]
形式 : int 型 (空白不可)
説明 : サイト番号を指定する整数。0 以上 Nsite 未満で指定します。

• [int04], [int06], [int08], [int10]
形式 : int 型 (空白不可)

説明 : スピンを指定する整数。

0: アップスピン
1: ダウンスピン
を選択することが出来ます。

• [double02], [double03]
形式 : double 型 (空白不可)
説明 : 時刻 t で付加される二体相互作用の実部を [double02]、虚部を [double03] でそれぞれ指定し
ます。

使用ルール
本ファイルを使用するにあたってのルールは以下の通りです。

• 行数固定で読み込みを行う為、ヘッダの省略はできません。
• ModPara ファイルで指定される LanczosStep が [int02] よりも大きい場合にはエラー終了します。
• [int03]-[int06] を指定する際、範囲外の整数を指定した場合はエラー終了します。

94

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.3 出力ファイル
出力ファイルに関するファイル形式を記載します。

4.3.1 CHECK_Chemi.dat
Hamiltonian のうち化学ポテンシャルXµiσ c†iσ ciσ(4.17)

i,σに関する入力確認を行います。µiσ が出力されます。以下にファイル例を記載します。

i=0 spin=0 isite1=1 tmp_V=0.000000
i=1 spin=0 isite1=2 tmp_V=0.000000
i=2 spin=0 isite1=3 tmp_V=0.000000
i=3 spin=0 isite1=4 tmp_V=0.000000
i=4 spin=0 isite1=5 tmp_V=0.000000
i=5 spin=0 isite1=6 tmp_V=0.000000…

ファイル形式
以下のようなファイル形式をとります。

• i=[int01] spin=[int02] isite1=[int03] tmp_V=[double01]

パラメータ• [int01]
形式 : int 型
説明 : 入力番号。

• [int02]
形式 : int 型

説明 : µiσ のスピン番号 σ を表す整数。

0: アップスピン
1: ダウンスピンを表します。

4.3. 出力ファイル

95

HΦ Documentation, リリース 3.5.0• [int03]
形式 : int 型
説明 : µiσ のサイト番号 i を表す整数。

• [double01]
形式 : double 型
説明 : µiσ の値。

96

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.3.2 CHECK_InterAll.dat
Hamiltonian の一般二体相互作用のうち対角成分
X
Iiijjσ1 σ1 σ2 σ2 c†iσ1 ciσ1 c†iσ2 ciσ2(4.18)

i,j,σ1 ,σ2に関する入力確認を行います。Iiijjσ1 σ1 σ2 σ2 が出力されます。以下にファイル例を記載します。

i=0 isite1=1 A_spin=0 isite2=2 B_spin=0 tmp_V=0.500000
i=1 isite1=1 A_spin=0 isite2=2 B_spin=1 tmp_V=-0.500000
i=2 isite1=1 A_spin=1 isite2=2 B_spin=0 tmp_V=-0.500000
i=3 isite1=1 A_spin=1 isite2=2 B_spin=1 tmp_V=0.500000
i=4 isite1=2 A_spin=0 isite2=3 B_spin=0 tmp_V=0.500000
i=5 isite1=2 A_spin=0 isite2=3 B_spin=1 tmp_V=-0.500000…

ファイル形式
以下のようなファイル形式をとります。

• i=[int01] isite1=[int02] A_spin=[int03] isite2=[int04] B_spin=[int05] tmp_V=[double01]

パラメータ• [int01]
形式 : int 型
説明 : 入力番号。

• [int02], [int04]
形式 : int 型

説明 : Iiijjσ1 σ1 σ2 σ2 のサイト番号を表す整数。

[int02] が i, [int04] が j を表します。

• [int03], [int05]
形式 : int 型

説明 : Iiijjσ1 σ1 σ2 σ2 のスピン番号を表す整数。

[int03] が σ1 , [int05] が σ2 に対応し、それぞれ
0: アップスピン

4.3. 出力ファイル

97

HΦ Documentation, リリース 3.5.0
1: ダウンスピンを表します。

• [double01]
形式 : double 型
説明 : Iiijjσ1 σ1 σ2 σ2 の値。

98

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.3.3 CHECK_CoulombIntra.dat
Hamiltonian のオンサイトクーロン相互作用
X

Ui ni↑ ni↓(4.19)iに関する入力確認を行います。Ui が出力されます。以下にファイル例を記載します。

i=0 isite1=1 tmp_V=4.000000
i=1 isite1=2 tmp_V=4.000000
i=2 isite1=3 tmp_V=4.000000
i=3 isite1=4 tmp_V=4.000000
i=4 isite1=5 tmp_V=4.000000
i=5 isite1=6 tmp_V=4.000000

ファイル形式
以下のようなファイル形式をとります。

• i=[int01] isite1=[int02] tmp_V=[double01]

パラメータ• [int01]
形式 : int 型
説明 : 入力番号。

• [int02]
形式 : int 型
説明 : Ui のサイト番号 i を表す整数。

• [double01]
形式 : double 型
説明 : Ui の値。

4.3. 出力ファイル99

HΦ Documentation, リリース 3.5.0

4.3.4 CHECK_Hund.dat
Hamiltonian の Hund カップリング
−

X

Hund
Jij
(ni↑ nj↑ + ni↓ nj↓ )(4.20)

i,j
Hund
に関する入力確認を行います。Jijが出力されます。以下にファイル例を記載します。

i=0 isite1=1 isite2=2 tmp_V=0.250000
i=1 isite1=2 isite2=3 tmp_V=0.250000
i=2 isite1=3 isite2=4 tmp_V=0.250000
i=3 isite1=4 isite2=5 tmp_V=0.250000
i=4 isite1=5 isite2=6 tmp_V=0.250000
i=5 isite1=6 isite2=1 tmp_V=0.250000

ファイル形式
以下のようなファイル形式をとります。

• i=[int01] isite1=[int02] isite2=[int03] tmp_V=[double01]

パラメータ• [int01]
形式 : int 型
説明 : 入力番号。

• [int02], [int03]
形式 : int 型

Hund
説明 : Jijのサイト番号を表す整数。

[int02] が i, [int03] が j を表します。

• [double01]
形式 : double 型
Hund
説明 : Jijの値。

100

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.3.5 CHECK_INTER_U.dat
Hamiltonian のオフサイトクーロン相互作用
X

Vij ni nj(4.21)

i,jに関する入力確認を行います。Vij が出力されます。以下にファイル例を記載します。

i=0 isite1=1 isite2=2 tmp_V=-0.125000
i=1 isite1=2 isite2=3 tmp_V=-0.125000
i=2 isite1=3 isite2=4 tmp_V=-0.125000
i=3 isite1=4 isite2=5 tmp_V=-0.125000
i=4 isite1=5 isite2=6 tmp_V=-0.125000
i=5 isite1=6 isite2=1 tmp_V=-0.125000

ファイル形式
以下のようなファイル形式をとります。

• i=[int01] isite1=[int02] isite2=[int03] tmp_V=[double01]

パラメータ• [int01]
形式 : int 型
説明 : 入力番号。

• [int02], [int03]
形式 : int 型

説明 : Vij のサイト番号を表す整数。

[int02] が i, [int03] が j を表します。

• [double01]
形式 : double 型
説明 : Vij の値。

4.3. 出力ファイル

101

HΦ Documentation, リリース 3.5.0

4.3.6 CHECK_Memory.dat
使用するメモリサイズの出力を行います。配列サイズおよび必要なメモリを出力します。以下にファイル例を記載します。

MAX DIMENSION idim_max=400
REQUIRED MEMORY

max_mem=0.000019 GB

ファイル形式
以下のようなファイル形式をとります。

• MAX DIMENSION idim_max=[int01]• REQUIRED MEMORY max_mem =[double01] GB

パラメータ• [int01]
形式 : int 型
説明 : ヒルベルトスペースの数を表します。

• [double01]
形式 : double 型
説明 : ヒルベルトスペースの確保に必要とするメモリサイズを表します (単位は GB)。

102

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.3.7 WarningOnTransfer.dat
Transfer の成分が重複している場合に出力されます。以下にファイル例を記載します。
double conuntings in transfers: i=0 j=2 spni 0 spnj 0
double conuntings in transfers: i=2 j=0 spni 0 spnj 0
double conuntings in transfers: i=0 j=2 spni 1 spnj 1
double conuntings in transfers: i=2 j=0 spni 1 spnj 1

ファイル形式
以下のようなファイル形式をとります。

• double conuntings in transfers: i=[int01] j=[int02] spni [int03] spnj [int04]

パラメータ• [int01], [int02]
形式 : int 型
説明 : 重複している Transfer のサイト番号を表します。

• [int03], [int04]
形式 : int 型

説明 : 重複している Transfer のスピン番号を表します。

0: アップスピン
1: ダウンスピンを表します。

4.3. 出力ファイル

103

HΦ Documentation, リリース 3.5.0

4.3.8 CalcTimer.dat
計算処理にかかった時間が出力されます。計算処理、処理番号、計算処理時間 [秒] の順に出力します。以下に TPQ 法の場合の出力例を記載します。

All[0000]

12.94052sz[1000]

0.01795

diagonalcalc[2000]

0.00693

CalcByTPQ[3000]

12.90670[3100]

0.08416[3101]

0.00172FirstMultiply
rand

in FirstMultiply

mltply in FirstMultiply[3102]

0.07707[3200][3201]

9.06255
1.67779[3202]

7.31207

expec_onebody[3300]

0.11640

expec_twobody[3400]

3.28796

Multiply[3500]

0.14840

FileIO[3600]

0.20493

All mltply[0001]

7.38883

diagonal[0100]

0.04153[0300]

7.34636[0310]

7.34595

double[0311]

0.00000

single[0312]

0.00000

inner[0313]

7.34299[0320]

0.00008

interPE[0321]

0.00000

inner[0322]

0.00000

expec_energy_flct
calc flctuation in expec_energy_flct
mltply in expec_energy_flct================================================

Hubbardtransin Hubbard

interall in Hubbard

pairhopp in Hubbard[0330]

0.00006

interPE[0331]

0.00000

inner[0332]

0.00000[0340]

0.00004[0341][0342]

0.00000
0.00000

exchange in Hubbard
interPE
inner================================================

104

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.3.9 TimeKeeper.dat
計算経過情報が出力されます。 以下に Lanczos 法の場合の出力例を記載します。

diagonal calculation finishes: Wed Sep 16 22:58:49 2015
Lanczos Eigen Value start: Wed Sep 16 22:58:49 2015
1 th Lanczos step: Wed Sep 16 22:58:49 2015…

122 th Lanczos step: Wed Sep 16 22:58:49 2015
Lanczos Eigenvalue finishes: Wed Sep 16 22:58:49 2015
Lanczos Eigenvector finishes: Wed Sep 16 22:58:49 2015
Lanczos expec energy finishes: Wed Sep 16 22:58:49 2015
CG Eigenvector finishes: Wed Sep 16 22:58:49 2015
CG expec energy finishes: Wed Sep 16 22:58:50 2015
CG expec_cisajs finishes: Wed Sep 16 22:58:50 2015
CG expec_cisajacktalt begins: Wed Sep 16 22:58:50 2015

ファイル名• ##_TimeKeeper.dat##は ModPara ファイル内の [string02] で指定されるヘッダを表します。

4.3. 出力ファイル

105

HΦ Documentation, リリース 3.5.0

4.3.10 sz_TimeKeeper.dat
ヒルベルトスペースを確保する際の経過情報が出力されます。以下に出力例を記載します。

initial sz : Wed Sep 16 22:58:49 2015
num_threads==4
omp parallel sz finishes: Wed Sep 16 22:58:49 2015
mid omp parallel sz : Wed Sep 16 22:58:49 2015
omp parallel sz finishes: Wed Sep 16 22:58:49 2015

ファイル名• ##_sz_TimeKeeper.dat##は ModPara ファイル内の [string02] で指定されるヘッダを表します。

106

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.3.11 Time_CG_EigenVector.dat(Lanczos 法のみ) CG 法で固有ベクトルを計算する際のログを出力します。
allocate succeed !!!
b[4341]=1.000000 bnorm== 1.000000
i_itr=0 itr=5 0.0411202543 0.0000100000…

i_itr=0 itr=155 0.0000000058 0.0000100000
CG OK:

t_itr=155

i_itr=0 itr=155 time=0.000000
fabs(fabs(xb)-1.0)=0.9955114473313577
b[4341]=0.004489 bnorm== 1.000000
i_itr=1 itr=5 13.0033983157 0.0000100000…
CG OK:

t_itr=275

i_itr=1 itr=120 time=0.000000
fabs(fabs(xb)-1.0)=0.0000000000001295
number of iterations in inv1:i_itr=1 itr=120
t_itr=275 0.000000

ファイル名• ##_Time_CG_EigenVector.dat##は ModPara ファイル内の [string02] で指定されるヘッダを表します。

4.3. 出力ファイル

107

HΦ Documentation, リリース 3.5.0

4.3.12 energy.dat(Lanczos 法、LOBCG 法のみ) Lanczos 法もしくは CG 法で求めた固有ベクトルを用いて計算したエネル
ギー、ダブロンと ⟨Sz ⟩ を出力します。以下にファイル例を記載します。

method="Lanczos"の場合

Energy-7.1043675920

Doublon0.4164356536

Sz

0.0000000000

method="CG"の場合State 0
Energy-7.1043675920

Doublon0.4164356536

Sz

0.0000000000

State 1:

ファイル名

• ##_energy.dat##は ModPara ファイル内の [string02] で指定されるヘッダを表します。

ファイル形式• Energy [double01]• Doublon [double02]• Sz [double03]

パラメータ• [double01]
形式 : double 型
説明 : Lanczos 法・CG 法で求めた固有ベクトルを用い計算したエネルギー。

108

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0• [double02]
形式 : double 型
説明 : Lanczos 法・CG 法で求めた固有ベクトルを用い計算したダブロン N1s

Pi ⟨ni↑ ni↓ ⟩ (Ns はサイ

ト数)。

• [double03]
形式 : double 型
説明 : 固有ベクトルを用い計算した ⟨Sz ⟩。

4.3. 出力ファイル

109

HΦ Documentation, リリース 3.5.0

4.3.13 Lanczos_Step.dat(Lanczos 法、LOBCG 法でのみ出力) 固有ベクトルを求めている際のログを出力します。以下にファイル例を示します。

LanczosStep

E[1] E[2] E[3] E[4] Target:E[3] E_Max/Nsite

stp = 2 1.2149586211 14.6560471044 xxxxxxxxxx xxxxxxxxx 0.0000000000 xxxxxxxxx
stp=4 -5.6626980051 3.1523174817 12.4860778911 21.2322666770 12.4860778911 2.
6540333346,→

stp=6 -8.5113374325 -2.3219709559 4.3459108959 11.5079386600 4.3459108959 3.0307814358
stp=8 -9.5061025854 -5.2757708534 -0.1734100333 5.2236216333 -0.1734100333 3.
2049774861,→

stp=10 -9.7541889139 -6.6054773893 -2.9493235242 1.2364826532 -2.9493235242 3.
2686702753...
,→

stp=84 -10.4543987874 -9.8960493865 -9.7550111859 -9.7407358084 -9.7550111859 3.
3731105157,→

stp=86 -10.4543987874 -9.8960493865 -9.7550111859 -9.7407358084 -9.7550111859 3.
3731105157,→

stp=88 -10.4543987874 -9.8960493865 -9.7550111859 -9.7407358084 -9.7550111859 3.
3731105157,→

method="CG"の場合

Step

Residual-2-norm

ThresholdEnergy1

6.79819e+00

8.19743e-07

7.86586e+00

8.19743e+00

8.02804e+00

27.47402e+00

3.69905e-07

3.35827e+00

3.63546e+00

3.69905e+00

35.30943e+00

2.44472e-07-2.44472e+00-2.23296e+00-1.95487e+00

44.52737e+00

5.10297e-07-5.10297e+00-4.92390e+00-4.58682e+00

53.66168e+00

7.14105e-07-7.14105e+00-6.91226e+00-6.44532e+00

63.12717e+00

8.27201e-07-8.27201e+00-7.93262e+00-7.44680e+00

152

1.05602e-06

1.04544e-06-1.04544e+01-9.89605e+00-9.89605e+00

153

1.07401e-06

1.04544e-06-1.04544e+01-9.89605e+00-9.89605e+00

154

9.45018e-07

1.04544e-06-1.04544e+01-9.89605e+00-9.89605e+00

...

110

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0
ファイル名• ##_Lanczos_Step.dat##は ModPara ファイル内の [string02] で指定されるヘッダを表します。

ファイル形式• method="Lanczos"の場合
stp= [int01] [double01] [double02] [double03] [double04] [double-a] [double-b]• method="CG"の場合[int01] [double-c] [double-d] [double01] [double02] ...

パラメータ• [int01]
形式 : int 型
説明 : Lanczos 法 ·LOBCG 法での計算ステップ数。

• [double01], [double02], [double03], [double04] ...
形式 : double 型
説明 : Lanczos 法 ·LOBCG 法で計算時に求められた固有値を昇順に並べたもの。Lanczos 法では 4 個
分, LOBCG 法では exct で指定した個数が出力されます (上記の例では exct=3). Lanczos 法では縮退している固有値はまとめて 1 個と数えられますが, LOBCG 法では縮退している個数に応じて固有値が出力されます. 上記の例では第一励起状態が 2 重以上に縮退していることが分かります.

• [double-a]
形式 : double 型
説明 : (Lanczos 法のみ) LanczosTarget で指定した, 収束判定に用いられる固有値が出力されます (上記の例では LanczosTarget=3).

• [double-b]
形式 : double 型
説明 : (Lanczos 法のみ) 最大固有値をサイト数で割ったもの. TPQ 法での LargeValue の下限値となります.

• [double-c]
形式 : double 型
説明 : (LOBCG 法のみ) 計算した固有ベクトルの残差の 2-ノルムの中で最大のもの. 収束判定に用いられます.

4.3. 出力ファイル

111

HΦ Documentation, リリース 3.5.0• [double-d]
形式 : double 型
説明 : (LOBCG 法のみ) 収束判定のしきい値. LanczosEps で指定した値に基底状態のエネルギーの絶対値をかけています.

112

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.3.14 Time_TPQ_Step.dat(TPQ 法でのみ出力) TPQ 法でのステップ毎の開始時間を出力します。再計算の場合は値が追記されます。
以下にファイル例を示します。

set 0 step 1:TPQ begins: Wed Jul 13 07:59:20 2016
set 0 step 2:TPQ begins: Wed Jul 13 07:59:20 2016
set 0 step 3:TPQ begins: Wed Jul 13 07:59:20 2016…

set 4 step 1997:TPQ begins: Wed Jul 13 07:59:32 2016set 4 step 1998:TPQ begins: Wed Jul 13 07:59:32 2016set 4 step 1999:TPQ begins: Wed Jul 13 07:59:32 2016

ファイル名• ##_TPQ_Step.dat##は ModPara ファイル内の [string02] で指定されるヘッダを表します。

ファイル形式• set [int01] stp [int02]: TPQ begins: [string01]

パラメータ• [int01]
形式 : int 型
説明 : TPQ 法でのシード数。

• [int02]
形式 : int 型
説明 : TPQ 法でのステップ数。

• [string01]
形式 : string 型
説明 : 計算開始時間。

4.3. 出力ファイル

113

HΦ Documentation, リリース 3.5.0

4.3.15 Norm_rand.dat(TPQ 法でのみ出力) TPQ 法での有限温度計算時のログを出力します。再計算の場合は値が追記されます。
以下にファイル例を示します。

# inv_temp, global_norm, global_1st_norm, step_i
0.017471 19.046586 11.288975 1
0.034863 19.089752 11.288975 2…

31.999572 20.802362 11.288975 1997
32.015596 20.802362 11.288975 1998
32.031620 20.802362 11.288975 1999

ファイル名

• Norm_rand??.dat??は TPQ 法計算時の run の番号を表します。

ファイル形式

1 行目はヘッダで、2 行目以降は以下のファイル形式で記載されます。
• [double01] [double02] [double03] [int01]

パラメータ• [double01]
形式 : double 型
説明 : 逆温度 1/kB T 。

• [double02]
形式 : double 型
説明 : TPQ 法で計算される規格化前の波動関数 (ベクトル) のノルム: ⟨ψ̃k |ψ̃k ⟩。ただし、|ψ̃k ⟩ ≡(l − H/Ns )|ψk−1 ⟩。
• [double03]
形式 : double 型
説明 : 規格化前の初期波動関数 (ランダムベクトル) のノルム：⟨ψ̃0 |ψ̃0 ⟩。ただし、|ψ̃0 ⟩ は規格化前の初期波動関数。

114

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0• [int01]
形式 : int 型
説明 : 初期ランダムベクトルに (l − H/Ns )(l は ModPara ファイルの LargeValue、Ns はサイト数)を作用させた回数。

4.3. 出力ファイル

115

HΦ Documentation, リリース 3.5.0

4.3.16 SS_rand.dat(TPQ 法でのみ出力)TPQ 法での有限温度計算結果を出力します。再計算の場合は値が追記されます。 以下にファイル例を示します。

# inv_tmp, energy, phys_var, phys_doublon, phys_num, step_i
0.017471

5.526334 45.390269 1.464589 6.000000 1

0.034863

5.266718 42.655559 1.434679 6.000000 2…

31.999572-4.814170 23.176231 0.590568 6.000000 1997

32.015596-4.814170 23.176231 0.590568 6.000000 1998

32.031620-4.814170 23.176231 0.590568 6.000000 1999

ファイル名

• SS_rand??.dat??は TPQ 法計算時の run の番号を表します。

ファイル形式

1 行目はヘッダで、2 行目以降は以下のファイル形式で記載されます。
• [double01] [double02] [double03] [double04] [double05] [int01]

パラメータ• [double01]
形式 : double 型
説明 : 逆温度 1/kB T ( ただし, kB = 1)。

• [double02]
形式 : double 型
説明 : ハミルトニアンの期待値 (エネルギー)⟨H⟩。

• [double03]
形式 : double 型
説明 : ハミルトニアンの 2 乗の期待値 ⟨H2 ⟩。

116

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0• [double04]
形式 : double 型
説明 : ダブロンの期待値

Pi ⟨ni↑ ni↓ ⟩ 。

• [double05]
形式 : double 型

P
説明 : 粒子数 ⟨n⟩ = ⟨ i ni ⟩。
• [int01]
形式 : int 型
説明 : 初期ランダムベクトルに (l − H/Ns )(l は ModPara ファイルの LargeValue、Ns はサイト数)を作用させた回数。

4.3. 出力ファイル

117

HΦ Documentation, リリース 3.5.0

4.3.17 Flct_rand.dat(TPQ 法でのみ出力) TPQ 法での揺らぎに関する有限温度計算結果を出力します。再計算の場合は値が追記されます。 以下にファイル例を示します。

# inv_temp, N, N^2, D, D^2, Sz, Sz^2, step_i
0.0826564 12.00 144.00 0.00 0.00 0.0009345626081113 0.2500 1
0.1639935 12.00 144.00 0.00 0.00 0.0023147006319775 0.2500 20.2440168 12.00 144.00 0.00 0.00 0.0037424057659867 0.2500 3…

135.97669 12.00 144.00 0.00 0.00 -0.0000000000167368 0.2500 1998
136.04474 12.00 144.00 0.00 0.00 -0.0000000000165344 0.2500 1999

ファイル名

• Flct_rand??.dat??は TPQ 法計算時の run の番号を表します。

ファイル形式

1 行目はヘッダで、2 行目以降は以下のファイル形式で記載されます。
• [double01] [double02] [double03] [double04] [double05] [double06] [double07] [int01]

パラメータ• [double01]
形式 : double 型
説明 : 逆温度 1/kB T 。

• [double02]
形式 : double 型
説明 : 全粒子数Pi ⟨ni ⟩。

• [double03]
形式 : double 型

P
説明 : 粒子数の 2 乗の期待値 ⟨( i ni )2 ⟩。

118

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0• [double04]
形式 : double 型
説明 : ダブロン N1s

Pi ⟨ni↑ ni↓ ⟩ の期待値 (ただし Ns はサイト数)。

• [double05]
形式 : double 型

P
説明 : ダブロンの二乗 N1s ⟨( i ni↑ ni↓ )2 ⟩ の期待値 (ただし Ns はサイト数)。
• [double06]
形式 : double 型
説明 : スピンの Sz 成分 N1sPzi ⟨Si ⟩ の期待値 (ただし Ns はサイト数)。

• [double07]
形式 : double 型

P
説明 : スピンの Sz 成分の二乗 N1s ⟨( i Siz )2 ⟩ の期待値 (ただし Ns はサイト数)。
• [int01]
形式 : int 型
説明 : 初期ランダムベクトルに (l − H/Ns )(l は ModPara ファイルの LargeValue、Ns はサイト数)を作用させた回数。

4.3. 出力ファイル

119

HΦ Documentation, リリース 3.5.0

4.3.18 Time_TE_Step.dat(実時間発展法でのみ出力) 実時間発展法でのステップ毎の開始時間を出力します。以下にファイル例を示します。

step 1:TE begins: Wed Jul 13 07:59:20 2017
step 2:TE begins: Wed Jul 13 07:59:20 2017
step 3:TE begins: Wed Jul 13 07:59:20 2017…

step 1997:TE begins: Wed Jul 13 07:59:32 2017
step 1998:TE begins: Wed Jul 13 07:59:32 2017
step 1999:TE begins: Wed Jul 13 07:59:32 2017

ファイル名• ##_TE_Step.dat##は ModPara ファイル内の [string02] で指定されるヘッダを表します。

ファイル形式• stp [int01]: TE begins: [string01]

パラメータ• [int01]
形式 : int 型
説明 : TE 法でのステップ数。

• [string01]
形式 : string 型
説明 : 計算開始時間。

120

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.3.19 Norm.dat(実時間発展法でのみ出力) 実時間発展法でのタイムステップ毎のログを出力します。以下にファイル例を示します。

# time, norm, step_i
0.0000000000000000 0.9999999999999994 00.0100000000000000 1.0000233421898765 1
0.0200000000000000 1.0000211100654208 2
0.0300000000000000 1.0000182214014706 3
0.0400000000000000 1.0000148460317946 4
0.0500000000000000 1.0000111372562455 5
0.0600000000000000 1.0000072252313270 6
0.0700000000000000 1.0000032174168609 7
0.0800000000000000 0.9999992048382456 8
0.0900000000000000 0.9999952720176869 90.1000000000000000 0.9999915078951970 10

ファイル名• Norm.dat

ファイル形式

1 行目はヘッダで、2 行目以降は以下のファイル形式で記載されます。
• [double01] [double02] [int01]

パラメータ• [double01]
形式 : double 型
説明 : 時間 t。

• [double02]
形式 : double 型
説明 : 実時間発展法で計算される時刻 t での波動関数 (ベクトル) のノルム。

• [int01]
形式 : int 型
説明 : タイムステップ数。

4.3. 出力ファイル

121

HΦ Documentation, リリース 3.5.0

4.3.20 SS.dat(実時間発展法でのみ出力) 実時間発展法での各ステップ毎の計算結果を出力します。以下にファイル例を示します。

# time, energy, phys_var, phys_doublon, phys_num, step_i
0.0000000000000000-6.0412438187293001 38.8635272290786489 ...

0.0100000000000000-5.9310482979751606 37.9593669819686923 ...

0.0200000000000000-5.8287182777288828 37.1390062697724801 ...

0.0300000000000000-5.7384311863736031 36.4282319427381651 ...

0.0400000000000000-5.6636677030535481 35.8466140292489897 ...

0.0500000000000000-5.6070659264425551 35.4081795274108799 ...

0.0600000000000000
0.0700000000000000-5.5703150294725914 35.1222606981659666 ...
-5.5540895348193438 34.9942503380419154 ...

0.0800000000000000-5.5580244678717312 35.0260574979670665 ...

0.0900000000000000-5.5807312981978212 35.2161499389042660 ...

0.1000000000000000-5.6198544688797947 35.5591788356216298 ...

...

ファイル名

• SS.dat

ファイル形式

1 行目はヘッダで、2 行目以降は以下のファイル形式で記載されます。
• [double01] [double02] [double03] [double04] [double05] [int01]

パラメータ• [double01]
形式 : double 型
説明 : 時間 t。

• [double02]
形式 : double 型
説明 : ハミルトニアンの期待値 (エネルギー)⟨H⟩。

122

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0• [double03]
形式 : double 型
説明 : ハミルトニアンの 2 乗の期待値 ⟨H2 ⟩。

• [double04]
形式 : double 型
説明 : ダブロン N1s

Pi ⟨ni↑ ni↓ ⟩ (ただし Ns はサイト数)。

• [double05]
形式 : double 型
説明 : 粒子数 ⟨Pi ni ⟩。

• [int01]
形式 : int 型
説明 : タイムステップ数。

4.3. 出力ファイル123

HΦ Documentation, リリース 3.5.0

4.3.21 Flct.dat(実時間発展法でのみ出力) 実時間発展法での揺らぎに関する各時刻での計算結果を出力します。以下にファイル例を示します。

# time, N, N^2, D, D^2, Sz, Sz^2, step_i
0.0000000000000000 7.9999999999999991 63.9999999999999929 ...
0.0100000000000000 8.0000000000000604 64.0000000000004832 ...
0.0200000000000000 8.0000000000000018 64.0000000000000142 ...
0.0300000000000000 8.0000000000001013 64.0000000000008100 ...
0.0400000000000000 7.9999999999999183 63.9999999999993463 ...
0.0500000000000000 7.9999999999999520 63.9999999999996163 ...
0.0600000000000000 7.9999999999999627 63.9999999999997016 ...
0.0700000000000000 8.0000000000000835 64.0000000000006679 ...
0.0800000000000000 8.0000000000000924 64.0000000000007390 ...
0.0900000000000000 7.9999999999999600 63.9999999999996803 ...
0.1000000000000000 7.9999999999999067 63.9999999999992539 ...
...

ファイル名

• Flct.dat

ファイル形式

1 行目はヘッダで、2 行目以降は以下のファイル形式で記載されます。
• [double01] [double02] [double03] [double04] [double05] [double06] [double07] [int01]

パラメータ• [double01]
形式 : double 型
説明 : 時間 t。

• [double02]
形式 : double 型
説明 : 全粒子数

124

P

i ⟨ni ⟩。

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0• [double03]
形式 : double 型

P
説明 : 粒子数の 2 乗の期待値 ⟨( i ni )2 ⟩。
• [double04]
形式 : double 型
説明 : ダブロン N1s

Pi ⟨ni↑ ni↓ ⟩ の期待値 (ただし Ns はサイト数)。

• [double05]
形式 : double 型

P
説明 : ダブロンの 2 乗 N1s ⟨( i ni↑ ni↓ )2 ⟩ の期待値 (ただし Ns はサイト数)。
• [double06]
形式 : double 型
説明 : スピンの Sz 成分 N1sPzi ⟨Si ⟩ の期待値 (ただし Ns はサイト数)。

• [double07]
形式 : double 型

P
説明 : スピンの Sz 成分の 2 乗 N1s ⟨( i Siz )2 ⟩ の期待値 (ただし Ns はサイト数)。
• [int01]
形式 : int 型
説明 : タイムステップ数。

4.3. 出力ファイル

125

HΦ Documentation, リリース 3.5.0

4.3.22 Eigenvalue.dat(FullDiag でのみ出力) 全対角法で計算したエネルギーを出力します。以下にファイル例を記載します。

0 -4.8141698096
1 -3.7968502453
2 -3.2462822372…

397 13.9898305290
398 14.4896221034
399 14.8525199079

ファイル形式
以下のファイル形式で記載されます。

• [int01] [double01]

パラメータ• [int01]
形式 : int 型
説明 : 固有値の index。基底エネルギーを 0 として、エネルギーの低い順から採番する。

• [double01]
形式 : double 型
説明 : エネルギー ⟨H⟩。

126

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.3.23 phys.dat(FullDiag でのみ出力) 全対角法で計算したエネルギーと物理量を出力します。エネルギーの低い基底エネルギーから順に出力されます。以下にファイル例を記載します。

<H>

<N>

<Sz>

<S2>

<D>

-4.814170

0.000000

0.000000-0.000000

0.590568-3.796850

0.000000

0.000000

1.333333

0.423804

14.489622

0.000000

0.000000

0.000000

2.550240

14.852520

0.000000

0.000000

0.000000

2.329157…

ファイル名• カノニカル: ##_phys_Nup_$$Ndown%%.dat• グランドカノニカル: ##_phys.dat##は ModPara ファイル内の [string02] で指定されるヘッダ、$$は Nup、%%は Ndown を表します。

ファイル形式

1 行目はヘッダで、2 行目以降は以下のファイル形式で記載されます。
• [double01] [double02] [double03] [double04] [double05]

パラメータ• [double01]
形式 : double 型
説明 : ハミルトニアンの期待値 (エネルギー)⟨H⟩。

• [double02]
形式 : double 型
説明 : 粒子数の期待値 ⟨n⟩。

• [double03]
形式 : double 型
説明 : スピンの z 成分の期待値 ⟨Sz ⟩。

4.3. 出力ファイル

127

HΦ Documentation, リリース 3.5.0• [double04]
形式 : double 型
説明 : スピンの 2 乗の期待値 ⟨S 2 ⟩。

• [double05]
形式 : double 型
説明 : ダブロン N1s

128Pi ⟨ni↑ ni↓ ⟩ (ただし Ns はサイト数)。

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.3.24 ham.dat(FullDiag でのみ出力) CalcMod ファイルで OutputHam=1 の場合に、H Φ内部で計算されたハミルトニア
ンを MatrixMarket 形式で出力します。CalcMod ファイルで InputHam=1 とすると、定義ファイル一式と本ファイルを読み込み、再計算することができます。以下にファイル例を記載します。

%%%%MatrixMarket matrix coordinate complex hermitian
28 28 56
1 1 1.000000 0.000000
2 1 0.500000 0.000000
3 2 0.500000 0.000000
4 3 0.500000 0.000000
5 4 0.500000 0.000000
6 5 0.500000 0.000000
7 6 0.500000 0.000000
7 7 1.000000 0.000000
…

ファイル名

• ##_ham.dat##は ModPara ファイル内の [string02] で指定されるヘッダを表します。

ファイル形式• 1 行：ヘッダ• 2 行：[int01] [int02] [int03]• 3 行-：[int04] [int05] [double01] [double02]

パラメータ• [int01]
形式 : int 型
説明 : Hamiltonian の行数。

• [int02]
形式 : int 型
説明 : Hamiltonian の列数。

4.3. 出力ファイル

129

HΦ Documentation, リリース 3.5.0• [int03]
形式 : int 型
説明 : Hamiltonian の非零の要素数。

• [double01], [double02]
形式 : double 型

説明 : Hamiltonian の値を表します。

[double01] が実部、[double02] が虚部を表します。

130

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.3.25 cisajs.dat
OneBodyG で指定された一体グリーン関数 ⟨c†iσ1 cjσ2 ⟩ の計算結果を出力します。以下にファイル例を記載
します。

0

0

0

0 0.4452776740 0.0000000000

0

1

0

1 0.4452776740 0.0000000000

1

0

1

0 0.5000000000 0.0000000000

1

1

1

1 0.5000000000 0.0000000000

2

0

2

0 0.4452776740 0.0000000000

2

1

2

1 0.4452776740 0.0000000000

3

0

3

0 0.5000000000 0.0000000000

3

1

3

1 0.5000000000 0.0000000000

…

ファイル名

Lanczos 法: ##_cisajs.dat
TPQ 法: ##_cisajs_set??step%%.dat
実時間発展法: ##_cisajs_step%%.dat
全対角化法、LOBCG 法: ##_cisajs_eigen&&.dat##は ModPara ファイル内の [string02] で指定されるヘッダ、??は TPQ 法計算時の run の番号、%%は TPQ
法でのステップ数、&&は固有値の番号を表します。

ファイル形式• [int01] [int02] [int03] [int04] [double01] [double02]

パラメータ• [int01], [int03]
形式 : int 型
説明 : サイト番号を指定する整数。[int01] が i サイト、[int03] が j サイトを表します。

• [int02], [int04]
形式 : int 型

説明 : スピンを指定する整数。[int02] が σ1 、[int03] が σ2 に対応します。

0: アップスピン

4.3. 出力ファイル

131

HΦ Documentation, リリース 3.5.0
1: ダウンスピンを表します。

• [double01], [double02]
形式 : double 型

説明 : ⟨c†iσ1 cjσ2 ⟩ の値を表します。

[double01] が実部、[double02] が虚部を表します。

132

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.3.26 cisajscktalt.dat
TwoBodyG で指定された二体グリーン関数 ⟨c†iσ1 cjσ2 c†kσ3 clσ4 ⟩ の計算結果を出力します。以下にファイル例を記載します。

0

0

0

0

0

0

0

0 0.4452776740 0.0000000000

0

0

0

0

0

1

0

1 0.1843355815 0.0000000000

0

0

0

0

1

0

1

0 0.1812412105 0.0000000000

0

0

0

0

1

1

1

1 0.2640364635 0.0000000000

0

0

0

0

2

0

2

0 0.0279690007 0.0000000000

0

0

0

0

2

1

2

1 0.2009271524 0.0000000000

0

0

0

0

3

0

3

0 0.2512810778 0.0000000000

0

0

0

0

3

1

3

1 0.1939965962 0.0000000000

…

ファイル名

Lanczos 法: ##_cisajscktalt.dat
TPQ 法: ##_cisajscktalt_set??step%%.dat
実時間発展法: ##_cisajscktalt_step%%.dat
全対角化法、LOBCG 法: ##_cisajscktalt_eigen&&.dat##は ModPara ファイル内の [string02] で指定されるヘッダ、??は TPQ 法計算時の run の番号、%%は TPQ
法でのステップ数、&&は固有値の番号を表します。

ファイル形式• [int01] [int02] [int03] [int04] [int05] [int06] [int07] [int08] [double01] [double02]

パラメータ• [int01], [int03],[int05], [int07]
形式 : int 型
説明 : サイト番号を指定する整数。[int01] が i サイト、[int03] が j サイト、[int05] が k サイト、[int07]
が l サイトを表します。

• [int02], [int04],[int06], [int08]
形式 : int 型

説明 : スピンを指定する整数。[int02] が σ1 、[int04] が σ2 、[int06] が σ3 、[int08] が σ4 に対応します。

4.3. 出力ファイル

133

HΦ Documentation, リリース 3.5.0
0: アップスピン
1: ダウンスピンを表します。

• [double01], [double02]
形式 : double 型

説明 : ⟨c†iσ1 cjσ2 c†kσ3 clσ4 ⟩ の値を表します。

[double01] が実部、[double02] が虚部を表します。

134

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.3.27 eigenvec.dat
CalcMod ファイルの OutputEigenVec=1 の場合に、Lanczos 法で計算された固有ベクトルを出力します。
IntputEigenVec=1 の場合には、出力されたファイルの読み込みを行います。ファイルはバイナリ形式で出力されます。ファイル名およびファイル形式は以下の通りです。

ファイル名• ##_eigenvec_&&_rank_$$.dat##は ModPara ファイル内の [string02] で指定されるヘッダ、&&は固有値の番号、$$はランク番号を表します。

ファイル形式

Note: eigen_vector の一番最初の成分に計算に使用しない値が入っています。

4.3. 出力ファイル

135

HΦ Documentation, リリース 3.5.0

4.3.28 tmpvec.dat
CalcMod ファイルの ReStart=1, 2 の場合に、計算途中のベクトルを出力します。ファイルはバイナリ形式
で出力されます。ファイル名およびファイル形式は以下の通りです (ファイル形式は eigenvec.dat と同様
です)。

ファイル名

• Lanczos 法：##_tmpvec_rank_$$.dat• TPQ 法, LOBPCG 法：##_tmpvec_set_&&_rank_$$.dat##は ModPara ファイル内の [string02] で指定されるヘッダ、$$はランク番号を表します。また、&&は TPQ
時のサンプリングの番号もしくは LOBPCG 法での固有値の番号を表します。

ファイル形式
次のようなソースコードを用いて、バイナリファイルとして出力されます (実際の HΦ のソースコードとは変数名等が異なります)。

Lanczos

fp = fopen("zvo_tmpvec_rank_0.dat", "wb");
fwrite(&number_of_interations, sizeof(int), 1,fp);
fwrite(&local_size, sizeof(unsigned long int),1,fp);
fwrite(&last_vector[0], sizeof(complex double),local_size+1, fp);
fwrite(&second_last_vector[0], sizeof(complex double),local_size+1, fp);
fclose(fp);

TPQ および LOBPCG

fp = fopen("zvo_tmpvec_set_0_rank_0.dat", "wb");
fwrite(&number_of_interations, sizeof(int), 1,fp);
fwrite(&local_size, sizeof(unsigned long int),1,fp);
fwrite(&last_vector[0], sizeof(complex double),local_size+1, fp);
fclose(fp);
ただし、number_of_interations は反復回数、local_size は固有ベクトルのサイズ (MPI 並列を使っている
場合は全ヒルベルト次元とは異なります)、last_vector は最後の反復でのベクトル、second_last_vector
は最後から 2 番目の反復でのベクトルをそれぞれ表します。

136

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0※ last_vector、second_last_vector の一番最初の成分に計算に使用しない値が入っています。

4.3. 出力ファイル

137

HΦ Documentation, リリース 3.5.0

4.3.29 DynamicalGreen.dat
動的グリーン関数の計算結果を出力します。ファイル名およびファイル形式は以下の通りです。

ファイル名• ##_DynamicalGreen.dat##は ModPara ファイル内の [string02] で指定されるヘッダを表します。

ファイル形式• 1 行目-: [double01] [double02] [double03] [double04]

パラメータ• [double01], [double02]
形式 : double 型

説明 : 振動数の値を表します。

[double01] が実部、[double02] が虚部を表します。

• [double03], [double04]
形式 : double 型

説明 : 動的グリーン関数の値を表します。

[double03] が実部、[double04] が虚部を表します。

138

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.3.30 recalcvec.dat
Lanczso 法を用いた動的グリーン関数の再計算に必要な 2 つのベクトルが出力されます。ファイルはバイナリ形式で出力されます。ファイル名およびファイル形式は以下の通りです。

ファイル名• ##_recalcvec_rank_$$.dat##は ModPara ファイル内の [string02] で指定されるヘッダ、$$はランク番号を表します。

ファイル形式• 1 行目：[int01]• 2 行目：[int02]• 3 行目 - [int02]+3 行: [double01] [double02]• 4 行目 - 2×[int02]+4 行: [double03] [double04]

パラメータ• [int01]
形式 : int 型
説明 : 動的グリーン関数の計算に要したステップ数を表します。

• [int02]
形式 : Long int 型
説明 : 計算対象のヒルベルト空間数を指定する整数。

• [double01], [double02]
形式 : double

説明 : Lanczos 法での ⃗vk+1 を出力します。[double01] が実部、[double02] が虚部を表します。一番最初の成分に計算に使用しない値が入っています。

• [double03], [double04]
形式 : double

4.3. 出力ファイル

139

HΦ Documentation, リリース 3.5.0
説明 : Lanczos 法での ⃗vk+1 を出力します。[double01] が実部、[double02] が虚部を表します。一番最初の成分に計算に使用しない値が入っています。

140

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.3.31 TMcomponents.dat
Lanczos 法を用いた動的グリーン関数の再計算に必要な三重対角行列の要素と励起状態のノルムが出力されます。ファイル名およびファイル形式は以下の通りです。

ファイル名• ##_TMcomponents.dat##は ModPara ファイル内の [string02] で指定されるヘッダを表します。

ファイル形式• 1 行目：[int01]• 2 行目：[double01]• 3 行目 - [int02]+3 行: [double02] [double03]

パラメータ• [int01]
形式 : int 型
説明 : 動的グリーン関数の計算に要したステップ数 Nd を表します。

• [double01]
形式 : double 型
説明 : 励起状態のノルムを表します。

• [double02], [double03]
形式 : double 型

説明 : Lanczos 法を用いた動的グリーン関数の再計算に必要な三重対角行列の要素

αi , βi (i = 1, · · · Nd ) の値を表します。一番最初の成分に計算に使用しない値が入っています。
[double02] が αi 、[double03] が βi に対応します。

4.3. 出力ファイル

141

HΦ Documentation, リリース 3.5.0

4.3.32 excitedvec.dat
CalcMod ファイルの OutputExcitedVec=1 の場合に、pair.def と入力ベクトルから計算された励起ベクトルを出力します。ファイルはテキスト形式で出力されます。以下にファイル例を記載します。

4096
0.0009135367, -0.0004231751-0.0009712430, 0.0293999045-0.0294644178, 0.0210086435
0.0214247977, -0.0107587147
0.0272643022, -0.0404634256
0.0034322694, -0.0184446640
0.0019911098, 0.0004403706
0.0114685735, -0.0114381935
0.0092888239, 0.0088235535
…

ファイル名

• ##_excitedvec_&&_rank_$$.dat##は ModPara ファイル内の [string02] で指定されるヘッダ、&&は固有値の番号、$$はランク番号を表します。

ファイル形式• Line 1: [int01]• Lines2-: [double01] [double02]

パラメータ• [int01]
形式 : long int 型
説明 : ベクトルの次元数。

• [double01], [double02]
形式 : double 型

説明 : 励起ベクトルの値を表します。

[double01] が実部、[double02] が虚部を表します。

142

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0

4.3.33 residual.dat
method=CG(CalcMod ファイルで CalcType が 3 の場合) を用いた動的グリーン関数の計算のステップ数に依存した途中結果が出力されます。ファイル名およびファイル形式は以下の通りです。

ファイル名• residual.dat

ファイル形式• 1 行目-NOmega 行目：[int01] [double01] [double02] [double03] [double04]• NOmega+1 行目：空行• 以下繰り返しパラメータ• [int01]
形式 : int 型
説明 : 反復ステップ数を表します。10 の倍数のみ出力されます。

• [double01]
形式 : double 型
説明 : 振動数の値を表します。

• [double02], [double03]
形式 : double 型

説明 : 反復数が [int01] の時の動的グリーン関数の値を出力します。[double02] が実部、[double03] が虚部を表します。

• [double04]
形式 : double 型

説明 : 反復数が [int01] の時の残差ベクトルのノルムを出力します。

4.3. 出力ファイル

143

HΦ Documentation, リリース 3.5.0

4.4 エラーメッセージ一覧• ERROR ! Unsupported Keyword !
存在しないキーワードを指定した場合に表示され、プログラムは停止します。

• "ERROR ! Keyword keyword 名 is duplicated !
同じキーワードを 2 回指定した場合に表示され、プログラムは停止します。

• ERROR ! Unsupported Solver : solver 名
method にサポートしていないパラメーターを入れた場合、プログラムは停止します。
• Sorry, this system is unsupported in the STANDARD MODE...
Sorry, specified combination,
MODEL : model 名
LATTICE : lattice 名is unsupported in the STANDARD MODE...
Please use the EXPART MODE, or write a NEW FUNCTION and post us.
model, lattice のどれかまたは複数にサポートしていないパラメーターを入れた場合、プログラム
は停止します。

• ERROR ! abs(2 * Sz) > nsite in Hubbard model !
• ERROR ! Nelec > 2 * nsite in Hubbard model !
• ERROR ! (nelec + 2 * Sz) % 2 != 0 in Hubbard model !
• ERROR ! nelec <= nsite && 2 * |Sz| > nelec in Hubbard model !
• ERROR ! nelec > nsite && 2 * |Sz| > 2 * nsite - nelec in Hubbard model !
• ERROR ! abs(2 * Sz) > nsite in Spin model !
• ERROR ! (nsite + 2 * Sz) % 2 != 0 in Spin model !
• ERROR ! abs(2 * Sz) > nsite in Hubbard model !
• ERROR ! Nelec_cond / 2 + Nelec_loc > nsite in Kondo model !
• ERROR ! (nelec_cond + nelec_loc + 2 * Sz) % 2 != 0 in Kondo model !
• ERROR ! nelec_cond <= nsite / 2 && 2 * |Sz| > nelec_cond + nelec_loc ...
• ERROR ! nelec_cond > nsite / 2 && abs(Sz2) > nsite / 2 * 3 - nelec...
カノニカル集団の計算において、入力されたサイト数、電子数、全スピン z 成分が実現できない組み
合わせである場合 (例えば、電子数がサイト数の 2 倍よりも大きい、など) プログラムは停止します。

• Check !keyword 名 is SPECIFIED but will NOT be USED.
Please COMMENT-OUT this lineor check this input is REALLY APPROPRIATE for your purpose !

144

第 4 章 ファイルフォーマット

HΦ Documentation, リリース 3.5.0
使われないパラメーターを指定した時には、ユーザーに入力ファイルの確認を促しプログラムは停止します。実際に必要のないパラメーターの場合は該当する行を削除もしくはコメントアウトしてください。

• ERROR !keyword 名 is NOT specified !
必ず指定しなければならないキーワードが指定されていない場合にはプログラムは停止します。

• keyword 名 = value 名 ###### DEFAULT VALUE IS USED ######
これはエラーメッセージではありません。入力ファイルで指定がなかったためにデフォルト値が使われたことを知らせるメッセージです。

4.4. エラーメッセージ一覧

145

147

第 5 章 アルゴリズム

5.1 Lanczos 法
5.1.1 手法概要
Lanczos 法の解説については TITPACK1 のマニュアルと 線形計算の数理2 を参考にしています.
Lanczos 法はある初期ベクトルにハミルトニアンを作用させて最大・最小近傍の固有値・固有ベクトルを求める方法です。Lanczos 法で固有値を求める際には Hilbert 空間の次元の大きさの波動関数を表すベクト
ルが 2 つ3 あれば原理的には実行可能なため、大規模疎行列の対角化手法として有用であることが知られています。後述するように、固有ベクトルを求める際には Hilbert 空間の次元の大きさのベクトルがもう 1
本必要です。

Lanczos 法の 原理はべき乗法に基づいています。べき乗法ではある任意のベクトル ⃗x0 に Hamitonian を逐
次的に作用させて, Hn ⃗x0 を作成します。 このとき、生成される空間 Kn+1 (H, ⃗x0 ) = {⃗x0 , H1 ⃗x0 , . . . , Hn ⃗x0 }は Krylov 部分空間といわれます。初期ベクトルを H の固有ベクトル ⃗ei (対応する固有値を Ei とする) の重ね合わせで表すと

⃗x0 =

X

ai⃗ei

(5.1)

i

となります。 ここで、E0 を絶対値最大の固有値としました。またハミルトニアンはエルミートであるため、固有値は全て実数であることに注意する必要があります。これに Hamiltonian の Hn を作用させると、
hiX  Ei n
Hn ⃗x0 = E0n a0⃗e0 +
ai⃗ei
(5.2)
E0
i̸=0

となり、絶対値最大固有値 E0 に対応する固有ベクトルが支配的になります。適切な変換を行って、この固有ベクトルの成分を抽出するのが Lanczos 法です。

Lanczos 法では、 Kn (H, ⃗x0 ) から正規直交ベクトル ⃗v0 , . . . , ⃗vn−1 を次の手続きにしたがって順次生成していきます。 初期条件を ⃗v0 = ⃗x0 /|⃗x0 |, β0 = 0, ⃗x−1 = 0 とすると、正規直交基底は次の手続きによって逐次的に生成することができます。

αk = (H⃗vk , ⃗vk )w⃗ = H⃗vk − βk⃗vk−1 − αk⃗vk
βk+1 = |w|⃗⃗vk+1 =

(5.3)

⃗vk|⃗vk |

1 http://www.qa.iir.titech.ac.jp/~nishimori/titpack2_new/index-e.html
2 M. Sugihara, K. Murota, Theoretical Numerical Linear Algebra, Iwanami Stud-ies in Advanced Mathematics, Iwanami Shoten, Publishers,
2009.
3 高速化のために、In HΦ ではハミルトニアンの対角成分を表すベクトル 1 本と, スピン z 成分 S 保存, 粒子数保存の場合はそのz状態を指定するベクトル 1 本を余計に確保しています。いずれのベクトルの大きさも Hilbert 空間の次元です。

HΦ Documentation, リリース 3.5.0
この定義から、αk ,βk ともに実数であることに注意する必要があります。
これらの正規直交基底が成す Kryrov 部分空間の中でもとのハミルトニアンに対する固有値問題は、

Tn = Vn† HVn(5.4)と変形されます。 ここで、Vn を ⃗vi (i = 0, 1, . . . , n − 1) を並べた行列です。 Tn は三重対角行列であり、 その対角成分は αi , 副対角成分は βi で与えられます。この三重対角行列 Tn の固有値はもとのハミルトニアンの固有値の近似値となっています (V † V = I,I は単位行列であることに注意)。Tn の固有ベクトルを ⃗e˜iとするともとのハミルトニアンの固有ベクトルとの関係は ⃗ei = V ⃗e˜i で与えられます。V を覚えていれば、Lanczos 法を行うと同時に固有ベクトルを求めることができますが、実際の場合は (Hilbert 空間の次元 ×
Lanczos 法の反復回数) の大きさの行列を保持することは不可能です。そこで、Lanczos 法で固有値を求めた後、⃗˜ei を保存しておき4 、再び同じ Lanczos 法の計算を行い求めた V から元の固有ベクトルを再現 するようにしています。

Lanczos 法では, 元の Hilbert 空間の次元より十分小さい反復回数で最大及び最小に近い固有値を精度よく求めることができることが知られています。すなわち Tn の次元 n は数百-数千程度ですみます。定量的には、最大及び最小固有値の評価の誤差は Lanczos の反復回数に対して指数関数的に減少することが示されています (詳細は Ref.? を参照して下さい)。

5.1.2 逆反復法
固有値の近似値がわかっているときは適当なベクトル ⃗y0 に対して (H − En )−1 を 逐次的に作用させれば、固有値 En に対応する固有ベクトルの 成分が支配的になり、固有ベクトルを精度良く求めることができます。

(H − En )−1 を作用させる方程式を書き換えると以下の連立方程式が得られます。
⃗yk = (H − En )⃗yk+1(5.5)

この連立方程式を 共役勾配法 (CG 法) を用いて解くことで、固有ベクトルを求めることができます。 その
固有ベクトルから固有値およびその他の相関関数を 求めることができます。 ただし, CG 法の実行にはヒ
ルベルト空間の次元のベクトル を 4 本確保する必要があり、大規模系の計算を実行する際にはメモリが足りなくなる恐れがあるので注意が必要です。

5.1.3 実際の実装について
初期ベクトルの設定について

Lanczos 法では、スタンダードモード用の入力ファイル、もしくはエキスパートモードでは ModPara で指定する initial_iv(≡ rs ) により初期ベクトルの設定方法を指定します。また、初期ベクトルは ModPara
で指定される入力ファイルの InitialVecType を用い、実数もしくは複素数の指定をすることができます。

• カノニカル集団かつ initial_iv ≥ 0 の場合
ヒルベルト空間のうち、(Ndim /2 + rs )%Ndim(5.6)

4 ⃗˜e の次元は高々 Lanczos 法の反復回数であることに注意。
i148

第 5 章 アルゴリズム

HΦ Documentation, リリース 3.5.0の成分が与えられます。ここで、 Ndim は対象となるヒルベルト空間の総数で、Ndim /2 はデフォル
ト値 initial_iv = 1 で特殊なヒルベルト空間の選択をさけるために加えられています。なお、選択√された成分の係数は実数の場合は 1、複素数の場合には (1 + i)/ 2 が与えられます。

• グランドカノニカル集団 もしくは initial_iv < 0 の場合
初期ベクトルはランダムベクトルとして与えられます。乱数のシードは123432 + |rs |(5.7)

で指定します。ここで、nrun は run の回数であり、run の最大回数はスタンダードモード用入力ファイ
ル、もしくは ModPara で指定される入力ファイルの NumAve で指定します。initial_iv は入力ファイルで指定します。乱数は SIMD-oriented Fast Mersenne Twister (dSFMT) を用い発生させています5 。

収束判定についてHΦ では、Tn の対角化に lapack のルーチン dsyev を使用しており、Tn の基底状態の次の固有値（第一励起状態のエネルギー）を収束判定条件に用いています。 デフォルトの設定では、最初の 5 回の Lanczos ス
テップの後に、２回毎に Tn の対角化を行い、前の Lanczos ステップの第一励起状態のエネルギーと指定した精度以内で一致すれば、収束したと判定しています。なお、収束する際の精度は CDataFileHead (エキスパートモードでは ModPara ファイル内) で指定することが可能です。
その後、Lanczos 法を再度行い、 逐次 V を求めて、指定した準位の固有ベクトルを求めます。得られた固有ベクトル |n⟩ を用い、エネルギーの期待値 En = ⟨n|H|n⟩ およびバリアンス ∆ = ⟨n|H2 |n⟩ − (⟨n|H|n⟩)2を求めて、En が Laczos 法で求めた固有値と指定した精度で一致しているか、バリアンスが指定した精度以下になっているかを チェックしています。指定した精度に達していれば、対角化を終了しています。
指定した精度に達していない場合には逆反復法を用いて再度固有ベクトルを求め直します。逆反復法の初期ベクトルとして Lanczos 法で求めた固有ベクトルをとった方が一般に収束が早いので、標準の設定ではそのように取っています。

5.2 完全対角化
5.2.1 手法概要
ハミルトニアン H を実空間配置 |ψj ⟩(j = 1 · · · N ) を用いて作成します: Hij = ⟨ψi |Ĥ|ψj ⟩。この行列を対角化することで、固有値 Ei 、固有ベクトル |Φi ⟩ を求めることができます (i = 1 · · · N )。なお、対角化では lapack の dsyev また zheev を用いています。 また、有限温度計算用に各固有エネルギー状態の期待値⟨Ai ⟩ ≡ ⟨Φi |Â|Φi ⟩ を計算・出力するようにしています。

5 http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index.html

5.2. 完全対角化

149

HΦ Documentation, リリース 3.5.0

5.2.2 有限温度物理量の計算
完全対角化で求めた ⟨Ai ⟩ ≡ ⟨Φi |Â|Φi ⟩ を用い、PN
⟨Â⟩ =−βEi
i=1 ⟨Ai ⟩e
PN −βE
i
i=1 e

(5.8)

の関係から有限温度の物理量を計算します。実際の計算処理としてはポスト処理により計算を行います。

5.3 熱的純粋量子状態による有限温度計算
杉浦・清水によって、 少数個（サイズが大きい場合はほぼ一つ）の波動関数から有限温度の物理量を計算する方法が提案されました12 。その状態は熱的純粋量子状態 (TPQ) と呼ばれています。TPQ はハミルトニ
アンを波動関数に順次作用させて得られるので、Lanczos 法の技術がそのまま使うことができます。TPQ状態は次のように与えられます。

|Φ(β)⟩ ≡ exp(−

β Ĥ)|Φrand ⟩.
2

(5.9)

ここで β は逆温度、|Φrand ⟩ はランダムな初期ベクトルです。|Φ(β)⟩ の期待値として、有限温度の物理量が計算できることが示されています.

5.3.1 実際の実装について
mTPQ 状態の構成について
ここでは、とくに計算が簡単な, micro canonical TPQ(mTPQ) の概要を述べます? 。

|Φrand ⟩ をあるランダムベクトルとします。これに (l − H/Ns )(l はある定数、Ns はサイト数) を k 回作用させた（規格化された）ベクトルは次のように与えられます。

|Φk ⟩ ≡(l − H/Ns )|Φk−1 ⟩.
|(l − H/Ns )|Φk−1 ⟩|(5.10)

この |Φk ⟩ が mTPQ 状態で、この mTPQ 状態に対応する逆温度 βk は以下のように内部エネルギー uk から求めることができます。

βk ∼

2k/Ns
, uk = ⟨Φk |H|Φk ⟩/Ns .
l − uk(5.11)

そして、任意3 の物理量 Â の βk での平均値は⟨Â⟩βk = ⟨Φk |Â|Φk ⟩/Ns

(5.12)となります。 有限系では最初の乱数ベクトルによる誤差がありますので、いくつか独立な計算を行って、|ψ0 ⟩ に関する平均値および標準偏差を見積もっています。

1 S. Sugiura, A. Shimizu, Phys. Rev. Lett. 108, 240401 (2012).
2 S. Sugiura and A. Shimizu, Phys. Rev. Lett. 111, 010401 (2013).
3 局所的にという条件がつきます。

150

第 5 章 アルゴリズム

HΦ Documentation, リリース 3.5.0
cTPQ 状態の構成について
カノニカル TPQ(cTPQ) 状態の構成方法について述べます? , cTPQ 法では exp[−β Ĥ/2] は次にように近似さ
れます.

β Ĥ
)|Φrand ⟩ ∼ |Φk ⟩ = U (∆τ )k |Φrand ⟩
2
nX
max
1
∆τ n
(−
U (∆τ ) =
Ĥ)
n!
2
n=0
exp(−

(5.13)

βk = k∆τ
mTPQ と同じように物理量は cTPQ 状態の期待値として計算できます。
⟨Â⟩βk =⟨Φk |Â|Φk ⟩.
⟨Φk |Φk ⟩(5.14)

初期ベクトルの設定について
熱的純粋量子状態による有限温度計算では、初期ベクトルは全ての成分に対してランダムな係数を与えます。初期ベクトルの係数の型は ModPara で指定される入力ファイルの InitialVecType を用い、実数もし
くは複素数の指定をすることができます。乱数のシードは initial_iv (≡ rs ) により123432 + (nrun + 1) × |rs | + kThread + NThread × kProcess(5.15)

で与えられます。ここで、nrun は run の回数であり、run の最大回数はスタンダードモード用入力ファイル、もしくは ModPara で指定される入力ファイルの NumAve で指定します。initial_iv はスタンダードモード用の入力ファイル、もしくはエキスパートモードでは ModPara で指定される入力ファイルで指定します。乱数は SIMD-oriented Fast Mersenne Twister(dSFMT) を用い発生させています4 。また、kThread , NThread , kProcess
はそれぞれスレッド番号、スレッド数、プロセス番号を表します。したがって同じ initial_iv を用いても、並列数が異なる場合には別の初期波動関数が生成されます。

5.4 動的グリーン関数
HΦ では励起状態 |Φ′ ⟩ = Ô|Φ0 ⟩ に対する動的関数
I(z) = ⟨Φ′ |1H − z Iˆ|Φ′ ⟩を計算することができます。 演算子 Ô はシングル励起状態
X
Aiσ1 ciσ1 (c†iσ1 )(5.16)(5.17)

i,σ1

およびペア励起状態

X

Aiσ1 jσ2 ciσ1 c†jσ2 (c†iσ1 cjσ2 )(5.18)

i,j,σ1 ,σ24 http://www.math.sci.hiroshima-u.ac.jp/m-mat/MT/SFMT.

5.4. 動的グリーン関数

151

HΦ Documentation, リリース 3.5.0
として、それぞれ定義することが出来ます。例えば、動的スピン感受率を計算する場合はペア励起演算子を用いÔ = Ŝ(k) =XŜjz eik·rj =

X1

j

j

2

(c†j↑ cj↑ − c†j↓ cj↓ )eik·rj(5.19)のように定義することで計算することができます。なお、動的グリーン関数の計算には、Lanczos 法を用いた連分数展開による解法

1とシフト型クリロフ理論による解法

2の 2 つが実装されています。詳細については各文献を参照してください。

5.5 実時間発展HΦ では初期波動関数を |Φ(t0 )⟩ として、
|Φ(tn )⟩ = e−iH∆tn |Φ(tn−1 )⟩の関係を用いて逐次時間発展の計算をしています。ここで時刻 tn =e−iH∆tn(5.20)Pn

j=1 ∆tj です。実際の計算ではを

e−iH∆tn =

m
X
1
l=0

l!

(−iH∆tn )l(5.21)と近似しています。展開次数の上限 m は ModPara ファイルの ExpandCoef で指定することができます。展開次数が十分かどうかは、ノルム ⟨Φ(tn )|Φ(tn )⟩ = 1 が成立しているかで検証することができます。

5.6 Bogoliubov 表現
スピン系の計算において一体項 (transfer)、InterAll 形式での相互作用、相関関数のインデックスの指定には Bogoliubov 表現が使われています。スピンの演算子は次のように生成 · 消滅演算子で書き換えられ
ます。

Siz =

S
X

σc†iσ ciσ

σ=−S

Si+ =

S−1
X

p

S(S + 1) − σ(σ + 1)c†iσ+1 ciσ(5.22)

σ=−S

Si− =

S−1
X

p

S(S + 1) − σ(σ + 1)c†iσ ciσ+1σ=−SHPhi では最も大きな σ の状態のインデックスを 0 とします。

1 E. Dagotto, Rev. Mod. Phys. 66, 763-840 (1994).
2 S.Yamamoto, T. Sogabe, T. Hoshi, S.-L. Zhang, T. Fujiwara, Journal of the Physical Society of Japan 77, 114713 (2008).

152

第 5 章 アルゴリズム

153

第 6 章 謝辞HΦ の開発に当たり、西森秀稔教授が開発された先駆的な数値対角化パッケージ TITPACK の実装を参考にしました。特にランチョス法の部分は TITPACK の fortran コードを C 言語に移植したものがもとになっています。また、HΦ のエキスパートモードにおけるユーザー・インターフェースの設計の際、田原大資氏が開発された mVMC の柔軟なユーザー・インターフェースが礎となっています。インタフェースに関するコードの一部分は mVMC のものを使用しています。この場を借りて、お二人に感謝します。本山裕一博士と加藤康之博士には、バグを見つけて報告していただいたことに感謝します。星健夫准教授と曽我部知広
准教授には、Shifted Krylov 法についてのレクチャーや御相談に対して、またライブラリ Kω の開発にご協力いただいたことに感謝します。

HΦ ver. 0.1 - ver. 3.1.0 は、東京大学物性研究所 ソフトウェア高度化プロジェクト (2015 年度, 2016 年度,
2017 年度) の支援を受け開発されました。この場を借りて感謝します。

155

付 録 A 相関関数の Fourier 変換ユーティリティー

A.1 概要本資料は, mVMC および HΦ で計算されたサイト表示の相関関数を Fourier 変換し, 出力するユーティリ
ティに関するマニュアルである.

A.1.1 要件
本ユーティリティの使用要件は mVMC および HΦ と同じである.

A.1.2 対応する量
本ユーティリティは以下の相関関数の Fourier 変換に対応している.

1 体相関⟨ĉ†kα↑ ĉkβ↑ ⟩ ≡NRXe−ik·R ⟨ĉ†0α↑ ĉRβ↑ ⟩(1.1)

e−ik·R ⟨ĉ†0α↓ ĉRβ↓ ⟩

(1.2)

R

⟨ĉ†kα↓ ĉkβ↓ ⟩ ≡NR
X
R

密度-密度相関R
1 X
e−ik·R ⟨(ρ̂0α − ⟨ρ̂0α ⟩)(ρ̂Rβ − ⟨ρ̂Rβ ⟩)⟩
NR

(1.3)

R
1 X
z
z
e−ik·R ⟨Ŝ0α
ŜRβ
⟩
NR

(1.3)

R
1 X
+ −
e−ik·R ⟨Ŝ0α
ŜRβ ⟩
NR

(1.4)

N

⟨ρ̂kα ρ̂kβ ⟩ ≡R

スピン-スピン相関
N

z
z
⟨Ŝkα
Ŝkβ
⟩≡

R

N

+ −
⟨Ŝkα
Ŝkβ ⟩ ≡RR
1 X
e−ik·R ⟨Ŝ0α · ŜRβ ⟩⟨Ŝkα · Ŝkβ ⟩ ≡
NR

N

R

(1.5)

HΦ Documentation, リリース 3.5.0

A.2 チュートリアル
このチュートリアルでは, 正方格子ハバードモデル (8 サイト) を例にとり説明する.

A.2.1 HPhi/vmc.out の実行• HΦ の場合
基底状態および相関関数の計算を行う. 入力ファイルは次の通り.

a0w = 2a0l = 2a1w = -2
a1l = 2model="Hubbard"
method="CG"lattice="square"
t=1.0
U=8.0
nelec = 8
2Sz=0

$ HPhi -s input• mVMC の場合
まず変分波動関数の最適化を行う. 入力ファイルは次の通り.

a0w = 2a0l = 2a1w = -2
a1l = 2model="Hubbard"
lattice="square"
t=1.0
U=8.0
nelec = 82Sz=0

$ vmc.out -s input
相関関数を計算するために, 入力ファイルに以下の行を付け加える.

NVMCCalMode = 1
相関関数を計算する.

156

付 録 A 相関関数の Fourier 変換ユーティリティー

HΦ Documentation, リリース 3.5.0$ vmc.out -s input output/zqp_opt.dat
これにより, カレントディレクトリの output/ 以下に 1 体および 2 体の相関関数が出力される.
関連するファイル

• StdFace.def (mVMC/HΦ のマニュアル参照)• zqp_opt.dat (mVMC のマニュアル参照)• greenone.def (計算する相関関数のインデックスの指定)• greentwo.def (計算する相関関数のインデックスの指定)

A.2.2 相関関数のフーリエ変換
ユーティリティプログラム greenr2k を使って, 相関関数をフーリエ変関する.

$ echo "4 20
G 0 0 0X 0.5 0 0
M 0.5 0.5 0
G 0 0 016 16 1" >> geometry.dat$ greenr2k namelist.def geometry.dat
これにより, カレントディレクトリの output/ 以下にフーリエ変換された相関関数が出力される.
関連するファイル

• output/zvo_cisajs_001.dat (サイト表示の 1 体および 2 体相関関数の計算結果)• output/zvo_cisajs.dat (サイト表示の 1 体および 2 体相関関数の計算結果)• output/zvo_cisajscktalt_001.dat (サイト表示の 1 体および 2 体相関関数の計算結果)• output/zvo_cisajscktalt.dat (サイト表示の 1 体および 2 体相関関数の計算結果)• geometry.dat (サイトの位置と軌道のインデックス, k 点)
• output/zvo_corr*.dat (k パス上での相関関数)

A.2.3 相関関数のプロット
gnuplot を使って, 相関関数を k 空間でプロットする.
load "kpath.gp"
plot "output/zvo_corr_eigen0.dat" u 1:12 w l
関連するファイル

A.2. チュートリアル

157

HΦ Documentation, リリース 3.5.0

図 1.1: 相関関数 ⟨Sk · Sk ⟩ (12 列目) をプロットした図.

158

付 録 A 相関関数の Fourier 変換ユーティリティー

HΦ Documentation, リリース 3.5.0• kpath.gp (gnuplot スクリプト)• output/zvo_corr*.dat (k パス上での相関関数)

A.3 ファイルフォーマット
A.3.1 サイトの位置と軌道のインデックス, k 点
チュートリアル でのファイル名は geometry.dat . 各サイトの位置と軌道の情報は mVMC/HΦ のスタン
ンダードモードを用いた場合には自動的に生成される.

1.000000000000000e+00

0.000000000000000e+00

0.000000000000000e+00 (1)0.000000000000000e+00

1.000000000000000e+00

0.000000000000000e+00 (1)0.000000000000000e+00

0.000000000000000e+00

1.000000000000000e+00 (1)0.000000000000000e+00

0.000000000000000e+00

0.000000000000000e+00 (2)2 2 0-2 2 0

(3)
(3)

0 0 1

(3)

0 0 0 0(4)

-1 1 0 0(4)

0 1 0 0(4)

1 1 0 0(4)

-1 2 0 0(4)

0 2 0 0(4)

1 2 0 0(4)

0 3 0 0

(4)

4 20

(5)

G 0 0 0(6)

X 0.5 0 0(6)

M 0.5 0.5 0(6)G 0 0 0(6)

16 16 1(7)

1. 単位格子ベクトル. 任意の単位 (スタンダードモードで自動生成).
2. 1 体項がシミュレーションセルの境界を跨いだときに付く位相 (単位 degree) (スタンダードモードで自動生成)

3. シミュレーションセルの形状を指定する三本の整数ベクトル. スタンダードモードの入力パラメー
ター a0W, a0L, a0H, a1W... に対応する (スタンダードモードで自動生成).

4. 各サイトの座標結晶並進ベクトル (指数) および内部座標 (軌道) のインデックス (スタンダードモード
で自動生成).

5. k パスのノード (対称性の高い点) の数と, ノード間の k 点の分割数.
6. k ノードのラベルとフラクショナル座標
7. 運動量分布関数の FermiSurfer ファイルを作成する時の k グリッド
A.3. ファイルフォーマット

159

HΦ Documentation, リリース 3.5.0

A.3.2 サイト表示の 1 体および 2 体相関関数
計算する相関関数のインデックスの指定

mVMC/HΦ で計算する相関関数を指定する. スタンダードモードを使った場合には自動的に生成される. 総合的な説明は mVMC/HΦ のマニュアルを参照. チュートリアル でのファイル名は greenone.def (1 体) お
よび greentwo.def (2 体) である.
対応する量 にある相関関数を計算するためには, 以下のようにインデックスを指定する必要がある.

• ⟨ĉ†kα↑ ĉkβ↑ ⟩⟨ĉ†0α↑ ĉRβ↑ ⟩ に対して, R が全ての単位胞, α および β がそれぞれ全ての軌道を網羅するようにする.
• ⟨ĉ†kα↓ ĉkβ↓ ⟩⟨ĉ†0α↓ ĉRβ↓ ⟩ に対して, R が全ての単位胞, α および β がそれぞれ全ての軌道を網羅するようにする.
zz• ⟨ρ̂kα ρ̂kβ ⟩ および ⟨ŜkαŜkβ⟩⟨ĉ†0ασ ĉ0ασ ĉ†Rβσ′ ĉRβσ′ ⟩ に対して, R が全ての単位胞, α および β がそれぞれ全ての軌道を網羅し, σ お
よび σ ′ が ↑, ↓ を網羅するようにする.
+ −Ŝkβ ⟩ および ⟨Ŝkα · Ŝkβ ⟩• ⟨ŜkαHΦ の場合は ⟨ĉ†0ασ ĉ0α−σ ĉ†Rβ−σ ĉRβσ ⟩ に対して, R が全ての単位胞, α および β がそれぞれ全ての軌

道を網羅し, σ が ↑, ↓ を網羅するようにする. mVMC の場合は ⟨ĉ†0ασ ĉRβσ ĉ†Rβ−σ ĉ0α−σ ⟩ に対して, Rが全ての単位胞, α および β がそれぞれ全ての軌道を網羅し, σ が ↑, ↓ を網羅するようにする. いずれの場合も演算子の順番に注意にすること.

スタンダードモードのデフォルト (outputmode="corr") では, 自動的に上記のインデックスが指定されるため, 特に気にする必要はない.

サイト表示の 1 体および 2 体相関関数の計算結果計算する相関関数のインデックスの指定 で指定したインデックスを持つ相関関数が mVMC/HΦ によって計算され, ファイルに出力される. 総合的な説明は mVMC/HΦ のマニュアルを参照. チュートリアル
でのファイル名は output/zvo_cisajs_001.dat および output/zvo_cisajscktalt_001.dat (mVMC),

output/zvo_cisajs.dat および output/zvo_cisajscktalt.dat (HΦ).
greenr2k ユーティリティはこのファイルを読み込んで計算を行う. この時, (スタンダードモードを使わず自分でインデックスを指定するなどにより) 計算する相関関数のインデックスの指定 で挙げたインデックスの相関関数のなかで欠けているものがある場合, それを 0 として扱う.

160

付 録 A 相関関数の Fourier 変換ユーティリティー

HΦ Documentation, リリース 3.5.0

A.3.3 k パス上での相関関数
Fourier 変換された相関関数 (波数表示) が入っている. ユーティリイティ greenr2k によって生成される.
チュートリアル でのファイル名は output/zvo_corr_eigen0.dat である.

# k-length[1]# Orbital

1 to Orbital

#

UpUp[

2,

#

Density[13] (Re. Im.) DownDown[
6,7] SzSz[

8,

4,

5]

9] S+S-[

10,11] S.S[

12,

13]

0.00000E+00

0.88211E+00-0.50000E-09

0.88211E+00

0.40000E-09 ...

0.25000E-01

0.87976E+00-0.46625E-09

0.87976E+00

0.42882E-09 ...

0.50000E-01

0.87276E+00-0.42841E-09

0.87276E+00

0.45201E-09 ...

::はじめに各カラムに出力されている量の説明がコメントとして書かれ, それに続いて k 点の距離とそれぞれの相関関数の実部と虚部が書かれている.

A.3.4 gnuplot スクリプト
greenr2k にて作成される. gnuplot でこれを読み込むことでグラフ中に k 点のラベルを表示する. ファイル名は kpath.gp である.

set xtics ('G'
0.00000, 'X'
set ylabel 'Correlation function'

0.50000, 'M'

1.00000, 'G'

1.70711)

set grid xtics lt 1 lc 0

A.3.5 運動量分布関数の等値面をプロットするための FermiSurfer ファイルgreenr2k にて作成される. ファイル名は output/zvo_corr_eigen0.dat.frmsf

A.4 greenr2k ユーティリティの動作について
このユーティリティーは, 次のようにして使う.

$ ${PATH}/greenr2k ${NAMELIST} ${GEOMETRY}
ここで, ${PATH} は fourier ユーティリティのバイナリのあるディレクトリのパス, ${NAMELIST}は

HΦ/mVMC の NameList インプットファイル名, ${GEOMETRY}は サイトの位置と軌道のインデックス, k
点 ファイルへのパスである.

HΦ の各モード (Lanczos, TPQ, 全対角化, LOBCG) および mVMC のどの計算で得られた相関関数の Fourier 変換を行うかによって, 動作が若干異なる. 以下では ModPara インプットファイルの CDataFileHead が"zvo"(デフォルト値) であるとする.

A.4. greenr2k ユーティリティの動作について

161

HΦ Documentation, リリース 3.5.0

A.4.1 HPhi-Lanczos
この場合に HPhi が output/ ディレクトリに出力するサイト表示の相関関数は, zvo_cisajs.dat (1 体),

zvo_cisajscktalt.dat (2 体) である. fourier ユーティリティーは, これらを読み込み Fourier 変換を行った後, 単一のファイル zvo_corr.dat を output/ ディレクトリに出力する.

A.4.2 HPhi-TPQ
この場合に

HPhi

は,

各 試 行/TPQ

ステップ毎に

zvo_cisajs_run*step*.dat(1 体),

zvo_cisajscktalt_run*step*.dat (2 体) と い う フ ァ イ ル を output/ デ ィ レ ク ト リ に 出 力 す る.
fourier ユーティリティーは, 各試行/TPQ ステップ毎に 1 体および 2 体の相関関数を読み込み Fourier 変換を行った後, zvo_corr_run*step*.dat という名前のファイルとして output/ ディレクトリに出力する.

A.4.3 HPhi-全対角化および LOBCG
この場合に HPhi は, 各波動関数ごとに zvo_cisajs_eigen*.dat (1 体), zvo_cisajscktalt_eigen*.dat(2 体) というファイルを output/ ディレクトリに出力する. fourier ユーティリティーは, 各波動関数ごとに 1 体および 2 体の相関関数を読み込み Fourier 変換を行った後, zvo_corr_eigen*.dat という名前のファイルとして output/ ディレクトリに出力する.

A.4.4 mVMC
この場合に vmc.out は, ModPara インプットファイルで指定された NDataIdxStart および NDataQtySmpと い う パ ラ メ ー タ ー に 応 じ て 試 行 を 行 い イ ン デ ッ ク ス を つ け ら れ た zvo_cisajs_???.dat (1 体),

zvo_cisajscktalt_???.dat (2 体) というファイルを output/ ディレクトリに出力する. fourier ユー
ティリティーはそれらのファイルを読み込み, 各試行に対して Fourier 変換を行った後, それらの実部, 虚部
ごとに平均値
NTry
1 X
Ai
⟨A⟩ =
NTry i=1(1.6)

および標準誤差vuTryu 1 NX
1t
δA =(Ai − ⟨A⟩)2
NTry − 1 NTry i=1(1.6)

を計算し, 平均値と誤差を含んだ単一のファイル zvo_corr_eigen*.dat を output/ ディレクトリに出力
する.

162

付 録 A 相関関数の Fourier 変換ユーティリティー

HΦ Documentation, リリース 3.5.0

A.5 Contact
このユーティリティについてのご意見, ご質問, バグ報告等ありましたら下記までお問い合わせください。
河村光晶

mkawamura_at_issp.u-tokyo.ac.jp_at_ を @ に変えてください.

A.5. Contact

163

165

付 録 B Wannier 関数を用いたダウンフォール
ディング

B.1 概要本資料では, RESPACK と mVMC および HΦ を用いて, ダウンフォールディングをした格子モデルを計算する機能について説明する. RESPACK では, 遮蔽直接積分 Umn (R, ω) および遮蔽交換積分 Jmn (R, ω) は
以下のような形式で与えられる:Z
Umn (R, ω) =

Z
dr
ZV

ZV
Jmn (R, ω) =

dr
V

∗
∗
dr′ wm0(r)wm0 (r)W (r, r′ , ω)wnR(r′ )wnR (r′ ),∗∗dr′ wm0(r)wnR (r)W (r, r′ , ω)wnR(r′ )wm0 (r′ ).

V

ここで, V は結晶の体積, wiR (r) はセル R の i 番目のワニエ関数, W (r, r′ , ω) は遮蔽クーロン相互作用をそれぞれ表す. 以下, ω = 0 の成分のみを考慮する. この時、二体相互作用部分のハミルトニアンは以下の形式で与えられる：

Hint =

1 X X XhUmn (Rij )c†im,σ c†jn,ρ cjn,ρ cim,σ2 σρ ij nm

i+ Jmn (Rij )(c†im,σ c†jn,ρ cim,ρ cjn,σ + c†im,σ c†im,ρ cjn,ρ cjn,σ ) ,ただし, Rij ≡ Ri − Rj とした. ここで, mVMC および HΦ では, c†i,σ c†j,ρ ck,ρ′ cl,σ′ の型の相互作用の入力には対応していないため, 以下のように書き換えたハミルトニアンで定義される：
X
X
Hint =
Umm (0)nim,↑ nim,↓ +Umn (Rij )nim njn
i,m

−

X

(i,m)<(j,n)

Jmn (Rij )(nim,↑ njn,↑ + nim,↓ njn,↓ )(i,m)<(j,n)+

X

Jmn (Rij )(c†im,↑ c†jn,↓ cim,↓ cjn,↑ + h.c.)(i,m)<(j,n)+

X

Jmn (Rij )(c†im,↑ c†im,↓ cjn,↓ cjn,↑ + h.c.).

(i,m)<(j,n)

格子モデルは以下の Hamiltonian で定義される：
X 
 †
H=
tmn (Rij ) − tDC
mn (Rij ) cimσ cjnσ + Hint ,m,n,i,j,σ(2.1)

HΦ Documentation, リリース 3.5.0
ただし, tDC
mn (Rij ) は一体項の補正を表し,

tDC
mm (0) ≡ αUmm (0)Dmm (0) +Umn (R)Dnn (0)(R,n)̸=(0,m)

X− (1 − α)X

Jmn (R)Dnn (R),(R,n)̸=(0,0)

1
Jmn (Rij ) (Dnm (Rji ) + 2Re[Dnm (Rji )])2
1− Umn (Rij )Dnm (Rji ), (Rij , m) ̸= (0, n),2E
XD †Dmn (Rij ) ≡cimσ cjnσ,tDC
mn (Rij ) ≡

σ

(2.2)

KS

DC
で与えられる. ここで, tDC
mm (0) は化学ポテンシャルの補正項, tmn (Rij ) は Fock 項に対する補正項を表す.

これらは模型を解く際のダブルカウンティングを避けるために導入され, オプションで ON/OFF の切り替えが可能になっている. また, 直接積分 Umn (Rij ) および交換積分 Jmn (Rij ) をそれぞれ λU , λJ 倍し調節するためのパラメータも用意されている.

B.1.1 要件
QuantumESPRESSO もしくは xTAPP を用いて Kohn-Sham 軌道を用いたのちに, RESPACK で Wannier 関
数, 誘電関数, 有効相互作用を計算し, それらを用いて構成した格子モデルを mVMC もしくは HΦ で計算する. したがってそれらのプログラムが使用可能である必要がある.

B.2 チュートリアル
このチュートリアルでは Sr2 CuO3 を例に, 1 次元 1 軌道 Hubbard モデルにダウンフォールドし, HPhi/mVMCで計算するまでの一連の流れを示す. DFT 計算は QuantumESPRESSO で行う. 入力ファイルは samples/

Wannier/Sr2CuO3 ディレクトリにある.
なお, 実際の研究では必要に応じ, 各ソルバーの入力ファイル等を調整する. 入力ファイルの詳細について
は, 各ソルバーのマニュアルを参考にすること.

B.2.1 電荷密度の SCF 計算
まず, DFT による電荷密度の SCF 計算を行う.

scf.in&CONTROL
calculation = 'scf'
pseudo_dir = '../pseudo'prefix = 'sr2cuo3'/&SYSTEMibrav = 0
(次のページに続く)

166

付 録 B Wannier 関数を用いたダウンフォールディング

HΦ Documentation, リリース 3.5.0(前のページからの続き)

nat = 6
ntyp = 3
ecutwfc = 30.000000
ecutrho = 240.000000
occupations = 'tetrahedra_opt'/&ELECTRONS
mixing_beta = 0.3/
CELL_PARAMETERS angstrom-1.749305 1.955690 6.351200
1.749305 -1.955690 6.351200
1.749305 1.955690 -6.351200
ATOMIC_SPECIES
Sr 87.620000 Sr_ONCV_PBE-1.0.upf
Cu 63.546000 Cu_ONCV_PBE-1.0.upf
O 15.999400 O_ONCV_PBE-1.0.upf
ATOMIC_POSITIONS crystal
Sr 0.851940 0.351940 0.500000
Sr 0.148060 0.648060 0.500000
Cu 0.500000 0.000000 0.500000
O 0.654110 0.154110 0.500000
O 0.345890 0.845890 0.500000
O 0.000000 0.000000 0.000000
K_POINTS automatic
4 4 4 0 0 0
擬ポテンシャル (UPF ファイル) は The SG15 Optimized Norm-Conserving Vanderbilt (ONCV) pseudopotentialsのものを使う. 実行ディレクトリの直上に pseudo ディレクトリを作成して, そこに収める.

http://www.quantum-simulation.org/potentials/sg15_oncv/sg15_oncv_upf_2015-10-07.tar.gz
SCF 計算には QuantumESPRESSO 内のプログラム pw.x を使う.
$ pw.x -in scf.in

B.2.2 (Optional) バンド計算と描画
band.in&CONTROL
calculation = 'bands'
pseudo_dir = '../pseudo'prefix = 'sr2cuo3'/(次のページに続く)B.2. チュートリアル

167

HΦ Documentation, リリース 3.5.0(前のページからの続き)&SYSTEMibrav = 0nat = 6
ntyp = 3
ecutwfc = 30.000000
ecutrho = 240.000000
nbnd = 35/&ELECTRONS/CELL_PARAMETERS angstrom-1.749305 1.955690 6.351200
1.749305 -1.955690 6.351200
1.749305 1.955690 -6.351200
ATOMIC_SPECIES
Sr 87.620000 Sr_ONCV_PBE-1.0.upf
Cu 63.546000 Cu_ONCV_PBE-1.0.upf
O 15.999400 O_ONCV_PBE-1.0.upf
ATOMIC_POSITIONS crystal
Sr 0.851940 0.351940 0.500000
Sr 0.148060 0.648060 0.500000
Cu 0.500000 0.000000 0.500000
O 0.654110 0.154110 0.500000
O 0.345890 0.845890 0.500000
O 0.000000 0.000000 0.000000
K_POINTS crystal
50
0.5000000000

0.5000000000-0.5000000000

1.0

0.4994075000

0.5005925000-0.4428337500

1.00.4988150000

0.5011850000-0.3856675000

1.00.4982225000

0.5017775000-0.3285012500

1.00.4976300000

0.5023700000-0.2713350000

1.00.4970375000

0.5029625000-0.2141687500

1.00.4964450000

0.5035550000-0.1570025000

1.00.4958525000

0.5041475000-0.0998362500

1.00.4952600000

0.5047400000-0.0426700000

1.0

0.5337666667

0.4662333333-0.0811750000

1.00.5722733333
0.6107800000

0.4277266667
0.3892200000-0.1196800000-0.1581850000

1.0
1.0

0.6492866667

0.3507133333-0.1966900000

1.0

0.6877933333

0.3122066667-0.2351950000

1.00.7263000000

0.2737000000-0.2737000000

1.0

0.6810400000

0.3189600000-0.3189600000

1.0

0.6357800000

0.3642200000-0.3642200000

1.0

0.5905200000

0.4094800000-0.4094800000

1.0(次のページに続く)

168

付 録 B Wannier 関数を用いたダウンフォールディング

HΦ Documentation, リリース 3.5.0(前のページからの続き)

0.5452600000

0.4547400000-0.4547400000

1.00.5000000000

0.5000000000-0.5000000000

1.0

0.3333333333

0.3333333333-0.3333333333

1.0

0.1666666667

0.1666666667-0.1666666667

1.0

0.0000000000

0.0000000000

0.0000000000

1.0

0.0000000000

0.0000000000

0.0625000000

1.0

0.0000000000

0.0000000000

0.1250000000

1.0

0.0000000000

0.0000000000

0.1875000000

1.0

0.0000000000

0.0000000000

0.2500000000

1.0

0.0000000000

0.0000000000

0.3125000000

1.0

0.0000000000

0.0000000000

0.3750000000

1.0

0.0000000000

0.0000000000

0.4375000000

1.0

0.0000000000

0.0000000000

0.5000000000

1.0

0.0426700000-0.0426700000

0.5047400000

1.0

0.0811750000-0.0811750000

0.4662333333

1.0

0.1196800000
0.1581850000-0.1196800000-0.1581850000

0.4277266667
0.3892200000

1.0
1.0

0.1966900000-0.1966900000

0.3507133333

1.0

0.2351950000-0.2351950000

0.3122066667

1.0

0.2737000000-0.2737000000

0.2737000000

1.0

0.2280833333-0.2280833333

0.2280833333

1.0

0.1824666667-0.1824666667

0.1824666667

1.0

0.1368500000-0.1368500000

0.1368500000

1.0

0.0912333333-0.0912333333

0.0912333333

1.0

0.0456166667-0.0456166667

0.0456166667

1.0

0.0000000000

0.0000000000

0.0000000000

1.0

0.0833333333

0.0000000000

0.0000000000

1.0

0.1666666667

0.0000000000

0.0000000000

1.0

0.2500000000

0.0000000000

0.0000000000

1.0

0.3333333333

0.0000000000

0.0000000000

1.00.4166666667

0.0000000000

0.0000000000

1.00.5000000000

0.0000000000-0.0000000000

1.0

ここでも pw.x を使う.

$ pw.x -in band.inbands.in&BANDS
prefix = 'sr2cuo3'
lsym = .false.
/
QuantumESPRESSO の bands.x を使う.

B.2. チュートリアル

169

HΦ Documentation, リリース 3.5.0$ bands.x -in bands.in
出力された bands.out.gnu を GnuPlot などで読み込んでバンドを描く.

B.2.3 Kohn-Sham 軌道の計算
nscf.in&CONTROL
calculation = 'nscf'
pseudo_dir = '../pseudo'
wf_collect = .true.
prefix = 'sr2cuo3'/&SYSTEMibrav = 0nat = 6
ntyp = 3
ecutwfc = 30.000000
ecutrho = 240.000000
occupations = 'tetrahedra_opt'
nbnd = 35/&ELECTRONS/CELL_PARAMETERS angstrom-1.749305 1.955690 6.351200
1.749305 -1.955690 6.351200
1.749305 1.955690 -6.351200
ATOMIC_SPECIES
Sr 87.620000 Sr_ONCV_PBE-1.0.upf
Cu 63.546000 Cu_ONCV_PBE-1.0.upf
O 15.999400 O_ONCV_PBE-1.0.upf
ATOMIC_POSITIONS crystal
Sr 0.851940 0.351940 0.500000
Sr 0.148060 0.648060 0.500000
Cu 0.500000 0.000000 0.500000
O 0.654110 0.154110 0.500000
O 0.345890 0.845890 0.500000
O 0.000000 0.000000 0.000000
K_POINTS automatic
4 4 4 0 0 0
ここでも pw.x を使う.

170

付 録 B Wannier 関数を用いたダウンフォールディング

HΦ Documentation, リリース 3.5.0$ pw.x -in nscf.in
次に RESPACK に付属のユーティリティー qe2respack.py を使う. 引数は [prefix].save ディレクト
リ名.

$ qe2respack.py sr2cuo3.save

B.2.4 Wannier 関数, 誘電関数, 有効相互作用の計算
respack.in&PARAM_CHIQW
Num_freq_grid = 1!Ecut_for_eps =flg_cRPA = 1/&PARAM_WANNIER
N_wannier = 1
Lower_energy_window = 8
Upper_energy_window = 13
N_initial_guess = 1/
dx2 0.2 0.500000 0.000000 0.50000 0.0 0.0 1.0

0.0 1.0 0.0 1.0 0.0 0.0&PARAM_INTERPOLATION
N_sym_points = 10
!dense = 20, 24, 28/
0.50000 0.50000 -0.50000
0.49526 0.50474 -0.04267
0.72630 0.27370 -0.27370
0.50000 0.50000 -0.50000
0.00000 0.00000 0.00000
0.00000 0.00000 0.50000
0.04267 -0.04267 0.50474
0.27370 -0.27370 0.27370
0.00000 0.00000 0.00000
0.50000 0.00000 0.00000&PARAM_VISUALIZATION
flg_vis_wannier = 1,
ix_vis_min = -1,
ix_vis_max = 2,
iy_vis_min = -1,
iy_vis_max = 1,
iz_vis_min = -1,(次のページに続く)B.2. チュートリアル

171

HΦ Documentation, リリース 3.5.0(前のページからの続き)

iz_vis_max = 2/&PARAM_CALC_INT
calc_ifreq = 1
ix_intJ_min = -1
ix_intJ_max = 1
iy_intJ_min = -1
iy_intJ_max = 1
iz_intJ_min = -1
iz_intJ_max = 1/
RESPACK のプログラム calc_wannier, calc_chiqw, calc_j3d, calc_w3d を使う.
$ calc_wannier < respack.in$ calc_chiqw < respack.in$ calc_w3d < respack.in$ calc_j3d < respack.in
これにより, RESPACK によって出力されたホッピング等のファイルが, Wannier90 の形式で dir-model ディ
レクトリに格納される. (RESPACK のバージョン 20190227 以前では, dir-mvmc ディレクトリ)

B.2.5 HPhi/mVMC によるモデル計算
HPhi/mVMC のスタンダードモードを利用することで, dir-model のファイルを読み込み該当したモデルの計算ができる. 最初に dir-model 以下のファイル一式を, 実行するディレクトリに移したあとに, スタン
ダードモードで計算実行を行えばよい. 例えば, HPhi の場合は以下のコマンドを打つことで計算が実行される (mVMC でもほぼ同様).

stan.inmodel = "Hubbard"
lattice = "wannier90"
a0w = 8a0l = 0a0h = 8a1w = 0a1l = 1a1h = 0a2w = 1a2l = 0a2h = 0method = "TPQ"
nelec = 8exct = 1(次のページに続く)

172

付 録 B Wannier 関数を用いたダウンフォールディング

HΦ Documentation, リリース 3.5.0(前のページからの続き)

cutoff_t = 0.5
cutoff_u = 1.0
cutoff_j = 0.02

$ cp ./dir-model/* .
$ HPhi -s stan.in

B.3 スタンダードモードの入力パラメーター
以下に入力ファイルの例を示す.

stan.inmodel = "Hubbard"
lattice = "wannier90"
a0w = 2a0l = 0a0h = 2a1w = 0a1l = 2a1h = 2a2w = 1a2l = 0a2h = 0method = "CG"2Sz = 0nelec = 4exct = 1
cutoff_t = 0.2
cutoff_u = 0.4
cutoff_j = 0.1
Wannier 関数を用いたダウンフォールディングに特有のパラメーター設定は次の通りである.
• 格子– lattice = "wannier90"• 格子サイズ関連のパラメータ– W, L, Height
形式 : 自然数.
説明 : 標準の単位胞の並び方を指定する.

– a0W, a0L, a0H, a1W, a1L, a1H, a2W, a2L, a2H

B.3. スタンダードモードの入力パラメーター

173

HΦ Documentation, リリース 3.5.0
形式 : 整数.
説明 : 格子を指定する 3 本のベクトル ( ⃗a0 , ⃗a1 , ⃗a2 ) を指定する. これらのベクトルは標準の並進ベクトルを基底とした座標 (Fractional coordinate) で指定される.

• 副格子サイズ関連のパラメータ– Wsub, Lsub, Hsub
形式 : 自然数. デフォルトでは Wsub=W, Lsub=L, Hsub=Height となる.
説明 : mVMC でのみ利用可能. 変分波動関数のペア軌道部分に副格子を持たせるためのパラメー
タで, 副格子のサイズを与える. 元の計算セルが副格子に整合しない場合にはプログラムを終了
する.

– a0Wsub, a0Lsub, a0Hsub, a1Wsub, a1Lsub, a1Hsub, a2Wsub, a2Lsub, a2Hsub
形式 :自 然 数.

デ フ ォ ル ト で は a0Wsub=a0W, a0Lsub=a0L, a0Hsub=a0H, a1Wsub=a1W,

a1Lsub=a1L, a1Hsub=a1H, a2Wsub=a2W, a2Lsub=a2L, a2Hsub=a2H となる.
説明 : これらのパラメーターの指定の仕方は a0W, a0L, a0H, a1W, a1L, a1H, a2W, a2L, a2H と同様である. ただし, 元の計算セルが副格子に整合しない場合にはプログラムを終了する.

• 相互作用の制御関連パラメータ– lambda_U
形式 : 実数 (0 以上)
デフォルト値 : 1.0
クーロン積分の大きさを λU 倍にして調整するパラメータ.

– lambda_J
形式 : 実数 (0 以上)
デフォルト値 : 1.0
交換積分の大きさを λJ 倍にして調整するパラメータ.

– lambda
形式 : 実数 (0 以上)
デフォルト値 : 1.0
クーロン積分, 交換積分の大きさを λ 倍にして調整するパラメータ. λU , λJ が定義されている場合には, そちらの値を優先する.

– cutoff_t, cutoff_u, cutoff_j
形式 : 実数
デフォルト値 : 1.0e-8
ホッピング, クーロン積分, 交換積分に対して, これより小さい値を無視する.

– cutoff_tW, cutoff_tL, cutoff_tH

174

付 録 B Wannier 関数を用いたダウンフォールディング

HΦ Documentation, リリース 3.5.0– cutoff_UW, cutoff_UL, cutoff_UH– cutoff_JW, cutoff_JL, cutoff_JH
形式 : 整数.
デフォルト値:

cutoff_tW = int((W-1)/2),

cutoff_tL=int((L-1)/2),

cutoff_tH=int((Height-1)/2) に指定される (ただし, W, L, Height が指定されていない場合は 0). それ以外は 0.
ホッピング, Coulomb 積分, 交換積分に対して, これらの値を越える並進ベクトル R を持つものを無視するようにする.

– cutoff_length_t, cutoff_length_U, cutoff_length_J
形式 : 実数.
デフォルト値 : cutoff_length_t = -1.0 (すべてのレンジの項を含む), それ以外は

0.3.
ホッピング, Coulomb 積分, 交換積分に対して, この距離を超えるものを無視する. 距離はワニエ関数の中心座標と単位格子ベクトルから算出される.

• 一体補正に関するパラメータ
一体補正では一体項に対して下記の項を差し引くことで、模型を解く際のダブルカウンティングを避けることが可能となる.

X

tDC
mm (0) ≡ αUmm (0)Dmm (0) +X− (1 − α)Umn (R)Dnn (0)(R,n)̸=(0,m)

Jmn (R)Dnn (R),(R,n)̸=(0,0)

1tDCmn (Rij ) ≡ Jmn (Rij ) (Dnm (Rji ) + 2Re[Dnm (Rji )])2
1− Umn (Rij )Dnm (Rji ),2E
XD †Dmn (Rij ) ≡cimσ cjnσ
,
σ

(2.3)

(Rij , m) ̸= (0, n),KS

ここで, 第一項は Hartree 補正、第二項は Fock 補正を表す. α はオンサイト相互作用の寄与を調整す
るパラメータを表す.

– doublecounting
形式 : char 型
デフォルト値 : none

none: 一体補正を行わない. Hartree_U: クーロン積分 URii のみを考慮した Hartree
補正を行う. Hartree: 通常の Hartree 補正を行う. full: Fock 項も含んだ一体補正を行う. 電子密度 DRij に対しては RESPACK で出力した密度に関するファイル[CDataFileHead]_dr.dat に記載された値を採用する. ただし, [CDataFileHead]_dr.
dat では, サイトあたりの電荷数が出力されているため, 電荷密度にスピン依存性がな
いと仮定し処理している.

B.3. スタンダードモードの入力パラメーター

175

HΦ Documentation, リリース 3.5.0– alpha
形式 : 実数
デフォルト値 : 0.5
一体補正のうち, オンサイト相互作用の寄与を調整するパラメータ (0 ≤ α ≤ 1).

B.4 ファイルフォーマット
HPhi/mVMC のスタンダードモードでは以下のファイルを読み込む. これらのファイルは RESPACK のプロ
グラムを実行すると, dir-model ディレクトリに [CDataFileHead]=zvo として自動出力される.

B.4.1 ジオメトリー
ファイル名は [CDataFileHead]_geom.dat. このファイルを必要に応じて修正することで取り扱う軌道数を変更できる.

-1.917800 1.917800 6.280100
1.917800 -1.917800 6.280100
1.917800 1.917800 -6.280100
30.000000 -0.000000 -0.000000-0.000000 -0.000000 -0.000000
0.000000 0.000000 0.000000• 1 - 3 行目
結晶並進ベクトル. デカルト座標系で任意単位.

• 4 行目
mVMC/HPhi で取り入れる, ユニットセルあたりの軌道数. Wannier 関数の数よりも少なくすることも可能であり, その場合には先頭からこの数の分だけの軌道を取り入れたモデルが構築される.

• 5 行目以降
各軌道の Wannier 中心 (フラクショナル座標). Fourier 変換ツールで使われる. なお, ここで定義された Wannier 関数の順番が, 以下の 4 つのファイルの Wannier 関数のインデックスに対応する.

176

付 録 B Wannier 関数を用いたダウンフォールディング

HΦ Documentation, リリース 3.5.0

B.4.2 ホッピング, Coulomb 積分, 交換積分, 電荷密度
フ ァ イ ル 名 は [CDataFileHead]_hr.dat,[CDataFileHead]_ur.dat,[CDataFileHead]_jr.dat,[CDataFileHead]_dr.dat. Wannier90 のホッピング積分の形式に従う (詳細は wannier90 の user_guide の8.19 seedname_hr.dat を参照のこと).
wannier90 format for mvmcdry
8
343
1

1

1

1

1

1

1

1

1

1

1

-3

-3

-3

1

1

0.0004104251-0.0000000000

-3

-3

-3

1

2

0.0001515941-0.0000000006

-3

-3

-3

1

3

-0.0001515941

0.0000000002

1

1

...

• 1 行目ファイルヘッダ• 2 行目
Wannier 関数の数.
• 3 行目スーパーセルの数 nrpts .

• 4 行- 5 + int(nrpts/15) 行
各スーパーセルでの縮退値 (基本的には 1).

• 6 + int(nrpts/15) 行 1-3 列がスーパーセルの格子ベクトル, 4 列目が原点の Wannier 軌道のインデックス, 5 列目がスーパー
セルの Wannier 軌道のインデックス, 6 列目が実数値, 7 列目が虚数値をそれぞれ与える.

B.5 Contact
このユーティリティについてのご意見, ご質問, バグ報告等ありましたら下記までお問い合わせください。
河村光晶

mkawamura_at_issp.u-tokyo.ac.jp_at_ を @ に変えてください.

B.5. Contact177