数値変分法
密度行列繰り込み群 ( DMRG ) は、 量子多体系 の 低エネルギー物理を 高精度で 得るために考案された数値 変分法である。 変分法 として、DMRGはハミルトニアンの最低エネルギー 行列積状態波動関数を見つけようとする効率的なアルゴリズムである。これは1992年に Steven R. White によって発明され 、現在では1次元システムに対する最も効率的な方法となっている。 [1]
歴史
DMRG の最初の応用は、 Steven R. White と Reinhard Noack によるもので、 1D ボックス内の スピン 0 粒子のスペクトルを求める トイ モデルでした。 [ いつ? ]このモデルは 、Kenneth G. Wilsonによって、あらゆる新しい 繰り込み群 法のテストとして 提案されました 。というのも、これまでのすべての手法がこの単純な問題で失敗していたからです。 [ いつ? ] DMRG は、 各ステップでブロックに単一のサイトを追加するのではなく、2 つのブロックを中央の 2 つのサイトで接続し、さらに密度行列を使用して 各ステップの最後に保持する最も重要な状態を識別することで、以前の繰り込み 群法の 問題点を克服しました。 トイ モデルで成功した後、DMRG 法は 量子ハイゼンベルク モデル で試され、成功しました 。
原理
量子多体物理学 の主な問題は、 ヒルベルト空間が サイズとともに指数関数的に増大するという事実です 。言い換えると、 格子の各サイトに 次元のヒルベルト空間を持つ格子を考えると、全体のヒルベルト空間は 次元になります。 ここで は 格子上のサイトの数です。たとえば、長さ Lの スピン 1/2 チェーンには 2 L の自由度があります。DMRG は、有効な 自由度を ターゲット状態にとって最も重要なものにまで減らす反復的な変分法 です 。最も頻繁に関心のある状態は 基底状態 です。
d
{\displaystyle d}
d
いいえ
{\displaystyle d^{N}}
いいえ
{\displaystyle N}
ウォームアップ サイクル [ 定義が必要 ] の後、この方法ではシステムを 2 つのサブシステムまたはブロック (サイズが同じである必要はありません) と、その間の 2 つのサイトに分割します。ウォームアップ中に、ブロックの 代表的な状態 のセットが選択されます。この左のブロック + 2 つのサイト + 右のブロックのセットは、 スーパーブロック と呼ばれます。これで、スーパーブロックの基底状態の候補 (完全なシステムの縮小版) が見つかる可能性があります。精度はかなり低いかもしれませんが、この方法は 反復的 であり、以下の手順で改善されます。
DMRG に従ってシステムを左ブロックと右ブロックに分解します。
見つかった候補基底状態は、 密度行列を 使用して各ブロックの ヒルベルト部分 空間に投影されます。これが名前の由来です。このようにして、各ブロックの 関連状態 が更新されます。 [ さらに説明が必要 ]
ここで、ブロックの 1 つが他のブロックを犠牲にして大きくなり、この手順が繰り返されます。大きくなるブロックが最大サイズに達すると、もう 1 つのブロックがその場所で大きくなり始めます。元の (等しいサイズの) 状態に戻るたびに、スイープが 完了 したとみなされます。通常、 1D 格子の場合、
10 10 分の 1 の精度を得るには、数回のスイープで十分です。
DMRGスイープ。
実装ガイド
DMRG アルゴリズムの実用的な実装は長い作業です [ 意見 ] 。主な計算トリックのいくつかは次のとおりです。
再正規化されたハミルトニアンのサイズは通常数万から数万のオーダーであるのに対し、求められる固有状態は基底状態だけなので、スーパーブロックの基底状態は、行列対角化の ランチョス法 などの反復アルゴリズムによって得られます。別の選択肢としては 、特に非エルミート行列を扱う場合の アーノルディ法があります。
Lanczos アルゴリズムは通常、ソリューションの最適な推測から開始します。推測が利用できない場合は、ランダムなベクトルが選択されます。DMRG では、特定の DMRG ステップで取得され、適切に変換された基底状態は妥当な推測であるため、次の DMRG ステップでのランダムな開始ベクトルよりも大幅にうまく機能します。
対称性を持つシステムでは、ハイゼンベルク モデルの全スピンなどの量子数が保存されることがあります。ヒルベルト空間が分割されている各セクター内の基底状態を見つけるのは便利です。
アプリケーション
DMRG は、スピン鎖の低エネルギー特性の取得にうまく適用されています。 横方向場における イジングモデル、 ハイゼンベルクモデルなど、 ハバードモデル などのフェルミオン系、 近藤効果 などの不純物の問題 、 ボソン 系、 量子細線 で結合した 量子ドットの物理などです。また、 ツリーグラフ で動作するように拡張されており、 デンドリマー の研究に応用されています 。1 つの次元が他の次元よりもはるかに大きい 2D システムの場合も DMRG は正確であり、ラダーの研究に役立つことが証明されています。
この方法は、2D での平衡統計物理学 の研究と、 1D での 非平衡 現象の解析に拡張されました 。
DMRG は、 強相関系の研究のために
量子化学の分野にも応用されています。
例: 量子ハイゼンベルクモデル
反強磁性 量子ハイゼンベルク鎖 に対する「無限」DMRG アルゴリズムを考えてみましょう 。この方法は、並進不変の 1 次元 格子 すべてに適用できます。
S
=
1
{\displaystyle S=1}
DMRG は、 1 次元量子システムの
ヒルベルト空間 の効率的な切り捨てを提供するため、 繰り込み群技術です。
出発点
無限連鎖をシミュレートするには、4 つのサイトから始めます。最初のサイトは ブロック サイト 、最後の サイトはユニバース ブロック サイト 、残りは 追加されたサイト です。右側のサイトはユニバース ブロック サイトに追加され、もう 1 つはブロック サイトに追加されます。
単一サイトのヒルベルト空間は 基底です 。この基底では、 単一サイトの スピン 演算子は 、 およびです。すべてのブロック、2 つのブロック、および 2 つのサイトに対して、独自のヒルベルト空間 、その基底 ( )、独自の演算子があり 、ここで
H
{\displaystyle {\mathfrak {H}}}
{
|
S
、
S
ず
⟩
}
≡
{
|
1
、
1
⟩
、
|
1
、
0
⟩
、
|
1
、
−
1
⟩
}
{\displaystyle \{|S,S_{z}\rangle \}\equiv \{|1,1\rangle ,|1,0\rangle ,|1,-1\rangle \}}
S
x
{\displaystyle S_{x}}
S
ええ
{\displaystyle S_{y}}
S
ず
{\displaystyle S_{z}}
H
b
{\displaystyle {\mathfrak {H}}_{b}}
{
|
わ
私
⟩
}
{\displaystyle \{|w_{i}\rangle \}}
私
:
1
…
薄暗い
(
H
b
)
{\displaystyle i:1\dots \dim({\mathfrak {H}}_{b})}
お
b
:
H
b
→
H
b
{\displaystyle O_{b}:{\mathfrak {H}}_{b}\rightarrow {\mathfrak {H}}_{b}}
ブロック: 、 、 、 、 、
H
B
{\displaystyle {\mathfrak {H}}_{B}}
{
|
u
i
⟩
}
{\displaystyle \{|u_{i}\rangle \}}
H
B
{\displaystyle H_{B}}
S
x
B
{\displaystyle S_{x_{B}}}
S
y
B
{\displaystyle S_{y_{B}}}
S
z
B
{\displaystyle S_{z_{B}}}
左 サイト : 、、、、、
H
l
{\displaystyle {\mathfrak {H}}_{l}}
{
|
t
i
⟩
}
{\displaystyle \{|t_{i}\rangle \}}
S
x
l
{\displaystyle S_{x_{l}}}
S
y
l
{\displaystyle S_{y_{l}}}
S
z
l
{\displaystyle S_{z_{l}}}
右 サイト : 、、、、、
H
r
{\displaystyle {\mathfrak {H}}_{r}}
{
|
s
i
⟩
}
{\displaystyle \{|s_{i}\rangle \}}
S
x
r
{\displaystyle S_{x_{r}}}
S
y
r
{\displaystyle S_{y_{r}}}
S
z
r
{\displaystyle S_{z_{r}}}
宇宙: 、 、 、 、 、
H
U
{\displaystyle {\mathfrak {H}}_{U}}
{
|
r
i
⟩
}
{\displaystyle \{|r_{i}\rangle \}}
H
U
{\displaystyle H_{U}}
S
x
U
{\displaystyle S_{x_{U}}}
S
y
U
{\displaystyle S_{y_{U}}}
S
z
U
{\displaystyle S_{z_{U}}}
開始点では、4 つのヒルベルト空間はすべて に等しく、すべてのスピン演算子は 、 および に 等しくなります 。次の反復では、これは左側と右側のサイトでのみ当てはまります。
H
{\displaystyle {\mathfrak {H}}}
S
x
{\displaystyle S_{x}}
S
y
{\displaystyle S_{y}}
S
z
{\displaystyle S_{z}}
H
B
=
H
U
=
0
{\displaystyle H_{B}=H_{U}=0}
成分は、最初の反復では行列 である 4 つのブロック演算子と 4 つの宇宙ブロック演算子、 常に行列である 3 つの左サイト スピン演算子と 3 つの右サイト スピン演算子です 。最初の反復では 4 つのサイトしかない スーパーブロック (チェーン)の ハミルトニアン 行列 は、これらの演算子によって形成されます。ハイゼンベルクの反強磁性 S=1 モデルでは、ハミルトニアンは次のようになります。
3
×
3
{\displaystyle 3\times 3}
3
×
3
{\displaystyle 3\times 3}
H
S
B
=
−
J
∑
⟨
i
,
j
⟩
S
x
i
S
x
j
+
S
y
i
S
y
j
+
S
z
i
S
z
j
{\displaystyle \mathbf {H} _{SB}=-J\sum _{\langle i,j\rangle }\mathbf {S} _{x_{i}}\mathbf {S} _{x_{j}}+\mathbf {S} _{y_{i}}\mathbf {S} _{y_{j}}+\mathbf {S} _{z_{i}}\mathbf {S} _{z_{j}}}
これらの演算子はスーパーブロック状態空間に存在します: 、基数は です 。例: (規則):
H
S
B
=
H
B
⊗
H
l
⊗
H
r
⊗
H
U
{\displaystyle {\mathfrak {H}}_{SB}={\mathfrak {H}}_{B}\otimes {\mathfrak {H}}_{l}\otimes {\mathfrak {H}}_{r}\otimes {\mathfrak {H}}_{U}}
{
|
f
⟩
=
|
u
⟩
⊗
|
t
⟩
⊗
|
s
⟩
⊗
|
r
⟩
}
{\displaystyle \{|f\rangle =|u\rangle \otimes |t\rangle \otimes |s\rangle \otimes |r\rangle \}}
|
1000
…
0
⟩
≡
|
f
1
⟩
=
|
u
1
,
t
1
,
s
1
,
r
1
⟩
≡
|
100
,
100
,
100
,
100
⟩
{\displaystyle |1000\dots 0\rangle \equiv |f_{1}\rangle =|u_{1},t_{1},s_{1},r_{1}\rangle \equiv |100,100,100,100\rangle }
|
0100
…
0
⟩
≡
|
f
2
⟩
=
|
u
1
,
t
1
,
s
1
,
r
2
⟩
≡
|
100
,
100
,
100
,
010
⟩
{\displaystyle |0100\dots 0\rangle \equiv |f_{2}\rangle =|u_{1},t_{1},s_{1},r_{2}\rangle \equiv |100,100,100,010\rangle }
DMRG形式 のハミルトニアンは ( と設定 )です。
J
=
−
1
{\displaystyle J=-1}
H
S
B
=
H
B
+
H
U
+
∑
⟨
i
,
j
⟩
S
x
i
S
x
j
+
S
y
i
S
y
j
+
S
z
i
S
z
j
{\displaystyle \mathbf {H} _{SB}=\mathbf {H} _{B}+\mathbf {H} _{U}+\sum _{\langle i,j\rangle }\mathbf {S} _{x_{i}}\mathbf {S} _{x_{j}}+\mathbf {S} _{y_{i}}\mathbf {S} _{y_{j}}+\mathbf {S} _{z_{i}}\mathbf {S} _{z_{j}}}
演算子は 行列です 。たとえば、次のようになります。
(
d
∗
3
∗
3
∗
d
)
×
(
d
∗
3
∗
3
∗
d
)
{\displaystyle (d*3*3*d)\times (d*3*3*d)}
d
=
dim
(
H
B
)
≡
dim
(
H
U
)
{\displaystyle d=\dim({\mathfrak {H}}_{B})\equiv \dim({\mathfrak {H}}_{U})}
⟨
f
|
H
B
|
f
′
⟩
≡
⟨
u
,
t
,
s
,
r
|
H
B
⊗
I
⊗
I
⊗
I
|
u
′
,
t
′
,
s
′
,
r
′
⟩
{\displaystyle \langle f|\mathbf {H} _{B}|f'\rangle \equiv \langle u,t,s,r|H_{B}\otimes \mathbb {I} \otimes \mathbb {I} \otimes \mathbb {I} |u',t',s',r'\rangle }
S
x
B
S
x
l
=
S
x
B
I
⊗
I
S
x
l
⊗
I
I
⊗
I
I
=
S
x
B
⊗
S
x
l
⊗
I
⊗
I
{\displaystyle \mathbf {S} _{x_{B}}\mathbf {S} _{x_{l}}=S_{x_{B}}\mathbb {I} \otimes \mathbb {I} S_{x_{l}}\otimes \mathbb {I} \mathbb {I} \otimes \mathbb {I} \mathbb {I} =S_{x_{B}}\otimes S_{x_{l}}\otimes \mathbb {I} \otimes \mathbb {I} }
ステップ2: スーパーブロックハミルトニアンの対角化
この時点で、いくつかの 観測量 が計算される ハミルトニアンの 固有状態を選択する必要があります。これが ターゲット状態 です。最初は 基底状態を 選択し、それを見つけるためにいくつかの高度なアルゴリズムを使用できます。これらの 1 つは、次の場所で説明されています。
このステップは、アルゴリズムの中で最も時間のかかる部分です。
が目標状態である 場合、この時点でさまざまな演算子の 期待値は を使用して測定できます 。
|
Ψ
⟩
=
∑
Ψ
i
,
j
,
k
,
w
|
u
i
,
t
j
,
s
k
,
r
w
⟩
{\displaystyle |\Psi \rangle =\sum \Psi _{i,j,k,w}|u_{i},t_{j},s_{k},r_{w}\rangle }
|
Ψ
⟩
{\displaystyle |\Psi \rangle }
ステップ3: 密度行列を縮小する
最初の 2 つのブロック システム (ブロックと左サイトのブロック) の 縮小密度行列を作成します。定義により、次 の行列になります。
ρ
{\displaystyle \rho }
(
d
∗
3
)
×
(
d
∗
3
)
{\displaystyle (d*3)\times (d*3)}
ρ
i
,
j
;
i
′
,
j
′
≡
∑
k
,
w
Ψ
i
,
j
,
k
,
w
Ψ
i
′
,
j
′
,
k
,
w
∗
{\displaystyle \rho _{i,j;i',j'}\equiv \sum _{k,w}\Psi _{i,j,k,w}\Psi _{i',j',k,w}^{*}}
対角化し て行列 を形成します。 この行は の 最大固有値 に関連付けられた固有ベクトルです 。したがって、 は縮小密度行列の最も重要な固有状態によって形成されます。 パラメータ
に注目して選択します 。
ρ
{\displaystyle \rho }
m
×
(
d
∗
3
)
{\displaystyle m\times (d*3)}
T
{\displaystyle T}
m
{\displaystyle m}
m
{\displaystyle m}
e
α
{\displaystyle e_{\alpha }}
ρ
{\displaystyle \rho }
T
{\displaystyle T}
m
{\displaystyle m}
P
m
≡
∑
α
=
1
m
e
α
{\displaystyle P_{m}\equiv \sum _{\alpha =1}^{m}e_{\alpha }}
1
−
P
m
≅
0
{\displaystyle 1-P_{m}\cong 0}
ステップ4: 新しいブロックおよびユニバースブロック演算子
ブロックと左サイトのシステム複合体、および右サイトとユニバースブロックのシステム複合体の演算子の行列表現を
作成します。次に例を示します。
(
d
∗
3
)
×
(
d
∗
3
)
{\displaystyle (d*3)\times (d*3)}
H
B
−
l
=
H
B
⊗
I
+
S
x
B
⊗
S
x
l
+
S
y
B
⊗
S
y
l
+
S
z
B
⊗
S
z
l
{\displaystyle H_{B-l}=H_{B}\otimes \mathbb {I} +S_{x_{B}}\otimes S_{x_{l}}+S_{y_{B}}\otimes S_{y_{l}}+S_{z_{B}}\otimes S_{z_{l}}}
S
x
B
−
l
=
I
⊗
S
x
l
{\displaystyle S_{x_{B-l}}=\mathbb {I} \otimes S_{x_{l}}}
H
r
−
U
=
I
⊗
H
U
+
S
x
r
⊗
S
x
U
+
S
y
r
⊗
S
y
U
+
S
z
r
⊗
S
z
U
{\displaystyle H_{r-U}=\mathbb {I} \otimes H_{U}+S_{x_{r}}\otimes S_{x_{U}}+S_{y_{r}}\otimes S_{y_{U}}+S_{z_{r}}\otimes S_{z_{U}}}
S
x
r
−
U
=
S
x
r
⊗
I
{\displaystyle S_{x_{r-U}}=S_{x_{r}}\otimes \mathbb {I} }
ここで、 新しいブロック演算子とユニバースブロック演算子の行列表現を形成し、変換を使用して基底を変更することで新しいブロックを形成します 。たとえば、 この時点で反復は終了し、アルゴリズムはステップ 1 に戻ります。
m
×
m
{\displaystyle m\times m}
T
{\displaystyle T}
H
B
=
T
H
B
−
l
T
†
S
x
B
=
T
S
x
B
−
l
T
†
{\displaystyle {\begin{matrix}&H_{B}=TH_{B-l}T^{\dagger }&S_{x_{B}}=TS_{x_{B-l}}T^{\dagger }\end{matrix}}}
観測可能な値が何らかの値に収束すると、アルゴリズムは正常に停止します。
行列積仮説
1Dシステムに対するDMRGの成功は、それが行列積状態 (MPS)の空間内での変分法であるという事実に関連しています 。これらは、次の形式の状態です。
|
Ψ
⟩
=
∑
s
1
⋯
s
N
Tr
(
A
s
1
⋯
A
s
N
)
|
s
1
⋯
s
N
⟩
{\displaystyle |\Psi \rangle =\sum _{s_{1}\cdots s_{N}}\operatorname {Tr} (A^{s_{1}}\cdots A^{s_{N}})|s_{1}\cdots s_{N}\rangle }
ここで、はスピン鎖におけるスピンのeg z 成分の値であり 、 A s i は 任意の次元 mの行列である 。m → ∞のとき 、表現は正確になる。この理論はS. RommerとS. Ostlundによって[1]で発表された。
s
1
⋯
s
N
{\displaystyle s_{1}\cdots s_{N}}
量子化学の応用では、 は、1 つの軌道を占めることができる 2 つの電子のスピン量子数の投影の 4 つの可能性を表します。つまり 、 であり、これらのケットの最初 (2 番目) のエントリは、スピンが上向き (下向き) の電子に対応します。量子化学では、 ( が与えられた場合 ) および ( が与えられた場合 ) は、伝統的にそれぞれ行行列と列行列として選択されます。このように、 の結果は スカラー値であり、トレース操作は不要です。 は、シミュレーションで使用されるサイト (基本的には軌道) の数です。
s
i
{\displaystyle s_{i}}
s
i
=
|
00
⟩
,
|
10
⟩
,
|
01
⟩
,
|
11
⟩
{\displaystyle s_{i}=|00\rangle ,|10\rangle ,|01\rangle ,|11\rangle }
A
s
1
{\displaystyle A^{s_{1}}}
s
i
{\displaystyle s_{i}}
A
s
N
{\displaystyle A^{s_{N}}}
s
N
{\displaystyle s_{N}}
A
s
1
…
A
s
N
{\displaystyle A^{s_{1}}\ldots A^{s_{N}}}
N
{\displaystyle N}
MPS仮説における行列は一意ではないので、例えば を の真ん中に挿入し、 と を 定義して も状態は変化しない。このようなゲージ自由度は、行列を標準形に変換するのに用いられる。標準形には3つの種類がある: (1) 左正規化形式、
B
−
1
B
{\displaystyle B^{-1}B}
A
s
i
A
s
i
+
1
{\displaystyle A^{s_{i}}A^{s_{i+1}}}
A
~
s
i
=
A
s
i
B
−
1
{\displaystyle {\tilde {A}}^{s_{i}}=A^{s_{i}}B^{-1}}
A
~
s
i
+
1
=
B
A
s
i
+
1
{\displaystyle {\tilde {A}}^{s_{i+1}}=BA^{s_{i+1}}}
∑
s
i
(
A
~
s
i
)
†
A
~
s
i
=
I
{\displaystyle \sum _{s_{i}}\left({\tilde {A}}^{s_{i}}\right)^{\dagger }{\tilde {A}}^{s_{i}}=I}
すべての に対して 、(2)右正規化形式、
i
{\displaystyle i}
∑
s
i
A
~
s
i
(
A
~
s
i
)
†
=
I
{\displaystyle \sum _{s_{i}}{\tilde {A}}^{s_{i}}\left({\tilde {A}}^{s_{i}}\right)^{\dagger }=I}
すべての に対して、そして(3) 上記のMPS 仮説 内の行列の中に左正規化行列と右正規化行列の両方が存在する場合は混合標準形となる 。
i
{\displaystyle i}
N
{\displaystyle N}
DMRG 計算の目標は、各行列の要素を解くことです 。この目的のために、いわゆる 1 サイト アルゴリズムと 2 サイト アルゴリズムが考案されました。1 サイト アルゴリズムでは、一度に 1 つの行列 (1 つのサイト) のみの要素が解かれます。2 サイトとは、2 つの行列が最初に 1 つの行列に縮小 (乗算) され、次にその要素が解かれることを意味します。2 サイト アルゴリズムが提案されたのは、1 サイト アルゴリズムが局所的最小値に陥りやすいためです。上記の標準形式のいずれかで MPS を使用すると、計算がより有利になるという利点があります。つまり、通常の固有値問題につながります。標準化しないと、一般化された固有値問題を扱うことになります。
A
s
i
{\displaystyle A^{s_{i}}}
拡張機能
2004年に、行列 積状態のリアルタイム進化を実装するために、 時間発展ブロックデシメーション法が開発されました。このアイデアは、 量子コンピュータ の古典的なシミュレーションに基づいています。その後、DMRG形式内でリアルタイム進化を計算するための新しい方法が考案されました。A. FeiguinとSR Whiteの論文[2]を参照してください。
近年、行列積状態の定義を拡張して、この方法を2Dおよび3Dに拡張する提案がいくつか提出されています。F . Verstraete と I. Cirac によるこの論文を参照してください。[3]
さらに読む
SRホワイトによる原著論文[4]または[5]
DMRG とその起源に関する教科書: https://www.springer.com/gp/book/9783540661290
カレン・ホールバーグ による広範なレビュー [6]。
ウルリッヒ・ショルヴェックによる2つのレビュー。1つは元の定式化について議論している[7]、もう1つは行列積状態について議論している[8]。
ハビエル・ロドリゲス・ラグナ博士論文[9]。
DMRGとその時間依存拡張の紹介[10]。
arxiv.org上のDMRG電子プリントのリスト[11]。
アブイニシオ量子化学 のためのDMRGに関するレビュー記事 [12]。
アブイニシオ量子化学 のためのDMRGの紹介ビデオ [13]。
White, Steven R.; Huse, David A. (1993-08-01). 「反強磁性 S=1 ハイゼンベルグ鎖の低位固有状態の数値的再正規化群による研究」. Physical Review B. 48 ( 6). American Physical Society (APS): 3844–3852. Bibcode :1993PhRvB..48.3844W. doi :10.1103/physrevb.48.3844. ISSN 0163-1829. PMID 10008834.
行列積ツールキット: C++ で書かれた有限および無限行列積状態を操作するための無料の GPL ツールセット[14]
Uni10: C++ で多数のテンソル ネットワーク アルゴリズム (DMRG、TEBD、MERA、PEPS ...) を実装するライブラリ
Powder with Power: Fortran で書かれた時間依存DMRGコードの無料配布 [15] 2017-12-04に Wayback Machineでアーカイブ
ALPSプロジェクト: C++で書かれた時間非依存DMRGコードと 量子モンテカルロ コードの無料配布 [16]
DMRG++: C++ で書かれたDMRGの無料実装 [17]
ITensor(インテリジェントテンソル)ライブラリ: C++ で書かれたテンソルと行列積状態に基づくDMRG計算を実行するための無料ライブラリ[18]
OpenMPS: Python/Fortran2003で書かれたMatrix Product Statesに基づくオープンソースのDMRG実装。[19]
Snake DMRGプログラム: C++で書かれたオープンソースのDMRG、tDMRG、有限温度DMRGプログラム[20]
CheMPS2: C++で書かれた オープンソース(GPL)のスピン適応型DMRGコード、 第一原理量子化学用[21]
Block: 量子化学とモデルハミルトニアンのためのオープンソース DMRG フレームワーク。SU(2) と一般的な非アーベル対称性をサポートします。C++ で書かれています。
ブロック 2: 量子化学とモデルのための DMRG、動的 DMRG、tdDMRG、有限温度 DMRG の効率的な 並列 実装。Python / C++ で記述され て い ます 。
参照
参考文献
^ 中谷直樹 (2018)、「行列積状態と密度行列再正規化群アルゴリズム」、 化学、分子科学、化学工学のリファレンスモジュール 、エルゼビア、 doi :10.1016/b978-0-12-409547-2.11473-8、 ISBN 978-0-12-409547-2 、 2021-04-21取得