Ring analysis

A common topological measure of amorphous systems is a statistics of shortest-path (SP) rings. matscipy has a C-implementation of a backtracking algorithms that computes sp-rings according to the algorithm by Franzblau. The function ring_statistics accept a cutoff for neighbor search and a maximum ring length as arguments.

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

from ase.io import read
from matscipy.rings import ring_statistics

# Load a disordered configuration (amorphous silicon)
a = read('../../tests/aSi.cfg')

# Identify rings
r = ring_statistics(a, cutoff=3.0, maxlength=6)

# Plot statistics
plt.plot(r)
plt.xlabel('Number of atoms in ring')
plt.ylabel('Number of rings')
Text(0, 0.5, 'Number of rings')
../_images/c18fe6c2a3a1565d7bac0fc8817a9baee40a571eedcb197ed69b1d99bbe00ff4.png