Atomsk专题

Atomsk双晶与多晶初始结构

确定晶粒中心与取向,实际生成双晶/四晶粒模型,PTM识别与结构图。

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

下载结构、实际数据、全部脚本与参考结果。解压后进入附件目录,依次执行本文步骤;reference/ 保存本次结果,复跑写入 work/,重建模型前会把旧work移到work-history。

1 从晶粒位置与取向生成模型#

本篇用确定的晶粒中心和晶体取向生成 Al 双晶及四晶粒模型,再用 OVITO PTM+Grain Segmentation识别晶粒。它们都是未弛豫的Voronoi初始几何;几何模型生成成功不意味着晶界能已经计算。

实际四晶粒模型的识别结果:颜色表示晶粒ID,不是四种元素

2 准备FCC种子#

bash run.sh models
cat work/models/bicrystal.txt
cat work/models/polycrystal.txt
atomsk --create fcc 4.05 Al Al-unit.xsf

双晶文件的完整内容:

box 81 81 32.4
node 20.25 40.5 16.2 [100] [010] [001]
node 60.75 40.5 16.2 [430] [-340] [001]

box后面是Å单位的盒长;node给出晶粒中心坐标及三条晶向。第二晶粒由[430]、[-340]、[001]定义,绕z的取向差约36.87°。本例不把它自动命名为某个已经验证的对称Σ5晶界。

atomsk --polycrystal Al-unit.xsf bicrystal.txt bicrystal.cfg -remove-doubles 1.4

3 四晶粒的完整输入#

box 81 81 32.4
node 20.25 20.25 16.2 [100] [010] [001]
node 60.75 20.25 16.2 [430] [-340] [001]
node 20.25 60.75 16.2 [4-30] [340] [001]
node 60.75 60.75 16.2 [210] [-120] [001]
atomsk --polycrystal Al-unit.xsf polycrystal.txt polycrystal.cfg -remove-doubles 1.4

-remove-doubles 1.4 清理距离过近的重复原子,阈值单位Å;它不是能量最小化,也不能保证所有界面原子都已处于合理受力状态。生成后检查晶胞、原子数与近邻距离,再选择势函数进行弛豫。

4 用PTM取向识别晶粒#

bash run.sh analysis
bash run.sh render
ls work/ovito/*grains.xyz
from ovito.io import import_file
from ovito.modifiers import (PolyhedralTemplateMatchingModifier,
                             GrainSegmentationModifier)
p = import_file('polycrystal.cfg')
p.modifiers.append(PolyhedralTemplateMatchingModifier(output_orientation=True))
p.modifiers.append(GrainSegmentationModifier())
d = p.compute()
print(d.attributes['GrainSegmentation.grain_count'])
print(d.particles['Grain'])

Grain Segmentation依赖前一步PTM输出取向,不能省略。算法给出的晶粒ID是分类编号,跨两个独立文件时不保证ID相同;比较晶粒演化应按取向、位置或明确的跟踪规则匹配。

双晶几何:两种晶粒ID配色

5 本次实际数量#

模型 总原子 识别晶粒 各晶粒原子数(按算法ID)
双晶 12800 2 6463、6337
四晶粒 12688 4 3232、3121、3160、3175

双晶PTM判为OTHER的界面原子有1280个,四晶粒有2664个;后续晶粒算法可把界面原子归到相邻晶粒。不能把OTHER数量直接解释为某种化学缺陷浓度。

参考:Atomsk多晶模式、OVITO晶粒分割。

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

查看配图

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

100%查看原图 ↗