Atomsk应变、原子选择与双晶建模
用108原子和864原子小模型演示变形、替换、排序及固定种子双晶。
阅读本篇目录
下载本篇输入、完整脚本、数据与高清图。解压后在新目录运行,reference保存鸢算科技实际运行的参考结果。
1 先生成可修改的小模型#
本例使用Atomsk beta-0.13.1。先运行下载包的完整脚本,或按下面终端命令分步执行。完整脚本会输出结构图和数值检查。
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
2 拉伸、旋转与周期回包#
atomsk --create fcc 4.05 Al -duplicate 3 3 3 original.xsf
atomsk original.xsf -deform x 0.02 0 strained.xsf
atomsk original.xsf -rotate z 30 rotated.xsf
atomsk original.xsf -shift 20 0 0 -wrap wrapped.xsf
初始有108原子,盒边长12.15 Å。-deform x 0.02 0沿x增加2%,最后一个0设横向泊松收缩为零,得到x长度 12.393 Å、y/z仍12.15 Å;分数坐标不变。这里施加的是几何形变,不是计算应力。
-rotate z 30同时旋转晶胞与原子。本次旋转前后全部原子间距离最大变化小于 9.79×10⁻⁹ Å,属于输出数值精度。-wrap把平移出盒的原子放回周期晶胞,不会消除重叠,也不能自动修复断开的分子。

3 选择、删除和替换原子#
atomsk original.xsf -select 1:4 -rmatom select removed.xsf
atomsk original.xsf -select 1:4 -substitute Al Cu alloy.xsf
atomsk alloy.xsf -sort species up sorted.xsf
Atomsk原子编号从1开始。第一条删除编号1至4,剩 104原子;第二条仅将这4个Al替换成Cu,仍有108原子,其中4个Cu。第三条按元素重排原子,坐标集合不变,但编号可能变化。若有逐原子约束,排序后要重新对应。

本例是确定性指定位置,不是随机合金、更不是SQS;元素替换也不代表已完成结构优化或形成能计算。
4 用固定种子位置生成可复现双晶#
新建grains.txt,内容为:
box 24.3 24.3 24.3
node 6.075 12.15 12.15 0 0 -10
node 18.225 12.15 12.15 0 0 10
两个node指定晶粒种子位置与绕x/y/z的旋转角。本例绕z分别−10°与+10°,名义相对取向差20°。使用显式种子和取向可复现模型;若改为随机晶粒,需要保存程序输出的参数文件。
atomsk --create fcc 4.05 Al seed.xsf
atomsk --polycrystal seed.xsf grains.txt bicrystal.xsf
atomsk bicrystal.xsf -remove-doubles 1.5 cleaned.xsf

本次生成 864原子;1.5 Å阈值没有删除原子,因为非周期最短距离为 1.994199 Å,周期最小镜像距离为 1.819428 Å,都大于阈值。这也说明应明确区分盒内距离和跨边界距离。
“没有重复原子”只表明满足所选距离阈值,不代表晶界已经物理合理。周期边界会引入相邻镜像界面,晶粒拼接可能产生局部压缩。正式研究仍应检查最邻近环境、边界条件和弛豫结果,再决定是否统计晶界能、位错或晶粒尺寸。此例只演示双晶初始建模,不将未弛豫模型作为材料结论。