【摘要】 LAMMPS程序虽然自带一些分析命令,比如compute rdf、compute adf等,然而很多时候我们关心的实质或是信息在LAMMPS里没有相应的命令,这种情况下我们只能自己写脚本进行分析。
LAMMPS程序虽然自带一些分析命令,比如compute rdf、compute adf等,然而很多时候我们关心的实质或是信息在LAMMPS里没有相应的命令,这种情况下我们只能自己写脚本进行分析。一般情况,我们会避免“重复造轮子”,站在“巨人的肩膀上”。今天给大家介绍一款LAMMPS数据后处理软件——ovito。(官网https://www.ovito.org/)

ovito支持多平台及python API拓展,这里对ovito的两种常见使用方式进行简单的介绍。
1.应用程序手动操作
还是以水液滴蒸发模型为例(如图1)

图1
*第一步:打开ovito程序,File - Load File,加载lammps的dump文件;
*第二步:右上角,Add modification - Select type,选择Type 3(即N元素);

*第三步: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 pythonfrom ovito.io import import_filefrom ovito.modifiers import SelectTypeModifier, DeleteSelectedModifier, ExpressionSelectionModifierpipeline = 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脚本。
本文所有内容文字、图片和音视频资料,版权均属科学指南针网站所有,任何媒体、网站或个人未经本网协议授权不得以链接、转贴、截图等任何方式转载。







您已经拒绝加入团体

