A Julia package for the numerical investigation of noise- and rate-induced transitions in dynamical systems.
Building on DynamicalSystems.jl and DifferentialEquations.jl, this package aims to provide a toolbox for dynamical systems under time-dependent forcing, with a focus on tipping phenomena and metastability.
using CriticalTransitions
function fitzhugh_nagumo(u, p, t)
x, y = u
ϵ, β, α, γ, κ, I = p
dx = (-α * x^3 + γ * x - κ * y + I) / ϵ
dy = -β * y + x
return SVector{2}([dx, dy])
end
# System parameters
params = [1., 3., 1., 1., 1., 0.]
noise_strength = 0.02
initial_state = zeros(2)
# Define stochastic system
sys = CoupledSDEs(fitzhugh_nagumo, initial_state, params; noise_strength)
# Run a sample trajectory
traj = trajectory(sys, 10.0)
# Compute minimum action path using gMAM algorithm
instanton = geometric_min_action_method(sys, initial_state, current_state(sys))
# ... and more, check out the documentation!
Developers: Reyk Börner, Ryan Deeley, Raphael Römer and Orjan Ameye
Thanks to Jeroen Wouters, Calvin Nesbitt, Tobias Grafke, George Datseris and Oliver Mehling
This work is part of the CriticalEarth project.