OVITO结构识别、配位数与体积分析
从LAMMPS格式读写开始,用FCC参考结构核对CNA、PTM、RDF与Voronoi。
阅读本篇目录
下载本篇输入、完整脚本、数据与高清图。解压后在新目录运行,reference保存鸢算科技实际运行的参考结果。
1 命令行运行与输入文件#
本例使用OVITO 3.16.1的Python接口,CPU上完成分析;图片使用Tachyon CPU渲染。下载包脚本自行生成32原子FCC参考结构、缺少1个原子的结构和3帧已知仿射形变坐标。这些是用于核对工具的几何样本,不是分子动力学轨迹。
module purge
module load ovito/3.16.1
export OVITO_THREAD_COUNT=4
export QT_QPA_PLATFORM=ovitoheadless
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.json
mkdir ovito-work
cp ovito_examples.py ovito-work/
cd ovito-work
python ovito_examples.py
LAMMPS dump头部明确给出原子数、周期盒和列名id type x y z。读写接口:
from ovito.io import import_file, export_file
p = import_file('reference.dump')
d = p.compute()
print(d.particles.count)
export_file(p, 'roundtrip.dump', 'lammps/dump',
columns=['Particle Identifier', 'Particle Type',
'Position.X', 'Position.Y', 'Position.Z'])
本次往返保留32个原子、编号和晶胞,最大坐标差8.88×10⁻¹⁶ Å。多元素体系还应核对类型与元素的映射;纯dump文件不一定自带元素名称。
2 CNA、PTM与配位数#
from ovito.modifiers import CommonNeighborAnalysisModifier
p.modifiers.append(CommonNeighborAnalysisModifier())
d = p.compute()
print(d.attributes['CommonNeighborAnalysis.counts.FCC'])
CNA与PTM均识别出 32个FCC原子。在另一个新pipeline中加入CoordinationAnalysisModifier(cutoff=3.1, number_of_bins=100),每个原子的配位数均为12;得到的径向分布表可以写入CSV。

晶格常数为4.05 Å,第一近邻距离约2.864 Å,所以3.1 Å截断包含第一壳层。换用其他材料、热扰动结构或不同密度时,应重新选截断,不能照搬3.1 Å。
3 Voronoi体积#
from ovito.modifiers import VoronoiAnalysisModifier
p = import_file('reference.dump')
p.modifiers.append(VoronoiAnalysisModifier(compute_indices=True))
d = p.compute()
print(d.particles['Atomic Volume'][:])
每原子体积 16.60753125 ų,总和 531.441 ų,与8.1 Å立方盒体积相同。涉及自由表面时应注意是否周期、是否包含真空,不能将分配到真空的体积当作固体体积。
参考:OVITO Python分析接口。
需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。