ALPS 2 Tutorials:ED-04 Criticality/ja

From ALPS
Revision as of 06:01, 23 February 2012 by Kota (talk | contribs) (Created page with "{{Languages|ALPS_2_Tutorials:ED-04_Criticality}} <!--In this tutorial, we will look at critical spin chains and make a connection to their description in terms of 共形場の…")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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

イジング鎖

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

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}.
イジングモデル(上記論文では式(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}
Additionally, we expect the scaling dimension of the identity operator to be 0. そこで我々は、スケーリングの寸法と予想0, 1/8, 1, 1+1/8イジングモデルのCFTに表示される。これを確認するために、我々は、によると、スペクトルのすべてのエネルギーを再スケールされますE \rightarrow \frac{E-E_0}{(E_1-E_0)*1/8}

これは、スケーリングの寸法を期待してどこに2つの最低状態が発生するように強制され、我々は、スペクトルの残りの部分はこれと一致しているかどうか確認することができます。


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や、次のチュートリアルも参照してください。

コマンドラインでの実行

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