hypersynchronization.identify_state#
- hypersynchronization.identify_state(thetas, atol=0.001)[source]#
Identify the synchronization state.
- Parameters:
- thetasarray-like, shape (n_phases,)
Phases of the oscillators.
- atolfloat, optional
The absolute tolerance used for comparison with synchronization parameters. Default is 1e-3.
- Returns:
- statestr
A string representing the identified synchronization state: - “q-twisted” for q-twisted synchronization, where q is the winding number. - “splay” for splay synchronization. - “sync” for near-synchronised states with R1 ≈ 1. - “2-cluster” for 2-cluster synchronization. - “3-cluster” for 3-cluster synchronization. - “other” for other or unsynchronized states.
See also
identify_q_twistedDetect a q-twisted state and compute its winding number.
identify_k_clustersDetect a k-cluster state and return cluster sizes.
order_parameterCompute the Daido order parameter.
Notes
A perfectly synchronised state (all phases equal) is returned as “0-twisted”, not “sync”. The “sync” label is reserved for noisy near-synchronised states where the order parameter R1 ≈ 1 but the phase differences are not exactly uniform.
A splay state where phases increase monotonically with node index is indistinguishable from a 1-twisted state and will be returned as “1-twisted”. The “splay” label is only returned when phases are evenly distributed on the circle but not ordered by node index.
Examples
>>> import numpy as np >>> import hypersynchronization as hs >>> hs.identify_state(np.zeros(10)) '0-twisted' >>> theta = hs.generate_q_twisted_state(10, q=1, noise=0) >>> hs.identify_state(theta) '1-twisted' >>> theta = np.array([0.0] * 5 + [np.pi] * 5) >>> hs.identify_state(theta) '2-cluster'