Tutorials

The tutorials below are executable Jupyter notebooks demonstrating ClimateCritters models and utilities. Each notebook can be run locally after installing the package.

Getting started

Notebook What it shows
CCModel Basics Base class interface: construction, param_values, integration, CCOutput, callable parameters, register_forcing, set_function, copying, to_pyleo
Forcing Basics Four construction patterns (callable, array, Hold/Ramp/Harmonic elements, bundled datasets); attachment modes (replacement, additive); timing (pre, post); noise and SDE integration

Model demos

Energy Balance Models

Notebook What it shows
0D Equilibration, albedo options (constant, albedo_func, custom callable), OLR, ice-albedo bistability, solar forcing, bundled TSI data, heat capacity effects on timescale
1D (latitude) Latitudinal grid, meridional heat diffusion, ice-line dynamics, zonal-mean temperature profiles, CO₂ forcing, Budyko OLR, set_function, Mid-Pleistocene Transition scenarios

Oscillators

Notebook What it shows
SimplePendulum & Spring DampedSpring damping regimes (underdamped, critical, overdamped), SimplePendulum nonlinear behavior, driven pendulum period-doubling route to chaos, resonance, frequency response
Double Pendulum Hamiltonian double pendulum, sensitive dependence on initial conditions, energy conservation vs solver tolerance tradeoffs, trajectory divergence, phase space

Climate

Notebook What it shows
ENSO Recharge-discharge paradigm, Bjerknes coupling regimes (damped, self-sustained, nonlinear), thermocline depth anomaly, SST anomaly, seasonal forcing entrainment
Ganopolski 2024, Model 3 Orbital forcing (precession + eccentricity modulation), discrete regime switching, ~100 kyr glacial cycles, Mid-Pleistocene Transition via vc(t) ramp, threshold-based initiation and termination
Stommel Temperature-salinity density contrast, overturning strength diagnostic, freshwater forcing (two attachment styles), thermally-driven vs salinity-driven bifurcation, time-varying parameters

Attractors

Notebook What it shows
Roessler Single-scroll strange attractor, parameter c periodic-to-chaotic transition, period-doubling bifurcation cascade, phase portrait, quasi-periodic spirals with irregular z-spikes
Lorenz63 Butterfly attractor, sensitive dependence on initial conditions, lobe-switching dynamics, bifurcation from stable fixed points to chaos, Rayleigh number, Prandtl number
Lorenz96 Periodic-ring single-scale chaos, quadratic advection, wave packets, two-scale fast-slow coupling (X/Y variables), timescale separation, data assimilation benchmark

Box Models

Notebook What it shows
Carbon Cycle Demo TwoBoxCarbon air-sea exchange, BoxModelSpec declarative network framework, concentration-gradient flux, three-box extension, biological pump, mass conservation

Functionality demos

Noise

Notebook What it shows
Noise noise.from_series (AR(1) emulation from target), noise.from_param (power-law, fractional Gaussian, white noise), ensemble generation
Model noise Noisy forcing (input feedback), SDE integration with euler_maruyama/heun_maruyama/milstein (state feedback), post-integration observation noise; comparison on EBM0D
Notebook What it shows
Downsampling resample.downsample, gap distributions (exponential, Poisson, Pareto, random_choice), sparse sampling from regular trajectories, resolution dashboard
Solvers RK45 tolerances, fixed-step (rk4, Euler) requirements, discrete-event models (G24), SDE-aware integrators, two-scale Lorenz96 history corruption, model-class-to-solver mapping