ALPS 2 Tutorials:DMFT-01 Intro/ja

From ALPS
Jump to: navigation, search

Introduction - The ALPS DMFT tutorials

6回にわたりDFMTコードのチュートリアルをおこないます。動的平均場理論、特に、新しい連続時間不純物解法について説明します。

動的平均場理論 (DMFT) は、量子多体問題に対して、局所的な性質は厳密に扱い、空間相関は無視した近似解を提供します。元々は無限次元極限(この極限では相互作用を適切にリスケールすることで、DMFT が厳密となります)で議論されていましたが、現在では、例えばLDA と組み合わせて(LDA+DMFT)、現実の強相関物質のシミュレーションに用いられています。この手法では、格子問題は時間依存する作用項をもつ不純物問題および自己無撞着条件に帰着されます。この不純物問題を解く手法を不純物ソルバーと呼びます。手法の詳細は、introductory articlelecture notesreviewsなどを参照してください。

2つの不純物ソルバーのアルゴリズム、つまり、混成項展開と相互作用展開による連続時間モンテカルロ法について説明します。離散時間モンテカルロ(Hirsch Fye)は、使われなくなり、もっぱら、教育的なサンプルコードになっています。

チュートリアル02では、不純物ソルバーに混成項展開法を用いて、無限次元における金属・反強磁性絶縁体転移を調べます。チュートリアル03では同じ問題を相互作用展開を用いて調べます。チュートリアル04,05ではモット転移と軌道選択性モット転移について、そしてチュートリアル06では常磁性金属について説明します。

Evaluation tools

(ここで説明するスクリプトは、ALPS 2.1.1 のリリース版にはまだ含まれていませんが, ナイトリービルド版や、リビジョン6198 以降のsubversion リポジトリには含まれています。もしくは、各種リンクを保存してください。)

この節では、ALPS/DMFT で出力される、HDF5 ファイル(*.h5)から計算結果を取り出すための、簡単なツールについて説明します。チュートリアル用の幾つかのファイルを手に入れるために、3分ほどの短い計算をあらかじめしておく必要があります。'tutorials/dmft-01-intro'ディレクトリの中にある'beta8.0_U2.0_mu-0.5_H0.2'というディレクトリへと行き、

dmft parm_file

とするか、もしくは'tutorials/dmft-01-intro' ディレクトリにある'tutorial1a.py' というpython スクリプトを、alpspython (ソースコードからビルドした場合はこちら) かvispython (バイナリパッケージでインストールした場合はこちら)を用いて、

alpspython tutorial1a.py

のように実行してください。 ここでは、パラメータファイルやpython スクリプトの中身にはこれ以上立ち入りません。計算が終了したら、Python スクリプトを用いて、出力されたHDF5 ファイルの中身を見ていきます。今回はあくまでツールの使用方法のチュートリアルなので、各種計算結果が収束していることや、精度よく求まっていることは期待しないでください。

script_whatsthere.py は、カレントディレクトリ以下にあるすべての*.h5 ファイルを再帰的に調べ、保存されているすべての物理量の一覧を出力します。

alpspython script_whatsthere.py

script_occupation.py は、最終的な(自己無撞着ループの最後の繰り返しでの)電子数 <n_{flavor}>を各電子種(flavor) ごとに出力します。この値は、直接測定および、温度グリーン関数からG_{flavor}(\beta) = -<n_{flavor}>として算出されます。データはカレントディレクトリ以下のすべてのファイルから再帰的に抽出されます。

alpspython script_occupation.py

script_overlap.pyは、最終的なオーバーラップ数<n_\downarrow n_\uparrow>を出力します。これは直接測定されます。データはカレントディレクトリ以下のすべてのファイルから再帰的に抽出されます。

alpspython script_overlap.py

script_G_iterations.pyは、グリーン関数G_{flavor} およびキャビティグリーン関数G^0_{flavor}をプロットします。このスクリプトでは、どのHDF5 ファイルを扱うかを選び、また虚時間表示(実部)と松原周波数表示(実部もしくは虚部)とを選べます。データを抽出するファイルを1つ選ぶ必要があります。 このチュートリアルでは逐次計算を3回しか行わないために、計算は収束していないことに注意してください。また、このスクリプトを実行するのには、リビジョン6194 以上のpyalps が必要になります。

alpspython script_G_iterations.py

script_selfenergies.pyは、各逐次計算における自己エネルギー \Sigma_{flavor}の実部または虚部の、松原周波数依存性をプロットします。データを抽出するファイルを1つ選ぶ必要があります。自己エネルギーは計算の質に敏感なので、今回のプロットには強いノイズが乗ります。このスクリプトを実行するのには、リビジョン6194 以上のpyalps が必要になります。

alpspython script_selfenergy.py

script_finals.pyは、グリーン関数およびキャビティグリーン関数の、虚時間表示および松原周波数表示の実部虚部、また自己エネルギーの松原周波数表示での実部虚部、といった8つの計算結果を8枚のウィンドウにプロットします。データはカレントディレクトリ以下の全ファイルから再帰的に抽出されます。

alpspython script_finals.py

最後に、HDF5 ファイルからテキストファイルにすべての情報を書き出したい場合は、

h5dump name_of_the_result_file.h5

としてください。標準出力に結果が表示されます。

Scripts by Jakub.