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
    ϵ, β = p

    dx = (-x^3 + x - y)/ϵ
    dy = -β*y + x

    return SVector{2}([dx, dy])
end

# System parameters
params = [0.1, 3.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 package was created as part of the CriticalEarth project.