Introduction
TODO:
Restructure this page so the initial introductory material is about plane waves, plane wave rays, and so forth, avoiding the need for non-dimensional coordinates up-front. Move all the Rotunno (1983) stuff to a separate page.
Here we present models that feature inertia-gravity wave dynamics. Most of our models are derived from the work of Rotunno (1983). We can often solve these models purely analytically, sometimes discovering interesting connections between the maths, logic and physics. On this page, we use the original Rotunno (1983) model to introduce some key ideas; further details on the Rotunno (1983) model itself can be found on the Land-Sea Breeze page.
Governing equations
We first linearize the governing equations and make the Boussinesq/shallow-anelastic and \(f\)-plane approximations. The symbol \(*\) indicates our variables our “dimensional”, i.e. they have physical units; we discuss the corresponding unit-less “non-dimensional” later.
Dimensional Governing Equations
The function \(Q_*\) represents a forcing on the buoyancy tendency we loosely call “heating”. Rotunno (1983), Qian et al. (2009), and many subsequent papers consider
which emulates the heating/cooling of a land-surface \(x>0\) as compared to an ocean surface \(x<0\), where \(L\) and \(H\) are horizontal and vertical length scales, respectively, and \(\omega\) is the diurnal frequency. The applet below visualizes this choice of \(Q_*\) [1].
Rotunno (1983) Applet
Loading...
This can take a few minutes!
The idea is that we have chosen our coordinates \((x_*, y_*, z_*)\) so that \(x_*=0\), \(z_*=0\) represents a coastline, which extends infinitely far into and out of the screen in the \(y_*\) direction. The \(z_*=0\) lower boundary represents land and sea for \(x_*>0\) and \(x_*<0\), respectively; imagine you’re at the beach, looking down the coastline, with sand to your right, and water to your left. The land surface changes temperature over the course of the day, but the ocean surface temperature is comparatively constant. You should play with the \(t\), \(Q_0\), \(H\) and \(L\) sliders to see how the forcing \(Q_*\) changes. Also, with \(Q_*\) given by \(\eqref{Q_sea_breeze_dim}\) we can solve \(\text{\eqref{u_mom_dim}-\eqref{boundary_dim}}\) analytically! Switching on the quiver plot shows the \((u, w)\) vectors overlaid on \(Q\). You can also change the shading from \(Q\) to another variable, e.g. \(v\). If the applets are laggy in Firefox, abandon computer communism, and embrace Chrome counter-revolution instead.
Non-Dimensionalization
Next we scale variables to remove units, i.e. we non-dimensionalize. One reason to non-dimensionalize is that units are mathematically annoying; what are the units of \(\ln(10 \text{ m})\)? Another reason to non-dimensionalize is to reduce the number of independent variables in our models. Yet another reason is to ensure the interesting parts of our models are always visible in our figures as we mess with the parameters!
Here we use the scalings from Qian et al. (2009);
where \(H\) is a representative height scale, \(\omega\) a representative frequency, and \(Q_0\) a representative amplitude of the forcing \(Q\). These scales can often be inferred from the forcing function \(Q\). Note with the land-sea breeze \(Q\) given above, \(\omega=\frac{2\pi}{24\cdot 3600} \text{ s}^{-1}\approx 7.272 \times 10^{-5} \text{ s}^{-1}\) is the diurnal frequency. In general however, \(\omega\) can be any representative frequency appropriate for the given problem.
Substituting the above scaling expressions into our governing equations and simplifying we get
Non-Dimensional Governing Equations
The Rotunno (1983) \(Q_*\) function \(\eqref{Q_sea_breeze_dim}\) becomes
where \(\mathcal{L} = \frac{\omega}{NH}L\) is the non-dimensional horizontal length scale. [2]
Scroll back up to the applet (or open it in another window) and click the radio button to switch to non-dimensional coordinates. Notice the number of sliders decreases by two. As noted above, non-dimensionalization typically reduces the number of independent variables needed to completely describe all the possible behaviours of our model, reflecting a result called the Buckingham \(\pi\) Theorem.
Hydrostatic Waves
When \(\omega\) is the diurnal frequency \(\frac{2\pi}{24\cdot 3600} \text{ s}^{-1} \approx 7.272 \times 10^{-5} \text{ s}^{-1}\), the term \(\frac{\omega^2}{N^2}\) is tiny, and terms containing this factor can be neglected. Wave solutions for which \(\frac{\omega^2}{N^2} \approx 0\) are called hydrostatic waves. The adjective “hydrostatic” reflects
i.e. that buoyancy forces are approximately balanced by vertical pressure gradient forces. In this context the balance is only approximate, and hence does not imply \(w=0\). Indeed, as we will see later, vertical velocities are essential to the core dynamics of gravity waves. The concept of “hydrostatic waves” is thus distinct from the usual “hydrostatic balance” condition \(\frac{\partial p}{\partial z} = -\rho g\) we encounter in synoptic meteorology, which does imply \(w=0\).
In the land-sea breeze model above, \(\omega\) is indeed the diurnal frequency, and so the model is mostly unresponsive to \(\frac{N}{\omega}\), except for the very smallest values of \(N\). Switching back to dimensional coordinates, we see that varying \(N\) changes the tick labels on the \(x\) axis in accordance with the scalings given above.
The Stream Function
Most of our models are solved analytically using a stream function. By way of introduction, consider the function \(\psi(x,z,t)\) defined by
where \(z_0\) is some arbitrary constant starting height and \(f(x)\) is some function of \(x\) alone. Provided \(u\) is continuous for \(z'\in [z_0,z]\), the first part of the fundamental theorem of calculus implies \(\psi_z = u\). Now
where the second line follows from the Leibniz integral rule, noting neither \(z_0\) or \(z\) depend on \(x\). But the continuity equation for our Boussinesq fluid implies \(u_x = -w_z\), and so
where the second line follows from the second part of the fundamental theorem of calculus, which holds provided \(w(x,z',t)\) is continuous for \(z\in [z_0,z]\). Now, so far \(f(x,t)\) has been arbitrary, but let’s impose the additional condition that \(f_x(x,t):= -w(x,z_0,t)\). Then \(w=-\psi_x\).
We have therefore found a scalar function \(\psi(x,z,t)\), which we call a stream function, which satisfies
Core Property of Stream Functions
Stream functions simplify things considerably. It’s easier to solve for one scalar field \(\psi\) than a vector field \((u,w)\). Stream functions are also physically interpretable. In our case the \((u,w)\) winds are tangential to the contours of \(\psi\) at all times, and the more closely packed the contours, the stronger the winds. Note that this does not imply parcel trajectories follow streamlines! You can study the relationship between \(\psi\) and \((u,w)\) using the applet by switching the shading to \(\psi\) and turning on the quiver plot.
Note stream functions are in general not unique; we can add any function \(g(t)\) of \(t\) alone to \(f(x,t)\) and still have \(f_x(x,t):= -w(x,z_0,t)\) and \((u,w) = (\psi_z, -\psi_x)\).
The preceding argument shows stream functions exist provided \(u_x + w_z = 0\), and continuity conditions on \(u\) and \(w\) are satisfied. This is a special case of the Poincaré lemma, typically taught in graduate differential geometry courses. [3]
A Partial Differential Equation
We now derive a single partial differential equation (PDE) for the stream function \(\psi\). We’ll include some algebraic gore as it’s our first time. To start, rewrite \(\text{\eqref{u_mom}-\eqref{b}}\) by grouping the time tendency and diffusion terms; equations \(\eqref{u_mom}\) and \(\eqref{v_mom}\) become
If expressions like \(\left(\frac{\partial}{\partial t} + \frac{\alpha}{\omega}\right)\) disturb you, you’re not alone! Have a look at :ref:`` Take \(\left(\frac{\partial }{\partial t} + \frac{\alpha}{\omega}\right)\) of \(\eqref{u_mom_grouped}\) and substitute in \(\eqref{v_mom_grouped}\) to get
Then take \(\frac{\partial}{\partial z}\) of both sides of \(\eqref{u_mom_alt}\) to get
Next, rearrange \(\eqref{w_mom}\) and take \(\left(\frac{\partial}{\partial t} + \frac{\alpha}{\omega}\right)\frac{\partial}{\partial x}\) of both sides to get
Now use \(\eqref{w_mom_alt_x}\) to eliminate \(-\left(\frac{\partial}{\partial t} + \frac{\alpha}{\omega}\right)\phi_{zx}\) in \(\eqref{u_mom_alt_z}\) to get
Next, rearrange \(\eqref{b}\) and take an \(x\) derivative of both sides to get
Now substitute \(\eqref{b_x}\) into \(\eqref{u_w}\) and rearrange to get
Finally, substitute \((u_z,w_x) = (\psi_{zz}, -\psi_{xx})\) into \(\eqref{u_w_alt}\) and group terms to get
Partial Differential Equation for \(\psi\)
The Fourier Transform
The next step is to take Fourier transforms \(t\mapsto \sigma\) and \(x\mapsto k\) of \(\eqref{psi_pde}\) to get
Now define for convenience
Then \(\eqref{psi_fourier}\) can be expressed
Ordinary Differential Equation for \(\widehat{\psi}\)
To better understand equation \(\eqref{psi_fourier_simp}\), let’s review what we’ve done so far.
We started with equations \(\eqref{u_mom_dim}-\eqref{boundary_dim}\), a system of coupled PDEs enforcing conservation of momentum, energy and mass for our fluid.
We non-dimensionalized and crunched these PDEs down into a single equation for the stream function \(\psi\) to get \(\eqref{psi_pde}\).
Taking Fourier transforms in \(t\) and \(x\) has now given us \(\eqref{psi_fourier_simp}\), an ordinary differential equation (ODE) in \(z\) for \(\widehat{\psi}\).
Note the function \(\widehat{\psi}\) depends on \(k, z\) and \(\sigma\), and remember that the inverse Fourier transform says
So really what we’ve done is express \(\psi\) as a fancy sum (a double integral) of wave like terms \(\widehat{\psi}(k,z,\sigma) e^{i(kx + \sigma t)}\), with the amplitudes of these waves given by \(\widehat{\psi}(k,z,\sigma)\). We can therefore describe \(\widehat{\psi}\) as a “vertical structure function”. Analogous points apply to \(\widehat{Q_x}\), which gives us the vertical structure of the forcing decomposed into its constituent horizontal wavenumbers and frequencies.
Equation \(\eqref{psi_fourier_simp}\) thus tells us how the vertical structure of the response depends on the vertical structure of the forcing. In other words, we can think of \(Q\) as having “excited” a bunch of different horizontal waves \(e^{i(kx + \sigma t)}\) in our fluid, with the strength of each wave at height \(z\) determined precisely from \(Q\) via \(\eqref{psi_fourier_simp}\).
Solution
So to solve the Rotunno (1983) model, we just need to solve \(\eqref{psi_fourier_simp}\) for \(\widehat{\psi}\), then recover \(\psi\) via the inverse Fourier transform \(\eqref{inverse_fourier}\). Our first step is to consider the simpler, so called “homogeneous”, version of \(\eqref{psi_fourier_simp}\),
Homogenous Equation for \(\widehat{\psi}\)
i.e. \(\eqref{psi_fourier_simp}\) but with \(\widehat{Q_x}=0\). Writing \(m=\frac{k}{A}\) we have
where \(a_p, a_m \in\mathbb{C}\) do not depend on \(z\). Notice that we have yet to apply the lower boundary condition \(\eqref{boundary}\). Indeed, if there were no lower boundary, and if \(Q=0\), then \(\eqref{homo_sol}\) and \(\eqref{inverse_fourier}\) suggest that all expressions of the form
\(m = \frac{k}{A}\), are solutions to our system \(\eqref{u_mom} - \eqref{cont}\); you can check this by direct substitution. Note in the case of no dispersion, \(\alpha=0\), the condition \(m = \frac{k}{A}\) is equivalent to the usual intertia-gravity wave dispersion relation, stated in dimensional coordinates,
where \(k_*, m_*, \sigma_*\) are the wavenumbers and frequency in dimensional coordinates. [4]
Plane Wave
Loading...
This can take a few minutes!
Appendix A: Operators
To get equation \(\eqref{u_mom_grouped}\), we implicitly used the fact that
Equations like \(\eqref{grouped_terms}\) freaked me out when I first encountered them. For numbers \(a, b, c\) we know multiplication distributes over addition, i.e. \(ac + bc = (a+b)c\), and equation \(\eqref{grouped_terms}\) may therefore feel intuitive. However, \(\frac{\partial u}{\partial t}, u\) and \(\frac{\partial}{\partial t}\) are functions, not numbers! Even worse, \(\frac{\partial u}{\partial t}\) and \(u\) are functions mapping real vectors to real numbers, but \(\frac{\partial}{\partial t}\) is a function mapping one function to another function, e.g. \(u \mapsto \frac{\partial u}{\partial t}\). So the distributive law for numbers isn’t actually relevant here.
To make sense of equations like \(\eqref{grouped_terms}\), note that they express equalities of functions, not numbers; the same is true of most other equations on this page. Two functions are equal if their domains and co-domains are the same, and they map the same points in the domain to the same points in the co-domain. Furthermore, the additions and multiplications you see in equations like \(\eqref{grouped_terms}\) actually express addition of functions, and multiplication of functions by numbers. For arbitrary functions \(f:A\to B\) and \(g:A\to B\), we define \(f+g:A\to B\) as the new function \((f+g):A\to B\) satisfying \((f+g)(x) = f(x) + g(x)\) for all \(x\in A\). In an analogous way, for a number \(a\), we define \((af)(x) = af(x)\). You’re probably used to doing all this without even thinking about it.
Things get confusing with expressions like \(\frac{\partial}{\partial t} + \frac{\alpha}{\omega}\). As noted above, \(\frac{\partial}{\partial t}\) is really a function which acts on functions; such objects are typically called operators. Analogously to above, we can define what it means to sum two operators, and multiply an operator by a function. Thus the expression \(\frac{\partial}{\partial t} + \frac{\alpha}{\omega}\) is really a sum of two operators, where we must interpret \(\frac{\alpha}{\omega}\) as the operator which sends a function, say \(u\), to the function \(\frac{\alpha}{\omega}u\). Using square brackets to enclose the function being fed into the given operator, we thus have
by definition. In practice you will rarely see operators written out this way; typically we just assume operators “act from the left”, i.e.
means the same thing as
However, suppressing the square brackets can be deceptive, as it may appear we are “multiplying” terms like \(\left(\frac{\partial}{\partial t} + \frac{\alpha}{\omega}\right)\) and \(u\), rather than feeding \(u\) into the operator \(\left(\frac{\partial}{\partial t} + \frac{\alpha}{\omega}\right)\). Sometimes we really are multiplying though, in the sense of multiplying an operator by a function. For instance, you may see expressions like \(u\frac{\partial}{\partial t}\), which multiplies the function \(u\) by the operator \(\frac{\partial}{\partial t}\) to produce another operator; this operator is thus a completely different mathematical object to \(\frac{\partial}{\partial t}u\), which is a function! Similarly, you may see expressions like \(\left(\frac{\partial}{\partial t} + \frac{\alpha}{\omega}\right)^2\), which should be interpreted as a composition of operators, i.e. \(\left(\frac{\partial}{\partial t} + \frac{\alpha}{\omega}\right)\circ \left(\frac{\partial}{\partial t} + \frac{\alpha}{\omega}\right)\).
The ideas sketched in this appendix are made rigorous in abstract algebra and functional analysis courses.