Skip to content

Commit e189dd0

Browse files
authored
Merge pull request #122 from Ooolab/feat/dmrg-translations-zh-ja
Translate DMRG tutorial series (dmrg01–06) into Chinese and Japanese
2 parents e627a0f + 67dbeb7 commit e189dd0

14 files changed

Lines changed: 1920 additions & 1774 deletions

File tree

content/ja/tutorials/dmrg/_index.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,24 @@ title: Density Matrix Renormalization Group
44
description: "Tutorials for ALPS"
55
toc: true
66
weight: 3
7+
math: true
78
---
89

9-
- [DMRG-01 Density Matrix Renormalization Group Introduction](dmrg01)
10-
- [DMRG-02 Calculating gaps](dmrg02)
11-
- [DMRG-03 Calculating local observables](dmrg03)
12-
- [DMRG-04 Calculating correlations](dmrg04)
13-
10+
密度行列繰り込み群(DMRG)は、ヒルベルト空間を最も重要な $D$ 次元部分空間に反復的に切り詰めることで、一次元量子格子模型の基底状態(および少数の低励起状態)の精度の高い近似を求める手法です。これらのチュートリアルでは、ALPS の `dmrg` アプリケーションを使用し、スピン-1/2 およびスピン-1 反強磁性ハイゼンベルク鎖を例に取り上げます。この二つの模型は表面上は似ていますが、低エネルギー物理においては根本的に異なる振る舞いをするため、この手法を検証するための理想的なテストベッドとなっています。
1411

