Atomsk专题

Atomsk格式转换与属性保留

九种格式往返,检查晶胞、元素、速度和自定义列,并给出安全的单位处理步骤。

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

下载本组输入、脚本、参考输出与高清图。解压后使用新的工作目录;examples保存各例输入,reference保存实际结果。

1 先准备模型,再选操作#

Atomsk 0.13.1用于生成、变换和分析原子结构,不执行电子结构或能量优化。当前构建使用GFortran 13.3、OpenMP、LAPACK/BLAS 3.12.1;这里的小模型使用单线程,配套检查/绘图使用已有ASE和NumPy环境。Atomsk本身运行在CPU上。

module purge
module load atomsk/0.13.1 gpumdkit/1.5.8
atomsk --create fcc 4.05 Al -duplicate 2 2 2 base.cfg

得到32原子FCC Al,晶胞三边均为8.1 Å、体积531.441 ų。这里的晶格常数用于教学;换成自己的材料时,应使用与势函数或泛函一致的晶格参数。

直接运行单个下载实例:

python run.py option_shift

输出在work/option_shift。脚本拒绝覆盖已有目录;再次计算请复制一份新的资料包。批量运行所有示例:

sbatch run.sbatch all

这个批处理使用现有P100队列中的CPU资源,并不表示Atomsk有GPU加速。提交前可按自己获配分区调整SBATCH头部。不要把建模输出当成已经弛豫的结构。

2 格式往返:先检查晶胞,再检查属性#

输入decorated.cfg含32个Al、8.1 Å立方胞、marker=1…32及固定速度vx=0.1、vy=0.2、vz=0.3 Å/ps。在新目录逐条转换:

atomsk decorated.cfg export.cfg
atomsk export.cfg back-cfg.cfg
atomsk decorated.cfg export exyz
atomsk export.xyz back-exyz.cfg
atomsk decorated.cfg pos
atomsk POSCAR back-pos.cfg
atomsk decorated.cfg export.lmp
atomsk export.lmp back-lmp.cfg

pos输出名为POSCAR。生成extended XYZ时使用无扩展名前缀export exyz,避免.xyz扩展名同时触发普通XYZ输出而覆盖扩展格式。

格式 坐标/元素 晶胞 速度三列 自定义marker
cfg 保留 保留 保留 保留
xsf 保留 保留 不保留 不保留
exyz 保留 保留 保留 保留
pos 保留 保留 不保留 不保留
lmp 保留 保留 保留 不保留
gin 保留 保留 保留 不保留
cif 保留 保留 不保留 不保留
pdb 保留 保留 不保留 不保留
xyz 保留 缺失后由边界估计 不保留 不保留

本例普通XYZ再读回时,程序估计出12.15 Å的边界,不能替代原8.1 Å周期晶胞。CFG和extended XYZ适合保留自定义列;POSCAR适合交给VASP,但不携带这里的速度/marker。LAMMPS的type必须与实际元素映射核对,多元素模型不要仅凭编号猜元素。

九种格式对同一结构的属性保留情况

3 给结构增加属性#

准备velocities.txt:

velocity
1 0.1 0.2 0.3
2 0.1 0.2 0.3

这里只展示前两原子,下载文件列出全部32个。另建properties.txt:

auxiliary marker
1 1
2 2
3 3

同样补齐到32;marker是自定义标签,不是能量。按下面顺序读取:

atomsk base.cfg -properties velocities.txt -properties properties.txt decorated.cfg

本安装版应先读速度,再读其他自定义列;将速度追加到已有auxiliary后面存在读取兼容问题。每类属性使用独立文件,避免字段之间误读。

复制属性、删除属性和改变数值:

atomsk --copy-properties decorated.cfg shifted.cfg copied.cfg
atomsk decorated.cfg -rmprop marker without-marker.cfg
atomsk decorated.cfg -unit vx 2 vx-doubled.cfg

--copy-properties按照原子顺序对应;源/目标必须是同一批原子且顺序匹配。实际倍增后vx=0.2 Å/ps,vy、vz保持0.2和0.3。

原生-swap vx vy在本安装版不能作为已验证的数值列交换方式。资料包提供明确交换两列的脚本:

cp -a helpers my-helpers
cd my-helpers
python model_tools.py swap-velocities

得到swapped.cfg:vx=0.2、vy=0.1 Å/ps。

4 长度单位、分数坐标和原子约束#

atomsk base.cfg -unit A nm scaled exyz
atomsk base.cfg -fractional fractional.xyz
atomsk base.cfg -select below 2 z -fix all fixed.cfg

第一条将8.1 Å变为数值0.81 nm,同时坐标缩小十倍。此例使用extended XYZ;小于1的笛卡尔坐标写CFG时,本版可能误判成分数坐标。文件接入下游软件前,必须按它要求的单位转换回来;文件中的数值不会自动告诉所有程序“这是nm”。

-fractional表示坐标除以晶胞基矢后的无量纲数;它与Å→nm不是同一种操作。-fix添加fixx/fixy/fixz标签;并不会阻止之后的Atomsk几何操作。导入LAMMPS/VASP后,还应使用各软件的约束语法。

5 芯壳电荷与速度#

芯壳偶极的实际例子使用人为指定的Na/Cl电荷;速度去除整体运动脚本按质量加权处理,避免把随机样本当成恰好无漂移的速度。

格式能力可核对官方格式清单,属性语法参见properties。表格仅表示本例实际往返保留的字段,不代表格式规范允许的全部内容。

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

查看配图

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

100%查看原图 ↗