Olami–Feder–Christensen (OFC) Earthquake Model

Olami Z., Feder H., Christensen K., Self-organized criticality in a continuous, nonconservative cellular automaton modeling earthquakes, Phys. Rev. Lett. 68, 1992, https://doi.org/10.1103/PhysRevLett.68.1244

modified as in eqns (1) from: Grassberger P., 1994. Efficient large-scale simulations of a uniformly driven system, Phys. Rev. E, 49, 2436–2444, https://doi.org/10.1103/PhysRevE.49.2436

[2]:
from SOC.models import OFC
[3]:
sim0 = OFC(conservation_lvl=0.2, L=30, save_every = 1)
sim0.run(1000, wait_for_n_iters=1000)
Waiting for wait_for_n_iters=1000 iterations before collecting data. This should let the system thermalize.

[4]:
sim0.animate_states(notebook=True)
[17]:
sim1 = OFC(L=30)
sim1.run(100000, wait_for_n_iters = 10000)
Waiting for wait_for_n_iters=10000 iterations before collecting data. This should let the system thermalize.

[22]:
sim1.get_exponent(low=20, high=300)
_images/OFC_5_0.png
y = 42477.635 exp(-1.2325 x)
[22]:
{'exponent': -1.232457941524679, 'intercept': 4.628160328647776}
[23]:
sim1.get_exponent(column='NumberOfReleases', low=2, high=300)
_images/OFC_6_0.png
y = 28415.887 exp(-1.2413 x)
[23]:
{'exponent': -1.2412823768665933, 'intercept': 4.453561223266139}
[8]:
sim2 = OFC(conservation_lvl=0.1, L=30)
sim2.run(500000, wait_for_n_iters = 10000)
Waiting for wait_for_n_iters=10000 iterations before collecting data. This should let the system thermalize.

[9]:
sim2.get_exponent(low=10, high=40)
_images/OFC_8_0.png
y = 14940969.613 exp(-3.4342 x)
[9]:
{'exponent': -3.4341725493293325, 'intercept': 7.1743787824846805}
[16]:
sim2.get_exponent(column='NumberOfReleases', low=2, high=30)
_images/OFC_9_0.png
y = 251979.007 exp(-2.7298 x)
[16]:
{'exponent': -2.7297970986317637, 'intercept': 5.401364360728629}
[ ]:

[ ]: