ATOMKIT专题

ATOMKIT 结构转换:格式、单位与实操

用自建 Si 结构演示常见格式导出与 CIF/XSF 读回,说明 ASE、LAMMPS、PDB 的实际处理细节。

更新于 2026-11-05约 6 分钟阅读按任务与环境选择适用配置
阅读本篇目录

ATOMKIT 是 VASPKIT 团队的结构工具,适合在软件之间传递晶胞与原子坐标。本篇先做格式转换,下一篇再做原胞、标准晶胞、超胞和对称性。

本例使用集群的 ATOMKIT 0.9.0 官方预编译版本,在 login01 的个人工作目录执行短小结构处理。没有重新编译该程序,不将二进制中的编译标记当作完整编译器配置。辅助读取和绘图使用 ASE 3.29.0、spglib。

1. 准备自己的结构#

下载:Si 结构、操作与绘图脚本。资料只含本站自编脚本和自建结构,不包含 ATOMKIT 程序或上游自带文件。

unzip atomkit-structure-wave194.zip -d atomkit-si
cd atomkit-si
module load atomkit/0.9.0
cat POSCAR

示例是晶格常数 5.43 Å、八个原子的常规 Si 晶胞,原始输入如下:

Si
 1.0000000000000000
     5.4299999999999997    0.0000000000000000    0.0000000000000000
     0.0000000000000000    5.4299999999999997    0.0000000000000000
     0.0000000000000000    0.0000000000000000    5.4299999999999997
 Si 
   8
Direct
  0.0000000000000000  0.0000000000000000  0.0000000000000000
  0.2500000000000000  0.2500000000000000  0.2500000000000000
  0.0000000000000000  0.5000000000000000  0.5000000000000000
  0.2500000000000000  0.7500000000000000  0.7500000000000000
  0.5000000000000000  0.0000000000000000  0.5000000000000000
  0.7500000000000000  0.2500000000000000  0.7500000000000000
  0.5000000000000000  0.5000000000000000  0.0000000000000000
  0.7500000000000000  0.7500000000000000  0.2500000000000000

完整转换、晶胞处理、独立读取与画图可直接执行:

bash run.sh

程序在 cases/ 下为每个任务建立独立目录,避免同名输出混在一起。结果表为 analysis/formats.csv,图片在 figures/。

2. 交互操作的两个编号是什么意思#

atomkit

以导出 CIF 为例,先选择 113,再输入 175 POSCAR。第一行是目标导出格式,第二行是输入格式和输入文件名。

也可按实际交互顺序直接输入:

printf '113\n175 POSCAR\n' | atomkit
ls POSCAR.cif

本版导入列表和导出列表不完全相同。ABINIT 的102可用于导出,但不能据此拿102作为原生导入编号;导入时以实际弹出的列表为准。

3. 常用导出格式对照#

本例实际完成以下结构输出,并用 ASE、spglib 或对应结构字段的独立读者核对晶胞与原子坐标:

输出目标 编号或路线 示例文件
ABACUS 101 cases/export-101/POSCAR.STRU
ABINIT 102 cases/export-102/POSCAR.in
ASE 113→ASE cases/export-105/POSCAR.py
CASTEP 112 cases/export-112/POSCAR.cell
CIF 113 cases/export-113/POSCAR.cif
CP2K 114 cases/export-114/POSCAR.inp
FHI-aims 129 cases/export-129/POSCAR.in
Gaussian 134 cases/export-134/POSCAR.gjf
LAMMPS 136,补首行标题 cases/export-136/POSCAR.lmp
ORCA 146 cases/export-146/POSCAR.in
PDB 149 cases/export-149/POSCAR.pdb
Quantum ESPRESSO 156 cases/export-156/POSCAR.in
VASP 175 cases/export-175/POSCAR.vasp
XSF 185 cases/export-185/POSCAR.xsf
XYZ 189 cases/export-189/POSCAR.xyz

例如导出 VASP、XSF、XYZ:

printf '175\n175 POSCAR\n' | atomkit
printf '185\n175 POSCAR\n' | atomkit
printf '189\n175 POSCAR\n' | atomkit

Gaussian、ORCA 和普通 XYZ 在这里按有限原子坐标输出,不能把它们直接当作仍保留周期边界的 Si 晶体计算。本篇只转换结构,不计算这些有限原子模型的能量或其他性质。

独立读取不同结构转换路线后的 Si 坐标误差

PDB 坐标只有三位小数,本例最大匹配位置差约 0.000866 Å。它适合相应格式需求,不适合替代高精度优化结构。图中对数轴上的精确零误差仅为显示而放在 10⁻¹³ Å,真实数值保存在 CSV。

4. CIF 和 XSF 怎样读回 VASP#

printf '175\n113 POSCAR.cif\n' | atomkit
printf '175\n185 POSCAR.xsf\n' | atomkit

两条命令分别从 CIF、XSF 输入,选择175导出 VASP。最好放入不同目录操作,避免输出文件重名。本包相应目录为 cases/import-113、cases/import-185;读回结果保持本例八个 Si 原子、晶胞和周期坐标。

5. ASE 与 LAMMPS 的实用处理#

当前 0.9.0 在本例中使用原生105导出 ASE 时会改变部分坐标,因此本包采用 CIF → ASE 路线:

printf '113\n175 POSCAR\n' | atomkit
/public/toolkit/miniconda3/envs/ase-3.29.0/bin/python - <<'PY'
from ase.io import read, write
atoms = read('POSCAR.cif')
write('Si.py', atoms, format='py')
PY

这里调用已有 ASE 环境,不需要另装一个与 ATOMKIT 同名的 PyPI 项目。本包把替代路线明确记录在 cases/export-105/ROUTE.json,不把它称作原生105导出。

LAMMPS 导出为:

printf '136\n175 POSCAR\n' | atomkit

本版输出缺少 LAMMPS data 文件需要的首行标题。手动使用时,可保留原始文本,再只补一行注释:

cp POSCAR.lmp ATOMKIT-RAW-LAMMPS.txt
sed -i '1i# Si structure exported by ATOMKIT' POSCAR.lmp

本包已自动完成这个步骤,坐标与晶胞不改动。LAMMPS 的类型号并不自动等于元素,实际计算还需设置对应的 mass、势函数和类型映射。

6. 导出的结构不等于完整计算输入#

ABACUS、CP2K、CASTEP、Quantum ESPRESSO 等输出中可能含赝势、基组占位符或不完整的控制段。先确认结构,再按照目标软件教程补齐其余输入,不要直接把文件名改成程序默认输入名就提交生产任务。

本篇覆盖常用格式路线,没有把全部菜单、所有材料或 GUI 都当作已经演示。程序与许可条件见集群 $ATOMKIT_ROOT/license 及 ATOMKIT 官网。

表面、缺陷与简单双层#

继续阅读Si薄层与表面、空位和替位、复制薄层与界面间距。给出自建输入、实际逐行终端操作、原生结构和高清示意图;建模后仍需选择计算参数并优化。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