dapper.mods.Lorenz96
A 1D emulator of chaotic atmospheric behaviour.
For a short introduction, see
demo
and- "Dynamical systems, chaos, Lorenz.ipynb" from the DA-tutorials
Note: the implementation is len(x)
-agnostic.
1"""A 1D emulator of chaotic atmospheric behaviour. 2 3`bib.lorenz1996predictability` 4 5For a short introduction, see 6 7- `demo` and 8- "Dynamical systems, chaos, Lorenz.ipynb" from the DA-tutorials 9 10Note: the implementation is `len(x)`-agnostic. 11""" 12 13import numpy as np 14 15from dapper.mods.integration import rk4 16 17from .extras import LPs, d2x_dtdx, dstep_dx 18 19Force = 8.0 20Tplot = 10 21 22 23def x0(M): 24 x = np.zeros(M) 25 x[0] = 1 26 return x 27 28 29def shift(x, n): 30 return np.roll(x, -n, axis=-1) 31 32 33def dxdt_autonomous(x): 34 return (shift(x, 1) - shift(x, -2)) * shift(x, -1) - x 35 36 37def dxdt(x): 38 return dxdt_autonomous(x) + Force 39 40 41def step(x0, t, dt): 42 return rk4(lambda x, t: dxdt(x), x0, np.nan, dt)
Force =
8.17
Tplot =
10
def
x0(M):
def
shift(x, n):
def
dxdt_autonomous(x):
def
dxdt(x):
def
step(x0, t, dt):