|
|
|||
Warning, /doc/phys_pkgs/kl10.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 UTC8679f9097b Jeff*0001 .. _sub_phys_pkg_kl10: 0002 0003 KL10: Vertical Mixing Due to Breaking Internal Waves 0004 ---------------------------------------------------- 0005 0006 0007 (in directory: *pkg/kl10/*) 0008 0009 Authors: Jody M. Klymak 0010 0011 .. _ssub_phys_pkg_kl10_intro: 0012 0013 Introduction 0014 ++++++++++++ 0015 0016 The :cite:`klymaklegg10` parameterization for breaking internal waves is meant to represent** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 18.
0017 mixing in the ocean “interior” due to convective instability. Many 0018 mixing schemes in the presence of unstable stratification simply turn on 0019 an arbitrarily large diffusivity and viscosity in the overturning 0020 region. This assumes the fluid completely mixes, which is probably not a 0021 terrible assumption, but it also makes estimating the turbulence 0022 dissipation rate in the overturning region meaningless. 0023 0024 The KL10 scheme overcomes this limitation by estimating the viscosity 0025 and diffusivity from a combination of the Ozmidov relation and the 0026 Osborn relation, assuming a turbulent Prandtl number of one. The Ozmidov 0027 relation says that outer scale of turbulence in an overturn will scale 0028 with the strength of the turbulence :math:`\epsilon`, and the 0029 stratification :math:`N`, as 0030 0031 .. math:: 0032 :label: eq-pkg-kl10-Lo 0033 0034 L_O^2 \approx \epsilon N^{-3}. 0035 0036 The Osborn relation relates the strength of the dissipation to the 0037 vertical diffusivity as 0038 0039 .. math:: K_{v}=\Gamma \epsilon N^{-2}, 0040 0041 where :math:`\Gamma\approx 0.2` is the mixing ratio of buoyancy flux to 0042 thermal dissipation due to the turbulence. Combining the two gives us 0043 0044 .. math:: K_{v} \approx \Gamma L_O^2 N. 0045 0046 The ocean turbulence community often approximates the Ozmidov scale by 0047 the root-mean-square of the Thorpe displacement, :math:`\delta_z`, in an 0048 overturn :cite:`thorpe77`. The Thorpe displacement is the distance one would have to 0049 move a water parcel for the water column to be stable, and is readily 0050 measured in a measured profile by sorting the profile and tracking how 0051 far each parcel moves during the sorting procedure. This method gives an 0052 imperfect estimate of the turbulence, but it has been found to agree on 0053 average over a large range of overturns :cite:`wesson94,seimgregg94,moum96`. 0054 0055 The algorithm coded here is a slight simplification of the usual Thorpe 0056 method for estimating turbulence in overturning regions. Usually, 0057 overturns are identified and :math:`N` is averaged over the overturn. 0058 Here, instead we estimate 0059 0060 .. math:: K_{v}(z) \approx \Gamma \delta_z^2\, N_s(z). 0061 0062 where :math:`N_s(z)` is the local sorted stratification. This saves** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 64.
0063 complexity in the code and adds a slight inaccuracy, but we don’t 0064 believe is biased. 0065 0066 We assume a turbulent Prandtl number of 1, so :math:`A_v=K_{v}`. 0067 0068 We also calculate and output a turbulent dissipation from this scheme. 0069 We do not simply evaluate the overturns for :math:`\epsilon` using 8586b5df8e Mart*0070 :eq:`eq-pkg-kl10-Lo`. Instead we compute the vertical shear terms that the 8679f9097b Jeff*0071 viscosity is acting on: 0072 0bad585a21 Navi*0073 .. math:: \epsilon_v = A_v \left[ \left(\partial_z u \right)^2 + \left( \frac{\partial u}{\partial z} \right)^2 \right]. 8679f9097b Jeff*0074 0075 There are straightforward caveats to this approach, covered in :cite:`klymaklegg10`. 0076 0077 - If your resolution is too low to resolve the breaking internal waves,** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 79.
0078 you won’t have any turbulence. 0079 0080 - If the model resolution is too high, the estimates of 0081 :math:`\epsilon_v` will start to be exaggerated, particularly if the 0082 run in non-hydrostatic. That is because there will be significant 0083 shear at small scales that represents the turbulence being 0084 parameterized in the scheme. At very high resolutions direct 0085 numerical simulation or more sophisticated large-eddy schemes should 0086 be used. 0087 0088 - We find that grid cells of approximately 10 to 1 aspect ratio are a 0089 good rule of thumb for achieving good results are usual oceanic 0090 scales. For a site like the Hawaiian Ridge, and Luzon Strait, this 0091 means 10-m vertical resolusion and approximately 100-m horizontal. 0092 The 10-m resolution can be relaxed if the stratification drops, and 0093 we often WKB-stretch the grid spacing with depth. 0094 0095 - The dissipation estimate is useful for pinpoiting the location of 0096 turbulence, but again, is grid size dependent to some extent, and 0097 should be treated with a grain of salt. It will also not include any 0098 numerical dissipation such as you may find with higher order 0099 advection schemes. 0100 0101 0102 .. _ssub_phys_pkg_kl10_comp: 0103 8586b5df8e Mart*0104 KL10 configuration and compiling 8679f9097b Jeff*0105 ++++++++++++++++++++++++++++++++ 0106 0107 As with all MITgcm packages, KL10 can be turned on or off at compile 0108 time 0109 0110 - using the ``packages.conf`` file by adding ``kl10`` to it, 0111 0112 - or using ``genmake2`` adding ``-enable=kl10`` or ``-disable=kl10`` 0113 switches 0114 0115 - *Required packages and CPP options:* 0116 No additional packages are required. 0117 0118 (see Section [sec:buildingCode]). 0119 0120 KL10 has no compile-time options (``KL10_OPTIONS.h`` is empty). 0121 0122 0123 .. _ssub_phys_pkg_kl10_runtime: 0124 0125 Run-time parameters 0126 +++++++++++++++++++ 0127 0128 Run-time parameters are set in files ``data.pkg`` and ``data.kl10`` 0129 which are read in ``kl10_readparms.F``. Run-time parameters may be 0130 broken into 3 categories: (i) switching on/off the package at runtime, 0131 (ii) required MITgcm flags, (iii) package flags and parameters. 0132 0133 Enabling the package 0134 #################### 0135 0136 The KL10 package is switched on at runtime by setting 0137 ``useKL10 = .TRUE.`` in ``data.pkg``. 0138 0139 Required MITgcm flags 0140 ##################### 0141 0142 The following flags/parameters of the MITgcm dynamical kernel need to 0143 be set in conjunction with KL10: 0144 0145 +----------------------------------+--------------------------------------+ 0146 | ``implicitViscosity = .TRUE.`` | enable implicit vertical viscosity | 0147 +----------------------------------+--------------------------------------+ 0148 | ``implicitDiffusion = .TRUE.`` | enable implicit vertical diffusion | 0149 +----------------------------------+--------------------------------------+ 0150 0151 Package flags and parameters 0152 ############################ 0153 0154 :numref:`tab_phys_pkg_kl10_runtime` summarizes the runtime 0155 flags that are set in ``data.kl10``, and their default values. 0156 0157 0158 .. table:: KL10 runtime parameters. 0159 :name: tab_phys_pkg_kl10_runtime 0160 0161 +----------------------+---------------------------------+----------------------------------------------+ 0162 | **Flag/parameter** | **default** | **Description** | 0163 +======================+=================================+==============================================+ 0164 | KLviscMax | 300\ m\ :sup:`2` s\ :sup:`--1` | Maximum viscosity the scheme will ever give | 0165 | | | (useful for stability) | 0166 +----------------------+---------------------------------+----------------------------------------------+ 0167 | KLdumpFreq | ``dumpFreq`` | Dump frequency of KL10 field snapshots | 0168 +----------------------+---------------------------------+----------------------------------------------+ 0169 | KLtaveFreq | ``taveFreq`` | Averaging and dump frequency of KL10 fields | 0170 +----------------------+---------------------------------+----------------------------------------------+ 0171 | KLwriteState | ``.FALSE.`` | write KL10 state to file | 0172 +----------------------+---------------------------------+----------------------------------------------+ 0173 0174 .. _ssub_phys_pkg_kl10_equations: 0175 0176 Equations and key routines 0177 ++++++++++++++++++++++++++ 0178 0179 KL10_CALC: 0180 ########### 0181 0182 Top-level routine. Calculates viscosity and diffusivity on the grid cell 0183 centers. Note that the runtime parameters ``viscAz`` and ``diffKzT`` act 0184 as minimum viscosity and diffusivities. So if there are no overturns (or 0185 they are weak) then these will be returned. 0186 0187 KL10_CALC_VISC: 0188 ############### 0189 0190 Calculates viscosity on the W and S grid faces for U and V respectively. 0191 0192 KL10_CALC_DIFF: 0193 ############### 0194 0195 Calculates the added diffusion from KL10. 0196 0197 .. _ssub_phys_pkg_kl10_diagnostics: 0198 0199 KL10 diagnostics 0200 ++++++++++++++++ 0201 0202 Diagnostics output is available via the diagnostics package (see Section 0203 [sec:pkg:diagnostics]). Available output fields are summarized here: 0204 0205 :: 0206 0207 ------------------------------------------------------ 0208 <-Name->|Levs|grid|<-- Units -->|<- Tile (max=80c) 0209 ------------------------------------------------------ 0210 KLviscAr| Nr |SM |m^2/s |KL10 vertical eddy viscosity coefficient 0211 KLdiffKr| Nr |SM |m^2/s |Vertical diffusion coefficient for salt, temperature, & tracers 0212 KLeps | Nr |SM |m^3/s^3 |Turbulence dissipation estimate. 0213 0214 0215 .. _ssub_phys_pkg_kl10_examples: 0216 0217 0218 References 0219 ++++++++++ 0220 0221 Klymak and Legg, 2010, *Oc.Modell.*. 0222 0223 0224 Experiments and tutorials that use KL10 0225 +++++++++++++++++++++++++++++++++++++++ 0226 0227 - Modified Internal Wave experiment, in internal_wave verification 0228 directory
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated from https://github.com/darwinproject/darwin3 by the 2.3.7-MITgcm-0.1 LXR engine. The LXR team |
|