コンテンツにスキップ

実装

spinmc パッケージは ALPS プロジェクトのアプリケーションの一つです。古典スピン系に対する局所更新とクラスター更新の汎用的な実装を提供します。 このアプリケーションは、任意の格子上で次のモデルをサポートしています。

  • イジングモデル
  • XY モデル
  • ハイゼンベルクモデル
  • 3 状態、4 状態、10 状態のポッツモデル

ファイル mc/spins/spinmc_factory.C を簡単に編集するだけで、このアプリケーションを他の q 状態ポッツモデルや O(N)O(N) モデルへ容易に拡張できます。

シミュレーションの実行

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

入力パラメータ

ALPS スケジューラライブラリの一般的な入力パラメータに加えて、spinmc アプリケーションは次の入力パラメータを受け取ります。

名前デフォルト値説明
LATTICE_LIBRARYlattices.xml格子の記述を含むファイルへのパス
LATTICE格子の名前
MODELIsing、XY、Heisenberg、Potts のいずれか
qポッツモデルにおける異なる状態の数
UPDATE更新の種類。local または cluster のいずれか
ERROR_VARIABLEALPS に誤差を監視させたい観測量の名前(ERROR_LIMIT と併用する必要があります)
ERROR_LIMITERROR_VARIABLE の絶対誤差がこの値より小さくなると、ALPS はタスクを停止します(ERROR_VARIABLE と併用する必要があります)
T温度
Jデフォルトの結合定数
J#Jタイプ # (#=0,1,…) のボンド上の結合定数
Dオンサイトの単一イオン異方性の結合定数(スピンの各成分に 1 つずつ、リストで指定。例:D=“0.0 0.0 10.0”)
CONVENTIONclassical古典的な規約と量子的な規約のどちらを使うかを指定します(下記参照)
SCONVENTION=classical の場合は 1、CONVENTION=quantum の場合は 1/2デフォルトのスピンの大きさ
S#Sタイプ # (#=0,1,…) のサイト上のスピンの大きさ
gg1磁化率の測定に使われる Landé の gg 因子
h0外部磁場(局所更新の場合のみ)

さらに、格子の記述ファイルで指定されているとおり、格子の記述には他のパラメータ(例えば L や W)が必要になることがあります。 注意:古典モンテカルロプログラムは XML による格子の記述を使いますが、XML によるモデルの記述は使いません。代わりに、モデルは上の表のパラメータによって指定されます。

局所更新とクラスター更新

磁場がかかっておらず、スピン系にフラストレーションがない限りは、クラスター更新を使うべきです。そうでない場合は局所更新が望ましいです。

量子的な規約と古典的な規約

量子スピンモデルと古典スピンモデルでは、結合定数について異なる規約がよく使われます。CONVENTION パラメータを使うと、そのどちらかを選択できます。

  • classical 規約では、正の符号が強磁性的な結合を表します。パラメータ S が指定されている場合、結合の強さには S2S^2 が掛けられます。
  • quantum 規約では、正の符号が反強磁性的な結合を表します。結合の強さには S(S+1) が掛けられます。S のデフォルト値は 1/2 です。

測定

spinmc アプリケーションは次の観測量を測定します。

名前説明
Energy系の全エネルギー
Energy Density系のエネルギー密度(サイトあたりのエネルギー)
Specific Heat系のサイトあたりの比熱
Magnetization磁化の z 成分
|Magnetization|磁化の z 成分の絶対値
Magnetization^2磁化の z 成分の 2 乗
Magnetization along Field外部磁場の方向に沿った磁化の成分
Staggered Magnetization交替(スタガード)磁化の z 成分(二部格子の場合のみ)
Staggered Magnetization^2交替磁化の z 成分の 2 乗(二部格子の場合のみ)
Susceptibility一様磁化率。因子 g2g^2 を含みます
Cluster size格子の体積に対する割合で表した平均クラスターサイズ(クラスター更新の場合のみ)

注意:比熱を評価するには、タスクファイル (*task*.xml) に対して評価プログラム spinmc_evaluate を実行する必要があります。