The tutorials below are executable Jupyter notebooks demonstrating ClimateCritters models and utilities. Each notebook can be run locally after installing the package .
Getting started
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
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
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
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
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
Carbon Cycle Demo
TwoBoxCarbon air-sea exchange, BoxModelSpec declarative network framework, concentration-gradient flux, three-box extension, biological pump, mass conservation
Functionality demos
Noise
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
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