Primitive ringsΒΆ

A primitive ring is a cycle that survives the Franzblau shortest-path test. For every pair of vertices on the cycle, a shortest path between them lies on the cycle. pydseams.band.ring_census counts those rings on Frame.bonds_by_index. For an oxygen-only frame that list is the cutoff neighbour list.

The runnable copy is docs/tutorials/test_rings.py.

import pydseams as ds
from pydseams.band import ring_census

frame = ds.read("input/traj/exampleTraj.lammpstrj", atom_type=2)
print(ring_census(frame, max_size=8))

On the 250 oxygens the census is 1 three-ring, 230 four-rings, 4 five-rings, and 192 six-rings. The CLI CHILL+ graph is the mutual four-nearest list, so a census of that graph is a different number.