/[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.8 by afe, Mon Jul 26 21:25:34 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}
18  include both straightforward examples of idealized geophysical  \label{www:tutorials}
19  fluid simulations and more involved cases encompassing  
20  large scale modeling and  This section illustrates an example of MITgcm simulating a laboratory
21  automatic differentiation. Both hydrostatic and non-hydrostatic  experiment on much smaller scales than those common to geophysical
22  experiments are presented, as well as experiments employing  fluid dynamics.
 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.  
23    
24  \section{Barotropic Ocean Gyre In Cartesian Coordinates}  \subsection{Overview}
 \label{sect:eg-baro}  
25  \label{www:tutorials}  \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    
40    
41  \subsection{Equations Solved}  \subsection{Equations Solved}
42  \label{www:tutorials}  \label{www:tutorials}
 The model is configured in hydrostatic form. The implicit free surface form of the  
43    
44    
45  \subsection{Discrete Numerical Configuration}  \subsection{Discrete Numerical Configuration}
# Line 48  model is configured with a single layer Line 54  model is configured with a single layer
54  \subsubsection{Numerical Stability Criteria}  \subsubsection{Numerical Stability Criteria}
55  \label{www:tutorials}  \label{www:tutorials}
56    
57    The Laplacian dissipation coefficient, $A_{h}$, is set to $400 m s^{-1}$.
58    This value is chosen to yield a Munk layer width \cite{adcroft:95},
59    
60    \begin{eqnarray}
61    \label{EQ:eg-baro-munk_layer}
62    M_{w} = \pi ( \frac { A_{h} }{ \beta } )^{\frac{1}{3}}
63    \end{eqnarray}
64    
65    \noindent  of $\approx 100$km. This is greater than the model
66    resolution $\Delta x$, ensuring that the frictional boundary
67    layer is well resolved.
68    \\
69    
70    \noindent The model is stepped forward with a
71    time step $\delta t=1200$secs. With this time step the stability
72    parameter to the horizontal Laplacian friction \cite{adcroft:95}
73    
74    
75    
76    \begin{eqnarray}
77    \label{EQ:eg-baro-laplacian_stability}
78    S_{l} = 4 \frac{A_{h} \delta t}{{\Delta x}^2}
79    \end{eqnarray}
80    
81    \noindent evaluates to 0.012, which is well below the 0.3 upper limit
82    for stability.
83    \\
84    
85    \noindent The numerical stability for inertial oscillations  
86    \cite{adcroft:95}
87    
88    \begin{eqnarray}
89    \label{EQ:eg-baro-inertial_stability}
90    S_{i} = f^{2} {\delta t}^2
91    \end{eqnarray}
92    
93    \noindent evaluates to $0.0144$, which is well below the $0.5$ upper
94    limit for stability.
95    \\
96    
97    \noindent The advective CFL \cite{adcroft:95} for an extreme maximum
98    horizontal flow speed of $ | \vec{u} | = 2 ms^{-1}$
99    
100    \begin{eqnarray}
101    \label{EQ:eg-baro-cfl_stability}
102    S_{a} = \frac{| \vec{u} | \delta t}{ \Delta x}
103    \end{eqnarray}
104    
105    \noindent evaluates to 0.12. This is approaching the stability limit
106    of 0.5 and limits $\delta t$ to $1200s$.
107    
108  \subsection{Code Configuration}  \subsection{Code Configuration}
109  \label{www:tutorials}  \label{www:tutorials}
110  \label{SEC:eg-baro-code_config}  \label{SEC:eg-baro-code_config}
111    
112  The model configuration for this experiment resides under the  The model configuration for this experiment resides under the
113  directory {\it verification/exp0/}.  The experiment files  directory {\it verification/rotatingi\_tank/}.  The experiment files
114  \begin{itemize}  \begin{itemize}
115  \item {\it input/data}  \item {\it input/data}
116  \item {\it input/data.pkg}  \item {\it input/data.pkg}
117  \item {\it input/eedata},  \item {\it input/eedata},
118  \item {\it input/windx.sin\_y},  \item {\it input/bathyPol.bin},
119  \item {\it input/topog.box},  \item {\it input/thetaPol.bin},
120  \item {\it code/CPP\_EEOPTIONS.h}  \item {\it code/CPP\_EEOPTIONS.h}
121  \item {\it code/CPP\_OPTIONS.h},  \item {\it code/CPP\_OPTIONS.h},
122  \item {\it code/SIZE.h}.  \item {\it code/SIZE.h}.
123  \end{itemize}  \end{itemize}
124    
125  contain the code customizations and parameter settings for this  contain the code customizations and parameter settings for this
126  experiments. Below we describe the customizations  experiments. Below we describe the customizations
127  to these files associated with this experiment.  to these files associated with this experiment.
# Line 78  are Line 135  are
135    
136  \begin{itemize}  \begin{itemize}
137    
138  \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
139  the Laplacian friction coefficient to $400 m^2s^{-1}$  the Laplacian friction coefficient to $0.000006 m^2s^{-1}$, which is ususally
140    low because of the small scale, presumably.... qqq
141    
142    \item Line X, \begin{verbatim}f0=0.5 , \end{verbatim} this line sets the
143    coriolis term, and represents a tank spinning at qqq
144  \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
145  $\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}$
146    
147  \item Lines 15 and 16  \item Lines 15 and 16
148  \begin{verbatim}  \begin{verbatim}
149  rigidLid=.FALSE.,  rigidLid=.TRUE.,
150  implicitFreeSurface=.TRUE.,  implicitFreeSurface=.FALSE.,
151  \end{verbatim}  \end{verbatim}
152  these lines suppress the rigid lid formulation of the surface  
153    these lines do the opposite of the following:
154    suppress the rigid lid formulation of the surface
155  pressure inverter and activate the implicit free surface form  pressure inverter and activate the implicit free surface form
156  of the pressure inverter.  of the pressure inverter.
157    
# Line 100  this line indicates that the experiment Line 163  this line indicates that the experiment
163  and implicitly suppresses searching for checkpoint files associated  and implicitly suppresses searching for checkpoint files associated
164  with restarting an numerical integration from a previously saved state.  with restarting an numerical integration from a previously saved state.
165    
 \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.  
   
