Wannier90 选择性局域化与中心约束
用同一套真实Si价带矩阵比较普通局域化、选择性局域化和中心约束。
阅读本篇目录
下载完整输入、参考数据和绘图程序,保存为example.zip:
python3 -m zipfile -e example.zip .
cd wannier-controls-examples
bash results.sh
bash plot.sh
环境使用wannier90/4.0.3-serial,Intel ifx2024.2、AVX2、MKL顺序库;MPI构建使用Intel MPI2021.13。本文小例子用单线程即可。job.slurm申请CPU分区资源,再由run.py在新的work/算例名下运行。查看参考结果不需要重新计算;重复计算时换用新的解压目录。
1. 先准备同一套电子结构数据#
本例复用鸢算科技集群此前VASP6.6.1计算的两原子Si、4×4×4均匀k网格矩阵,保留4条价带与4个Wannier函数。改变的是Wannier优化目标,没有重算DFT。
先看输入和七种设置的结果:
cat inputs/guiding-centres/wannier90.win
cat wannier-controls.csv
win中有完整晶胞、原子位置、64个k点、投影与排除能带。num_wann=4表示4个目标函数,num_iter=300是本例统一迭代上限,不能代替您自己体系的收敛检查。
2. 普通局域化与选择一个目标函数#
普通例子使用投影、引导中心及全部4个函数的总展宽目标:
num_wann = 4
num_iter = 300
guiding_centres = true
num_guide_cycles = 1
num_no_guide_iter = 0
选择性例子增加:
slwf_num = 1
它只优先优化排序中的第1个函数,不会同时保证其余3个函数也更紧凑。投影顺序会影响您选中了谁。
sbatch job.slurm guiding-centres
sbatch job.slurm selective-one
Slurm执行的核心命令为:
wannier90.x -pp wannier90
wannier90.x wannier90
本包已配套amn/mmn/eig,所以可直接运行第二步。换成新材料时,-pp之后还要先用VASP、QE等接口生成相应矩阵,不能仅有win就得到电子结构。
3. 给所选中心加约束#
slwf_num = 1
slwf_constrain = true
slwf_lambda = 0.5
begin slwf_centres
1 .125 .125 -.375
end slwf_centres
中心位置使用晶格分数坐标。slwf_lambda调节中心约束项的权重,增加约束会改变优化问题;需要同时观察中心距离与展宽,不能只看总展宽。
sbatch job.slurm selective-centre
grep -A 8 'Final State' reference-results/selective-centre/wannier90.wout
| 设置 | 第1个函数展宽/Ų | 4个函数总展宽/Ų |
|---|---|---|
| 普通引导中心 | 1.6226332 | 6.4905342 |
| 只优化第1个函数 | 1.3125040 | 7.0740384 |
| 选择性并约束中心 | 1.3125040 | 7.0740381 |
选择性目标减小了第1个函数的展宽,同时增大了4个函数的总展宽。这是不同优化目标的结果,不能据此宣称某一种设置普遍更好。原始DFT网格上的价带本征值保持一致,输出HR六位小数带来的最大回算差约10⁻⁵eV。

4. 什么时候使用#
想围绕特定位点构造一个较紧凑的局域轨道时,可尝试选择性局域化;想得到全部目标函数的常规紧束缚模型时,先从普通MLWF流程开始。逐一检查投影、能窗、中心、展宽和插值能带,再决定采用哪种目标。本例固定300步,用于比较操作,不代表唯一规范或研究收敛结果。
方法参数见官方Wannier90参数说明。