/[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.12 by afe, Tue Jun 14 20:09:04 2005 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  \begin{rawhtml}
20  large scale modeling and  <!-- CMIREDIR:eg-tank: -->
21  automatic differentiation. Both hydrostatic and non-hydrostatic  \end{rawhtml}
22  experiments are presented, as well as experiments employing  
23  Cartesian, spherical-polar and cube-sphere coordinate systems.  This section illustrates an example of MITgcm simulating a laboratory
24  These ``case study'' documents include information describing  experiment on much smaller scales than those commonly considered in  
25  the experimental configuration and detailed information on how to  geophysical
26  configure the MITgcm code and input files for each experiment.  fluid dynamics.
27    
28  \section{Barotropic Ocean Gyre In Cartesian Coordinates}  \subsection{Overview}
 \label{sect:eg-baro}  
29  \label{www:tutorials}  \label{www:tutorials}
30                                                                              
31    This example configuration demonstrates using the MITgcm to simulate a
32    laboratory demonstration using a differentially heated rotating
33    annulus of water.  The simulation is configured for a laboratory scale
34    on a $3^{\circ}$ $\times$ 1cm cyclindrical grid with twenty-nine
35    vertical levels of 0.5cm each.  This is a typical laboratory setup for
36    illustration principles of GFD, as well as for a laboratory data
37    assimilation project.
38    \\
39    
40    example illustration from GFD lab here
41    \\
42    
43    
 \subsection{Equations Solved}  
 \label{www:tutorials}  
 The model is configured in hydrostatic form. The implicit free surface form of the  
44    
45    
46    
47  \subsection{Discrete Numerical Configuration}  \subsection{Equations Solved}
48  \label{www:tutorials}  \label{www:tutorials}
49    
  The domain is discretised with  
 a uniform grid spacing in the horizontal set to  
  $\Delta x=\Delta y=20$~km, so  
 that there are sixty grid cells in the $x$ and $y$ directions. Vertically the  
 model is configured with a single layer with depth, $\Delta z$, of $5000$~m.  
50    
51  \subsubsection{Numerical Stability Criteria}  \subsection{Discrete Numerical Configuration}
52  \label{www:tutorials}  \label{www:tutorials}
53    
54     The domain is discretised with a uniform cylindrical grid spacing in
55    the horizontal set to $\Delta a=1$~cm and $\Delta \phi=3^{\circ}$, so
56    that there are 120 grid cells in the azimuthal direction and
57    thirty-one grid cells in the radial, representing a tank 62cm in
58    diameter.  The bathymetry file sets the depth=0 in the nine lowest
59    radial rows to represent the central of the annulus.  Vertically the
60    model is configured with twenty-nine layers of uniform 0.5cm
61    thickness.
62    \\
63    something about heat flux
64    
65  \subsection{Code Configuration}  \subsection{Code Configuration}
66  \label{www:tutorials}  \label{www:tutorials}
67  \label{SEC:eg-baro-code_config}  \label{SEC:eg-baro-code_config}
68    
69  The model configuration for this experiment resides under the  The model configuration for this experiment resides under the
70  directory {\it verification/exp0/}.  The experiment files  directory {\it verification/rotatingi\_tank/}.  The experiment files
71  \begin{itemize}  \begin{itemize}
72  \item {\it input/data}  \item {\it input/data}
73  \item {\it input/data.pkg}  \item {\it input/data.pkg}
74  \item {\it input/eedata},  \item {\it input/eedata},
75  \item {\it input/windx.sin\_y},  \item {\it input/bathyPol.bin},
76  \item {\it input/topog.box},  \item {\it input/thetaPol.bin},
77  \item {\it code/CPP\_EEOPTIONS.h}  \item {\it code/CPP\_EEOPTIONS.h}
78  \item {\it code/CPP\_OPTIONS.h},  \item {\it code/CPP\_OPTIONS.h},
79  \item {\it code/SIZE.h}.  \item {\it code/SIZE.h}.
80  \end{itemize}  \end{itemize}
81    
82  contain the code customizations and parameter settings for this  contain the code customizations and parameter settings for this
83  experiments. Below we describe the customizations  experiments. Below we describe the customizations
84  to these files associated with this experiment.  to these files associated with this experiment.
# Line 78  are Line 92  are
92    
93  \begin{itemize}  \begin{itemize}
94    
95  \item Line 7, \begin{verbatim} viscAh=4.E2, \end{verbatim} this line sets  \item Lines 9-10, \begin{verbatim}
96  the Laplacian friction coefficient to $400 m^2s^{-1}$  viscAh=5.0E-6,
97  \item Line 10, \begin{verbatim} beta=1.E-11, \end{verbatim} this line sets  viscAz=5.0E-6,
98  $\beta$ (the gradient of the coriolis parameter, $f$) to $10^{-11} s^{-1}m^{-1}$  \end{verbatim}
99    
100    
101    These lines set the Laplacian friction coefficient in the horizontal
102    and vertical, respectively.  Note that they are several orders of
103    magnitude smaller than the other examples due to the small scale of
104    this example.
105    
106    \item Lines 13-16, \begin{verbatim}
107     diffKhT=2.5E-6,
108     diffKzT=2.5E-6,
109     diffKhS=1.0E-6,
110     diffKzS=1.0E-6,
111    
112    \end{verbatim}
113    
114    
115    These lines set horizontal and vertical diffusion coefficients for
116    temperature and salinity.  Similarly to the friction coefficients, the
117    values are a couple of orders of magnitude less than most
118     configurations.
119    
120  \item Lines 15 and 16  
121    \item Line 17, \begin{verbatim}f0=0.5 , \end{verbatim} this line sets the
122    coriolis term, and represents a tank spinning at about 2.4 rpm.
123    
124    \item Lines 23 and 24
125  \begin{verbatim}  \begin{verbatim}
126  rigidLid=.FALSE.,  rigidLid=.TRUE.,
127  implicitFreeSurface=.TRUE.,  implicitFreeSurface=.FALSE.,
128  \end{verbatim}  \end{verbatim}
129  these lines suppress the rigid lid formulation of the surface  
130  pressure inverter and activate the implicit free surface form  These lines activate  the rigid lid formulation of the surface
131    pressure inverter and suppress the implicit free surface form
132  of the pressure inverter.  of the pressure inverter.
133    
134  \item Line 27,  \item Line 40,
135  \begin{verbatim}  \begin{verbatim}
136  startTime=0,  nIter=0,
137  \end{verbatim}  \end{verbatim}
138  this line indicates that the experiment should start from $t=0$  This line indicates that the experiment should start from $t=0$ and
139  and implicitly suppresses searching for checkpoint files associated  implicitly suppresses searching for checkpoint files associated with
140  with restarting an numerical integration from a previously saved state.  restarting an numerical integration from a previously saved state.
141    Instead, the file thetaPol.bin will be loaded to initialized the
142    temperature fields as indicated below, and other variables will be
143    initialized to their defaults.
144    
 \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.  
145    
146  \item Line 30,  \item Line 43,
147  \begin{verbatim}  \begin{verbatim}
148  deltaTmom=1200,  deltaT=0.1,
149  \end{verbatim}  \end{verbatim}
150  This line sets the momentum equation timestep to $1200s$.  This line sets the integration timestep to $0.1s$.  This is an
151    unsually small value among the examples due to the small physical
152    scale of the experiment.  Using the ensemble Kalman filter to produce
153    input fields can necessitate even shorter timesteps.
154    
155  \item Line 39,  \item Line 56,
156  \begin{verbatim}  \begin{verbatim}
157  usingCartesianGrid=.TRUE.,  usingCylindricalGrid=.TRUE.,
158  \end{verbatim}  \end{verbatim}
159  This line requests that the simulation be performed in a  This line requests that the simulation be performed in a
160  Cartesian coordinate system.  cylindrical coordinate system.
161    
162  \item Line 41,  \item Line 57,
163  \begin{verbatim}  \begin{verbatim}
164  delX=60*20E3,  dXspacing=3,
165  \end{verbatim}  \end{verbatim}
166  This line sets the horizontal grid spacing between each x-coordinate line  This line sets the azimuthal grid spacing between each $x$-coordinate line
167  in the discrete grid. The syntax indicates that the discrete grid  in the discrete grid. The syntax indicates that the discrete grid
168  should be comprise of $60$ grid lines each separated by $20 \times 10^{3}m$  should be comprised of $120$ grid lines each separated by $3^{\circ}$.
169  ($20$~km).                                                                                
170    
171  \item Line 42,  \item Line 58,
172  \begin{verbatim}  \begin{verbatim}
173  delY=60*20E3,  dYspacing=0.01,
174  \end{verbatim}  \end{verbatim}
 This line sets the horizontal grid spacing between each y-coordinate line  
 in the discrete grid to $20 \times 10^{3}m$ ($20$~km).  
175    
176  \item Line 43,  This line sets the radial cylindrical grid spacing between each
177    $a$-coordinate line in the discrete grid to $1cm$.
178    
179    \item Line 59,
180  \begin{verbatim}  \begin{verbatim}
181  delZ=5000,  delZ=29*0.005,
182  \end{verbatim}  \end{verbatim}
 This line sets the vertical grid spacing between each z-coordinate line  
 in the discrete grid to $5000m$ ($5$~km).  
183    
184  \item Line 46,  This line sets the vertical grid spacing between each of 29
185    z-coordinate lines in the discrete grid to $0.005m$ ($5$~mm).
186    
187    \item Line 64,
188  \begin{verbatim}  \begin{verbatim}
189  bathyFile='topog.box'  bathyFile='bathyPol.bin',
190  \end{verbatim}  \end{verbatim}
191  This line specifies the name of the file from which the domain  This line specifies the name of the file from which the domain
192  bathymetry is read. This file is a two-dimensional ($x,y$) map of  ``bathymetry'' (tank depth) is read. This file is a two-dimensional
193    ($a,\phi$) map of
194  depths. This file is assumed to contain 64-bit binary numbers  depths. This file is assumed to contain 64-bit binary numbers
195  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 $\phi$
196  coordinate varying fastest. The points are ordered from low coordinate  coordinate varying fastest. The points are ordered from low coordinate
197  to high coordinate for both axes. The units and orientation of the  to high coordinate for both axes.  The units and orientation of the
198  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
199  experiment, a depth of $0m$ indicates a solid wall and a depth  experiment, a depth of $0m$ indicates an area outside of the tank
200  of $-5000m$ indicates open ocean. The matlab program  and a depth
201  {\it input/gendata.m} shows an example of how to generate a  f $-0.145m$ indicates the tank itself.
 bathymetry file.  
202    
203    \item Line 65,
204    \begin{verbatim}
205    hydrogThetaFile='thetaPol.bin',
206    \end{verbatim}
207    This line specifies the name of the file from which the initial values
208    of temperature
209    are read. This file is a three-dimensional
210    ($x,y,z$) map and is enumerated and formatted in the same manner as the
211    bathymetry file.
212    
213  \item Line 49,  \item Lines 66 and 57
214  \begin{verbatim}  \begin{verbatim}
215  zonalWindFile='windx.sin_y'   tCylIn  = 0
216     tCylOut  = 20
217  \end{verbatim}  \end{verbatim}
218  This line specifies the name of the file from which the x-direction  These line specify the temperatures in degrees Celsius of the interior
219  surface wind stress is read. This file is also a two-dimensional  and exterior walls of the tank -- typically taken to be icewater on
220  ($x,y$) map and is enumerated and formatted in the same manner as the  the inside and room temperature on the inside.
221  bathymetry file. The matlab program {\it input/gendata.m} includes example  
 code to generate a valid {\bf zonalWindFile} file.    
222    
223  \end{itemize}  \end{itemize}
224    
225  \noindent other lines in the file {\it input/data} are standard values  \noindent Other lines in the file {\it input/data} are standard values
226  that are described in the MITgcm Getting Started and MITgcm Parameters  that are described in the MITgcm Getting Started and MITgcm Parameters
227  notes.  notes.
228    
229  %%\begin{small}  \begin{small}
230  %%\input{part3/case_studies/barotropic_gyre/input/data}  \input{part3/case_studies/rotating_tank/input/data}
231  %%\end{small}  \end{small}
232    
233  \subsubsection{File {\it input/data.pkg}}  \subsubsection{File {\it input/data.pkg}}
234  \label{www:tutorials}  \label{www:tutorials}
# Line 193  customizations for this experiment. Line 242  customizations for this experiment.
242  This file uses standard default values and does not contain  This file uses standard default values and does not contain
243  customizations for this experiment.  customizations for this experiment.
244    
245  \subsubsection{File {\it input/windx.sin\_y}}  \subsubsection{File {\it input/thetaPol.bin}}
246  \label{www:tutorials}  \label{www:tutorials}
247    
248  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$)
249  map of wind stress ,$\tau_{x}$, values. The units used are $Nm^{-2}$.  map of initial values of $\theta$ in degrees Celsius.  This particular
250  Although $\tau_{x}$ is only a function of $y$n in this experiment  experiment is set to random values x around 20C to provide initial
251  this file must still define a complete two-dimensional map in order  perturbations.
 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.  
