Skip to content

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.

continuous · ODE3 dimensionschaotic advection

Interactive: drag to rotate

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
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

BibTeX
@misc{doublegyre,
  title = {DoubleGyre system},
  note = {Shadden, Lekien & Marsden (2005), Physica D 212, 271-304},
  doi = {10.1016/j.physd.2005.10.007}
}