DoubleGyre¶
Systems / ODEs / Climate & geophysics
A kinematic pair of counter-rotating gyres with a periodically oscillating separatrix — the canonical benchmark for Lagrangian coherent structures and chaotic advection.
Definition¶
\[
\begin{aligned}
\dot{x} &= - \pi \alpha \sin{\left(\pi \left(eps x^{2} \sin{\left(z \right)} + x \left(- 2 eps \sin{\left(z \right)} + 1\right)\right) \right)} \cos{\left(\pi y \right)} \\
\dot{y} &= \pi \alpha \left(2 eps x \sin{\left(z \right)} - 2 eps \sin{\left(z \right)} + 1\right) \sin{\left(\pi y \right)} \cos{\left(\pi \left(eps x^{2} \sin{\left(z \right)} + x \left(- 2 eps \sin{\left(z \right)} + 1\right)\right) \right)} \\
\dot{z} &= \omega
\end{aligned}
\]
Parameters¶
| Symbol | Default | Role |
|---|---|---|
alpha |
0.1 |
overall advection speed |
eps |
0.1 |
amplitude of the gyre-boundary oscillation |
omega |
0.62832 |
boundary oscillation frequency |
State variables: x, y, z
Properties¶
Lyapunov spectrum
TODO — lyapunov_spectrum failed: AttributeError
Kaplan–Yorke dimension
TODO — requires a numeric Lyapunov spectrum
Divergence ∇·f
$\nabla\!\cdot f = 0$
constant
constant
Equilibria
none found (no equilibria)
Use it in TSDynamics¶
import tsdynamics as ts
system = ts.systems.DoubleGyre()
traj = system.run(final_time=100.0, dt=0.01)
ts.plot(traj)
spectrum = ts.analysis.lyapunov_spectrum(system)
ts.analysis.kaplan_yorke_dimension(spectrum)
Reference¶
Shadden, Lekien & Marsden (2005), Physica D 212, 271-304
doi:10.1016/j.physd.2005.10.007