Lorenz63
Lorenz63(
var_name='lorenz63',
sigma=10.0,
rho=28.0,
beta=8 / 3,
state_variables=None,
diagnostic_variables=None,
*args,
**kwargs,
)Lorenz (1963) system.
A minimal three-variable convection model exhibiting sensitive dependence on initial conditions and a strange attractor:
dx/dt = sigma * (y - x)
dy/dt = x * (rho - z) - y
dz/dt = x * y - beta * z
Parameters
var_name : str = 'lorenz63'-
Label for the model output. Default
'lorenz63'. sigma : float or callable orcc.Forcing= 10.0-
Prandtl number controlling rotation of convective rolls. Default 10.
rho : float or callable orcc.Forcing= 28.0-
Rayleigh number (reduced) controlling the buoyancy forcing. Default 28.
beta : float or callable orcc.Forcing= 8 / 3-
Geometric factor controlling the spatial structure. Default 8/3.
Notes
The classic strange attractor exists for sigma=10, rho=28, beta=8/3. Time-varying parameters are supported as callables with signatures (t), (t, state), or (t, state, model).
State variables are x, y, z in that order.
References
Lorenz, E. N. (1963). J. Atmos. Sci., 20, 130–141.
Examples
import matplotlib.pyplot as plt
import climatecritters as cc
from climatecritters.model_critters.lorenz import Lorenz63
model = Lorenz63()
output = model.integrate(
t_span=(0, 100), y0=[-8.0, 8.0, 27.0], method='RK45'
)
fig, ax = plt.subplots()
ax.plot(output.state_variables['x'], output.state_variables['z'],
lw=0.3, alpha=0.8)
ax.set_xlabel('x'); ax.set_ylabel('z')
plt.savefig('docs/reference/figures/Lorenz63_example.png',
dpi=150, bbox_inches='tight')