ALPS 2 Tutorials:MC-04 Measurements/ja

From ALPS
Revision as of 10:31, 5 March 2012 by Kota (talk | contribs) (Created page with "{{Languages|ALPS_2_Tutorials:MC-04_Measurements}} = 有向ループ、ワームコードでの相関計算 = <!--In this tutorial we will look at measuring correlation func…")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


有向ループ、ワームコードでの相関計算 

有向ループ、ワームコードを用いて相関関数の計算をおこないます。

二次元ハイゼンベルグ正方格子

コマンドラインでのシミュレーションの準備と実行

parm4 は、S=1/2ハイゼンベルグモデルの量子モンテカルロ計算のパラメータファイルです。

MODEL="spin";
LATTICE="square lattice";
REPRESENTATION="SSE";
MEASURE[Correlations]=true;
MEASURE[Structure Factor]=true;
MEASURE[Green Function]=true;
THERMALIZATION=10000;
SWEEPS=500000;
J= 1;
L=4;
W=4;
T=0.3;
{h=0.1;}


以下の標準的な計算手順に従い、量子SSEコードを用いて計算することができます。結果はXML形式で出力され、webブラウザで確認が可能です。

parameter2xml parm4
dirloop_sse --Tmin 10 --write-xml parm4.in.xml

Pythonを使用したシミュレーションの準備と実行

Pythonで計算の実行を設定します。Pythonスクリプトtutorial4.pyを参照してください。

import pyalps
parms = [{ 
         'LATTICE'                   : "square lattice", 
         'MODEL'                     : "spin",
         'MEASURE[Correlations]'     : True,
         'MEASURE[Structure Factor]' : True,
         'MEASURE[Green Function]'   : True,
         'local_S'                   : 0.5,
         'T'                         : 0.3,
         'J'                         : 1 ,
         'THERMALIZATION'            : 10000,
         'SWEEPS'                    : 500000,
         'L'                         : 4,
         'h'                         : 0.1
       }]
input_file = pyalps.writeInputFiles('parm4',parms)
res = pyalps.runApplication('dirloop_sse',input_file,Tmin=5)

alpspythonvispythonを用いてPythonスクリプトを実行します。コマンドラインでおこなった計算結果と同じ出力ファイルが得られます。

Pythonを使用したシミュレーションの評価とプロット

計算結果ファイルをロードし、磁場の関数としての磁化密度の情報を取得します。計算のロード、解析、プロットの手順はPythonスクリプトtutorial4.pyを参照してください。

data = pyalps.loadMeasurements(pyalps.getResultFiles())

測定と出力を制御するループです。

for s in pyalps.flatten(data):
  if len(s.x)==1:
    print s.props['observable'], ' : ', s.y[0]
  else:
    for (x,y) in zip(s.x,s.y):
      print  s.props['observable'], x, ' : ', y


Vistrailsを使用したシミュレーションの準備と実行

mc-04-measurements.vtはVistrailsを用いた計算の実行のチュートリアルです。