OVITO 使用
OVITO 使用
介绍
官网:OVITO
OVITO 2.9 版本的 Python script 功能可免费使用,其他需要 Pro 版本
支持 SFTP,可打开远程文件
OVITO 菜单栏:
- 主菜单
- 视图窗口
- 动画工具条
- 修正通道(Add Modification)及其属性栏
- 渲染标签
- 叠层标签(添加坐标轴、colorbar 等)
-
- 原子轨迹跟踪显示
- 熔化过程中自由体积和中心对称参数的变化
输出 RDF
OVITO 批量导入数据:先导入一个构型文件,在界面右中区域,Data source 选择文件名称,External file 中的 Search pattern 设置成
*.xyz
之类的,下方的 Options 可根据情况设置-
- 方式 1:添加 CNA Modification,晶粒和晶界显示不同的颜色
- 方式 2:添加 ‘Color coding’ Modification(在右下方 ‘Input property’ 选择 ‘Particle Identifier’,在颜色条下方点击 ‘Adjust range’),不同的颜色对应不同的晶粒 ID
OVITO 全局修改所有元素类型的 display radius:Application Settings – Particles – Particle types;
Restore built-in defaults
按钮可恢复默认值;Particle-related settings — OVITO User Manual 3.12.4 documentation
1 | # display radius 统一修改成 0.7 |
使用
OVITO 无法计算单原子应力(是势函数的工作)
利用 OVITO 计算 RDF、键角分布、键长分布:NEP_GT/NEP_RDF/NEP_RDF.ipynb at main · wangchr1617/NEP_GT · GitHub
-
- 仅保留位错与缺陷原子
- 输出各种位错线长度与位错密度的相关数据
- 输出每一帧中的不同相原子的数量的相关数据
- 统计每一帧中裂纹的表面积变化
- 为模型添加基础的光影(OVITO 提供的基础光影效果 Ambient Occlusion)
- 统计模型中的孔隙率(只适用 Pro 版)
- 绘制原子应力应变云图
- 根据 dump 文件输出的原子属性数据计算新的原子属性数据(静水应力 (Hydrostatic stress) 与米塞斯应力 (Von mises stress) 的计算)
- 对某一原子属性在空间上进行平均(处理原子应力云图)
- 对某一原子属性在一维和二维空间上绘制分布图(只适用 Pro 版)
- 绘制原子模型的表面轮廓线
- 切割展示模型的某一个晶面(通过 Slice)
- 结合 DXA 与汤普森四面体判定位错滑移面
- 选中特定原子修改颜色
- 修改原子的透明度
- 辅助建立含有非晶晶界的多晶原子模型
- 特定 Voronoi 指数的多面体团簇绘制
- 利用平移与周期性边界条件调整模型(通过 Affine transformation 和 wrap at period boundary)
- 冻结之前选择的原子以观察原子的移动趋势(通过 Freeze property)
- 在 OVITO 中绘制粒子属性的散点图与直方图
- 绘制原子位移矢量图
- 绘制特定原子的轨迹线
直接导入构型/轨迹文件,下方默认有 Particles 信息;添加 Modification 后,会出现 Global Attributes、Data Tables 另外两种类型的数据(添加 DXA,会多出 Dislocation、Surfaces 数据)
Add Modification 选项
- 无直接计算原子层间距的 Modification
1 | # Analysis |
常用 Expression selection 值
1 | Position.X # x 方向笛卡尔坐标 |
空位、间隙识别及数目统计步骤:Ovito可视化弗伦克尔缺陷_哔哩哔哩_bilibili
- Wigner-Seitz defect analysis:识别空位和间隙原子并统计对应数目
- Expression selection:
Occupancy==0
空位,Occupancy>0
间隙原子 - Assign color:给空位和间隙原子分别着色以进行区分
多面体模板匹配(PTM):Polyhedral template matching — OVITO User Manual 3.12.4 documentation
- 可识别的 Ordering types(L1_0、L1_2、B2、zincblende / wurtzite);实际效果不好
LAMMPS 与 OVITO 自带的结构分析模块包括:共近邻原子分析(Common Neighbor Analysis);中心对称参数分析 (Centrosymetric Patameter) 与多面体模板匹配法(Polyhedral Template Matching)等。在分析点缺陷、线缺陷以及各种不同晶体结构时,这些方法是很有力、很方便的。需要指出的是,以上几种方法仅适用于已有良好定义的晶体,如 BCC、FCC、HCP、SC 等。对于不那么规则的晶体,例如单斜、三斜晶系等,可能会被错误的归入其它类别,或是归入 Others 中。
局域有序参数法(Local Ordering Parameter)
OVITO 中的渲染器:OpenGL renderer, Tachyon renderer, OSPRay renderer(后两者收费,其 Python API 可免费使用)
DXA 算法只能单线程运行;CNA,Voronoi analysis,PTM 算法可并行
OVITO Python
官方教程:OVITO Python
OVITO2.9后处理python脚本和一些python后处理代码(前 6 个官网有示例代码)
- 计算 MSD
- 自定义序参数(order parameter)
- 根据粒子的晶向对粒子进行着色
- 找到模型中所有重叠的原子
- 将模拟盒子的 6 个方向分别收缩到所有粒子的 6 个方向的坐标极限的
- 计算局域熵(local entropy)
- 统计 Voronoi 分析中出现频率最高的前 10 个 Voronoi 指数并将其输出
- 识别 FCC 晶体中的 ISF、ESF、TB 等面缺陷
- 识别 BCC 中的点缺陷和面缺陷
主要用于可视化:How to Script with OVITO
Voronoi 多面体指数常用
<n1, n2, n3, ..., ni, ...>
形式表示,其中ni
表示 Voronoi 多面体具有的 i 边形数;一般 n1 和 n2 都是 0,可不用写出来;二十面体的多面体指数为<0, 0, 12, 0>
,十二面体的多面体指数为<20, 0, 0, 0>
支持的输入文件格式:Input file formats — OVITO User Manual 3.11.3 documentation
取消 OVITO Python 相关 warning 的输出
1 | import warnings |
- Pipeline 概念:Pipeline concept — OVITO User Manual 3.11.3 documentation
- OVITO modifiers are analysis or property calculation/setting routines. For anything you want to do, in terms of analyzing your data from a atomistic simulation, you will use a modifier which is appended to the pipeline via
pipeline.modifiers.append(...)
.
- OVITO modifiers are analysis or property calculation/setting routines. For anything you want to do, in terms of analyzing your data from a atomistic simulation, you will use a modifier which is appended to the pipeline via
整体流程
- 导入构型数据,添加 modifier 进行处理,导出计算数据(使用多个 modifier 时,需注意其顺序)
1 | from ovito.data import DataCollection, Particles, CutoffNeighborFinder, NearestNeighborFinder |
Pipeline 类
1 | # Pipeline 类 |
DataCollection 类
1 | # 属性 |
构型/数据导出
1 | from ovito.io import export_file |
modifiers
- modifiers Python API 及对应的 GUI 名称:ovito.modifiers — OVITO Python Reference 3.12.4 documentation
1 | from ovito.modifiers import ... |
particles、Global Attributes、Data Tables
1 | data.particles[...] # 获取 particle 中对应 keyword 的数据 |
格式转换
- OVITO Python 中的 DataCollection 可转换成 ASE、pymatgen 的格式
1 | from ovito.io.ase import ase_to_ovito, ovito_to_ase |
计算 RDF
1 | pipeline.modifiers.append( |
统计多晶模型中晶界和 Bulk 区域的元素分布及占比
1 | cna_modifier = CommonNeighborAnalysisModifier() |
位错分析
1 |
计算 MSD
1 |