Wannier90 外部哈密顿量输运:从一维链开始
bulk和左右电极模式的完整小模型、矩阵文件、提交命令及透射率。
阅读本篇目录
下载完整模型、Fortran调用程序、参考数据和画图脚本,保存为example.zip:
python3 -m zipfile -e example.zip .
cd wannier-transport-examples
bash results.sh
bash plot.sh
采用独立wannier90/4.0.3-serial,Intel ifx2024.2、AVX2、MKL顺序库。这里是自己定义的一轨道紧束缚模型,在集群实际调用原版Wannier90输运库计算;没有把解析曲线冒充程序计算,也没有将这个模型称为材料DFT结果。所有任务单线程、无需GPU。
1. 先理解左右电极模型#
一个中心轨道连接左右半无限链,所有最近邻跳跃积分为−1eV。比较3种情况:中心和电极在位能全为零;中心在位能升到0.5eV;中心0.5eV且右电极升到0.2eV。另算一条完美体相链作参照。它展示矩阵如何连接,不代表某种真实原子结构。

2. 输入文件怎么组织#
cat inputs/lcr-impurity/chain.win
ls inputs/lcr-impurity
主要输运设置:
transport = true
transport_mode = lcr
tran_read_ht = true
tran_win_min = -2.5
tran_win_max = 2.5
tran_energy_step = .05
one_dim_axis = z
tran_num_ll = 1
tran_num_rr = 1
tran_num_cc = 1
tran_num_lc = 1
tran_num_cr = 1
tran_num_bandc = 1
tran_use_same_lead = false
完整WIN还保留晶胞、轨道和k点等基础输入,请用随包文件。每个主层和中心只有一个轨道,因此上述维数均为1;真实材料不能照搬这些维数。两侧电极不同或希望明确读右电极文件时保留tran_use_same_lead=false。
3. 五份矩阵的实际内容#
左电极chain_htL.dat:首行注释,接着H00维数与矩阵,再接H01维数与矩阵。
Own scalar semiinfinitelead
1
0
1
-1
右电极chain_htR.dat格式相同,非对称例子把在位能0改成0.2。中心chain_htC.dat:
Own scalar centralregion
1
0.5
左右连接矩阵chain_htLC.dat、chain_htCR.dat本例内容相同:
Own lead-central coupling
1 1
-1
连接文件有行、列两个维数。多轨道矩阵需遵循程序读取的Fortran列优先顺序,不能把任意HR文件改名当成这些文件。
4. 在集群提交#
sbatch job.slurm lcr-clean
sbatch job.slurm lcr-impurity
sbatch job.slurm lcr-asymmetric
sbatch job.slurm bulk-chain
作业脚本首次会编译随包小型Fortran调用程序,再运行指定模型。程序通过已安装的公开Fortran库接口读取输入并调用原版w90_transport。当前4.0.3命令行入口在读取外部HT矩阵后的信息打印阶段存在兼容问题,因此本教程使用这个调用入口;它设定本例零能量参考并跳过信息打印,不改写哈密顿量和输运算法。无需管理员权限,也不覆盖公共程序。
运行结束查看:
cat work/lcr-impurity/chain.wout
head work/lcr-impurity/chain_qc.dat
head work/lcr-impurity/chain_dos.dat
chain_qc.dat两列为能量eV、原生透射系数;chain_dos.dat两列为能量eV、中心区域DOS,单位eV⁻¹。
5. 本例得到什么#
| 模型 | E=0时T | E=0时DOS/eV⁻¹ |
|---|---|---|
| 体相链 | 1.000000000 | 0.159194737 |
| 左右电极、均匀中心 | 1.000000000 | 0.159115159 |
| 中心0.5eV | 0.941204146 | 0.149759848 |
| 中心0.5、右侧0.2eV | 0.961378392 | 0.153355869 |

中心散射改变透射;非对称电极也改变可传播能窗。不要把所有能量处都套成“中心势垒越大,透射越低”的单调结论。参考官方输运输入说明。