Back to home page

MITgcm

 
 

    


Warning, /doc/examples/plume_on_slope/plume_on_slope.rst is written in an unsupported language. File is not indexed.

view on githubraw file Latest commit 0bad585a on 2022-02-16 18:55:09 UTC
3ceb1ce0a9 Jeff*0001 .. _tutorial_plume_on_slope:
                0002 
d67096e55c Jeff*0003 Gravity Plume On a Continental Slope
                0004 ====================================
                0005 
                0006 (in directory: :filelink:`verification/tutorial_plume_on_slope/`)
                0007 
                0008    .. figure:: figs/billows.png
                0009        :width: 80%
                0010        :align: center
                0011        :alt: plume on slope image
                0012        :name: tut_plume_on_slop_out
                0013 
                0014        Temperature after 23 hours of cooling. The cold dense water is mixed with ambient water as it accelerates down the slope and hence is warmer than the unmixed plume.
                0015 
                0016 An important test of any ocean model is the ability to represent the
                0017 flow of dense fluid down a slope. One example of such a flow is a
                0018 non-rotating gravity plume on a continental slope, forced by a limited
                0019 area of surface cooling above a continental shelf. Because the flow is
                0020 non-rotating, a two dimensional model can be used in the across slope
                0021 direction. The experiment is non-hydrostatic and uses open-boundaries to
                0022 radiate transients at the deep water end. (Dense flow down a slope can
                0023 also be forced by a dense inflow prescribed on the continental shelf;
                0024 this configuration is being implemented by the DOME (Dynamics of
                0025 Overflow Mixing and Entrainment) collaboration to compare solutions in
                0026 different models).
                0027 
                0028 The fluid is initially unstratified. The surface buoyancy loss
                0029 :math:`B_0` (dimensions of L\ :math:`^2`\ T\ :math:`^{-3}`) over a
                0030 cross-shelf distance :math:`R` causes vertical convective mixing and
                0031 modifies the density of the fluid by an amount
                0032 
                0033 .. math:: \Delta \rho = \frac{B_0 \rho_0 t}{g H}
                0034 
                0035 where :math:`H` is the depth of the shelf, :math:`g` is the
                0036 acceleration due to gravity, :math:`t` is time since onset of cooling
                0037 and :math:`\rho_0` is the reference density. Dense fluid slumps under
                0038 gravity, with a flow speed close to the gravity wave speed:
                0039 
                0040 .. math::
                0041 
                0042    U
                0043    \sim \sqrt{g' H}
                0044    \sim \sqrt{ \frac{g \Delta \rho H}{\rho_0} }
                0045    \sim \sqrt{B_0 t}
                0046 
                0047 A steady state is rapidly established in which the buoyancy flux out of
                0048 the cooling region is balanced by the surface buoyancy loss. Then
                0049 
                0050 .. math:: U \sim (B_0 R)^{1/3} \mbox{  ;  } \Delta \rho \sim \frac{\rho_0}{g H} (B_0 R)^{2/3}
                0051 
                0052 The Froude number of the flow on the shelf is close to unity (but in
                0053 practice slightly less than unity, giving subcritical flow). When the
                0054 flow reaches the slope, it accelerates, so that it may become
                0055 supercritical (provided the slope angle :math:`\alpha` is steep
                0056 enough). In this case, a hydraulic control is established at the shelf
                0057 break. On the slope, where the Froude number is greater than one, and
                0058 gradient Richardson number (defined as :math:`Ri \sim g' h^*/U^2` where
                0059 :math:`h^*` is the thickness of the interface between dense and ambient
                0060 fluid) is reduced below 1/4, Kelvin-Helmholtz instability is possible,
                0061 and leads to entrainment of ambient fluid into the plume, modifying the
                0062 density, and hence the acceleration down the slope. Kelvin-Helmholtz
                0063 instability is suppressed at low Reynolds and Peclet numbers given by
                0064 
                0065 .. math:: Re \sim \frac{U h}{ \nu} \sim \frac{(B_0 R)^{1/3} h}{\nu} \mbox{  ;  } Pe = Re Pr
                0066 
                0067 where :math:`h` is the depth of the dense fluid on the slope. Hence
                0068 this experiment is carried out in the high Re, Pe regime. A further
                0069 constraint is that the convective heat flux must be much greater than
0bad585a21 Navi*0070 the diffusive heat flux (Nusselt number :math:`\gg  1`). Then
d67096e55c Jeff*0071 
0bad585a21 Navi*0072 .. math:: Nu = \frac{U h^* }{\kappa} \gg  1
d67096e55c Jeff*0073 
                0074 Finally, since we have assumed that the convective mixing on the shelf
                0075 occurs in a much shorter time than the horizontal equilibration, this
0bad585a21 Navi*0076 implies :math:`H/R \ll 1`.
d67096e55c Jeff*0077 
                0078 Hence to summarize the important non-dimensional parameters, and the
                0079 limits we are considering:
                0080 
                0081 .. math::
                0082 
0bad585a21 Navi*0083    \frac{H}{R} \ll  1 \mbox{ ; } Re \gg  1 \mbox{  ; } Pe \gg  1 \mbox{  ; } Nu \gg  1
                0084    \mbox{  ;  } \mbox{  ; } Ri < 1/4 .
d67096e55c Jeff*0085 
                0086 In addition we are assuming that the slope is steep enough to provide
                0087 sufficient acceleration to the gravity plume, but nonetheless much less
                0088 that 1:1, since many Kelvin-Helmholtz billows appear on the
0bad585a21 Navi*0089 slope, implying horizontal length scale of the slope :math:`\gg` the depth
d67096e55c Jeff*0090 of the dense fluid.
                0091 
                0092 Configuration
                0093 -------------
                0094 
                0095 The topography, spatial grid, forcing and initial conditions are all
                0096 specified in binary data files generated using matlab script
                0097 :filelink:`verification/tutorial_plume_on_slope/input/gendata.m` and detailed in :numref:`tut_plume_on_slope_config`. Other model
                0098 parameters are specified in :filelink:`input/data <verification/tutorial_plume_on_slope/input/data>` and
                0099 :filelink:`input/data.obcs <verification/tutorial_plume_on_slope/input/data.obcs>` and detailed in :numref:`tut_plume_on_slope_mod_parms`.
                0100 
                0101 .. _tut_plume_on_slope_config:
                0102 
                0103 Binary input data
                0104 -----------------
                0105 
                0106    .. figure:: figs/dx.png
                0107        :width: 80%
                0108        :align: center
                0109        :alt: plume on slope dx
                0110        :name: dx-plume-on-slope
                0111 
                0112        Horizontal grid spacing, :math:`\Delta x`, in the across-slope direction for the gravity plume experiment.
                0113 
                0114 |
                0115 
                0116    .. figure:: figs/Depth.png
                0117        :width: 80%
                0118        :align: center
                0119        :alt: plume on slope Depth
                0120        :name: depth-plume-on-slope
                0121 
                0122        Topography, :math:`h(x)`, used for the gravity plume experiment.
                0123 
                0124 |
                0125 
                0126    .. figure:: figs/Qsurf.png
                0127        :width: 80%
                0128        :align: center
                0129        :alt: plume on slope Qsurf
                0130        :name: Q-plume-on-slope
                0131 
                0132        Upward surface heat flux, :math:`Q(x)`, used as forcing in the gravity plume experiment.
                0133 
                0134 The domain is :math:`200` m deep and :math:`6.4` km across. Uniform
                0135 resolution of :math:`60\times3^1/_3` m is used in the vertical and
                0136 variable resolution of the form shown in :numref:`dx-plume-on-slope`
                0137 with 320 points is used in the horizontal. The formula for
                0138 :math:`\Delta x` is:
                0139 
                0140 .. math::
                0141 
                0142    \Delta x(i) = \Delta x_1 + ( \Delta x_2 - \Delta x_1 )
                0143    ( 1 + \tanh{\left(\frac{i-i_s}{w}\right)} ) /2
                0144 
                0145 where
                0146 
                0147 .. math::
                0148 
                0149    \begin{aligned}
0bad585a21 Navi*0150    Nx & = 320 \\
                0151    Lx & = 6400 \;\; \mbox{(m)} \\
                0152    \Delta x_1 & = \frac{2}{3} \frac{Lx}{Nx} \;\; \mbox{(m)} \\
                0153    \Delta x_2 & = \frac{Lx/2}{Nx-Lx/(2 \Delta x_1)} \;\; \mbox{(m)} \\
                0154    i_s & = Lx/( 2 \Delta x_1 ) \\
                0155    w & = 40\end{aligned}
d67096e55c Jeff*0156 
                0157 Here, :math:`\Delta x_1` is the resolution on the shelf,
                0158 :math:`\Delta x_2` is the resolution in deep water and :math:`Nx` is the
                0159 number of points in the horizontal.
                0160 
                0161 The topography, shown in :numref:`depth-plume-on-slope`, is given by:
                0162 
                0163 .. math:: H(x) = -H_o + (H_o - h_s) ( 1 + \tanh{\left(\frac{x-x_s}{L_s}\right)} ) / 2
                0164 
                0165 where
                0166 
                0167 .. math::
                0168 
                0169    \begin{aligned}
0bad585a21 Navi*0170    H_o & = 200 \;\; \mbox{(m)} \\
                0171    h_s & = 40 \;\; \mbox{(m)} \\
                0172    x_s & = 1500 + Lx/2 \;\; \mbox{(m)} \\
                0173    L_s & = \frac{(H_o - h_s)}{2 s} \;\; \mbox{(m)} \\
                0174    s & = 0.15\end{aligned}
d67096e55c Jeff*0175 
                0176 Here, :math:`s` is the maximum slope, :math:`H_o` is the maximum depth,
                0177 :math:`h_s` is the shelf depth, :math:`x_s` is the lateral position of
                0178 the shelf-break and :math:`L_s` is the length-scale of the slope.
                0179 
                0180 The forcing is through heat loss over the shelf, shown in
                0181 :numref:`Q-plume-on-slope` and takes the form of a fixed flux with
                0182 profile:
                0183 
                0184 .. math:: Q(x) = Q_o ( 1 + \tanh{\left(\frac{x - x_q}{L_q}\right)} ) / 2
                0185 
                0186 where
                0187 
                0188 .. math::
                0189 
                0190    \begin{aligned}
0bad585a21 Navi*0191    Q_o & = 200 \;\; \mbox{(W m$^{-2}$)} \\
                0192    x_q & = 2500 + Lx/2 \;\; \mbox{(m)} \\
                0193    L_q & = 100 \;\; \mbox{(m)}\end{aligned}
d67096e55c Jeff*0194 
                0195 Here, :math:`Q_o` is the maximum heat flux, :math:`x_q` is the
                0196 position of the cut-off, and :math:`L_q` is the width of the cut-off.
                0197 
                0198 The initial temperature field is unstratified but with random
                0199 perturbations, to induce convection early on in the run. The random
                0200 perturbation are calculated in computational space and because of the
                0201 variable resolution introduce some spatial correlations, but this does
                0202 not matter for this experiment. The perturbations have range
                0203 :math:`0-0.01` :math:`^{\circ}\mathrm{K}`.
                0204 
                0205 Code configuration
                0206 ------------------
                0207 
                0208 The computational domain (number of gridpoints) is specified in
                0209 :filelink:`code/SIZE.h <verification/tutorial_plume_on_slope/code/SIZE.h>`
                0210 and is configured as a single tile of dimensions
                0211 :math:`320\times1\times60`.
                0212 
                0213 To compile the model code for this experiment, the non-hydrostatic
                0214 algorithm needs to be enabled, and the open-boundaries package (:filelink:`pkg/obcs`) is required:
                0215 
                0216 -  Non-hydrostatic terms and algorithm are enabled with ``#define``
                0217    :varlink:`ALLOW_NONHYDROSTATIC` in :filelink:`code/CPP_OPTIONS.h <verification/tutorial_plume_on_slope/code/CPP_OPTIONS.h>`
                0218    and activated with
                0219    :varlink:`nonHydrostatic` ``=.TRUE,`` in namelist ``PARM01``
                0220    of :filelink:`input/data <verification/tutorial_plume_on_slope/input/data>`.
                0221 
                0222 -  Open boundaries are enabled by adding line ``obcs`` to package
                0223    configuration file :filelink:`code/packages.conf <verification/tutorial_plume_on_slope/code/packages.conf>`
                0224    and activated via
                0225    :varlink:`useOBCS` ``=.TRUE,`` in namelist ``PACKAGES``
                0226    of :filelink:`input/data.pkg <verification/tutorial_plume_on_slope/input/data.pkg>`.
                0227 
                0228 .. _tut_plume_on_slope_mod_parms:
                0229 
                0230 Model parameters
                0231 ----------------
                0232 
                0233 .. table:: Model parameters used in the gravity plume experiment.
                0234   :name: tut_plume_parm_table
                0235 
                0236   +-----------------------+---------------------------------------------------------+----------------------------------------------+
                0237   | **Parameter**         | **Value**                                               | **Description**                              |
                0238   +=======================+=========================================================+==============================================+
                0239   | :math:`g`             | 9.81  m s\ :sup:`-2`                                    | acceleration due to gravity                  |
                0240   +-----------------------+---------------------------------------------------------+----------------------------------------------+
                0241   | :math:`\rho_o`        | 999.8 kg m\ :sup:`-3`                                   | reference density                            |
                0242   +-----------------------+---------------------------------------------------------+----------------------------------------------+
                0243   |  :math:`\alpha`       | 2 :math:`\times` 10\ :sup:`-4` K\ :sup:`-1`             | expansion coefficient                        |
                0244   +-----------------------+---------------------------------------------------------+----------------------------------------------+
                0245   | :math:`A_h`           | 1 :math:`\times` 10\ :sup:`-2` m\ :sup:`2` s\ :sup:`-1` | horizontal viscosity                         |
                0246   +-----------------------+---------------------------------------------------------+----------------------------------------------+
                0247   | :math:`A_v`           | 1 :math:`\times` 10\ :sup:`-3` m\ :sup:`2` s\ :sup:`-1` | vertical viscosity                           |
                0248   +-----------------------+---------------------------------------------------------+----------------------------------------------+
                0249   | :math:`\kappa_h`      | 0 m\ :sup:`2` s\ :sup:`-1`                              | (explicit) horizontal diffusion              |
                0250   +-----------------------+---------------------------------------------------------+----------------------------------------------+
                0251   | :math:`\kappa_v`      | 0 m\ :sup:`2` s\ :sup:`-1`                              | (explicit) vertical diffusion                |
                0252   +-----------------------+---------------------------------------------------------+----------------------------------------------+
                0253   | :math:`\Delta t`      | 20 s                                                    | time step                                    |
                0254   +-----------------------+---------------------------------------------------------+----------------------------------------------+
                0255   | :math:`\Delta z`      | 3.33333 m                                               | vertical grid spacing                        |
                0256   +-----------------------+---------------------------------------------------------+----------------------------------------------+
                0257   | :math:`\Delta x`      |  13.3333 - 39.5 m                                       | horizontal grid spacing                      |
                0258   +-----------------------+---------------------------------------------------------+----------------------------------------------+
                0259 
                0260 The model parameters (:numref:`tut_plume_parm_table`) are specified in
                0261 :filelink:`input/data <verification/tutorial_plume_on_slope/input/data>`
                0262 and if not assume the default values as defined in :numref:`customize_model`.
                0263 A linear equation of state is used,
                0264 :varlink:`eosType` ``=’LINEAR’``, but only temperature is active, :varlink:`sBeta` ``=0.E-11``.
                0265 For the given heat flux, :math:`Q_o`, the buoyancy forcing is
                0266 :math:`B_o = \frac{g \alpha Q}{\rho_o c_p} \sim
                0267 10^{-7}` m\ :sup:`2` s\ :sup:`-3`. Using :math:`R=10^3` m, the
                0268 shelf width, this gives a velocity scale of
                0269 :math:`U\sim 5 \times 10^{-2}` m s\ :sup:`-1` for the initial front but
                0270 will accelerate by an order of magnitude over the slope. The temperature
                0271 anomaly will be of order :math:`\Delta \theta \sim 3
                0272 \times 10^{-2}` K. The viscosity is constant and gives a Reynolds number
                0273 of :math:`100`, using :math:`h=20` m for the initial front and will be
                0274 an order magnitude bigger over the slope. There is no explicit diffusion
                0275 but a non-linear advection scheme is used for temperature which adds
                0276 enough diffusion so as to keep the model stable. The time-step is set to
                0277 :math:`20` s and gives Courant number order one when the flow reaches
                0278 the bottom of the slope.
                0279