252    
253  \subsubsection{File {\it input/topog.box}}  \subsubsection{File {\it input/bathyPol.bin}}
254  \label{www:tutorials}  \label{www:tutorials}
255    
256    
257  The {\it input/topog.box} file specifies a two-dimensional ($x,y$)  The {\it input/bathyPol.bin} file specifies a two-dimensional ($x,y$)
258  map of depth values. For this experiment values are either  map of depth values. For this experiment values are either
259  $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
260  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
261  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.  
262    
263  \subsubsection{File {\it code/SIZE.h}}  \subsubsection{File {\it code/SIZE.h}}
264  \label{www:tutorials}  \label{www:tutorials}
# Line 224  Two lines are customized in this file fo Line 268  Two lines are customized in this file fo
268  \begin{itemize}  \begin{itemize}
269    
270  \item Line 39,  \item Line 39,
271  \begin{verbatim} sNx=60, \end{verbatim} this line sets  \begin{verbatim} sNx=120, \end{verbatim} this line sets
272  the lateral domain extent in grid points for the  the lateral domain extent in grid points for the
273  axis aligned with the x-coordinate.  axis aligned with the x-coordinate.
274    
275  \item Line 40,  \item Line 40,
276  \begin{verbatim} sNy=60, \end{verbatim} this line sets  \begin{verbatim} sNy=31, \end{verbatim} this line sets
277  the lateral domain extent in grid points for the  the lateral domain extent in grid points for the
278  axis aligned with the y-coordinate.  axis aligned with the y-coordinate.
279    
280  \end{itemize}  \end{itemize}
281    
282  \begin{small}  \begin{small}
283  \input{part3/case_studies/barotropic_gyre/code/SIZE.h}  \input{part3/case_studies/rotating_tank/code/SIZE.h}
284  \end{small}  \end{small}
285    
286  \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.12

  ViewVC Help
Powered by ViewVC 1.1.22