ATOMKIT 导出格式:30个入口怎么选
按目标程序选择结构格式,理解单位、占位符及当前版本的转换限制。
阅读本篇目录
本例使用 ATOMKIT 0.9.0 官方 Linux 预编译程序,属于 VASPKIT 团队的结构工具,与同名 Python 包不同。集群通过 module load atomkit/0.9.0 使用;二进制含 GCC 9.4 与 Intel Fortran 运行库标记,完整上游编译参数未公开,不能据此指定一套完整编译链。ASE 辅助操作使用集群 ASE 3.29.0。短小结构处理在个人目录执行,不会自动开始 VASP 等计算。
下载本篇共用结构、命令、数据与作图包。解压后进入 atomkit-menu-examples;原生错误文件保留用于比较,请先看对应限制再使用。
先完成一次简单转换#
module load atomkit/0.9.0
cp inputs/POSCAR-Si POSCAR
atomkit
输入 113,再输入 175 POSCAR,得到 POSCAR.cif。113 是目标 CIF 格式,175 POSCAR 是源文件的格式与文件名。熟悉后可以直接记录输入:
printf '113
175 POSCAR
' | atomkit
ls -lh POSCAR.cif
下面的表覆盖当前导出菜单的 30 个入口。单位说明针对本例输出;能读出几何并不代表电子结构输入已经配齐。
| 编号 | 目标格式 | 本版使用要点 |
|---|---|---|
| 101 | ABACUS STRU | 晶格常数和原子坐标有各自单位标记;另配赝势、轨道和 INPUT |
| 102 | ABINIT | 结构模板;另配赝势和计算参数 |
| 105 | ASE Python | 原生导出曾出现 Si 坐标错误;使用 CIF→ASE 路线 |
| 107 | ATAT | 前行是晶胞参数,后接单位坐标系和分数坐标;不是能量数据 |
| 109 | AtomEye CFG | ASE 独立读取晶胞与 8 个 Si 坐标一致 |
| 112 | CASTEP CELL | 结构部分;仍需 .param 和对应赝势 |
| 113 | CIF | 通用周期结构交换的优先选择之一 |
| 114 | CP2K | 结构模板;补 KIND、基组、势函数与方法 |
| 115 | CPMD | 晶胞和坐标使用 bohr;赝势文件一行仍是占位符 |
| 123 | Elk | 晶格向量为 bohr、原子为分数坐标;ASE 可读,原生再导入有问题 |
| 124 | exciting XML | 本例 speciespath 属性缺一个结束引号,原文件不能直接作为 XML 输入 |
| 126 | DFTB+ HSD | GenFormat 几何可由 ASE 读取;还缺 Hamiltonian、参数文件等 |
| 127 | DMol3 INCOOR | 本例原生程序异常退出,输出为空;改用 ASE |
| 129 | FHI-aims | 读取 atom/atom_frac 标记区分坐标;另配 control.in |
| 132 | FLEUR | 晶格尺度为 bohr;结构片段有旧式头部,不能视为完整 inpgen 输入 |
| 134 | Gaussian | 分子输入片段;明确电荷、多重度、方法与周期性是否丢失 |
| 136 | LAMMPS | 本版输出缺标题行;加标题后再读,原始文件单独保存 |
| 138 | JDFTx | 晶格为 bohr;默认 coords-type Lattice,ion 使用分数坐标 |
| 142 | Octopus | 本例部分 z 错用了 x;必须从正确结构重新生成坐标 |
| 144 | OpenMX | 几何一致,但 Sixxxx 基组名、X.X 自旋占位符必须填写 |
| 146 | ORCA | 分子结构;方法、电荷、多重度仍需按任务设置 |
| 149 | PDB | 输出可用 ASE 读几何;原生再导入会丢失或误识别元素 |
| 156 | Quantum ESPRESSO | 几何标记和单位要保留;另配赝势及计算控制 |
| 165 | RSPt | 晶格尺度为原子单位;这里只提供结构片段 |
| 168 | SIESTA FDF | 晶胞 Å,原子 Fractional;另配赝势及 SCF 参数 |
| 175 | VASP POSCAR | 保留元素顺序并与 POTCAR 一致;不能由结构推断 INCAR |
| 180 | Wannier90 WIN | 仅 unit_cell_cart 与 atoms_frac;还需投影、k 点与 num_wann |
| 182 | WIEN2k STRUCT | 几何数值一致,但缺 MULT/ISPLIT 与对称操作等完整结构项 |
| 185 | XSF | 周期结构交换;原生读写已在前篇给出 |
| 189 | XYZ | 常规 XYZ 仅表达元素和笛卡尔坐标,不能假定保留周期晶胞 |
单位核对的实际数值#
自有 Si 常规胞有 8 个原子,晶格常数 5.43 Å。CPMD、Elk、JDFTx 等输出的长度为 10.2612132839 bohr,乘以约 0.529177 Å/bohr,得到原来的 5.43 Å。第二个 Si 分数坐标 (0.25,0.25,0.25) 对应笛卡尔坐标 (1.3575,1.3575,1.3575) Å。
本批 15 个新增导出入口逐个运行;除 DMol3 空文件、Octopus 坐标错误外,另外 13 个入口的几何数值与源结构一致,其中 exciting 仍存在 XML 语法问题。其余早期入口的实际案例见结构转换基础。没有把这些片段作为 30 套完整的电子结构计算输入运行。

图左展示真实 Octopus 导出错误,右侧是其他格式的几何读取残差。图中的通过阈值只用于结构一致性,不代表目标程序可直接计算。
三条实用的替代转换路线#
先进入工具包目录,用独立的 ASE 读取和写出结构:
module load ase/3.29.0
python - <<'PYCODE'
from ase.io import read, write
si = read('inputs/POSCAR-Si', format='vasp')
write('Si.incoor', si, format='dmol-incoor')
write('Si.py', si, format='py')
# Elk 导出可以用 ASE 读取,转成原生导入稳定的 CIF。
a = read('native-cases/format-exports/123/POSCAR.in', format='elk')
write('Si-from-Elk.cif', a, format='cif')
PYCODE
若你的模块环境中 python 未随 ASE 模块切换,可直接使用 /public/toolkit/miniconda3/envs/ase-3.29.0/bin/python。本包的 alternatives 已保存这些实际生成的结构。Octopus 坐标从正确 Si 分数坐标重新生成,不能仅给错误文件补一个标题。exciting 的替代文件只修复缺引号,未改变数值;仍需配置物种目录与电子结构计算参数。
bash results.sh
bash plot.sh
公开 CSV 为 Atomkit-export-formats.csv。更多输入操作见导入与晶体建模,全部菜单见功能导航。单位可参考 JDFTx coords-type 与 FLEUR inpgen。