Chimera states in nonlocally-coupled phase oscillators
Project description
INSTALLATION
Via pip:
pip install classify_chimeras
Via source
git clone https://github.com/fkemeth/classify_chimeras
cd classify_chimeras
pip install .
DOCUMENTATION
This python package contains functions to classify chimera states, non-linear hybrid states of coexisting coherence and incoherence. In particular, this package offers three functions, following the paper
"A classification scheme for chimera states" (http://dx.doi.org/10.1063/1.4959804)
spatial(data, boundaries='no-flux', phases=False, nbins=100)datamust be a TxN or a TxN1xN2 numpy matrix (either real or complex). The functionspatial()applies the discrete Laplacian on the data, and returns the coherent fraction at each time step.boundariesspecifies the boundary conditions under which the data was generated. Setphases=Trueif A contains phases only.nbinsspecifies the number of bins of the histograms which are generated.globaldist(data, nbins=100, phases=False, num_coarse=1500)datamust be a TxN numpy matrix. The functionglobaldist()calculates all pariwise Euclidean distances between all data points at each time step, and returns the coherent fraction of A at each time step.nbinsspecifies the number of bins of the histograms. Setphases=Trueifdatacontains phases only.num_coarseis a threshold above which the data is coarsed due to memory limitations. This can be increased, but may lead to long calculation times or memory errors.temporal(data, nbins=100, phases=False, num_coarse=1500)A must be a TxN or TxN1xN2 numpy matrix. The functiontemporal()calculates all pairwise temporal correlation coefficients between the T-long timeseries of A. It returns a hisogram, with the square root of the last bin indicating the amount of temporarily correlated time series.nbinsspecifies the number of bins of the histograms. Setphases=Trueifdatacontains phases only.num_coarseis a threshold above which the data is coarsed due to memory limitations. This can be increased, but may lead to long calculation times or memory errors.
ISSUES
For questions, please contact (felix@kemeth.de), or visit the GitHub repo.
EXAMPLE
As an illustrative example, we use a chimer state observed by Kuramoto and Battogtokh in "Coexistence of Coherence and Incoherence in Nonlocally Coupled Phase Oscillators" (2002), in Nonlinear Phenom. Complex Syst. We suppose that we have the phases of this chimera state in a numpy matrix A.
import matplotlib.pyplot as plt
from kuramoto_chimera import integrate
from classify_chimeras import spatial, temporal
# Integrate Kuramoto phase oscillator system with nonlocal coupling.
data_dict = integrate()
# Plot a snapshot of the data matrix A
fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(data_dict["xx"], data_dict["data"][-1])
ax.set_xlabel('x')
plt.show()
# Obtain the fraction of spatially coherent oscillators
g_zero = spatial(data_dict["data"], boundaries='periodic', phases=True)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(data_dict["t_eval"], g_zero)
ax.set_xlabel('t')
ax.set_ylim((0, 1.0))
plt.show()
# Obtain the fraction of temporarily correlated oscillators
temporal_coherence = temporal(data_dict["data"], phases=True)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(temporal_coherence)
ax.set_ylim((0, 0.3))
plt.show()
Changelog v.2.0.0
- Refactored code for the correlation measures.
- Restructured code to confirm to pypi package layout.
- Use random subset of grid points when coarse graining data.
- Adjusted upper bound in temporal correlation histogram to 1+epsilon.
- Included example using kuramoto_chimera package.
- Added notebook example.
- Added unit tests.
LICENCE
This work is licenced under GNU General Public License v3. Please cite
"A classification scheme for chimera states" F.P. Kemeth et al. (http://dx.doi.org/10.1063/1.4959804)
if you use this package for publications.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file classify_chimeras-2.0.2.tar.gz.
File metadata
- Download URL: classify_chimeras-2.0.2.tar.gz
- Upload date:
- Size: 22.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4707dbd7554f90460c849c130e46230f8c2b35de62673943259340fc54819b0
|
|
| MD5 |
2e5694cd957309daab47d63a6d2b11c1
|
|
| BLAKE2b-256 |
e37c25f0157d57f230de83bcb33fa63405ccb673788ae401a6d3a5067a179777
|
File details
Details for the file classify_chimeras-2.0.2-py3-none-any.whl.
File metadata
- Download URL: classify_chimeras-2.0.2-py3-none-any.whl
- Upload date:
- Size: 23.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b6c09107813e77eb073fb22b52f35b6958ca77e7548898aa9f4cd6c55d964ad
|
|
| MD5 |
03a90b7135e8f2de898bf54925c283a9
|
|
| BLAKE2b-256 |
1ff0e2666f4ebaaf24b04557316ecc1d8fe30bc3855cf7cca068c35194b2bf24
|