ALPS 2 Tutorials:MC-04 Measurements/ja

From ALPS
Revision as of 06:58, 28 March 2012 by Kota (talk | contribs) (コマンドラインでのシミュレーションの準備と実行)

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


次に、"dirloop_sse_evaluate"モジュールを用いてSpecific Heat(比熱)を求めます。シミュレーションで得られた結果を解析し、出力結果をXMLファイルとして生成します。

$ dirloop_sse_evaluate --write-xml parm4.task1.out.xml
parsing task files ...
Loading information about run 1 from file $parm4_dir/parm4.task1.out.run1
Specific Heat: 0.0866162 +/- 0.00869

出力結果を格納したファイルは、上書きされますので注意してください。

シミュレーション出力ファイルには、全計算がおこなわれた後の計算結果がだけが格納されています。ここのモンテカルロステップでの計算の詳細は、各チェックポイント情報を格納しているチェックポイントファイルをXML形式に変換することによって知ることが可能です。convert2xmlツールを次のように使用します。

convert2xml parm4.task1.out.run

この操作によってモンテカルロ計算から摘出された情報を含む、XML形式のタスクファイルparm4.task1.out.run.xmlが生成されます。

物理量に関するプロットをおこないたい場合は、後述するPython解析ツールを利用してください。


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を用いた計算の実行のチュートリアルです。