Examples of Boussinesq channel flow¶
Here we detail a few example problems we have implemented using dedaLES’s BoussinesqChannelFlow class. This class implenents the Boussinesq equations with optional rotation or background buoyancy gradient in a horizontally-periodic domain with rigid top and bottom boundaries.
Rayleigh-Benard Convection¶
This example resembles the standard 3D Rayleigh-Benard convection example included with dedalus. This example is implemented in rayleigh_benard_example.py.
In this problem, which reaches a statistically-steady state if run for long enough, a constant and unstable buoyancy differential maintained between the top and bottom boundary drives convection and turbulence. Two key parameters are the Prandtl number \(Pr\), and the Rayleigh number, \(Ra\). Together these determine the unstable top-to-bottom buoyancy gradient \(B_z = -Ra Pr\), which is applied to the system via the boundary conditions
where \(L_z\) is the domain height. The simulation is initialized with random noise of the form
where \(a \epsilon(x, y, z)\) is normally distributed random noise with amplitude \(a\).
We use the following parameters, all of which are non-dimensional:
| Parameter | Values |
|---|---|
| \(L_x, L_y\) | \(25\) |
| \(L_z\) | \(1\) |
| \(n_x, n_y\) | \(64\) |
| \(n_z\) | \(16\) |
| \(\kappa\) | \(1.0\) |
| \(Pr = \nu/\kappa\) | \(1.0\) |
| \(Ra_{\text{crit}}\) | \(1707.762\) |
| \(Ra\) | \(1.8 Ra_{\text{crit}}\) |
| \(a\) | \(10^{-3}\) |
Convection into a stratified fluid¶
This example is implemented in ocean_convection_example.py.
In this initial value problem, a constant flux of buoyancy out of the surface drives cooling and convection into a stratified fluid. The initial buoyancy profile is given by
where \(h_0\) is the initial mixed layer depth, the buoyancy gradient below the mixed layer is \(\d_z b(z=-L_z) = N^2_{\infty}\), and \(H_d(\zeta)\) is a smoothed Heaviside function that goes from \(0\) to \(1\) across \(\zeta=0\) with transition width \(d\):
The lower boundary condition specifies a constant flux such that
The upper boundary condition specifies an asymptotically constant cooling rate. In terms of the buoyancy flux \(F = \kappa \d_z b\), the cooling rate in \(\r{W \, m^{-2}}\) is
The buoyancy gradient at the surface associated with a given \(Q\) is thus
As in Taylor and Ferrari 2010, we decrease the surface buoyancy flux from \(0\) to its asymptotic value \(b_{0z}\) gradually, such that the boundary condition is
where \(t_0\) is the time-scale over which the buoyancy flux decreases.
We use the following parameters for our examples:
| Parameter | Values | Units |
|---|---|---|
| \(L_x, L_y\) | \(200\) | \(\r{m}\) |
| \(L_z\) | \(100\) | \(\r{m}\) |
| \(n_x, n_y\) | \(64\) | None |
| \(n_z\) | \(32\) | None |
| \(Q\) | \(-0.1, -10, -1000\) | \(\r{W \, m^{-2}}\) |
| \(t_0\) | \(1\) | \(\r{day}\) |
| \(N^2_{\infty}\) | \(9.5 \times 10^{-3}\) | \(\r{s^{-2}}\) |
| \(h_0\) | \(50\) | \(\r{m}\) |
| \(d\) | \(10\) | \(\r{m}\) |
| \(\alpha\) | \(2.5 \times 10^{-4}\) | \(\r{K^{-1}}\) |
| \(g\) | \(9.81\) | \(\r{m \, s^{-2}}\) |
| \(\rho_0\) | \(1028\) | \(\r{kg \, m^{-3}}\) |
| \(c_P\) | \(3993\) | \(\r{J \, kg^{-1} \, K^{-1}}\) |
| \(\kappa\) | \(1.43 \times 10^{-7}\) | \(\r{m^2 \, s^{-1}}\) |