Tutorials:MeasureHOWTO/ja
Languages: |
English • 日本語 (ja) • 繁體中文 (zh-tw) • 简体中文 (zh) |
解析方法の定義
計算結果の解析において、ALPSがデフォルトで用意している解析方法以外に、ユーザが独自に解析条件を設定する方法を紹介します。一般的な記述方法は以下の通りです。
MEASURE_LOCAL[Name]=Op MEASURE_AVERAGE[Name]=Op
"Name"は XMLの出力ファイルにある物理量の計算結果です。"Op"は解析演算子で、 models.xmlファイルで定義されます。
MEASURE_AVERAGEは演算子Opの量子力学的、熱力学的(有限温度シミュレーション)期待値を求めます。
MEASURE_LOCALは格子の各サイトの演算子Opの期待値を求めます。
MEASURE_CORRELATIONS[Name]="Op1:Op2" MEASURE_CORRELATIONS[Name]=Op
MEASURE_CORRELATIONSは格子のサイトの全非同期ペアの演算子Op1とOp2のペア相関を求めます。2行目のMEASURE_CORRELATIONS[name]=Opは MEASURE_CORRELATIONS[Name]="Op:Op"と同じ意味です。現状のALPSでは2サイトの相互作用関数の計算に対応しています。Op1とOp2はサイト演算子である必要があります。
MEASURE_STRUCTURE_FACTOR[Name]=Op
すべてのバージョンで上記の記述をサポートしているとは限りません。他にも解析の定義方法があるコードがあります。ALPS1.3の チュートリアルも 参照してください。
応用例と問題回避法
QMCコードで非対角量を計算することは、一般的にノントリビアルで、一般的なコードを生成するのは困難です。ユーザが求めたい物理量にQMCプログラムが対応していない場合は、ユーザ自ら、ソースコードを修正する必要があります。
このような場合、いくつかの対処方法があります。よく用いられる手法で、計算モデルの サイトの基底を拡張する方法がよく用いられています。 次の例を参照してください。 ワームコードを用いて、非均一な格子上でのBose-Hubbardモデルを計算する場合、局所密度分布<ni2>の2次モーメントを計算してください。ワームコードはサイトの基底では動作しないのでこのような演算子は計算できないでしょう。ひとつの解決手法としては、Bose-Hubbardハミルトニアンとして指定しているサイト基底"boson"を修正してみてください。
<SITEBASIS name="boson"> <PARAMETER name="Nmax" default="infinity"/> <QUANTUMNUMBER name="N" min="0" max="Nmax"/> <OPERATOR name="bdag" matrixelement="sqrt(N+1)"> <CHANGE quantumnumber="N" change="1"/> </OPERATOR> <OPERATOR name="b" matrixelement="sqrt(N)"> <CHANGE quantumnumber="N" change="-1"/> </OPERATOR> <OPERATOR name="n" matrixelement="N"/> <OPERATOR name="n2" matrixelement="N*N"/> <--! added --> </SITEBASIS>
この修正パッチを用いると、通常の方法で測定することができるでしょう。
MEASURE_LOCAL[Local density squared]="n2" MEASURE_CORRELATIONS[Density squared, correlations]="n2:n2"