Wannier90:交流自旋霍尔与两种方法
扫描0到6eV光子能量,实操Qiao与Ryoo方法,理解自旋邻接矩阵和复数响应。
阅读本篇目录
在模型直流计算的基础上,本例进一步运行交流自旋霍尔响应。Qiao、Ryoo两种方法都实际计算了61个光子能量点,并保存实部、虚部和绘图程序。
1. 先读取实际光谱#
下载完整输入、实际结果与读取绘图程序,保存为 example.zip:
python3 -m zipfile -e example.zip .
cd wannier90-own-spin-model
bash read.sh
bash plot.sh
这三步读取附带的真实计算结果,生成 analysis-read 和 figures,不会重新提交计算。

图中横轴是光子能量 ħω,单位eV,不是直接以Hz表示的频率。扫描0—6 eV,步长0.1 eV,展宽0.05 eV;展宽是本次数值设置,不等于已经求得材料的散射寿命。
2. Qiao方法的交流设置#
在原 .win 中设置:
berry = true
berry_task = shc
shc_method = qiao
shc_alpha = 1
shc_beta = 2
shc_gamma = 3
berry_kmesh = 61 61 1
shc_freq_scan = true
kubo_freq_min = 0.0
kubo_freq_max = 6.0
kubo_freq_step = 0.1
kubo_adpt_smr = false
kubo_smr_fixed_en_width = 0.05
fermi_energy = 0
同目录保留 .chk/.eig/.mmn/.spn 等匹配文件,在已分配资源中运行:
postw90.x model
head -12 model-shc-freqscan.dat
该结果文件依次含记录序号、光子能量、响应实部和虚部,响应单位为 (ħ/e) S/cm。
3. Ryoo方法还需要什么#
shc_method = ryoo
Ryoo入口还读取 .sIu 和 .sHu。本模型在完整已知基中,按相邻k点精确构造:
sIu(k,b) = U(k)^dagger sigma U(k+b)
sHu(k,b) = U(k)^dagger sigma H(k) U(k+b)
.spn 给定k点处的自旋矩阵,不能替代上述相邻k点的两个文件。包内 spin-neighbor-operators.py 写出本版本所需的Fortran无格式记录,并处理原生读取端的转置约定。
cd work-new
python3 ../spin-neighbor-operators.py "$PWD"
ls foundation/model.sIu foundation/model.sHu
整包 run.py 已安排Qiao和Ryoo的直流、交流目录,无须手工拷贝各个文件:
bash submit.sh
# 新计算结束后
bash read.sh work-new analysis-read
bash plot.sh
请在新解压目录提交,避免将新输出混入附带的 reference-results。预处理与矩阵生成详见模型矩阵到自旋霍尔电导。
4. 读数据并画图#
head analysis-read/Wannier90-own-model-SHC-AC.csv
ls figures/Wannier90-own-model-AC-response.png
下载61点交流CSV。本次两种方法在输出精度内一致;与独立模型Kubo表达式相比,全部实部、虚部的最大差约 4.69×10⁻⁵ (ħ/e) S/cm。零光子能量处回到相同设置的直流结果约387.17772。
这个一致性建立在本例完整、已知且自旋守恒的模型空间上。真实SOC材料可能受能带截断、矩阵接口、Wannier插值及网格影响,仍应分别检查两种方法所需的数据和收敛,不能由本例推断它们在任意材料中数值相同。