166  \item Line 30,  \item Line 30,
167  \begin{verbatim}  \begin{verbatim}
168  deltaTmom=1200,  deltaT=0.1,
169  \end{verbatim}  \end{verbatim}
170  This line sets the momentum equation timestep to $1200s$.  This line sets the integration timestep to $0.1s$.  This is an unsually
171    small value among the examples due to the small physical scale of the
172    experiment.
173    
174  \item Line 39,  \item Line 39,
175  \begin{verbatim}  \begin{verbatim}
176  usingCartesianGrid=.TRUE.,  usingCylindricalGrid=.TRUE.,
177  \end{verbatim}  \end{verbatim}
178  This line requests that the simulation be performed in a  This line requests that the simulation be performed in a
179  Cartesian coordinate system.  cylindrical coordinate system.
180    
181  \item Line 41,  \item Line qqq,
182  \begin{verbatim}  \begin{verbatim}
183  delX=60*20E3,  dXspacing=3,
184  \end{verbatim}  \end{verbatim}
185  This line sets the horizontal grid spacing between each x-coordinate line  This line sets the azimuthal grid spacing between each x-coordinate line
186  in the discrete grid. The syntax indicates that the discrete grid  in the discrete grid. The syntax indicates that the discrete grid
187  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}$.
188  ($20$~km).                                                                                  
189    
190    
191  \item Line 42,  \item Line qqq,
192  \begin{verbatim}  \begin{verbatim}
193  delY=60*20E3,  dYspacing=0.01,
194  \end{verbatim}  \end{verbatim}
195  This line sets the horizontal grid spacing between each y-coordinate line  This line sets the radial grid spacing between each $\rho$-coordinate line
196  in the discrete grid to $20 \times 10^{3}m$ ($20$~km).  in the discrete grid to $1cm$.
197    
198  \item Line 43,  \item Line 43,
199  \begin{verbatim}  \begin{verbatim}
200  delZ=5000,  delZ=29*0.005,
201  \end{verbatim}  \end{verbatim}
202  This line sets the vertical grid spacing between each z-coordinate line  This line sets the vertical grid spacing between each z-coordinate line
203  in the discrete grid to $5000m$ ($5$~km).  in the discrete grid to $5000m$ ($5$~km).
204    
205  \item Line 46,  \item Line 46,
206  \begin{verbatim}  \begin{verbatim}
207  bathyFile='topog.box'  bathyFile='bathyPol.bin',
208  \end{verbatim}  \end{verbatim}
209  This line specifies the name of the file from which the domain  This line specifies the name of the file from which the domain
210  bathymetry is read. This file is a two-dimensional ($x,y$) map of  ``bathymetry'' (tank depth) is read. This file is a two-dimensional
211    ($x,y$) map of
212  depths. This file is assumed to contain 64-bit binary numbers  depths. This file is assumed to contain 64-bit binary numbers
213  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$
214  coordinate varying fastest. The points are ordered from low coordinate  coordinate varying fastest. The points are ordered from low coordinate
215  to high coordinate for both axes. The units and orientation of the  to high coordinate for both axes.  The units and orientation of the
216  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
217  experiment, a depth of $0m$ indicates a solid wall and a depth  experiment, a depth of $0m$ indicates an area outside of the tank
218  of $-5000m$ indicates open ocean. The matlab program  and a depth
219  {\it input/gendata.m} shows an example of how to generate a  f $-0.145m$ indicates the tank itself.
 bathymetry file.  
   
