分子模拟 || LAMMPS数据后处理软件—ovito(两种常见使用方式介绍)
The following article is from 科学指南针一模拟计算联盟 Author 唯理计算
LAMMPS程序虽然自带一些分析命令,比如compute rdf、compute adf等,然而很多时候我们关心的实质或是信息在LAMMPS里没有相应的命令,这种情况下我们只能自己写脚本进行分析。一般情况,我们会避免“重复造轮子”,站在“巨人的肩膀上”。今天给大家介绍一款LAMMPS数据后处理软件——ovito。(官网https://www.ovito.org/)
ovito支持多平台及python API拓展,这里对ovito的两种常见使用方式进行简单的介绍。
1
应用程序手动操作
图1
*第三步:Add modification – Delete selected,将N元素删除,只显示我们关心的水分子;
*第四步:Add modification – Expression selection,在下方Boolean expression框内输入“((Position.X - 120)^2+(Position.Y - 120)^2+(Position.Z - 120)^2)^(1/2) > 55”,可以看到被选择的原子呈红色,并且还给出了被选择的原子数量;
*第五步:通过控制显示轨迹的帧数来看到每一帧时,被选择的水分子。
2
Python脚本
首先需要安装ovito的python库,在https://pypi.org/project/ovito/#files下载相应的wheel文件到本地,然后pip install ovito-xxx.wheel进行安装。
接着编写python脚本:
#! bin/env python
from ovito.io import import_file
from ovito.modifiers import SelectTypeModifier, DeleteSelectedModifier, ExpressionSelectionModifier
pipeline = import_file("dump.without_electric_efiled")
print(str(pipeline.source.num_frames) + ' frames')
pipeline.modifiers.append(SelectTypeModifier(property = 'Particle Type', types = {'Type 3'}))
pipeline.modifiers.append(DeleteSelectedModifier())
pipeline.modifiers.append(ExpressionSelectionModifier(expression = '((Position.X - 120)^2+(Position.Y - 120)^2+(Position.Z - 120)^2)^(1/2) > 55'))
for frame in range(pipeline.source.num_frames):
data = pipeline.compute(frame)
print(data.attributes['SelectExpression.num_selected'])
以上脚本与应用程序手动操作的方式实现完全一样的功能,通过python 脚本名即可运行。
两种使用方式没有优劣之分。如需直观的查看轨迹或需渲染图片时选方式一即应用程序手动操作;若只关注分析结果或需要批量分析时选方式二即Python脚本。
动动小手加星标,浏览文章不迷路!
不用每天花费时间刷信息流
也可以随时看到自己喜欢的内容啦!
2021-09-09
2021-09-09
2021-09-09
2021-09-08
2021-09-08
关注我们
点了“在看”的小哥哥小姐姐
今年发IF>10一作