コンテンツにスキップ

SSE による有向ループアルゴリズム

はじめに

dirloop_sse パッケージは、確率級数展開表示における有向ループアルゴリズムと呼ばれる量子モンテカルロ (QMC) 法の、完全で汎用的な実装を提供します。dirloop_SSE 法は Anders Sandvik らによって考案・開発されました。これは量子スピンやボソンの格子モデルを研究するための、強力でエレガントな QMC 法です。

ここで紹介する現在の実装は、この手法の最新の発展を取り入れたもので、それらは以下で発表されています。

  • A. W. Sandvik, Phys. Rev. B 59, 14157 (1999).
  • F. Alet, S. Wessel, and M. Troyer Phys. Rev. E 71, 036706 (2005).
  • L. Pollet, S. M. A. Rombouts, K. Van Houcke, and K. Heyde, Phys. Rev. E 70, 056705 (2005).

このバージョンでは、任意の格子上で次のモデルをシミュレートできます。

  • 任意のスピンの大きさ、磁場、異方性を持つ量子スピンモデル(フラストレートしたものも可。下記の注意を参照)
  • (ソフトコア)ボソンモデル

このリリースでは、符号問題のある系(例えばフラストレートしたスピン系)もシミュレートできます。ただし、この場合のテストは十分ではないので、モデルに符号問題がある場合は注意してください……

注意: フラストレートしたモデルでは、パラメータ Epsilon の値によってはアルゴリズムがエルゴード的でなくなることがあります(例えば「純粋なループ」アルゴリズムになる場合)。これは慎重に確認する必要があります。

シミュレーションの実行

についてはチュートリアルで説明しています。

入力パラメータ

ALPS アプリケーションに共通の入力パラメータに加えて、dirloop_sse アプリケーションは次の上級者向け入力パラメータを受け取ります(意味が分かる場合にのみ使用してください!)。

パラメータデフォルト値意味
SKIP1各測定の間に行うモンテカルロスイープの回数
RESTRICT_MEASUREMENTS[N]定義されている場合、量子数 N(粒子数)がこのパラメータで与えた値を持つ配置に測定を制限します。シミュレーション自体は依然として大正準集団で行われるため、目的の粒子数を持つ配置を実際にサンプリングするには、化学ポテンシャルを適切な範囲に調整する必要があることに注意してください。
RESTRICT_MEASUREMENTS[Sz]定義されている場合、量子数 Sz(磁化)がこのパラメータで与えた値を持つ配置に測定を制限します。シミュレーション自体は依然として大正準集団で行われるため、目的の磁化を持つ配置を実際にサンプリングするには、磁場を適切な範囲に調整する必要があることに注意してください。
NUMBER_OF_WORMS_PER_SWEEP自己無撞着に計算ループ更新中に行うワームの数。デフォルトでは、この数は熱化の段階で自己無撞着に計算されます。ただし、シミュレーション全体を通してこの値を強制的に指定することもできます
EPSILON0すべての相互作用に対する追加の対角エネルギーシフト。EPSILON の値はアルゴリズムの性能に次のようなトレードオフで影響します:値が大きいほどシミュレーション時間は長くなりますが、バウンス確率は低くなります。現在の知見では、Epsilon には 0 でない値を使うべきですが、大きすぎてもいけません(例えばスピン S のモデルでは S/2)。フラストレートしたモデルでは、Epsilon の値によってはアルゴリズムがエルゴード的でなくなることがあるので注意してください。慎重に確認する必要があります。
WHICH_LOOP_TYPE“minbounce”バーテックスでの散乱にどの種類の更新を用いるかを指定する文字列:( “heatbath” ) 熱浴法、A. W. Sandvik, Phys. Rev. B 59, 14157 (1999) を参照。( “minbounce” ) 最小バウンス、F. Alet, S. Wessel, and M. Troyer Phys. Rev. E 71, 036706 (2005) を参照。( “locopt” ) 局所最適、L. Pollet, S. M. A. Rombouts, K. Van Houcke, and K. Heyde, Phys. Rev. E 70, 056705 (2005) を参照。デフォルトでは、アルゴリズムは “minbounce” 更新を使います。
NO_WORMWEIGHT0ワームの行列要素を 1 に設定する (NO_WORMWEIGHT = true) か、スピン/密度の配置に依存する実際の値に設定する (NO_WORMWEIGHT=false) かを示すブール値。デフォルトでは NO_WORMWEIGHT は false です。

測定

dirloop_sse は、あらゆるモデルに対して次の観測量を測定します。

名前説明
Energy系の全エネルギー
Energy Densityサイトあたりのエネルギー

dirloop_sse は、スピンモデル、すなわち量子数 Sz が定義されているモデルに対して次の観測量を測定します。

名前説明
Magnetization全磁化の z 成分
Magnetization Densityサイトあたりの全磁化の z 成分
|Magnetization|磁化の z 成分の絶対値
|Magnetization Density|サイトあたりの磁化の z 成分の絶対値
Magnetization^2全磁化の z 成分の 2 乗
Magnetization Density^2サイトあたりの全磁化の z 成分の 2 乗
Magnetization^4全磁化の z 成分の 4 乗
Magnetization Density^4サイトあたりの全磁化の z 成分の 4 乗
Susceptibility一様磁化率(スピンモデル)

二部格子上のスピンモデルでは、交替(スタガード)磁化も測定されます。

名前説明
Staggered Magnetization交替磁化の z 成分
Staggered Magnetization Densityサイトあたりの交替磁化の z 成分
Staggered Magnetization^2交替磁化の z 成分の 2 乗
Staggered Magnetization Density^2サイトあたりの交替磁化の z 成分の 2 乗

dirloop_sse は、粒子モデル、すなわち量子数 N が定義されているモデルに対して次の観測量を測定します。

名前説明
Density粒子密度
Density^2粒子密度の 2 乗

そして、すべてのモデルに対して次を測定します。

名前説明
Stiffness系のスティフネス(スピンモデルとボソンモデルの両方)

アプリケーションの正確なバージョンによっては、他の観測量も利用できる場合があります。

貢献者

次の人々が dirloop_sse アプリケーションに貢献しました。

  • Fabien Alet
  • Matthias Troyer
  • Lode Pollet