# DMRG:不依赖MPS的最初版本,利用纠缠特征(约化密度矩阵)
# 比较好用的程序包:iTensor,TeNPy
# 直接进行参考:Simple-dmrg, Sophisticated-dmrg, dmrg-101-Tutorial
# 比较好的参考文献:
(1)最初版本(2)化学应用(3)基于MPS
# 精确对角化(ED),量子蒙卡(QMC):
ED:精确对角化的极限是48格点系统
QMC:遇到负符号问题 ~ METTs产生低纠缠态缓解负符号,DMRG,TRG截断修复近似
# 统计物理的重整化:
Block spin RG for Ising Model ( Leo Kadanoff )
# NRG:【Truncation,keep only some of the basis 】
怎样做:(1)With the Projrction H'_mn = <m|H|n>,(2)倍增=>截断=>倍增=>截断......
据说Konda 杂质模型算的不错,然而Heisenberg模型不行了,不符合Wilson-Chain:
直观点讲:波函数分块可以引入节点,不能回复到原来的一整个基态波函数,会偏移到低激发态
好在 Wilson-chain 是一种 Mapping的结果 几乎就是 独立格点 构成的,关联被忽略掉影响不大
# DMRG(0) - size 的 生长:【利用纠缠来优化关联,约化密度矩阵】
怎样做:(1)长 ‘点 ’(2)合理截断(纠缠,而非能级截断)
=> 最小纠缠生长 2-Sites:d x D ~ d^2 x D^2
=> 精确对角化ED:H最低本征矢, 最低本征值
(这个时候可适当插入可以忍受的ED,来监测基态迭代稳态)
=> Tr_env(d^2 x D^2), Tr_sys(d^2 x D^2),获得约化密度矩阵
~ 截断:\Psi\Psi* SVD保留前m;\Psi*\Psi SVD保留前m;
~ 区别:纠缠截断,而不是全体能级截断。
=> 各自截断保留 num_dimension = m => d x m ~ d^2 x m^2
部分求Trace 相当于 考虑到了块之间的关联。至于截断损失修复,在finite系统里可以用sweep
进一步优化基态收敛
# DMRG(1) - sweeping:【修复Env-Sys态的截断损失】
怎样做:(1)从Env不断释放2-sites,Sys吸收1-site 保留更大截断维数到M1(2)redo Sys;
=> 生长:SuperBlock_B.Env - 1~ 调用生长到N/2步骤版本;SuperBlock_A.Sys + 1~ 吸收1-Site
=> 修复性截断:Tr_SuperBlock_A.Sys(d^2 x D^2), \Psi\Psi* SVD保留前M1 (M1>M) , 一直到N-3
=> Redo Sys
SuperBlockState_B.Env 不断释放单格点是调用生长缓存,允许A.Sys跟尚无因本次裁剪引入更多损失的B.Env保持耦合情况下保留更多态M1;Redo Sys 做的是将AB互换做一样的事情。
第一次Sweep为Sys提供了各个长度的修复副本;NumSweep>2就能获得不错的精度
# DMRG 除计算基态以外的更多应用:
(0)配分函数
(1)关联函数
(2)Quasi - 1D
(3)
# DMRG 更多发展:
(0)vMPS - TEBD - TDVP(AKLT 模型 到 MPS)
(1)动量空间重整化
(2)含时演化重整化
(3)转移矩阵重整化
(4)频域空间重整化