Stocker2003ExtendedSeaIceSeesaw

Stocker2003ExtendedSeaIceSeesaw(
    var_name='stocker2003_extended_seaice_seesaw',
    tau_R=300.0,
    tau_S=1200.0,
    tau_A=100.0,
    tau_ANT=20.0,
    kappa=1.0,
    lambda_S=0.2,
    alpha=0.3,
    beta=0.2,
    gamma=4.0,
    delta=1.0,
    eta=0.2,
    T_S0=0.0,
    T_c=0.0,
    T_N=0.0,
    epsilon_R=0.0,
    epsilon_S=0.0,
    epsilon_A=0.0,
    epsilon_ANT=0.0,
    state_variables=None,
    diagnostic_variables=None,
    *args,
    **kwargs,
)

Extended Stocker-style model with reservoir, Southern Ocean, sea-ice, and Antarctic states.

The model integrates four coupled ODEs with prescribed northern forcing T_N(t):

tau_R * dT_R/dt     = -(T_R - T_N) + eps_R
tau_S * dT_S/dt     = kappa*(T_R - T_S) - lambda_S*(T_S - T_S0)
                      + alpha*(1 - A) + eps_S
tau_A * dA/dt       = -beta*(T_S - T_S0)
                      - gamma*A*(1-A)*(T_S - T_c) + eps_A
tau_ANT * dT_ANT/dt = delta*(T_S - T_ANT) + eta*(1 - A) + eps_ANT

Sea-ice area fraction A is constrained to [0, 1] by suppressing the outward derivative at the physical boundaries inside dydt.

Parameters

var_name : str = 'stocker2003_extended_seaice_seesaw'

Label for the model output. Default 'stocker2003_extended_seaice_seesaw'.

tau_R : float = 300.0

Oceanic reservoir relaxation timescale (years). Default 300.

tau_S : float = 1200.0

Southern Ocean relaxation timescale (years). Default 1200.

tau_A : float = 100.0

Sea-ice adjustment timescale (years). Default 100.

tau_ANT : float = 20.0

Antarctic temperature adjustment timescale (years). Default 20.

kappa : float = 1.0

Advective heat exchange between reservoir and Southern Ocean. Default 1.0.

lambda_S : float = 0.2

Linear restoring rate for Southern Ocean temperature. Default 0.2.

alpha : float = 0.3

Sea-ice insulation effect on Southern Ocean heat flux. Default 0.3.

beta : float = 0.2

Temperature-driven sea-ice melt rate. Default 0.2.

gamma : float = 4.0

Nonlinear sea-ice feedback strength. Default 4.0.

delta : float = 1.0

Southern Ocean to Antarctic heat coupling. Default 1.0.

eta : float = 0.2

Sea-ice insulation effect on Antarctic temperature. Default 0.2.

T_S0 : float = 0.0

Reference Southern Ocean temperature. Default 0.0.

T_c : float = 0.0

Critical temperature for the sea-ice feedback. Default 0.0.

T_N : float = 0.0

Northern temperature anomaly. Default 0.0. Register a time-varying signal via model.register_forcing('T_N', forcing_obj).

epsilon_R : float = 0.0

Constant additive noise / bias terms. All default to 0.0.

epsilon_S : float = 0.0

Constant additive noise / bias terms. All default to 0.0.

epsilon_A : float = 0.0

Constant additive noise / bias terms. All default to 0.0.

epsilon_ANT : float = 0.0

Constant additive noise / bias terms. All default to 0.0.

Notes

State variables are T_R, T_S, A, T_ANT in that order. The diagnostic variable T_N is populated by populate_diagnostics_from_history. All timescales must be > 0.

Examples

import climatecritters as cc
from climatecritters.model_critters.stocker2003_bipolar_seesaw import (
    Stocker2003ExtendedSeaIceSeesaw,
)
import matplotlib.pyplot as plt


model = Stocker2003ExtendedSeaIceSeesaw()
model.register_forcing('T_N', cc.Forcing(lambda t: 1.0 if (t % 2000) < 1000 else 0.0))
output = model.integrate(
    t_span=(0, 10000), y0=[0.0, 0.0, 0.3, 0.0], method='RK45'
)
ts = output.to_pyleo(var_names=['T_ANT'])
ts.plot()
plt.savefig('docs/reference/figures/Stocker2003ExtendedSeaIceSeesaw_example.png',
            dpi=150, bbox_inches='tight')

Stocker2003ExtendedSeaIceSeesaw example output