12+
DMRG は Steven White によって二つの画期的な論文で提案されました:[Density matrix formulation for quantum renormalization groups](https://doi.org/10.1103/PhysRevLett.69.2863)(Phys. Rev. Lett. 69, 2863, 1992)および [Density-matrix algorithms for quantum renormalization groups](https://doi.org/10.1103/PhysRevB.48.10345)(Phys. Rev. B 48, 10345, 1993)で、それぞれ手法の定式化と有限系改良(有限系掃引)が述べられており、今日 ALPS が使用するアルゴリズムの基礎となっています。詳細な背景と参考文献については [DMRG 参照ページ](../../documentation/methods/dmrg/dmrg) をご覧ください。
1513

14+
## 入門
1615

16+
- [DMRG-01 入門](dmrg01)`dmrg` 実行ファイルと DMRG アルゴリズム(無限系掃引・有限系掃引、切り詰め誤差)およびその制御パラメータを紹介します。
1717

18+
## 模型の物理と基底状態エネルギー
1819

20+
- [DMRG-02 ハイゼンベルクスピン鎖](dmrg02) — 二つの模型の物理を詳しく紹介します:Bethe 仮設によって厳密に解けるギャップレスの臨界スピン-1/2 鎖、およびギャップを持つ非臨界スピン-1(ハルデン)鎖。以降のシリーズで用いる基準値もここで示します。
21+
- [DMRG-03 基底状態エネルギー](dmrg03) — 最初の `dmrg` 計算を実行し、固定長でのスピン-1/2 鎖とスピン-1 鎖の基底状態エネルギーを計算し、熱力学極限における格子点当たり(あるいは結合当たり)のエネルギーへ外挿します。
1922

23+
## 励起状態と相関関数
2024

25+
- [DMRG-04 エネルギーギャップ](dmrg04) — 有限系でのスピン-1/2 鎖の一重項-三重項ギャップとスピン-1 鎖のハルデンギャップを計算し、両者を熱力学極限へ外挿します。
26+
- [DMRG-05 局所オブザーバブル](dmrg05) — 局所磁化プロファイルを用いてスピン-1 鎖における境界励起とバルク励起を区別します。これは DMRG が開放境界条件を好むことから生じる微妙な点です。
27+
- [DMRG-06 相関関数](dmrg06) — スピン-スピン相関関数を計算し、スピン-1/2 鎖の臨界べき乗則指数とスピン-1 鎖の相関長を抽出します。

content/ja/tutorials/dmrg/dmrg01.md

Lines changed: 30 additions & 423 deletions
Large diffs are not rendered by default.

content/ja/tutorials/dmrg/dmrg02.md

Lines changed: 42 additions & 175 deletions
Large diffs are not rendered by default.

content/ja/tutorials/dmrg/dmrg03.md

Lines changed: 332 additions & 105 deletions
Large diffs are not rendered by default.

content/ja/tutorials/dmrg/dmrg04.md

Lines changed: 214 additions & 179 deletions
Large diffs are not rendered by default.
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
2+
---
3+
title: DMRG-05 Local Observables
4+
math: true
5+
toc: true
6+
---
7+
8+
特定のサイトに関連するオブザーバブルを局所オブザーバブルと呼びます。スピン鎖の場合、意味のある局所オブザーバブルは局所磁化 $\langle S^z_i \rangle$ です。
9+
10+
## スピン-1 鎖における励起
11+
12+
長さ $L=96$、$D=200$ の鎖を取り、局所磁化 $\langle S^z_i \rangle$ を計算します。磁化セクター 0、1、2 の基底状態についてサイト $i$ の関数としてプロットします。
13+
14+
得られるのは、セクター 0 では本質的に平坦な曲線、セクター 1 では磁化が本質的に鎖端に集中、セクター 2 では磁化が鎖端とバルクの両方に存在するというものです。これは、開放鎖の第一励起が境界励起であり、閉じた系では存在しないことを意味します。そして開放鎖の第二励起は、境界励起プラスバルク励起であり、これが私たちの関心対象です。今のところ理由は不明ですが、したがって第一バルク励起エネルギーはセクター 1 と 2 を比較することで抽出しなければなりません。
15+
16+
この話の教訓は、この局所オブザーバブルを見ることで、スピン-1 鎖における境界励起とバルク励起を区別できるということです。
17+
18+
### パラメータファイルを使う場合
19+
20+
次のパラメータファイル [`spin_one`](https://github.com/ALPSim/ALPS/blob/bd842d1899feacd3d50392217f5239183d11a817/tutorials/dmrg-03-local-observables/spin_one) は三つの個別の実行を設定します。各スピンセクターに一つずつです(前と同様に、説明のため小さいシステムと状態数を使用します):
21+
22+
LATTICE_LIBRARY="my_lattices.xml"
23+
LATTICE="open chain lattice with special edges 32"
24+
MODEL="spin"
25+
local_S0=0.5
26+
local_S1=1
27+
CONSERVED_QUANTUMNUMBERS="N,Sz"
28+
J=1
29+
NUMBER_EIGENVALUES=1
30+
SWEEPS=4
31+
MEASURE_LOCAL[Local magnetization]=Sz
32+
MAXSTATES=40
33+
{ Sz_total=0 }
34+
{ Sz_total=1 }
35+
{ Sz_total=2 }
36+
37+
通常のコマンド列を使って変換と実行を行います:
38+
39+
parameter2xml spin_one
40+
dmrg --write-xml spin_one.in.xml
41+
42+
### Python を使う場合
43+
44+
スクリプト [`spin_one.py`](https://github.com/ALPSim/ALPS/blob/bd842d1899feacd3d50392217f5239183d11a817/tutorials/dmrg-03-local-observables/spin_one.py) は三つのスピンセクターそれぞれで一つのシミュレーションを実行します:
45+
46+
import pyalps
47+
import numpy as np
48+
import matplotlib.pyplot as plt
49+
import pyalps.plot
50+
parms = []
51+
for sz in [0,1,2]:
52+
parms.append( {
53+
'LATTICE_LIBRARY' : 'my_lattices.xml',
54+
'LATTICE' : 'open chain lattice with special edges 32',
55+
'MODEL' : "spin",
56+
'local_S0' : '0.5',
57+
'local_S1' : '1',
58+
'CONSERVED_QUANTUMNUMBERS' : 'N,Sz',
59+
'Sz_total' : sz,
60+
'J' : 1,
61+
'SWEEPS' : 4,
62+
'NUMBER_EIGENVALUES' : 1,
63+
'MAXSTATES' : 40,
64+
'MEASURE_LOCAL[Local magnetization]' : 'Sz'
65+
} )
66+
67+
input_file = pyalps.writeInputFiles('parm_spin_one',parms)
68+
res = pyalps.runApplication('dmrg',input_file,writexml=True)
69+
70+
データファイルを読み込んだ後、局所磁化の結果を抽出できます:
71+
72+
data = pyalps.loadEigenstateMeasurements(pyalps.getResultFiles(prefix='parm_spin_one'))
73+
74+
curves = []
75+
for run in data:
76+
for s in run:
77+
if s.props['observable'] == 'Local magnetization':
78+
sz = s.props['Sz_total']
79+
s.props['label'] = '$S_z = ' + str(sz) + '$'
80+
s.y = s.y.flatten()
81+
curves.append(s)
82+
83+
そしてプロットします:
84+
85+
plt.figure()
86+
pyalps.plot.plot(curves)
87+
plt.legend()
88+
plt.title('Magnetization of antiferromagnetic Heisenberg chain (S=1)')
89+
plt.ylabel('local magnetization')
90+
plt.xlabel('site')
91+
plt.show()
92+
93+
## スピン-1/2 鎖における磁化
94+
95+
最低の磁化セクターでのスピン-1/2 鎖について同様の計算を繰り返します。
96+
97+
### パラメータファイルを使う場合
98+
99+
次のパラメータファイルでこのタスクを達成できます。[こちら](https://github.com/ALPSim/ALPS/blob/bd842d1899feacd3d50392217f5239183d11a817/tutorials/dmrg-03-local-observables/spin_one_half)からダウンロードできます:
100+
101+
LATTICE="open chain lattice"
102+
MODEL="spin"
103+
CONSERVED_QUANTUMNUMBERS="N,Sz"
104+
SWEEPS=4
105+
J=1
106+
NUMBER_EIGENVALUES=1
107+
MEASURE_LOCAL[Local magnetization]=Sz
108+
L=32
109+
MAXSTATES=40
110+
{ Sz_total=0 }
111+
{ Sz_total=1 }
112+
{ Sz_total=2 }
113+
114+
parameter2xml spin_one_half
115+
dmrg --write-xml spin_one_half.in.xml
116+
117+
### Python を使う場合
118+
119+
パラメータの変更を除いて、スクリプト [`spin_one_half.py`](https://github.com/ALPSim/ALPS/blob/bd842d1899feacd3d50392217f5239183d11a817/tutorials/dmrg-03-local-observables/spin_one_half.py) は上で説明した `spin_one` スクリプトと同じです。
120+
121+
## まとめ
122+
123+
局所磁化プロファイルは、開放スピン-1 鎖における境界励起とバルク励起をきれいに分離します。だからこそ [DMRG-04](../dmrg04) で研究した物理的に関連する(バルク)ギャップは、0 と 1 ではなく磁化セクター 1 と 2 の間から読み取らなければなりません。
124+
125+
## 問題
126+
127+
- 最低の磁化セクターにおけるスピン-1/2 鎖の局所磁化計算を繰り返すと、上のスピン-1 の場合と比較して何が観察されますか?

0 commit comments

Comments
 (0)