Difference between revisions of "ALPS 2 Tutorials:ED-04 Criticality/ja"

From ALPS
Jump to: navigation, search
(イジング鎖)
(イジング鎖)
Line 21: Line 21:
 
<br>
 
<br>
 
上記の式では、Δはその場のスケーリングの次元を表します。一次場と呼ばれる最も低いグループで発生します。また、次元のスケーリング<math>\Delta + n, n \in \lbrace 1, 2, 3, ... \rbrace</math>で表現されます。イジングモデル(上記論文では式(3.7))の厳密解では、長期rangle相関関係は、次のように減衰することが判明されています。 さらに、我々は、アイデンティティ演算子のスケーリング次元は0であることを期待しています。  
 
上記の式では、Δはその場のスケーリングの次元を表します。一次場と呼ばれる最も低いグループで発生します。また、次元のスケーリング<math>\Delta + n, n \in \lbrace 1, 2, 3, ... \rbrace</math>で表現されます。イジングモデル(上記論文では式(3.7))の厳密解では、長期rangle相関関係は、次のように減衰することが判明されています。 さらに、我々は、アイデンティティ演算子のスケーリング次元は0であることを期待しています。  
 
<!--In the exact solution of the Ising model (Eq. (3.7) in the paper above), the long-rangle correlations are found to decay as:<br>
 
<math>\langle S^i_z S^{i+n}_z \rangle \sim n^{-2*1/8}</math><br>
 
<math>\langle S^i_y S^{i+n}_y \rangle \sim n^{-2*(1+1/8)}</math><br>
 
<math>\langle S^i_x S^{i+n}_x \rangle \sim n^{-2*1}</math><br>
 
Additionally, we expect the scaling dimension of the identity operator to be 0.-->
 
  
 
イジングモデルの厳密解(上記論文のEq. (3.7))では、長距離相関は次のように減衰します。<br>
 
イジングモデルの厳密解(上記論文のEq. (3.7))では、長距離相関は次のように減衰します。<br>
Line 32: Line 26:
 
<math>\langle S^i_y S^{i+n}_y \rangle \sim n^{-2*(1+1/8)}</math><br>
 
<math>\langle S^i_y S^{i+n}_y \rangle \sim n^{-2*(1+1/8)}</math><br>
 
<math>\langle S^i_x S^{i+n}_x \rangle \sim n^{-2*1}</math><br>
 
<math>\langle S^i_x S^{i+n}_x \rangle \sim n^{-2*1}</math><br>
Additionally, we expect the scaling dimension of the identity operator to be 0.
+
<!--Additionally, we expect the scaling dimension of the identity operator to be 0.-->
そこで我々は、スケーリングの寸法と予想<math>0, 1/8, 1, 1+1/8</math>イジングモデルのCFTに表示される。これを確認するために、我々は、によると、スペクトルのすべてのエネルギーを再スケールされます<math>E \rightarrow \frac{E-E_0}{(E_1-E_0)*1/8}</math>
+
さらに、我々は、恒等演算子のスケーリング次元は0であることを予想します。
  
これは、スケーリングの寸法を期待してどこに2つの最低状態が発生するように強制され、我々は、スペクトルの残りの部分はこれと一致しているかどうか確認することができます。
+
また、<math>0, 1/8, 1, 1+1/8</math>のスケーリングの次元がイジングモデルのCFTで現れることを予想しています。これらを確認するためにすべてのエネルギーを<math>E \rightarrow \frac{E-E_0}{(E_1-E_0)*1/8}</math>のように再スケーリングします。
  
 +
<!--これは、スケーリングの次元を予想してどこに2つの最低状態が発生するように強制され、我々は、スペクトルの残りの部分はこれと一致しているかどうか確認することができます。-->
 
