Wannier90:模型矩阵到自旋霍尔电导
用四能带小模型实践预处理、投影、Hamiltonian插值和直流自旋霍尔张量。
阅读本篇目录
如果想先看清 .amn、.mmn、.eig、.spn 怎样进入 Wannier90 和 postw90,可以从这个四能带小模型开始。本例已在鸢算科技集群运行 Wannier90 4.0.3,给出完整矩阵生成脚本、输入和实际输出。
1. 下载并读取结果#
下载完整输入、实际结果与读取绘图程序,保存为 example.zip:
python3 -m zipfile -e example.zip .
cd wannier90-own-spin-model
bash read.sh
bash plot.sh
这三步读取附带的真实计算结果,生成 analysis-read 和 figures,不会重新提交计算。

2. 本例是什么体系#
这是自旋守恒的四能带紧束缚模型,两个2×2自旋块为:
H_up = sin(kx) sigma_x + sin(ky) sigma_y
+ [-1 + cos(kx) + cos(ky)] sigma_z
H_down = -sin(kx) sigma_x + sin(ky) sigma_y
+ [-1 + cos(kx) + cos(ky)] sigma_z
能量单位eV,晶格 a=b=3 Å、c=10 Å,所有基函数中心位于原点。实际物理基顺序为 up_s, up_pz, down_s, down_pz。.nnkp 给出的投影顺序为 up_s, down_s, up_pz, down_pz,生成程序明确处理了这个排列差异。
输入中的 H 只是让预处理建立投影条目的占位标签,本例不是氢材料的DFT计算。这里的四个Wannier函数覆盖全部四条能带,num_iter=0 使用完整空间的投影变换,没有执行迭代局域化;研究真实材料时仍需先完成相应DFT、SOC和Wannier化。
3. 看清输入文件#
cat inputs/foundation/model.win
完整输入如下,包含4×4×1原始网格及直流设置:
num_bands = 4
num_wann = 4
spinors = true
num_iter = 0
write_hr = true
write_tb = true
write_u_matrices = true
use_ws_distance = true
begin unit_cell_cart
ang
3 0 0
0 3 0
0 0 10
end unit_cell_cart
begin atoms_frac
H 0 0 0
end atoms_frac
begin projections
H:s;pz
end projections
mp_grid = 4 4 1
begin kpoints
0.00000000000000 0.00000000000000 0.00000000000000
0.00000000000000 0.25000000000000 0.00000000000000
0.00000000000000 0.50000000000000 0.00000000000000
0.00000000000000 0.75000000000000 0.00000000000000
0.25000000000000 0.00000000000000 0.00000000000000
0.25000000000000 0.25000000000000 0.00000000000000
0.25000000000000 0.50000000000000 0.00000000000000
0.25000000000000 0.75000000000000 0.00000000000000
0.50000000000000 0.00000000000000 0.00000000000000
0.50000000000000 0.25000000000000 0.00000000000000
0.50000000000000 0.50000000000000 0.00000000000000
0.50000000000000 0.75000000000000 0.00000000000000
0.75000000000000 0.00000000000000 0.00000000000000
0.75000000000000 0.25000000000000 0.00000000000000
0.75000000000000 0.50000000000000 0.00000000000000
0.75000000000000 0.75000000000000 0.00000000000000
end kpoints
berry = true
berry_task = shc
shc_method = qiao
spn_formatted = true
shc_freq_scan = false
shc_alpha = 1
shc_beta = 2
shc_gamma = 3
berry_kmesh = 31 31 1
berry_curv_adpt_kmesh = 1
fermi_energy = 0
kubo_adpt_smr = false
kubo_smr_fixed_en_width = 0.05
shc_alpha=1 为电流方向x,shc_beta=2 为电场方向y,shc_gamma=3 为自旋极化方向z。berry_kmesh 是响应插值网格,与前面的 mp_grid 不是一个设置。
4. 重新计算时的顺序#
第一次可直接用整包脚本:
bash submit.sh
脚本使用 wannier90/4.0.3-serial,编译器为Intel ifx 2024.2,AVX2与MKL顺序库;实际运行1线程。以下是作业内部的核心顺序,在已分配的CPU资源内执行:
module load wannier90/4.0.3-serial
cd work-new/foundation
wannier90.x -pp model
cd ..
python3 ../model-matrices.py "$PWD"
cd foundation
wannier90.x model
postw90.x model
预处理产生 .nnkp;model-matrices.py 按同一模型生成 .amn/.mmn/.eig/.spn;随后Wannier90生成Hamiltonian,postw90计算响应。资料包中的Python入口使用集群ASE环境,包含NumPy与SciPy。
head -12 work-new/foundation/model_hr.dat
cat work-new/foundation/model-shc-fermiscan.dat
5. 实际结果与网格对照#
| 设置 | 自旋霍尔电导,单位 (ħ/e) S/cm |
|---|---|
| Qiao,xy,自旋z,31×31×1 | 387.17772 |
| Qiao,yx,自旋z,31×31×1 | −387.17772 |
| Qiao,xy,自旋z,61×61×1 | 387.17772 |
| Ryoo,xy,自旋z,61×61×1 | 387.17772 |
本例费米能0 eV、零温占据,固定展宽0.05 eV。31与61网格在显示精度内一致;模型解析能带与原生Hamiltonian在323个网格外点的最大能量差约 1.78×10⁻¹⁵ eV。可下载直流结果CSV和插值能量CSV。
c=10 Å 参与三维体积归一化;改变层间长度会改变以S/cm表示的体响应,比较二维模型时应一并说明长度约定。这里不把模型输出当作真实材料预测。
6. 接着计算交流响应#
见交流自旋霍尔与两种方法输入。真实材料中不能直接复制这套模型矩阵,尤其不能把任意SOC能带的自旋矩阵简单设成固定对角数。