Skip to content

JuliaDynamics/CriticalTransitions.jl

Repository files navigation

CriticalTransitions.jl

Tests

Code Style: Blue Aqua QA JET

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.

Usage

See package documentation.

Example: Bistable FitzHugh-Nagumo model

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.