ATOMKIT 跨程序路径检查与转换
核对实际跨程序导出坐标,使用完整三分量的独立路径转换片段。
阅读本篇目录
跨程序导出路径时,需要同时检查坐标三分量、倒格矢基底、路径断点和目标程序语法。ATOMKIT 0.9.0 的部分导出模板存在坐标问题;本篇给出实际文件中的例子,以及从已核对路径生成独立转换文件的方法。
1. 下载并查看对照图#
下载结构、原生输出和转换工具,保存为 example.zip:
python3 -m zipfile -e example.zip .
cd atomkit-kmesh-kpath
source ./env.sh
bash plot-results.sh
ls -lh plots/atomkit-cross-format-coordinate-check.png

使用 ATOMKIT Standard 0.9.0 官方预编译程序。本例输入、环境和原胞选择见 k 网格与高对称路径。这里展示的是采样文件和模板片段,不代表已经运行这些目标电子结构程序。
2. 实际例子:X 点三分量不能重复#
对于本例采用的 Si 原胞,X 点的分数坐标为 (0.5,0,0.5)。当前程序的 CP2K、Phonopy、Wannier90 路径导出却把这个点写成 (0.5,0.5,0.5);这两个向量并不相同。
可以实际生成一份 CP2K 模板,查看 SPECIAL_POINT:
source ./env.sh
mkdir check-cp2k
cp POSCAR-Si8 check-cp2k/POSCAR
cd check-cp2k
atomkit <<'INPUT'
314
3
175 POSCAR
0.04
INPUT
grep SPECIAL_POINT KPATH.inp
cd ..
这份原生输出保留用于说明问题,不要将它直接用于本例的 CP2K 能带计算。原生 OpenMX 路径行还缺少端点坐标分量;Octopus 结构模板中的部分 Si 坐标也与输入不符。程序正常退出并不意味着这些文件可以直接采用。
3. 从已核对的路径显式转换#
下面工具读取已核对的 VASP KPATH.in,把每个端点的三个分量完整地写入独立文件:
source ./env.sh
"$PYTHON_FOR_ANALYSIS" export-paths.py
ls -lh converted-paths/
cat converted-paths/wannier90-kpath.win
grep SPECIAL_POINT converted-paths/cp2k-band.inp
cat converted-paths/phonopy-band.conf
已有本次生成的 work 时使用该结果;尚未重算时读取附件中真实参考输出。输出如下:
| 文件 | 用途 |
|---|---|
| cp2k-band.inp | BAND_STRUCTURE / KPOINT_SET 片段 |
| phonopy-band.conf | BAND、BAND_POINTS 路径设置 |
| wannier90-kpath.win | begin/end kpoint_path 块 |
| openmx-kpath.in | 完整三分量的 Band.kpath 块 |
这些是路径片段,仍需放入你已经准备好的目标程序输入中。 CP2K 的基组/赝势和已有自洽设置、Phonopy 的力常数及匹配原胞、Wannier90 的模型文件、OpenMX 的物种/电子数设置,都需要各自准备。转换工具不启动这些程序,不会把缺少的计算数据补成已有结果。
本例六段路径按原来的顺序与断点写出。原生文件保持原样,转换文件放在 converted-paths 中;目标程序对采样数的定义仍应按各自参数说明设置。
4. 当前版本导出的适用范围#
下面各项均查看了本例实际生成的文件,结论针对当前固定版本与本例结构:
| 目标菜单 | 本例路径/模板的使用建议 |
|---|---|
| 301 ABACUS | 使用配套原胞 KPATH.STRU 与 KLINES,按本系列操作准备 INPUT |
| 302 ABINIT | 点坐标正确;是模板,需另行核对完整输入、数据集参数与路径分段 |
| 312 CASTEP | 点坐标正确;连接点序列时需处理 U 与 K 的断点 |
| 314 CP2K | 原生端点三分量重复,使用上面的独立转换片段 |
| 323 Elk | 点坐标正确;需另行处理路径分段和完整计算设置 |
| 326 DFTB+ | 点坐标正确;还需自己的参数集、已有电荷与有效输入 |
| 329 FHI-aims | 六段 output band 坐标正确;将对应行放入自己的 control.in |
| 342 Octopus | 本例结构导出坐标不可靠,使用其他已核对的结构转换路线 |
| 344 OpenMX | 原生路径行分量不完整,使用独立转换片段并补齐物种设置 |
| 351 Phonopy | 原生路径坐标重复;该菜单的 mesh 分支本例未生成网格文件 |
| 356 Quantum ESPRESSO | K_POINTS 坐标可作参考;原生整体文件并非可直接运行的完整输入 |
| 368 SIESTA | BandLines 坐标可作参考;基组、赝势与其他设置需自行准备 |
| 375 VASP | 本例原胞与 line-mode 路径相匹配,详见配套教程 |
| 380 Wannier90 | 原生路径坐标重复,使用独立转换的 kpoint_path 块 |
同样不要把 OpenMX 模板中的 Dos.Kgrid 当成已准备好的自洽采样设置。其他程序即使网格整数相同,也可能采用不同的网格偏移或输入块名称;需要结合目标程序说明使用。
5. 换成自己的结构时检查什么#
先确认输入结构和最终计算晶胞,再确认倒格矢基底、路径端点和断点,最后按目标程序准备完整输入。本例仅对 Si 的 fcc 路径做了数值核对,不应将这组坐标套到其他晶型上。
如果只需要常见 VASP/ABACUS 入口,直接按 k 网格与高对称路径 操作。需要其他程序时,优先使用对应程序专题中已经展示完整输入和实际运行结果的工作流。