WannierTools专题

WannierTools:霍尔张量检查与单位换算

对比正反磁场和两档积分精度,独立核对零场电导,明确sigma/tau、rho乘tau与外部假设寿命。

更新于 2026-11-13约 3 分钟阅读按任务与环境选择适用配置
阅读本篇目录

本篇接着普通霍尔操作例,用同一批实际输出检查磁场反向、历史积分、k 网格和单位。先把输出定义弄清楚,再讨论电导、磁阻或霍尔系数。

1. 读取和画图#

下载四组实际输入、原生张量结果及画图工具,保存为 example.zip:

python3 -m zipfile -e example.zip .
cd wanniertools-ordinary-Hall
module load ase/3.29.0
bash read.sh
bash plot.sh

默认只读取已完成结果,不重新计算。重新运行时执行 bash submit.sh,模板加载 wanniertools/2.7.0-8173m,使用 oneAPI 2023.2、Intel MPI/MKL 编译的程序;向 CPU 分区申请 56 核整节点,例子仅启动 1 个 MPI 进程、1 个线程。新结果放在 work-new/,用 bash read.sh work-new analysis-read 读取。

正反磁场、积分加密、网格敏感性与原生单位

2. 正反磁场与张量逆#

cat inputs/z-negative/wt.in
cat analysis-read/WannierTools-ordinary-Hall-controls.csv

对本例非磁模型,+z 和 −z 结果满足 Onsager 转置关系 σij(B)=σji(−B),整体相对差约 1.2×10⁻¹⁵。横向分量反号,不能把正反号差异当作计算不稳定。

读取器还检查 σ·ρ≈I,原生打印精度下最大残差约 4.3×10⁻⁶。用户处理自己的结果时,应把九个分量组成矩阵后求逆和比较。

3. 历史积分与 k 网格分别加密#

本例选用历史片段数 1200,另一组增至 2400。完整矩阵归一化差约 0.000626。更粗的参数不能凭一条分量接近就认为整个张量稳定。

grep Nslice inputs/z-positive/wt.in inputs/z-finer-history/wt.in
grep Nk1 inputs/z-positive/wt.in inputs/mesh24-zeroB/wt.in

历史积分加密与 k 网格加密是两项独立检查。零场原生结果:

网格 σxx/τ,(Ω·m·s)⁻¹ 独立离散网格积分
12³ 4.15311×10¹⁹ 4.15310734×10¹⁹
24³ 2.06533×10¹⁹ 2.06533512×10¹⁹

独立结果使用同一个模型速度、费米分布导数及网格,不加额外自旋因子;与原生程序相符。两档网格之间的结果相差很大,因此这个例子并未收敛到可用于定量材料比较的输运系数。 实际研究需要继续加密并检查费米面、能窗、温度与模型质量。

4. 原生数值怎样变成物理单位#

本次原生输出是 σ/τ、ρ·τ,横轴是 Bτ:

原生量 单位 给定外部 τ 后
σ/τ (Ω·m·s)⁻¹ 乘 τ,得到 S/m
ρ·τ Ω·m·s 除 τ,得到 Ω·m
Bτ T·ps 除以 τ 的 ps 数值得到 T

例如仅作换算,假设 τ=1 ps=10⁻¹² s:

python3 units.py 1
head -6 analysis-read/WannierTools-OHE-assumed-tau.csv

则 12³ 零场 σxx≈4.15311×10⁷ S/m。τ 是用户输入的外部假设,不是本例从第一性原理求得,也不能从这组模型数据宣称真实材料寿命。

输入中 Relaxation_Time_Tau=1.0 在本包固定。若只是用另一假设寿命换算同一个 Bτ 结果,使用 units.py;不要随意改内部参数后仍认为横轴与原输出完全相同。

5. 用于自己的体系#

先检查 Wannier 能带与费米面;再对 Bτ、历史积分、k 网格分别检查;最后使用有依据的散射时间或明确标注的假设进行单位换算。霍尔系数还要声明磁场方向、张量下标与电荷符号约定,避免把 rho_xy 和 rho_yx 混用。

完整原生输出和独立积分代码均在下载包中;程序特性及输入版本可参照 WannierTools 官方教程。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