Wannier90 初始化、预条件与输入关键词索引
七组同源Si控制例及固定4.0.3源码的283个输入词索引。
阅读本篇目录
下载完整输入、参考数据和绘图程序,保存为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. 按问题选择控制参数#
| 目的 | 本包算例 | 关键设置 | 检查什么 |
|---|---|---|---|
| 引导初期中心 | guiding-centres | guiding_centres | 中心和展宽随迭代变化 |
| 优先局域某个函数 | selective-one | slwf_num | 目标函数与总展宽分别看 |
| 约束中心 | selective-centre | slwf_constrain、slwf_lambda | 目标距离和约束强度 |
| 改变平移中心设置 | translation-centre | translation_centre_frac | 原始中心与周期等价性 |
| 优化预条件 | preconditioner | precond | 迭代成本与结果稳定性 |
| 使用Bloch相位初始化 | bloch-phase-initialization | use_bloch_phases | 输入投影与初始化依赖 |
| 位置相关矩阵 | position-matrix-export | write_rmn、write_r2mn | 文件格式、单位、矩阵一致性 |
cat CASES.json
cat inputs/preconditioner/wannier90.win
sbatch job.slurm preconditioner
sbatch job.slurm bloch-phase-initialization
cat wannier-controls.csv
预条件例增加precond = true;Bloch相位例增加use_bloch_phases = true。两例在本Si模型固定迭代条件下都回到约6.49053416Ų的总展宽。此结果只说明这里的操作与目标一致,不意味着每个材料都会得到相同局部极小值,也没有测量性能加速。
2. 平移设置的注意事项#
translate_home_cell = true
translation_centre_frac = .5 .5 .5
分数坐标选择了表示方式,不能改变真实谱。本例检查原始U和HR;安装版4.0.3自动home-cell XYZ/vdW导出存在独立坐标问题,因此不把这两个导出作为正确的平移中心证据。请使用文本检查点原始中心和整数晶格折回方法,详见Γ点与vdW。
3. 输入词索引怎么读#
随包input-keyword-map.csv列出固定4.0.3源码发现的283个输入词及块名,包括主程序与postw90。它是查找索引,不表示283项都分别做过独立材料计算。表中的present_in_executed_input只表示该词出现在已运行的输入,某些词仍受主开关、能带窗口或编译接口条件影响;reference_only需要按官方说明准备对应数据。
head -n 12 input-keyword-map.csv
grep '^slwf_' input-keyword-map.csv
grep '^shc_' input-keyword-map.csv
优化参数、投影、对称、纠缠、插值、响应、输运、文件转换分别进入功能导航。不建议一次加入全部参数;先保证常规Si教程能复现,再每次只改变一个物理目标。
需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。