Difference between revisions of "ALPS 2 Tutorials:MC-08 Quantum Phase Transition/ja"

From ALPS
Jump to: navigation, search
(相転移の特定)
(相転移の特定)
Line 65: Line 65:
 
Here is an example how you can load perform this analysis in python:-->
 
Here is an example how you can load perform this analysis in python:-->
  
<math>J_2=0</math>とするため、スピンギャップの値は、次の式([http://link.aps.org/doi/10.1103/PhysRevB.50.13515 Phys. Rev. B 50, 13515 (1994)]で派生した)<math>\chi=A/\sqrt{T}\exp(-\Delta/T)</math>を使用して、帯磁率の有限-Tの動作によって、さらに推定することができる場所<math>A</math>とスピンギャップ<math>\Delta</math>はフィッティングパラメータである。<math> T \ leq1</ math>をするためのデータを近似し、スピンギャップの推定値を抽出します。それはどのように文献(例えば、[http://link.aps.org/doi/10.1103/PhysRevLett.73.886 Phys. Rev. Lett. 73, 886 (1994)]や[http://link.aps.org/doi/10.1103/PhysRevLett.77.1865 Phys. Rev. Lett. 77, 1865 (1996)]など)で利用可能な推定値と比べてどうですか?
+
<math>J_2=0</math>とするため、スピンギャップの値は、次の式([http://link.aps.org/doi/10.1103/PhysRevB.50.13515 Phys. Rev. B 50, 13515 (1994)]で派生した)<math>\chi=A/\sqrt{T}\exp(-\Delta/T)</math>を使用して、帯磁率の有限-Tの動作によって、さらに推定することができる場所<math>A</math>とスピンギャップ<math>\Delta</math>はフィッティングパラメータである。<math>T\leq1</math>をするためのデータを近似し、スピンギャップの推定値を抽出します。それはどのように文献(例えば、[http://link.aps.org/doi/10.1103/PhysRevLett.73.886 Phys. Rev. Lett. 73, 886 (1994)]や[http://link.aps.org/doi/10.1103/PhysRevLett.77.1865 Phys. Rev. Lett. 77, 1865 (1996)]など)で利用可能な推定値と比べてどうですか?
 
ここでは、pythonでこの分析を実行読み込むことができます方法の例は、次のとおりです。
 
ここでは、pythonでこの分析を実行読み込むことができます方法の例は、次のとおりです。
  

Revision as of 06:57, 23 February 2012


このチュートリアルでは、量子スピンモデルでは量子臨界点を検出する方法を学習します。我々が見しようとしているモデルでは、ラダーの配置の形で二量体化した正方格子量子ハイゼンベルグモデルです。ラング上の脚と J_1を上 J_0をカップリングしたはしごは、結合強度 J_2を一緒に結合されている。モデルは、異なる表記はあるものの、Wenzel and Janke, Phys. Rev. B 79, 014410 (2009)の図に描かれている。このチュートリアルでは、ケースを考慮します J_0= J_1= 1</ math>は、と<math> J_2</ math>をカップリング間のはしごを変化させる。2Dハイゼンベルグモデルの有限温度(マーミン·ワグナーの定理)でない相転移が存在しないにもかかわらず、間の遷移は、さまざまな地上の状態が<math>T=0で発生する可能性があります。

CoupledLadder.jpg


相転移の特定

まず第一に、我々は分離されたはしご2つの簡単な制限(J_2=0)考慮し、等方的な正方格子の( J_2=1)。分離されたはしごは、短距離相関と基底状態を持っており、有限のスピンギャップを示す:これはスピン液体相である。一方、正方格子では、有限のスタガード磁化と長距離秩序が表示されます。これは反強磁性ネール相である。これら二つの異なった物理学をプロービングのシンプルな例示的な方法は、磁化率で\chiをを見ることです。私たちは2つの異なるケース内の温度は、次のセットを使用して8x8のシステムをシミュレートしてみましょう。プロットとで帯磁率を比較し、両方の( J_2=0)と等方性( J_2=1)状況でデカップリングする必要があります。正方格子に感受性が低いT.で一定傾向にある一方、分離された梯子では、感受性は、スピンギャップの存在に起因する低い温度で活性化挙動を示す。注意してください、有限のシステムでは、\chiは常に最終的には有限サイズのギャップが存在するために十分に小さい温度でゼロにする傾向があります - これはここでしかし、興味のある私たちの話題ではありません。 パラメータ·ファイルparm8aを使用してコマンドラインでシミュレーションを実行することができます。

parameter2xml parm8a
loop parm8a.in.xml


またはPythonスクリプトを使用して、tutorial8a.py

import pyalps
import matplotlib.pyplot as plt
import pyalps.pyplot
import numpy as np
import pyalps.fit_wrapper as fw
from math import sqrt

#prepare the input parameters
parms = []
for j2 in [0.,1.]:
    for t in [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]:
        parms.append(
            { 
              'LATTICE'        : "coupled ladders", 
              'LATTICE_LIBRARY': 'lattices.xml',
              'MODEL_LIBRARY'  : 'models.xml',
              'local_S'        : 0.5,
              'ALGORITHM'      : 'loop',
              'SEED'           : 0,
              'T'              : t,
              'J0'             : 1 ,
              'J1'             : 1,
              'J2'             : j2,
              'THERMALIZATION' : 5000,
              'SWEEPS'         : 50000, 
              'MODEL'          : "spin",
              'L'              : 8,
              'W'              : 4
            }
    )

#write the input file and run the simulation
input_file = pyalps.writeInputFiles('parm8a',parms)
pyalps.runApplication('loop',input_file) 


J_2=0とするため、スピンギャップの値は、次の式(Phys. Rev. B 50, 13515 (1994)で派生した)\chi=A/\sqrt{T}\exp(-\Delta/T)を使用して、帯磁率の有限-Tの動作によって、さらに推定することができる場所Aとスピンギャップ\Deltaはフィッティングパラメータである。T\leq1をするためのデータを近似し、スピンギャップの推定値を抽出します。それはどのように文献(例えば、Phys. Rev. Lett. 73, 886 (1994)Phys. Rev. Lett. 77, 1865 (1996)など)で利用可能な推定値と比べてどうですか? ここでは、pythonでこの分析を実行読み込むことができます方法の例は、次のとおりです。

lines = []
for data in susc1:
    pars = [fw.Parameter(1), fw.Parameter(1)]
    data.y= data.y[data.x < 1]
    data.x= data.x[data.x < 1]
    f = lambda self, x, pars: (pars[0]()/np.sqrt(x))*np.exp(-pars[1]()/x)
    fw.fit(None, f, pars, [v.mean for v in data.y], data.x)
    prefactor = pars[0].get()
    gap = pars[1].get()
    print prefactor,gap
    
    lines += plt.plot(data.x, f(None, data.x, pars))
    lines[-1].set_label('$J_2=%.4s$: $\chi = \\frac{%.4s}{T}\exp(\\frac{-%.4s}{T})$' % (data.props['J2'], prefactor,gap))

相転移の場所

Having identified two different phases at J_2=0 and J_2=1, there must be (at least) one quantum phase transition separating them. We scan the coupling range  J_2 \in [0.2,0.4] for system sizes L=8,10,12,16 and simulate the model at an inverse temperate \beta=2.L using the parameter-file parm8b or the python script tutorial8b.py:

J_2=0J_2=1は少なくとも2つの異なる相を同定したので、(少なくとも)、それらを分離する1量子相転移が存在する必要があります。我々は、システムのサイズにカップリング範囲 J_2 \in [0.2,0.4] をスキャン L =8,10,12,16は、逆温帯でモデルをシミュレートする\beta=2.Lを使用してパラメータをファイルparm8bまたはPythonスクリプトtutorial8b.py

import pyalps
import matplotlib.pyplot as plt
import pyalps.pyplot
import numpy as np

#prepare the input parameters
parms = []
for l in [8,10,12,16]:
    for j2 in [0.2,0.25,0.3,0.35,0.4]:
        parms.append(
            { 
              'LATTICE'        : "coupled ladders", 
              'LATTICE_LIBRARY': 'lattices.xml',
              'MODEL_LIBRARY'  : 'models.xml',
              'local_S'        : 0.5,
              'ALGORITHM'      : 'loop',
              'SEED'           : 0,
              'BETA'           : 2*l,
              'J0'             : 1 ,
              'J1'             : 1,
              'J2'             : j2,
              'THERMALIZATION' : 5000,
              'SWEEPS'         : 50000, 
              'MODEL'          : "spin",
              'L'              : l,
              'W'              : l/2
            }
    )

#write the input file and run the simulation
input_file = pyalps.writeInputFiles('parm8a',parms)
pyalps.runApplication('loop',input_file)


staggered磁化、バインダーキュムラント、スピン剛性

古典的なモンテカルロのチュートリアルのように我々は、反強磁性相の秩序パラメーターであるstaggered磁化m_sのバインダーキュムラントU_4=<m_s^4> /<m_s^2>^2の分析によって相転移を特定します。バインダーキュムラントの交点は、このチュートリアルで勉強したモデルのための小さなシステムのサイズに大きな偏差を示していますので、我々はまた、より小さい有限サイズ補正(Wenzel and Janke, Phys. Rev. B 79, 014410 (2009))を持つスピン剛性を考慮します。この観察は、巻番号、x軸とy軸方向に沿っworldlinesのw_x,w_yおよびdは、システムの次元であり、zは、動的臨界指数である量子臨界点は、AT \rho_s \propto L^{d-2-z}として、それがスケールの\rho_s = \frac{3}{4\beta} <w_x^2 + w_y^2>によって与えられます。z=1\rho_sLの量は、異なるシステムのシステムサイズがLの臨界点で交差しています。バインダーキュムラントとスピン剛性が交差するという事実は、実際に相転移が連続して、注文が初めてではないことを示していることに注意してください。

あなたがロードし、次の行を使用して観測量をプロットすることができます。

data = pyalps.loadMeasurements(pyalps.getResultFiles(pattern='parm8a.task*.out.h5'),['Binder Ratio of Staggered Magnetization','Stiffness'])
binder=pyalps.collectXY(data,x='J2',y='Binder Ratio of Staggered Magnetization', foreach=['L'])
stiffness =pyalps.collectXY(data,x='J2',y='Stiffness', foreach=['L'])

for q in stiffness:
    q.y = q.y*q.props['L']

#make plot    
plt.figure()
pyalps.pyplot.plot(stiffness)
plt.xlabel(r'$J2$')
plt.ylabel(r'Stiffness $\rho_s L$')
plt.title('coupled ladders')

plt.figure()
pyalps.pyplot.plot(binder)
plt.xlabel(r'$J_2$')
plt.ylabel(r'$g(m_s)$')
plt.title('coupled ladders')
plt.show()

量子臨界点のお見積もりは何ですか?

有限温度の影響

あなたは、シミュレーションがゼロ温度で実施されていないことに気づいたが、逆温度\beta=T^{-1}=2Lの有限値でている場合があります。一つは、物理学(および量子臨界点の特定の推定値)の有限温度の影響によって影響されていないことを確認する必要があります。 このチェックのブルートフォースまだ簡単な方法は、温度を下げると同じシミュレーションを実行することです。結果が影響を受けていない場合、そのシミュレーションは、実際に収束されています。変更\beta=2Lとに\beta=4Lは、剛性とバインダーキュムラントが影響を受けるかどうかを確認します。 試して今\beta=L/4は:結果が違うのか?二つの発言は、ここで重要なのは次のとおりです。まず、\betaでその計算時間スケールのおおよその直線的に気づいているかもしれません。実際にも、量子相で使用される経路積分の表現、ここで使用されるループアルゴリズムのスケーリングが(実際、有限T QMCアルゴリズムは時空間ボリューム\beta.L^dよりも速く拡大縮小することはできません)に最適であることを意味し、与えられた遷移します。

第二に、なぜ我々はLに比例する逆温度は、\betaを選んだのですか?実際には、時間と空間のスケールとの間のこの線形関係は、この量子相転移の動的臨界指数の値z=1に由来する。あなたは、暗黙的に\ rho_s.L</ math>をの交差を見て、それをチェックしている。一般的には、<math>zは団結と等しくなる必要があり、システムのサイズと温度(基底状態のサンプリングを確保するために)の正しいスケーリングがチェックする必要がありません。

臨界点の見積り

あなたは、J_2^c量子臨界点の大まかな見積もりを取得しています。[1]のように、臨界指数を抽出することにより、より多くの作業とJ_2^cの特定の、より正確に決定する必要があります。我々は、J_2^cの細かいグリッドで大規模なシステムのサイズを考慮して1を取得し、パラメータはparm8dで指定されています。

これらのシミュレーションはかなりのCPU時間がかかるだろうと我々は、したがって我々は演習としてあなたにそれを残すことに注意してください。再びU_4スタガード磁化と同様に別のシステムサイズについては、システムサイズ \rho_s.Lを乗じた剛性のバインダーキュムラントをプロットします。 これらの曲線の交点は、J_2^cのより正確な推定値を許可する必要があります。相関長の発散に関連した臨界指数\nuを得るためには、 J_2^cで正確に撮影し、これらの量の誘導体のシステムのサイズJ_2^cに関して)とスケーリングを考慮しておくと便利です。これらのデリバティブ\frac{dU_4}{d J_2}L \frac{d\rho_s}{d J_2}はモンテカルロ測定として原則的に得ることができますしかし、このチュートリアルでは、J_2の微細グリッドのおかげで可能です。数値微分を実行するのに十分である。両方の量の異なるシステムサイズの数値微分を実行し、システム·サイズの関数としてJ_2^cにその値をプロットします。\frac{dU_4}{d J_2}(J_2^c) \propto L \frac{d\rho_s}{d J_2}(J_2^c) \propto L^{1/\nu}:データはべき乗則としてスケーリングします。あなたは、 \nuのどの値を入手できますか? Exercise:あなたが視覚的に[ classical case]のように、データの崩壊を実行して、推定値の品質を決定することができます。U_4 \rho_s.Lのスケーリング形は、古典的な相転移例のバインダーキュムラントためのものと同じです。z\nuのほかに、最後の独立した指数\etaは、次の方法で得ることができます。\chi_s (J_2^c) \sim L^{2-\eta}として古典的な場合のように、臨界点における感受性はすべきに比例します。この最後の式で1つの順序パラメータの変動に関連した感受性を考慮する必要があることに注意してください。したがって、のシステムサイズの拡大縮小は \chi_s感受性をずらして、均一な感受性を\chiから、ここで実行する必要がありません。\etaの推定システムのサイズの関数としてJ_2^c\chi_sをプロットするには、入手できますか?この普遍性クラスのPhys. Rev. B 65, 144520 (2002)で報告されたものと臨界指数\nu\etaの見積もりを比較します。

2番目の臨界点の推定

このモデルは、1量子相転移を起こすだけでなく、 - J_2 の高い値では、別の量子相転移を見つけると我々は、このパラメータ領域で同じ分析を繰り返すことになります。 J2を[0.2,0.25,0.3,0.35,0.4]から[1.8,1.85,1.9,1.95,2.,2.05,2.1]に置き換えます。 再度シミュレーションやプロットのコマンドを実行して、tutorial8c.py参照してください。Wenzel and Janke, Phys. Rev. B 79, 014410 (2009)で提示高精度の結果にあなたの結果を比較します。

Vistrails での実行

Vistrailsでの実行は、mc-08-quantum-phase-transition.vtを参照してください。