実装
spinmc パッケージは ALPS プロジェクトのアプリケーションの一つです。古典スピン系に対する局所更新とクラスター更新の汎用的な実装を提供します。
このアプリケーションは、任意の格子上で次のモデルをサポートしています。
- イジングモデル
- XY モデル
- ハイゼンベルクモデル
- 3 状態、4 状態、10 状態のポッツモデル
ファイル mc/spins/spinmc_factory.C を簡単に編集するだけで、このアプリケーションを他の q 状態ポッツモデルや モデルへ容易に拡張できます。
シミュレーションの実行
についてはチュートリアルで説明しています。
入力パラメータ
ALPS スケジューラライブラリの一般的な入力パラメータに加えて、spinmc アプリケーションは次の入力パラメータを受け取ります。
| 名前 | デフォルト値 | 説明 |
|---|---|---|
| LATTICE_LIBRARY | lattices.xml | 格子の記述を含むファイルへのパス |
| LATTICE | 格子の名前 | |
| MODEL | Ising、XY、Heisenberg、Potts のいずれか | |
| q | ポッツモデルにおける異なる状態の数 | |
| UPDATE | 更新の種類。local または cluster のいずれか | |
| ERROR_VARIABLE | ALPS に誤差を監視させたい観測量の名前(ERROR_LIMIT と併用する必要があります) | |
| ERROR_LIMIT | ERROR_VARIABLE の絶対誤差がこの値より小さくなると、ALPS はタスクを停止します(ERROR_VARIABLE と併用する必要があります) | |
| T | 温度 | |
| J | デフォルトの結合定数 | |
| J# | J | タイプ # (#=0,1,…) のボンド上の結合定数 |
| D | オンサイトの単一イオン異方性の結合定数(スピンの各成分に 1 つずつ、リストで指定。例:D=“0.0 0.0 10.0”) | |
| CONVENTION | classical | 古典的な規約と量子的な規約のどちらを使うかを指定します(下記参照) |
| S | CONVENTION=classical の場合は 1、CONVENTION=quantum の場合は 1/2 | デフォルトのスピンの大きさ |
| S# | S | タイプ # (#=0,1,…) のサイト上のスピンの大きさ |
| 1 | 磁化率の測定に使われる Landé の 因子 | |
| h | 0 | 外部磁場(局所更新の場合のみ) |
さらに、格子の記述ファイルで指定されているとおり、格子の記述には他のパラメータ(例えば L や W)が必要になることがあります。 注意:古典モンテカルロプログラムは XML による格子の記述を使いますが、XML によるモデルの記述は使いません。代わりに、モデルは上の表のパラメータによって指定されます。
局所更新とクラスター更新
磁場がかかっておらず、スピン系にフラストレーションがない限りは、クラスター更新を使うべきです。そうでない場合は局所更新が望ましいです。
量子的な規約と古典的な規約
量子スピンモデルと古典スピンモデルでは、結合定数について異なる規約がよく使われます。CONVENTION パラメータを使うと、そのどちらかを選択できます。
- classical 規約では、正の符号が強磁性的な結合を表します。パラメータ S が指定されている場合、結合の強さには が掛けられます。
- 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 | 一様磁化率。因子 を含みます |
| Cluster size | 格子の体積に対する割合で表した平均クラスターサイズ(クラスター更新の場合のみ) |
注意:比熱を評価するには、タスクファイル (*task*.xml) に対して評価プログラム spinmc_evaluate を実行する必要があります。