Difference between revisions of "ALPS 2.1 Tutorials:MC-04 Measurements/ja"
m (versioning BOT: creating ALPS 2.1. r4872. release_date: 2012-05-31 23:59:59+00:00.) |
m (versioning BOT: creating ALPS 2.1. Update links.) |
||
Line 1: | Line 1: | ||
− | {{Languages| | + | {{Languages|ALPS_2.1_Tutorials:MC-04_Measurements}} |
Latest revision as of 09:54, 12 September 2013
Languages: |
English • 日本語 (ja) • 繁體中文 (zh-tw) • 简体中文 (zh) |
Contents
有向ループ、ワームコードでの相関計算
有向ループ、ワームコードを用いて相関関数の計算をおこないます。
二次元ハイゼンベルグ正方格子
コマンドラインでのシミュレーションの準備と実行
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)
alpspythonやvispythonを用いて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を用いた計算の実行のチュートリアルです。