A Python-based modifier funtion for OVITO Pro that tries to find rings of specified sizes in the bond topology.
Uses the python package networkx to build directed search trees from OVITO's bond topoloy and to find simple cycles therein.
Search for ring sizes up to:
The maximum ring size the modifier will search for.Do not show rings smaller than:
Do not createDataTables
,ParticleProperties
,BondProperties
andGlobalAttributes
for results of rings smaller than specified value.Create color mesh
: Wheter to create a surface mesh with the found rings as faces, which can be colored in subsequent steps.
-
GlobalAttribute
For each ring size a global attributeN<X>-Ring count
will be stored indicating the total number of rings of that size in the current animation frame. -
ParticleProperty
Each particle gets assigned a propertyN<X> Ring
, whereX
is in the minimum and maximum ring size range specified by the user. A value of 1 means the current particle is part of a ring of sizeX
. Particles can be members of several rings. -
BondProperty
Each bond gets assigned a propertyN<X> Ring
, whereX
is in the minimum and maximum ring size range specified by the user. A value of 1 means the current bond is part of a ring of sizeX
. Bonds can be members of several rings. -
DataTables
Data Table for each ring size in the specified range to look up the particle indices of the members of each ring. | A Histogram of the ring sizes found. |
---|---|
Color Surface Mesh Faces | Color Bonds and Particles | |
---|---|---|
-
OVITO Pro integrated Python interpreter:
ovitos -m pip install --user git+https://github.com/ckalcher/RingFinderModifier.git
The
--user
option is recommended and installs the package in the user's site directory. -
Other Python interpreters or Conda environments:
pip install git+https://github.com/ckalcher/RingFinderModifier.git
- Tested on OVITO version 3.9.1
Constanze Kalcher support@ovito.org