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

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

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

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

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.22