Atomsk晶体、表面与格式转换实操
从Al、Fe、Si小模型开始,核对格式往返并构建Al(111)薄层。
阅读本篇目录
下载本篇输入、完整脚本、数据与高清图。解压后在新目录运行,reference保存鸢算科技实际运行的参考结果。
1 加载环境与运行完整示例#
Atomsk负责原子结构生成和变换,不计算体系能量。本例使用beta-0.13.1,GFortran 13.3、OpenMP和私有LAPACK/BLAS 3.12.1构建;小模型单线程即可。配套Python只做结构核对和绘图,使用ASE 3.29.0。
module purge
module load pymatgen/2026.9.24 atomsk/0.13.1
mkdir work
cp atomsk_examples.py work/
cd work
python atomsk_examples.py
脚本依次生成6个小流程,结果各在独立文件夹中。直接使用Atomsk命令时只需module load atomsk/0.13.1,不必加载Python环境。
2 生成晶体与超胞#
atomsk --create fcc 4.05 Al -duplicate 2 2 2 al.xsf
atomsk --create bcc 2.87 Fe -duplicate 2 2 2 fe.xsf
atomsk --create diamond 5.43 Si -duplicate 2 2 2 si.xsf
参数中的长度单位为Å。三种2×2×2常规胞分别得到 32个Al、16个Fe、64个Si;晶格体积分别为531.441、189.119224、1280.824056 ų。晶格常数用于说明建模操作,正式模拟应与所用势函数或泛函的平衡结构一致。

3 XSF、POSCAR、CFG、LAMMPS和XYZ互转#
atomsk al.xsf POSCAR
atomsk POSCAR back.xsf
atomsk al.xsf converted.cfg
atomsk al.xsf converted.lmp
atomsk al.xsf converted.xyz
本次32原子Al的四条格式往返均保持元素、原子数和原子间距离,输出精度内最大距离误差为0;POSCAR、CFG、LAMMPS还核对了晶胞。普通XYZ不保证保存晶胞、周期条件及自定义属性,不能仅凭坐标一样就认为所有信息完整。
LAMMPS数据文件仍需要配套原子类型与势函数:转换不会替你选择EAM势或生成分子力场。多元素转换后,应再核对元素与类型编号,不要只看文件扩展名。
4 生成Al(111)取向薄层#
atomsk --create fcc 4.05 Al orient "[1-10]" "[11-2]" "[111]" \
-duplicate 2 2 3 oriented.xsf
atomsk oriented.xsf -cell add 15 z slab.xsf
三个方向依次定义x、y、z轴;z为[111],因此表面法向是[111]。给晶胞z方向增加15 Å不会拉伸原子坐标,而是在上方增加空区。

得到 72原子,原z晶胞长度21.044417 Å,增加真空后36.044417 Å。按周期盒长度减去最上、最下原子跨度,实际跨边界空隙为 17.338269 Å,并非恰好15 Å。此时薄层尚未优化,也没有自动设置固定底层或偶极修正。后续需要按研究目的准备约束和弛豫输入。
参考:Atomsk创建模式、格式与选项手册。