diff --git a/docs/src/modules/barotropicqgql.md b/docs/src/modules/barotropicqgql.md index 6b950978..867c57fd 100644 --- a/docs/src/modules/barotropicqgql.md +++ b/docs/src/modules/barotropicqgql.md @@ -14,13 +14,13 @@ where overline above denotes a zonal mean, $\overline{\phi}(y, t) = \int \phi(x, - Constantinou, N. C., Farrell, B. F., and Ioannou, P. J. (2014). [Emergence and equilibration of jets in beta-plane turbulence: applications of Stochastic Structural Stability Theory.](http://doi.org/10.1175/JAS-D-13-076.1) *J. Atmos. Sci.*, **71 (5)**, 1818-1842. -As in the [BarotropicQG module](barotropicqg.md), the flow is obtained through a streamfunction $\psi$ as $(u, \upsilon) = (-\partial_y\psi, \partial_x\psi)$. All flow fields can be obtained from the quasi-geostrophic potential vorticity (QGPV). Here the QGPV is +As in the [BarotropicQG module](barotropicqg.md), the flow is obtained through a streamfunction $\psi$ as $(u, v) = (-\partial_y\psi, \partial_x\psi)$. All flow fields can be obtained from the quasi-geostrophic potential vorticity (QGPV). Here the QGPV is -$$\underbrace{f_0 + \beta y}_{\text{planetary PV}} + \underbrace{(\partial_x \upsilon +$$\underbrace{f_0 + \beta y}_{\text{planetary PV}} + \underbrace{(\partial_x v - \partial_y u)}_{\text{relative vorticity}} + \underbrace{\frac{f_0 h}{H}}_{\text{topographic PV}}.$$ -The dynamical variable is the component of the vorticity of the flow normal to the plane of motion, $\zeta\equiv \partial_x \upsilon- \partial_y u = \nabla^2\psi$. Also, we denote the topographic PV with $\eta\equiv f_0 h/H$. After we apply the eddy-mean flow decomposition above, the QGPV dynamics are: +The dynamical variable is the component of the vorticity of the flow normal to the plane of motion, $\zeta\equiv \partial_x v- \partial_y u = \nabla^2\psi$. Also, we denote the topographic PV with $\eta\equiv f_0 h/H$. After we apply the eddy-mean flow decomposition above, the QGPV dynamics are: $$\partial_t \overline{\zeta} + \mathsf{J}(\overline{\psi}, \underbrace{\overline{\zeta} + \overline{\eta}}_{\equiv \overline{q}}) + \overline{\mathsf{J}(\psi', \underbrace{\zeta' + \eta'}_{\equiv q'})} = \underbrace{-\left[\mu + \nu(-1)^{n_\nu} \nabla^{2n_\nu} \right] \overline{\zeta} }_{\textrm{dissipation}} \ .$$ @@ -47,7 +47,7 @@ Thus: $$\mathcal{L} = \beta\frac{\mathrm{i}k_x}{k^2} - \mu - \nu k^{2n_\nu}\ ,$$ $$\mathcal{N}(\widehat{\zeta}) = - \mathrm{i}k_x \mathrm{FFT}(u q)^{\textrm{QL}}- - \mathrm{i}k_y \mathrm{FFT}(\upsilon q)^{\textrm{QL}}\ .$$ + \mathrm{i}k_y \mathrm{FFT}(v q)^{\textrm{QL}}\ .$$ ## Examples diff --git a/docs/src/modules/multilayerqg.md b/docs/src/modules/multilayerqg.md index 33f4eaef..b4e2a9c4 100644 --- a/docs/src/modules/multilayerqg.md +++ b/docs/src/modules/multilayerqg.md @@ -4,7 +4,7 @@ This module solves the layered quasi-geostrophic equations on a beta-plane of variable fluid depth ``H - h(x, y)``. The flow in each layer is obtained through a streamfunction ``\psi_j`` as -``(u_j, \upsilon_j) = (-\partial_y \psi_j, \partial_x \psi_j)``, ``j = 1, \dots, n``, where ``n`` +``(u_j, v_j) = (-\partial_y \psi_j, \partial_x \psi_j)``, ``j = 1, \dots, n``, where ``n`` is the number of fluid layers. The QGPV in each layer is diff --git a/docs/src/modules/singlelayerqg.md b/docs/src/modules/singlelayerqg.md index 16876206..35324155 100644 --- a/docs/src/modules/singlelayerqg.md +++ b/docs/src/modules/singlelayerqg.md @@ -3,11 +3,11 @@ ### Basic Equations This module solves the barotropic or equivalent barotropic quasi-geostrophic vorticity equation -on a beta-plane of variable fluid depth ``H - h(x, y)``. The flow is obtained through a streamfunction ``\psi`` as ``(u, \upsilon) = (-\partial_y \psi, \partial_x \psi)``. All flow +on a beta-plane of variable fluid depth ``H - h(x, y)``. The flow is obtained through a streamfunction ``\psi`` as ``(u, v) = (-\partial_y \psi, \partial_x \psi)``. All flow fields can be obtained from the quasi-geostrophic potential vorticity (QGPV). Here the QGPV is ```math - \underbrace{f_0 + \beta y}_{\text{planetary PV}} + \underbrace{\partial_x \upsilon + \underbrace{f_0 + \beta y}_{\text{planetary PV}} + \underbrace{\partial_x v - \partial_y u}_{\text{relative vorticity}} - \!\! \underbrace{\frac{1}{\ell^2} \psi}_{\text{vortex stretching}} \!\! + \underbrace{\frac{f_0 h}{H}}_{\text{topographic PV}} \ , @@ -64,7 +64,7 @@ Thus: ```math \begin{aligned} \mathcal{L} & = \beta \frac{\mathrm{i} k_x}{k^2 + 1/\ell^2} - \mu - \nu k^{2n_\nu} \ , \\ -\mathcal{N}(\widehat{q}) & = - \mathrm{i} k_x \mathrm{FFT}[u (q+\eta)] - \mathrm{i} k_y \mathrm{FFT}[\upsilon (q+\eta)] \ . +\mathcal{N}(\widehat{q}) & = - \mathrm{i} k_x \mathrm{FFT}[u (q+\eta)] - \mathrm{i} k_y \mathrm{FFT}[v (q+\eta)] \ . \end{aligned} ``` diff --git a/docs/src/modules/surfaceqg.md b/docs/src/modules/surfaceqg.md index 9668f453..c7f95335 100644 --- a/docs/src/modules/surfaceqg.md +++ b/docs/src/modules/surfaceqg.md @@ -7,7 +7,7 @@ buoyancy $b_s = b(x, y, z=0)$, as described in Capet et al., 2008. The buoyancy velocity at the surface are related through a streamfunction $\psi$ via: ```math -(u_s, \upsilon_s, b_s) = (-\partial_y \psi, \partial_x \psi, -\partial_z \psi) . +(u_s, v_s, b_s) = (-\partial_y \psi, \partial_x \psi, -\partial_z \psi) . ``` The SQG model evolves the surface buoyancy, @@ -46,9 +46,9 @@ In doing so the Jacobian is computed in the conservative form: $\mathsf{J}(f,g) Thus: ```math \begin{aligned} -\widehat{u} &= \frac{\mathrm{i} k_y}{k} \widehat{b_s}, \qquad \widehat{\upsilon} = -\frac{\mathrm{i} k_x}{k} \widehat{b_s}, \\ +\widehat{u} &= \frac{\mathrm{i} k_y}{k} \widehat{b_s}, \qquad \widehat{v} = -\frac{\mathrm{i} k_x}{k} \widehat{b_s}, \\ \mathcal{L} & = - \nu k^{2n_\nu},\\ -\mathcal{N}(\widehat{b_s}) & = - \mathrm{i} k_x \mathrm{FFT}(u b) - \mathrm{i} k_y \mathrm{FFT}(\upsilon b) . +\mathcal{N}(\widehat{b_s}) & = - \mathrm{i} k_x \mathrm{FFT}(u b) - \mathrm{i} k_y \mathrm{FFT}(v b) . \end{aligned} ``` diff --git a/docs/src/modules/twodnavierstokes.md b/docs/src/modules/twodnavierstokes.md index a95706a3..c5d22918 100644 --- a/docs/src/modules/twodnavierstokes.md +++ b/docs/src/modules/twodnavierstokes.md @@ -4,9 +4,9 @@ ### Basic Equations This module solves two-dimensional incompressible turbulence. The flow is given -through a streamfunction $\psi$ as $(u,\upsilon) = (-\partial_y\psi, \partial_x\psi)$. +through a streamfunction $\psi$ as $(u,v) = (-\partial_y\psi, \partial_x\psi)$. The dynamical variable used here is the component of the vorticity of the flow -normal to the plane of motion, $\zeta=\partial_x \upsilon- \partial_y u = \nabla^2\psi$. +normal to the plane of motion, $\zeta=\partial_x v- \partial_y u = \nabla^2\psi$. The equation solved by the module is: $$\partial_t \zeta + \mathsf{J}(\psi, \zeta) = \underbrace{-\left[\mu(-1)^{n_\mu} \nabla^{2n_\mu} @@ -31,7 +31,7 @@ Thus: $$\mathcal{L} = -\mu k^{-2n_\mu} - \nu k^{2n_\nu}\ ,$$ $$\mathcal{N}(\widehat{\zeta}) = - \mathrm{i}k_x \mathrm{FFT}(u \zeta)- - \mathrm{i}k_y \mathrm{FFT}(\upsilon \zeta) + \widehat{f}\ .$$ + \mathrm{i}k_y \mathrm{FFT}(v \zeta) + \widehat{f}\ .$$ ### AbstractTypes and Functions @@ -53,11 +53,11 @@ For the forced case ($f\ne 0$) parameters AbstractType is build with `ForcedPara For the unforced case ($f=0$) variables AbstractType is build with `Vars` and it includes: - `zeta`: Array of Floats; relative vorticity. - `u`: Array of Floats; $x$-velocity, $u$. -- `v`: Array of Floats; $y$-velocity, $\upsilon$. +- `v`: Array of Floats; $y$-velocity, $v$. - `sol`: Array of Complex; the solution, $\widehat{\zeta}$. - `zetah`: Array of Complex; the Fourier transform $\widehat{\zeta}$. - `uh`: Array of Complex; the Fourier transform $\widehat{u}$. -- `vh`: Array of Complex; the Fourier transform $\widehat{\upsilon}$. +- `vh`: Array of Complex; the Fourier transform $\widehat{v}$. For the forced case ($f\ne 0$) variables AbstractType is build with `ForcedVars`. It includes all variables in `Vars` and additionally: - `Fh`: Array of Complex; the Fourier transform $\widehat{f}$. @@ -73,7 +73,7 @@ The nonlinear term $\mathcal{N}(\widehat{\zeta})$ is computed via functions: - `calcN_forced!`: computes $- \widehat{\mathsf{J}(\psi, \zeta)}$ via `calcN_advection!` and then adds to it the forcing $\widehat{f}$ computed via `calcF!` function. Also saves the solution $\widehat{\zeta}$ of the previous time-step in array `prevsol`. -- `updatevars!`: uses `sol` to compute $\zeta$, $u$, $\upsilon$, $\widehat{u}$, and $\widehat{\upsilon}$ and stores them into corresponding arrays of `Vars`/`ForcedVars`. +- `updatevars!`: uses `sol` to compute $\zeta$, $u$, $v$, $\widehat{u}$, and $\widehat{v}$ and stores them into corresponding arrays of `Vars`/`ForcedVars`. ## Examples diff --git a/src/multilayerqg.jl b/src/multilayerqg.jl index dd7fb345..132af756 100644 --- a/src/multilayerqg.jl +++ b/src/multilayerqg.jl @@ -612,14 +612,14 @@ verticalfluxes``_{3/2},...,``verticalfluxes``_{n-1/2}``, where ``n`` is the tota The lateral eddy fluxes whithin the ``j``-th fluid layer are ```math -\\textrm{lateralfluxes}_j = \\frac{H_j}{H} \\int U_j \\, \\upsilon_j \\, \\partial_y u_j +\\textrm{lateralfluxes}_j = \\frac{H_j}{H} \\int U_j \\, v_j \\, \\partial_y u_j \\frac{\\mathrm{d}^2 \\boldsymbol{x}}{L_x L_y} \\ , \\quad j = 1, \\dots, n \\ , ``` while the vertical eddy fluxes at the ``j+1/2``-th fluid interface (i.e., interface between the ``j``-th and ``(j+1)``-th fluid layer) are ```math \\textrm{verticalfluxes}_{j+1/2} = \\int \\frac{f_0^2}{g'_{j+1/2} H} (U_j - U_{j+1}) \\, -\\upsilon_{j+1} \\, \\psi_{j} \\frac{\\mathrm{d}^2 \\boldsymbol{x}}{L_x L_y} \\ , \\quad +v_{j+1} \\, \\psi_{j} \\frac{\\mathrm{d}^2 \\boldsymbol{x}}{L_x L_y} \\ , \\quad j = 1 , \\dots , n-1. ``` """