/[MITgcm]/manual/s_phys_pkgs/text/kl10.tex
ViewVC logotype

Contents of /manual/s_phys_pkgs/text/kl10.tex

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (show annotations) (download) (as text)
Sat Aug 30 15:28:46 2014 UTC (10 years, 10 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint01, HEAD
Changes since 1.1: +3 -3 lines
File MIME type: application/x-tex
put back one reference from original text

1 \subsection{KL10: Vertical Mixing Due to Breaking Internal Waves}
2 \label{sec:pkg:kl10}
3 \begin{rawhtml}
4 <!-- CMIREDIR:package_kl10: -->
5 \end{rawhtml}
6 \begin{center}
7 (in directory: \file{pkg/kl10/})
8 \end{center}
9
10 Authors: Jody M. Klymak
11
12 \subsubsection{Introduction
13 \label{sec:pkg:kl10:intro}}
14
15 The \citet[][KL10]{klymaklegg10} parameterization for breaking internal waves is meant to represent mixing in the ocean ``interior'' due to convective instability. Many mixing schemes in the presence of unstable stratification simply turn on an arbitrarily large diffusivity and viscosity in the overturning region. This assumes the fluid completely mixes, which is probably not a terrible assumption, but it also makes estimating the turbulence dissipation rate in the overturning region meaningless.
16
17 The KL10 scheme overcomes this limitation by estimating the viscosity and diffusivity from a combination of the Ozmidov relation and the Osborn relation, assuming a turbulent Prandtl number of one. The Ozmidov relation says that outer scale of turbulence in an overturn will scale with the strength of the turbulence $\epsilon$, and the stratification $N$, as
18 \begin{equation}
19 \label{eq:pkg:kl10:Lo}
20 L_O^2 \approx \epsilon N^{-3}.
21 \end{equation}
22 The Osborn relation relates the strength of the dissipation to the vertical diffusivity as
23 \begin{equation}
24 K_{v}=\Gamma \epsilon N^{-2},
25 \end{equation}
26 where $\Gamma\approx 0.2$ is the mixing ratio of buoyancy flux to thermal dissipation due to the turbulence. Combining the two gives us
27 \begin{equation}
28 K_{v} \approx \Gamma L_O^2 N.
29 \end{equation}
30
31 The ocean turbulence community often approximates the Ozmidov scale by the root-mean-square of the Thorpe displacement, $\delta_z$, in an overturn \citep{thorpe77}.
32 The Thorpe displacement is the distance one would have to move a water parcel for the water column to be stable, and is readily measured in a measured profile by sorting the profile and tracking how far each parcel moves during the sorting procedure.
33 This method gives an imperfect estimate of the turbulence, but it has been found to agree on average over a large range of overturns \citep{wesson94,seimgregg94,moum96}.
34
35 The algorithm coded here is a slight simplification of the usual Thorpe method for estimating turbulence in overturning regions. Usually, overturns are identified and $N$ is averaged over the overturn. Here, instead we estimate
36 \begin{equation}
37 K_{v}(z) \approx \Gamma \delta_z^2\, N_s(z).
38 \end{equation}
39 where $N_s(z)$ is the local sorted stratification. This saves complexity in the code and adds a slight inaccuracy, but we don't believe is biased.
40
41 We assume a turbulent Prandtl number of 1, so $A_v=K_{v}$.
42
43 We also calculate and output a turbulent dissipation from this scheme. We do not simply evaluate the overturns for $\epsilon$ using (\ref{eq:pkg:kl10:Lo}). Instead we compute the vertical shear terms that the viscosity is acting on:
44 \begin{equation}
45 \epsilon_v = A_v \left(\left(\frac{\partial u}{\partial z}\right)^2 + \left(\frac{\partial v}{\partial z}\right)^2 \right).
46 \end{equation}
47
48 There are straightforward caveats to this approach, covered in \citet{klymaklegg10}.
49 \begin{itemize}
50 \item If your resolution is too low to resolve the breaking internal waves, you won't have any turbulence.
51 \item If the model resolution is too high, the estimates of $\epsilon_v$ will start to be exaggerated, particularly if the run in non-hydrostatic. That is because there will be significant shear at small scales that represents the turbulence being parameterized in the scheme. At very high resolutions direct numerical simulation or more sophisticated large-eddy schemes should be used.
52 \item We find that grid cells of approximately 10 to 1 aspect ratio are a good rule of thumb for achieving good results are usual oceanic scales. For a site like the Hawaiian Ridge, and Luzon Strait, this means 10-m vertical resolusion and approximately 100-m horizontal. The 10-m resolution can be relaxed if the stratification drops, and we often WKB-stretch the grid spacing with depth.
53 \item The dissipation estimate is useful for pinpoiting the location of turbulence, but again, is grid size dependent to some extent, and should be treated with a grain of salt. It will also not include any numerical dissipation such as you may find with higher order advection schemes.
54 \end{itemize}
55
56 \subsubsection{KL10 configuration and compiling
57 \label{sec:pkg:kl10:comp}}
58
59 As with all MITgcm packages, KL10 can be turned on or off at compile time
60 %
61 \begin{itemize}
62 %
63 \item
64 using the \texttt{packages.conf} file by adding \texttt{kl10} to it,
65 %
66 \item
67 or using \texttt{genmake2} adding
68 \texttt{-enable=kl10} or \texttt{-disable=kl10} switches
69 %
70 \item
71 \textit{Required packages and CPP options:} \\
72 No additional packages are required.
73 %
74 \end{itemize}
75 (see Section \ref{sec:buildingCode}).
76
77 KL10 has no compile-time options (\texttt{KL10\_OPTIONS.h} is empty).
78
79 \subsubsection{Run-time parameters
80 \label{sec:pkg:kl10:runtime}}
81
82 Run-time parameters are set in files
83 \texttt{data.pkg} and \texttt{data.kl10}
84 which are read in \texttt{kl10\_readparms.F}.
85 Run-time parameters may be broken into 3 categories:
86 (i) switching on/off the package at runtime,
87 (ii) required MITgcm flags,
88 (iii) package flags and parameters.
89
90 \paragraph{Enabling the package}
91 ~ \\
92 %
93 The KL10 package is switched on at runtime by setting
94 \texttt{useKL10 = .TRUE.} in \texttt{data.pkg}.
95
96 \paragraph{Required MITgcm flags}
97 ~ \\
98 %
99 The following flags/parameters of the MITgcm dynamical
100 kernel need to be set in conjunction with KL10:
101
102 \begin{tabular}{ll}
103 \texttt{implicitViscosity = .TRUE.} & enable implicit vertical viscosity \\
104 \texttt{implicitDiffusion = .TRUE.} & enable implicit vertical diffusion \\
105 \end{tabular}
106
107 \paragraph{Package flags and parameters}
108 ~ \\
109 %
110 Table \ref{tab:pkg:kl10:runtime_flags} summarizes the
111 runtime flags that are set in \texttt{data.kl10}, and
112 their default values.
113
114 \begin{table}[!ht]
115 \centering
116 \label{tab:pkg:kl10:runtime_flags}
117 {\footnotesize
118 \begin{tabular}{|l|c|l|}
119 \hline
120 \textbf{Flag/parameter} & \textbf{default} & \textbf{Description} \\
121 \hline \hline
122 \multicolumn{3}{|c|}{\textit{I/O related parameters} } \\
123 \hline
124 KLviscMax & 300\ $\mathrm{m^2\,s^{-1}}$ &
125 Maximum viscosity the scheme will ever give (useful for stability) \\
126 KLdumpFreq & \texttt{dumpFreq} &
127 Dump frequency of KL10 field snapshots \\
128 KLtaveFreq & \texttt{taveFreq} &
129 Averaging and dump frequency of KL10 fields \\
130 KLwriteState & \texttt{.FALSE.} &
131 write KL10 state to file \\
132 \hline
133 \end{tabular}
134 }
135 \caption{KL10 runtime parameters}
136 \end{table}
137
138 \subsubsection{Equations and key routines
139 \label{sec:kl10:kpp:equations}}
140
141 \paragraph{KL10\_CALC:} Top-level routine. Calculates viscosity and diffusivity on the grid cell centers. Note that the runtime parameters \texttt{viscAz} and \texttt{diffKzT} act as minimum viscosity and diffusivities. So if there are no overturns (or they are weak) then these will be returned.
142
143 \paragraph{KL10\_CALC\_VISC:} Calculates viscosity on the W and S grid faces for U and V respectively.
144
145 \paragraph{KL10\_CALC\_DIFF:} Calculates the added diffusion from KL10.
146
147 \subsubsection{KL10 diagnostics
148 \label{sec:pkg:kl10:diagnostics}}
149
150 Diagnostics output is available via the diagnostics package
151 (see Section \ref{sec:pkg:diagnostics}).
152 Available output fields are summarized here:
153
154 \begin{verbatim}
155 ------------------------------------------------------
156 <-Name->|Levs|grid|<-- Units -->|<- Tile (max=80c)
157 ------------------------------------------------------
158 KLviscAr| Nr |SM |m^2/s |KL10 vertical eddy viscosity coefficient
159 KLdiffKr| Nr |SM |m^2/s |Vertical diffusion coefficient for salt, temperature, & tracers
160 KLeps | Nr |SM |m^3/s^3 | Turbulence dissipation estimate.
161 \end{verbatim}
162
163 %----------------------------------------------------------------------
164
165 subsubsection{Reference experiments}
166
167 internal\_wavekl10:
168
169 %----------------------------------------------------------------------
170
171 \subsubsection{References}
172
173 Klymak and Legg, 2010, \emph{Oc.\ Modell.}.
174
175 \subsubsection{Experiments and tutorials that use KL10}
176 \label{sec:pkg:kl10:experiments}
177
178 \begin{itemize}
179 \item{Modified Internal Wave experiment, in internal\_wave verification directory }
180 \end{itemize}
181

  ViewVC Help
Powered by ViewVC 1.1.22