220    
221  \item Line 49,  \item Line 49,
222  \begin{verbatim}  \begin{verbatim}
223  zonalWindFile='windx.sin_y'  hydrogThetaFile='thetaPol.bin',
224    \end{verbatim}
225    This line specifies the name of the file from which the initial values
226    of $\theta$
227    are read. This file is a three-dimensional
228    ($x,y,z$) map and is enumerated and formatted in the same manner as the
229    bathymetry file.
230    
231    \item Line qqq
232    \begin{verbatim}
233     tCyl  = 0
234  \end{verbatim}  \end{verbatim}
235  This line specifies the name of the file from which the x-direction  This line specifies the temperature in degrees Celsius of the interior
236  surface wind stress is read. This file is also a two-dimensional  wall of the tank -- usually a bucket of ice water.
237  ($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.    
238    
239  \end{itemize}  \end{itemize}
240    
# Line 177  code to generate a valid {\bf zonalWindF Line 242  code to generate a valid {\bf zonalWindF
242  that are described in the MITgcm Getting Started and MITgcm Parameters  that are described in the MITgcm Getting Started and MITgcm Parameters
243  notes.  notes.
244    
245  %%\begin{small}  \begin{small}
246  %%\input{part3/case_studies/barotropic_gyre/input/data}  \input{part3/case_studies/rotating_tank/input/data}
247  %%\end{small}  \end{small}
248    
249  \subsubsection{File {\it input/data.pkg}}  \subsubsection{File {\it input/data.pkg}}
250  \label{www:tutorials}  \label{www:tutorials}
# Line 193  customizations for this experiment. Line 258  customizations for this experiment.
258  This file uses standard default values and does not contain  This file uses standard default values and does not contain
259  customizations for this experiment.  customizations for this experiment.
260    
261  \subsubsection{File {\it input/windx.sin\_y}}  \subsubsection{File {\it input/thetaPol.bin}}
262  \label{www:tutorials}  \label{www:tutorials}
263    
264  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$)
265  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.  
266    
267  \subsubsection{File {\it input/topog.box}}  \subsubsection{File {\it input/bathyPol.bin}}
268  \label{www:tutorials}  \label{www:tutorials}
269    
270    
271  The {\it input/topog.box} file specifies a two-dimensional ($x,y$)  The {\it input/bathyPol.bin} file specifies a two-dimensional ($x,y$)
272  map of depth values. For this experiment values are either  map of depth values. For this experiment values are either
273  $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
274  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
275  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.  
276    
277  \subsubsection{File {\it code/SIZE.h}}  \subsubsection{File {\it code/SIZE.h}}
278  \label{www:tutorials}  \label{www:tutorials}
# Line 224  Two lines are customized in this file fo Line 282  Two lines are customized in this file fo
282  \begin{itemize}  \begin{itemize}
283    
284  \item Line 39,  \item Line 39,
285  \begin{verbatim} sNx=60, \end{verbatim} this line sets  \begin{verbatim} sNx=120, \end{verbatim} this line sets
286  the lateral domain extent in grid points for the  the lateral domain extent in grid points for the
287  axis aligned with the x-coordinate.  axis aligned with the x-coordinate.
288    
289  \item Line 40,  \item Line 40,
290  \begin{verbatim} sNy=60, \end{verbatim} this line sets  \begin{verbatim} sNy=31, \end{verbatim} this line sets
291  the lateral domain extent in grid points for the  the lateral domain extent in grid points for the
292  axis aligned with the y-coordinate.  axis aligned with the y-coordinate.
293    
294  \end{itemize}  \end{itemize}
295    
296  \begin{small}  \begin{small}
297  \input{part3/case_studies/barotropic_gyre/code/SIZE.h}  \input{part3/case_studies/rotating_tank/code/SIZE.h}
298  \end{small}  \end{small}
299    
300  \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.8

  ViewVC Help
Powered by ViewVC 1.1.22