Code and numerics

The model is gridded in both $x$ and $y$, though spectral methods are often used for calculations in the $x$ direction. In the near future I plan to provide the option of making the model completely spectral in the $x$ direction, so that, for example, one could isolate differents scales of zonal wave-mean flow interaction.

Timestepper

RK4 (switching to integrating factor for linear terms is on the short list)

Boundary conditions

We apply no normal flow boundary conditions on the meridional walls. In addition, we apply the no stress condition ($nabla^2 psi = 0$) in order to satisfy the boundary condition for the biharmonic viscosity.

General flow of code

The code follows a standard workflow for a QG model. We time step the QG PV where the right hand side of the time tendency equation is calculated in rhs() function in teh 2LQG_main.jl file. This righthand side includes (in order)

  • Invert QG PV to get streamfunction

  • Calculate Jacobian term

  • Add $-beta v_{k}$ to the time tendency of QG PV

  • Add hyperviscosity

  • Add bottom friction

  • Apply thermal damping

See the rhs() function for more details.