WannierTools 反常能斯特响应
运行ANE_calc,读取化学势、温度和九种展宽输出,说明αxy单位、网格与实验能斯特电压的区别。
阅读本篇目录
WannierTools 的 ANE_calc 从 Berry 曲率相关的反常霍尔电导计算横向热电电导 αxy。本例给出输入、终端运行、温度与化学势扫描,并解释输出单位和展宽。
1. 下载与查看#
下载输入、真实输出和绘图脚本,保存为 example.zip:
python3 -m zipfile -e example.zip .
cd wanniertools-anomalous-nernst
bash show-reference.sh
bash plot-results.sh
ls -lh plots/wanniertools-anomalous-Nernst-response.png

本例采用 Berry 曲率教程 的自建双轨道 QWZ 模型,m=-1,并提供 m=-3 的另一组。晶格 3×3×10 Å,两个轨道共点,不含自旋倍数,模型没有 kz 色散。它用于操作和数值理解,不是材料 DFT 拟合。
环境为 WannierTools 2.7.0,oneAPI 2023.2 / ifort 2021.10、Intel MPI 2021.10、MKL LP64 顺序库和 ARPACK-NG 3.9.1。env.sh 加载现有模块与分析 Python;计算在分配的兼容 CPU 资源内执行。
2. 设置化学势和温度#
&CONTROL
ANE_calc=T
/
&SYSTEM
NumOccupied=1
SOC=0
E_FERMI=0
/
&PARAMETERS
Nk1=35
Nk2=35
Nk3=2
Eta_Arc=0.02
OmegaNum=5
OmegaMin=-1.5
OmegaMax=1.5
NumT=3
Tmin=100
Tmax=300
/
KCUBE_BULK
0 0 0
1 0 0
0 1 0
0 0 1
完整输入还包括已经写好的 LATTICE、ATOM_POSITIONS、PROJECTORS 和 HR。
OmegaMin/OmegaMax/OmegaNum 在这里给出 5 个化学势:-1.5、-0.75、0、0.75、1.5 eV。NumT/Tmin/Tmax 给出 100、200、300 K。因此每种展宽输出 5×3=15 行。
本例 E_FERMI=0,化学势采用模型当前的能量参照。换自己的 HR 时应同步核对零点,不能把这里的 μ 数值当成相对于真空的能量。
3. 实际运行一组#
source ./env.sh
mkdir manual
cp reference-results/native/ane-m1-n35/wt.in manual/
cp reference-results/native/ane-m1-n35/model_hr.dat manual/
(cd manual && wt.x)
ls manual/alpha_ane_eta*meV.txt
head -n 9 manual/alpha_ane_eta2.00meV.txt
程序会生成九种展宽的文件。Eta_Arc=0.02 eV 时,文件名中的数值分别为 2、4、8、16、20、40、80、160、200 meV;例如:
alpha_ane_eta2.00meV.txt
alpha_ane_eta20.00meV.txt
alpha_ane_eta200.00meV.txt
它们是 Eta_Arc 的 0.1、0.2、0.4、0.8、1、2、4、8、10 倍,不是九个温度。
4. 读输出并用终端画图#
每个文件有 5 列:化学势 μ(eV)、温度 T(K)、αxy、αyz、αzx。后三列单位为 A/(m·K)。数据按“同一个 μ 的三个温度,再到下一个 μ”的顺序排列。
画 μ=1.5 eV、η=2 meV 的三温度曲线:
gnuplot <<'PLOT'
set terminal pngcairo size 1400,1000 font ',20'
set output 'manual/alpha-temperature.png'
set xlabel 'Temperature (K)'
set ylabel 'alpha_xy (A/(m K))'
plot 'manual/alpha_ane_eta2.00meV.txt' every ::12::14 using 2:3 with linespoints title 'mu=1.5 eV'
PLOT
ls -lh manual/alpha-temperature.png
every ::12::14 选择从零编号的第 12–14 条数据,即最后一个 μ 的三行。若改变 OmegaNum 或 NumT,行号也要随之调整。配套 Python 图会读取全部条件,省去手动选行。
αxy 与能斯特电压的区别#
这里直接得到的是横向热电电导 αxy。 要换成实验开路条件下的能斯特电场或电压,还需要纵向/横向电导以及相应张量关系。不能只把这个输出改个单位就当作实验能斯特电压。
本例是无自旋双轨道模型,当前 AHC/ANE 分支没有额外乘以 2。不要直接套用 按电子数求费米能级 中 SOC=0 的电子计数倍数;不同性质的输出约定应分别核对。
5. Eta_Arc 和温度为何要分别检查#
此版本先计算一组随能量变化的反常霍尔电导,其中 Eta_Arc 控制占据平滑;再以指定温度的费米分布导数进行热卷积,得到 α。Eta_Arc 与扫描温度是两个独立参数。
此外,当前 ANE 内部能量积分以 0.001 eV 为步长,并在请求的化学势范围两侧各扩展 1 eV。OmegaNum 控制的是输出的化学势个数,不会把内部积分步长改成“范围除以 OmegaNum”。这些内部设定应与所用版本一起理解。
九种展宽是用来观察结果对平滑的敏感性,不应随意挑一条最符合预期的曲线。本例较大的展宽也会改变响应幅度,见图 C。
6. 网格对照#
m=-1、μ=1.5 eV、T=300 K、η=2 meV 的实际结果:
| 网格 | αxy,A/(m·K) |
|---|---|
| 15×15×2 | -0.0687233 |
| 25×25×2 | -0.0446147 |
| 35×35×2 | -0.0442138 |
较粗网格差异明显。后两组在这个点较接近,不代表所有 μ、温度和展宽都已收敛。实际材料应加密费米能级附近及曲率变化快的区域,并继续检查网格。
全部四组、九展宽、五化学势、三温度共 540 个 αxy 输出均与解析模型和独立积分比较,本次最大差约 4.3×10⁻⁷ A/(m·K)。这说明计算流程与模型公式一致,材料模型的适用性和采样收敛仍需另外判断。
本模型用 c=10 Å 的晶胞体积归一化,因此输出是三维体密度形式。研究二维材料时要处理好真空厚度和片层响应的归一化;不能直接比较采用不同真空厚度的体密度数值。
7. 重算完整四组#
sbatch job.slurm
或在已经获得的兼容 CPU 资源内:
bash run.sh
bash plot-results.sh
cat anomalous-nernst-summary.csv
整套依次运行 m=-1 的三个网格和 m=-3 的 25×25×2 对照。原生文件在 work/,汇总和图分别在 CSV 与 plots/。已有 work/ 时停止;重新解压到另一目录可从头重算。
接口可对照 WannierTools 官方对应源码;本篇数值和字段说明按集群当前 2.7.0,在线分支后续可能变化。