OVITO使用(3)——如何统计缺陷团簇数量及其尺寸

在级联碰撞过程中,点缺陷经过长时间的演化可能聚集形成团簇,这些缺陷团簇的数目和尺寸分布会进一步影响材料性能。因此,关于缺陷演变的研究,团簇分析必不可少。通常,定义包含2个及以上的净缺陷数(间隙原子/空位)为缺陷团簇[1]

Ovito中关于团簇的识别是通过截断半径来实现的[2]。相关文献中缺陷团簇截断距离判据为:间隙原子选取第3近邻(次次近邻),空位选取第2近邻(次近邻)[3,4]。即某一间隙原子与其第3近邻位置内的原子形成一个团簇,同样的,空位与其第2近邻位置内的原子形成一个团簇。

在进行分析之前,我们需要了解什么是第1近邻(最近邻)位置,第2近邻(次近邻)位置,第3近邻(次次近邻)位置?如下图,以体心立方结构为例,1号原子位置为第1近邻,2号原子位置为第2近邻,3号原子位置为第3近邻。因此,关于BCC钨的团簇分析,间隙原子团簇截断半径为\sqrt{2}a=4.47Å,空位团簇截断半径为a=3.16Å。

具体操作步骤如下:

① 对间隙原子团簇进行统计。用W-S结合布莱尔表达式(Expression selection)识别出间隙原子和空位,删去空位。

② 采用团簇分析(Cluster analysis),间隙原子团簇识别的截断距离为\sqrt{2}a=4.47Å。此时,在“Cluster analysis”栏下方显示出团簇的数量,点击“Show list of clusters”,左侧出现团簇编号及其对应团簇中包含的原子数量。最后,导出数据作图(一般只导出单帧的数据,如级联碰撞稳定阶段某一帧对应的数据)。

③ 一般进行统计时,涉及到的变量为相同尺寸团簇出现的数量及其对应的尺寸大小(包含的原子数量),因此,我们还需要对导出的数据进行处理,最后得到如下的柱状图。

④ 同样地,统计空位团簇。删去间隙原子,采用团簇分析(Cluster analysis),空位团簇识别的截断距离为a=3.16Å。导出数据作图。

附上相关参考文献和手册命令:

[1] 金属钨级联碰撞中势函数的影响. DOI: 10. 7538/yzk. 2020. youxian. 0499

[2] https://ovito.org/manual/reference/pipelines/modifiers/cluster_analysis.html

[3] Molecular dynamics simulations of high-energy radiation damage in W and W-Re alloys. DOI: https://doi.org/10.1016/j.jnucmat.2019.06.027

[4] 金属Nb级联碰撞的分子动力学模拟. DOI: 10.11900/0412.1961.2019.00203

希望我的分享对你有用~

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要对ovito图片文件夹进行分类,可以使用以下步骤: 1. 数据预处理:遍历ovito图片文件夹,将每张图片转换为数字表示,例如使用像素值或特征提取算法,然后将所有图片的数字表示存储为一个数据集。 2. 特征提取:使用无监督方法,例如聚类算法,从ovito图片数据集中提取特征。 3. 聚类:使用聚类算法,例如K均值聚类,将ovito图片数据集分成不同的类别。 4. 评估:评估聚类结果的质量,例如计算轮廓系数或使用可视化工具检查结果。 5. 应用:将分类结果用于ovito图片文件夹的进一步处理或其他应用中。 下面是一个基于Python的示例代码,使用K均值聚类算法对ovito图片文件夹进行分类: ```python import os import numpy as np import cv2 from sklearn.cluster import KMeans # 定义ovito图片文件夹路径和分类数 folder_path = 'ovito_folder' n_clusters = 3 # 遍历ovito图片文件夹,将所有图片转换为数字表示 img_data = [] for filename in os.listdir(folder_path): img_path = os.path.join(folder_path, filename) img = cv2.imread(img_path) img = img.reshape((-1, 3)).astype(np.float32) img_data.append(img) img_data = np.concatenate(img_data) # 模型训练:使用K均值聚类算法将ovito图片文件夹分为n_clusters个类别 kmeans = KMeans(n_clusters=n_clusters, random_state=0).fit(img_data) # 分类结果可视化:将每个像素点的类别转换为颜色,并保存分类结果 for filename in os.listdir(folder_path): img_path = os.path.join(folder_path, filename) img = cv2.imread(img_path) img_data = img.reshape((-1, 3)).astype(np.float32) labels = kmeans.predict(img_data) centers = kmeans.cluster_centers_ res = centers[labels] res = res.reshape((img.shape)) cv2.imwrite(os.path.join('ovito_classification', filename), res) ``` 在上述代码中,使用`os.listdir()`遍历ovito图片文件夹,将每张图片转换为数字表示,并将所有图片的数字表示存储为一个数据集`img_data`。接着使用K均值聚类算法`KMeans`将ovito图片数据集分为n_clusters个类别,并将每个像素点的类别转换为颜色,最终得到分类结果并保存到`ovito_classification`文件夹中。 需要注意的是,上述代码仅提供了简单的分类示例,实际应用中需要根据具体问题进行参数调整和模型优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Molecular Der

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值