/[MITgcm]/manual/s_examples/rotating_tank/tank.tex
ViewVC logotype

Contents of /manual/s_examples/rotating_tank/tank.tex

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


Revision 1.3 - (show annotations) (download) (as text)
Mon Jul 26 16:21:15 2004 UTC (20 years, 11 months ago) by afe
Branch: MAIN
Changes since 1.2: +182 -496 lines
File MIME type: application/x-tex
backup from earlier non-compiling version

1 % $Header: /u/gcmpack/manual/part3/case_studies/barotropic_gyre/baro.tex,v 1.10 2004/01/29 15:11:39 edhill Exp $
2 % $Name: $
3
4 \bodytext{bgcolor="#FFFFFFFF"}
5
6 %\begin{center}
7 %{\Large \bf Using MITgcm to Simulate a Rotating Tank in Cylindrical
8 %Coordinates}
9 %
10 %\vspace*{4mm}
11 %
12 %\vspace*{3mm}
13 %{\large May 2001}
14 %\end{center}
15
16 This is the first in a series of tutorials describing
17 example MITgcm numerical experiments. The example experiments
18 include both straightforward examples of idealized geophysical
19 fluid simulations and more involved cases encompassing
20 large scale modeling and
21 automatic differentiation. Both hydrostatic and non-hydrostatic
22 experiments are presented, as well as experiments employing
23 Cartesian, spherical-polar and cube-sphere coordinate systems.
24 These ``case study'' documents include information describing
25 the experimental configuration and detailed information on how to
26 configure the MITgcm code and input files for each experiment.
27
28 \section{A Rotating Tank in Cylindrical Coordinates}
29 \label{sect:eg-tank}
30 \label{www:tutorials}
31
32
33 This example experiment demonstrates using the MITgcm to simulate
34 a Barotropic, wind-forced, ocean gyre circulation. The experiment
35 is a numerical rendition of the gyre circulation problem similar
36 to the problems described analytically by Stommel in 1966
37 \cite{Stommel66} and numerically in Holland et. al \cite{Holland75}.
38
39 In this experiment the model
40 is configured to represent a rectangular enclosed box of fluid,
41 $1200 \times 1200 $~km in lateral extent. The fluid is $5$~km deep and is forced
42 by a constant in time zonal wind stress, $\tau_x$, that varies sinusoidally
43 in the ``north-south'' direction. Topologically the grid is Cartesian and
44 the coriolis parameter $f$ is defined according to a mid-latitude beta-plane
45 equation
46
47 \begin{equation}
48 \label{EQ:eg-baro-fcori}
49 f(y) = f_{0}+\beta y
50 \end{equation}
51
52 \noindent where $y$ is the distance along the ``north-south'' axis of the
53 simulated domain. For this experiment $f_{0}$ is set to $10^{-4}s^{-1}$ in
54 (\ref{EQ:eg-baro-fcori}) and $\beta = 10^{-11}s^{-1}m^{-1}$.
55 \\
56 \\
57 The sinusoidal wind-stress variations are defined according to
58
59 \begin{equation}
60 \label{EQ:eg-baro-taux}
61 \tau_x(y) = \tau_{0}\sin(\pi \frac{y}{L_y})
62 \end{equation}
63
64 \noindent where $L_{y}$ is the lateral domain extent ($1200$~km) and
65 $\tau_0$ is set to $0.1N m^{-2}$.
66 \\
67 \\
68 Figure \ref{FIG:eg-baro-simulation_config}
69 summarizes the configuration simulated.
70
71 %% === eh3 ===
72 \begin{figure}
73 %% \begin{center}
74 %% \resizebox{7.5in}{5.5in}{
75 %% \includegraphics*[0.2in,0.7in][10.5in,10.5in]
76 %% {part3/case_studies/barotropic_gyre/simulation_config.eps} }
77 %% \end{center}
78 \centerline{
79 \scalefig{.95}
80 \epsfbox{part3/case_studies/barotropic_gyre/simulation_config.eps}
81 }
82 \caption{Schematic of simulation domain and wind-stress forcing function
83 for barotropic gyre numerical experiment. The domain is enclosed bu solid
84 walls at $x=$~0,1200km and at $y=$~0,1200km.}
85 \label{FIG:eg-baro-simulation_config}
86 \end{figure}
87
88 \subsection{Equations Solved}
89 \label{www:tutorials}
90 The model is configured in hydrostatic form. The implicit free surface form of the
91 pressure equation described in Marshall et. al \cite{marshall:97a} is
92 employed.
93 A horizontal Laplacian operator $\nabla_{h}^2$ provides viscous
94 dissipation. The wind-stress momentum input is added to the momentum equation
95 for the ``zonal flow'', $u$. Other terms in the model
96 are explicitly switched off for this experiment configuration (see section
97 \ref{SEC:code_config} ), yielding an active set of equations solved in this
98 configuration as follows
99
100 \begin{eqnarray}
101 \label{EQ:eg-baro-model_equations}
102 \frac{Du}{Dt} - fv +
103 g\frac{\partial \eta}{\partial x} -
104 A_{h}\nabla_{h}^2u
105 & = &
106 \frac{\tau_{x}}{\rho_{0}\Delta z}
107 \\
108 \frac{Dv}{Dt} + fu + g\frac{\partial \eta}{\partial y} -
109 A_{h}\nabla_{h}^2v
110 & = &
111 0
112 \\
113 \frac{\partial \eta}{\partial t} + \nabla_{h}\cdot \vec{u}
114 &=&
115 0
116 \end{eqnarray}
117
118 \noindent where $u$ and $v$ and the $x$ and $y$ components of the
119 flow vector $\vec{u}$.
120 \\
121
122
123 \subsection{Discrete Numerical Configuration}
124 \label{www:tutorials}
125
126 The domain is discretised with
127 a uniform grid spacing in the horizontal set to
128 $\Delta x=\Delta y=20$~km, so
129 that there are sixty grid cells in the $x$ and $y$ directions. Vertically the
130 model is configured with a single layer with depth, $\Delta z$, of $5000$~m.
131
132 \subsubsection{Numerical Stability Criteria}
133 \label{www:tutorials}
134
135 The Laplacian dissipation coefficient, $A_{h}$, is set to $400 m s^{-1}$.
136 This value is chosen to yield a Munk layer width \cite{adcroft:95},
137
138 \begin{eqnarray}
139 \label{EQ:eg-baro-munk_layer}
140 M_{w} = \pi ( \frac { A_{h} }{ \beta } )^{\frac{1}{3}}
141 \end{eqnarray}
142
143 \noindent of $\approx 100$km. This is greater than the model
144 resolution $\Delta x$, ensuring that the frictional boundary
145 layer is well resolved.
146 \\
147
148 \noindent The model is stepped forward with a
149 time step $\delta t=1200$secs. With this time step the stability
150 parameter to the horizontal Laplacian friction \cite{adcroft:95}
151
152
153
154 \begin{eqnarray}
155 \label{EQ:eg-baro-laplacian_stability}
156 S_{l} = 4 \frac{A_{h} \delta t}{{\Delta x}^2}
157 \end{eqnarray}
158
159 \noindent evaluates to 0.012, which is well below the 0.3 upper limit
160 for stability.
161 \\
162
163 \noindent The numerical stability for inertial oscillations
164 \cite{adcroft:95}
165
166 \begin{eqnarray}
167 \label{EQ:eg-baro-inertial_stability}
168 S_{i} = f^{2} {\delta t}^2
169 \end{eqnarray}
170
171 \noindent evaluates to $0.0144$, which is well below the $0.5$ upper
172 limit for stability.
173 \\
174
175 \noindent The advective CFL \cite{adcroft:95} for an extreme maximum
176 horizontal flow speed of $ | \vec{u} | = 2 ms^{-1}$
177
178 \begin{eqnarray}
179 \label{EQ:eg-baro-cfl_stability}
180 S_{a} = \frac{| \vec{u} | \delta t}{ \Delta x}
181 \end{eqnarray}
182
183 \noindent evaluates to 0.12. This is approaching the stability limit
184 of 0.5 and limits $\delta t$ to $1200s$.
185
186 \subsection{Code Configuration}
187 \label{www:tutorials}
188 \label{SEC:eg-baro-code_config}
189
190 The model configuration for this experiment resides under the
191 directory {\it verification/exp0/}. The experiment files
192 \begin{itemize}
193 \item {\it input/data}
194 \item {\it input/data.pkg}
195 \item {\it input/eedata},
196 \item {\it input/windx.sin\_y},
197 \item {\it input/topog.box},
198 \item {\it code/CPP\_EEOPTIONS.h}
199 \item {\it code/CPP\_OPTIONS.h},
200 \item {\it code/SIZE.h}.
201 \end{itemize}
202 contain the code customizations and parameter settings for this
203 experiments. Below we describe the customizations
204 to these files associated with this experiment.
205
206 \subsubsection{File {\it input/data}}
207 \label{www:tutorials}
208
209 This file, reproduced completely below, specifies the main parameters
210 for the experiment. The parameters that are significant for this configuration
211 are
212
213 \begin{itemize}
214
215 \item Line 7, \begin{verbatim} viscAh=4.E2, \end{verbatim} this line sets
216 the Laplacian friction coefficient to $400 m^2s^{-1}$
217 \item Line 10, \begin{verbatim} beta=1.E-11, \end{verbatim} this line sets
218 $\beta$ (the gradient of the coriolis parameter, $f$) to $10^{-11} s^{-1}m^{-1}$
219
220 \item Lines 15 and 16
221 \begin{verbatim}
222 rigidLid=.FALSE.,
223 implicitFreeSurface=.TRUE.,
224 \end{verbatim}
225 these lines suppress the rigid lid formulation of the surface
226 pressure inverter and activate the implicit free surface form
227 of the pressure inverter.
228
229 \item Line 27,
230 \begin{verbatim}
231 startTime=0,
232 \end{verbatim}
233 this line indicates that the experiment should start from $t=0$
234 and implicitly suppresses searching for checkpoint files associated
235 with restarting an numerical integration from a previously saved state.
236
237 \item Line 29,
238 \begin{verbatim}
239 endTime=12000,
240 \end{verbatim}
241 this line indicates that the experiment should start finish at $t=12000s$.
242 A restart file will be written at this time that will enable the
243 simulation to be continued from this point.
244
245 \item Line 30,
246 \begin{verbatim}
247 deltaTmom=1200,
248 \end{verbatim}
249 This line sets the momentum equation timestep to $1200s$.
250
251 \item Line 39,
252 \begin{verbatim}
253 usingCartesianGrid=.TRUE.,
254 \end{verbatim}
255 This line requests that the simulation be performed in a
256 Cartesian coordinate system.
257
258 \item Line 41,
259 \begin{verbatim}
260 delX=60*20E3,
261 \end{verbatim}
262 This line sets the horizontal grid spacing between each x-coordinate line
263 in the discrete grid. The syntax indicates that the discrete grid
264 should be comprise of $60$ grid lines each separated by $20 \times 10^{3}m$
265 ($20$~km).
266
267 \item Line 42,
268 \begin{verbatim}
269 delY=60*20E3,
270 \end{verbatim}
271 This line sets the horizontal grid spacing between each y-coordinate line
272 in the discrete grid to $20 \times 10^{3}m$ ($20$~km).
273
274 \item Line 43,
275 \begin{verbatim}
276 delZ=5000,
277 \end{verbatim}
278 This line sets the vertical grid spacing between each z-coordinate line
279 in the discrete grid to $5000m$ ($5$~km).
280
281 \item Line 46,
282 \begin{verbatim}
283 bathyFile='topog.box'
284 \end{verbatim}
285 This line specifies the name of the file from which the domain
286 bathymetry is read. This file is a two-dimensional ($x,y$) map of
287 depths. This file is assumed to contain 64-bit binary numbers
288 giving the depth of the model at each grid cell, ordered with the x
289 coordinate varying fastest. The points are ordered from low coordinate
290 to high coordinate for both axes. The units and orientation of the
291 depths in this file are the same as used in the MITgcm code. In this
292 experiment, a depth of $0m$ indicates a solid wall and a depth
293 of $-5000m$ indicates open ocean. The matlab program
294 {\it input/gendata.m} shows an example of how to generate a
295 bathymetry file.
296
297
298 \item Line 49,
299 \begin{verbatim}
300 zonalWindFile='windx.sin_y'
301 \end{verbatim}
302 This line specifies the name of the file from which the x-direction
303 surface wind stress is read. This file is also a two-dimensional
304 ($x,y$) map and is enumerated and formatted in the same manner as the
305 bathymetry file. The matlab program {\it input/gendata.m} includes example
306 code to generate a valid {\bf zonalWindFile} file.
307
308 \end{itemize}
309
310 \noindent other lines in the file {\it input/data} are standard values
311 that are described in the MITgcm Getting Started and MITgcm Parameters
312 notes.
313
314 \begin{small}
315 \input{part3/case_studies/barotropic_gyre/input/data}
316 \end{small}
317
318 \subsubsection{File {\it input/data.pkg}}
319 \label{www:tutorials}
320
321 This file uses standard default values and does not contain
322 customizations for this experiment.
323
324 \subsubsection{File {\it input/eedata}}
325 \label{www:tutorials}
326
327 This file uses standard default values and does not contain
328 customizations for this experiment.
329
330 \subsubsection{File {\it input/windx.sin\_y}}
331 \label{www:tutorials}
332
333 The {\it input/windx.sin\_y} file specifies a two-dimensional ($x,y$)
334 map of wind stress ,$\tau_{x}$, values. The units used are $Nm^{-2}$.
335 Although $\tau_{x}$ is only a function of $y$n in this experiment
336 this file must still define a complete two-dimensional map in order
337 to be compatible with the standard code for loading forcing fields
338 in MITgcm. The included matlab program {\it input/gendata.m} gives a complete
339 code for creating the {\it input/windx.sin\_y} file.
340
341 \subsubsection{File {\it input/topog.box}}
342 \label{www:tutorials}
343
344
345 The {\it input/topog.box} file specifies a two-dimensional ($x,y$)
346 map of depth values. For this experiment values are either
347 $0m$ or {\bf -delZ}m, corresponding respectively to a wall or to deep
348 ocean. The file contains a raw binary stream of data that is enumerated
349 in the same way as standard MITgcm two-dimensional, horizontal arrays.
350 The included matlab program {\it input/gendata.m} gives a complete
351 code for creating the {\it input/topog.box} file.
352
353 \subsubsection{File {\it code/SIZE.h}}
354 \label{www:tutorials}
355
356 Two lines are customized in this file for the current experiment
357
358 \begin{itemize}
359
360 \item Line 39,
361 \begin{verbatim} sNx=60, \end{verbatim} this line sets
362 the lateral domain extent in grid points for the
363 axis aligned with the x-coordinate.
364
365 \item Line 40,
366 \begin{verbatim} sNy=60, \end{verbatim} this line sets
367 the lateral domain extent in grid points for the
368 axis aligned with the y-coordinate.
369
370 \end{itemize}
371
372 \begin{small}
373 \input{part3/case_studies/barotropic_gyre/code/SIZE.h}
374 \end{small}
375
376 \subsubsection{File {\it code/CPP\_OPTIONS.h}}
377 \label{www:tutorials}
378
379 This file uses standard default values and does not contain
380 customizations for this experiment.
381
382
383 \subsubsection{File {\it code/CPP\_EEOPTIONS.h}}
384 \label{www:tutorials}
385
386 This file uses standard default values and does not contain
387 customizations for this experiment.
388

  ViewVC Help
Powered by ViewVC 1.1.22