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,BondPropertiesandGlobalAttributesfor 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.
-
GlobalAttributeFor each ring size a global attributeN<X>-Ring countwill be stored indicating the total number of rings of that size in the current animation frame. -
ParticlePropertyEach particle gets assigned a propertyN<X> Ring, whereXis 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. -
BondPropertyEach bond gets assigned a propertyN<X> Ring, whereXis 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.gitThe
--useroption 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