<!--We therefore expect scaling dimensions of <math>0, 1/8, 1, 1+1/8</math> to appear in the CFT of the Ising model. To see this, we will rescale all energies of the spectrum according to <math>E \rightarrow \frac{E-E_0}{(E_1-E_0)*1/8}</math>. This will force the two lowest states to occur where we expect the scaling dimensions; we can then check whether the rest of the spectrum is consistent with this.-->
 
<!--We therefore expect scaling dimensions of <math>0, 1/8, 1, 1+1/8</math> to appear in the CFT of the Ising model. To see this, we will rescale all energies of the spectrum according to <math>E \rightarrow \frac{E-E_0}{(E_1-E_0)*1/8}</math>. This will force the two lowest states to occur where we expect the scaling dimensions; we can then check whether the rest of the spectrum is consistent with this.-->
 
 
== Pythonでの実行 ==
 
== Pythonでの実行 ==
 
Pythonを使った計算の実行方法を記述したスクリプト[https://alps.comp-phys.org/static/tutorials2.0.0/ed-04-criticality/ising.py]を使用します。スクリプトの最初の部分は計算モデルや、入力ファイルのインポートをおこないます。
 
Pythonを使った計算の実行方法を記述したスクリプト[https://alps.comp-phys.org/static/tutorials2.0.0/ed-04-criticality/ising.py]を使用します。スクリプトの最初の部分は計算モデルや、入力ファイルのインポートをおこないます。

Revision as of 06:49, 12 March 2012


このチュートリアルでは、臨界スピン鎖と共形場の理論について学びます。

イジング鎖

まず最初に、次のハミルトニアンで与えられる臨界イジング鎖を例とします。

H=J_{z} \sum_{\langle i,j \rangle} S^i_z S^j_z + \Gamma \sum_i S^i_x

第一項は近接ペアの和です。\Gammaは横磁場を表しています。系は\Gamma/J=\frac{1}{2}で臨界となります。基底状態はJ>0で反強磁性物質、J < 0で強磁性体となります。系は正確に解くことができます。(P. Pfeuty, Annals of Physics: 57, 79-90 (1970)).

臨界点では、この系は共形場の理論によって説明されます(参照してください。this review by John Cardy) この場合、低位励起状態はCFT場として認識されます。このエネルギーはその演算子のスケーリングdimensionと呼ばれるものと関係があります。スケーリングdimensionの物理的意義は共形場理論の一定の相関関数の振る舞いを記述することです。 たとえば、ある磁場(凖一磁場)の二点の相関は次のように表されます。
\langle \phi(r_1) \phi(r_2) \rangle \sim |r_1 - r_2|^{-2\Delta}.
上記の式では、Δはその場のスケーリングの次元を表します。一次場と呼ばれる最も低いグループで発生します。また、次元のスケーリング\Delta + n, n \in \lbrace 1, 2, 3, ... \rbraceで表現されます。イジングモデル(上記論文では式(3.7))の厳密解では、長期rangle相関関係は、次のように減衰することが判明されています。 さらに、我々は、アイデンティティ演算子のスケーリング次元は0であることを期待しています。

イジングモデルの厳密解(上記論文のEq. (3.7))では、長距離相関は次のように減衰します。
\langle S^i_z S^{i+n}_z \rangle \sim n^{-2*1/8}
\langle S^i_y S^{i+n}_y \rangle \sim n^{-2*(1+1/8)}
\langle S^i_x S^{i+n}_x \rangle \sim n^{-2*1}
さらに、我々は、恒等演算子のスケーリング次元は0であることを予想します。

また、0, 1/8, 1, 1+1/8のスケーリングの次元がイジングモデルのCFTで現れることを予想しています。これらを確認するためにすべてのエネルギーをE \rightarrow \frac{E-E_0}{(E_1-E_0)*1/8}のように再スケーリングします。

Pythonでの実行

Pythonを使った計算の実行方法を記述したスクリプト[1]を使用します。スクリプトの最初の部分は計算モデルや、入力ファイルのインポートをおこないます。

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

2つのシステムサイズパラメータを設定します。縦磁場hではなく、横磁場Gammaを使用すること注意してください。

data = []
for L in [10,12]:
    parms.append({
        'LATTICE'    : "chain lattice",
        'MODEL'      : "spin",
        'local_S'    : 0.5,
        'Jxy'        : 0,
        'Jz'         : -1,
        'Gamma'      : 0.5,
        'NUMBER_EIGENVALUES' : 5,
        'L'          : L
    })

2つの系を計算し、入力データを設定し計算をおこないます。

prefix = 'ising'
input_file = pyalps.writeInputFiles(prefix,parms)
res = pyalps.runApplication('sparsediag', input_file)
# res = pyalps.runApplication('sparsediag', input_file, MPI=2, mpirun='mpirun')
data = pyalps.loadEigenstateMeasurements(pyalps.getResultFiles(prefix=prefix))

最後から二番目のコメントアウトしてある行のコメントを外して、ジョブ数、MPIの設定(デフォルトmpirun)をおこなうと、複数のCPUを利用してALPSが実行されます。


E0 = {}
E1 = {}
for Lsets in data:
    L = pyalps.flatten(Lsets)[0].props['L']
    allE = []
    for q in pyalps.flatten(Lsets):
        allE += list(q.y)
    allE = np.sort(allE)
    E0[L] = allE[0]
    E1[L] = allE[1]

ALPSはシミュレーションによってグループ化されたリストのエネルギーをロードするので、上記のコードは正常に動作します。dataはトップレベルと異なる運動量でのシミュレーション結果のリストです。上記の式に従ってエネルギーの再スケールと運動量の関数としてデータを収集します。

for q in pyalps.flatten(data):
    L = q.props['L']
    q.y = (q.y-E0[L])/(E1[L]-E0[L]) * (1./8.)
spectrum = pyalps.collectXY(data, 'TOTAL_MOMENTUM', 'Energy', foreach=['L'])

比較から、最初の場とそのいくつかの派生をプロットします。

for SD in [0.125, 1, 1+0.125, 2]:
    d = pyalps.DataSet()
    d.x = np.array([0,4])
    d.y = SD+0*d.x
    spectrum += [d]

最後に、図を作成します。

pyalps.pyplot.plot(spectrum)
plt.legend(prop={'size':8})
plt.xlabel("$k$")
plt.ylabel("E_0")
plt.xlim(-0.02, math.pi+0.02)
plt.show()

Vistrailsでの実行

Vistrailsを用いた計算の実行のチュートリアル[2]を参照してください。

コマンドラインでの実行

コマンドラインでの実行に使用するパラメータファイルは、hereを参照してください。

ハイゼンベルグ鎖

より難しいサンプル計算を紹介します。スピン-1/2の自由度の反強磁性ハイゼンベルグ鎖についてです。次の式で表されます。

H = \sum_{\langle i,j \rangle} \mathbf{S}^i \cdot \mathbf{S}^j

このモデルの臨界理論はprimary fields 0,0.5及び1においてcentral charge c=1を持ちます。イジングモデルとは反対に、有限サイズ補正は対数的に消えます。すなわち、このサイズでは明らかな結果となります。Pythonファイルは上記の記述とよく似ているので、ここでは詳細は省略します。異なる点は、この系の計算ではU(1)対称性を利用することができ、これは関係する状態をすべて含んでいるため、S_z = 0セクターのみの計算実行で大丈夫です。

スペクトルを見て、異なるスケーリング場の分類と、システムサイズが大きくなると、どのよに正しい値に近づくか考えてみてください。大変難しいことが分かると思います。このシステムでの詳細なディスカッションはI Affleck et al 1989 J. Phys. A: Math. Gen. 22 511や、次のチュートリアルも参照してください。

コマンドラインでの実行

パラメータファイルはこちらを参照してください。