/[MITgcm]/manual/s_algorithm/text/spatial-discrete.tex
ViewVC logotype

Annotation of /manual/s_algorithm/text/spatial-discrete.tex

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


Revision 1.7 - (hide annotations) (download) (as text)
Wed Sep 26 21:59:33 2001 UTC (23 years, 9 months ago) by adcroft
Branch: MAIN
Changes since 1.6: +14 -8 lines
File MIME type: application/x-tex
Replaced \centerline with \begin{center} for latex2html compatibility.

1 adcroft 1.7 % $Header: /u/gcmpack/mitgcmdoc/part2/spatial-discrete.tex,v 1.6 2001/09/25 20:13:42 adcroft Exp $
2 adcroft 1.2 % $Name: $
3 adcroft 1.1
4     \section{Spatial discretization of the dynamical equations}
5    
6 adcroft 1.2 Spatial discretization is carried out using the finite volume
7     method. This amounts to a grid-point method (namely second-order
8     centered finite difference) in the fluid interior but allows
9     boundaries to intersect a regular grid allowing a more accurate
10     representation of the position of the boundary. We treat the
11 adcroft 1.5 horizontal and veritical directions as seperable and differently.
12 adcroft 1.2
13 adcroft 1.5 \input{part2/notation}
14 adcroft 1.2
15    
16     \subsection{The finite volume method: finite volumes versus finite difference}
17    
18     The finite volume method is used to discretize the equations in
19     space. The expression ``finite volume'' actually has two meanings; one
20 adcroft 1.3 is the method of cut or instecting boundaries (shaved or lopped cells
21     in our terminology) and the other is non-linear interpolation methods
22     that can deal with non-smooth solutions such as shocks (i.e. flux
23     limiters for advection). Both make use of the integral form of the
24     conservation laws to which the {\it weak solution} is a solution on
25     each finite volume of (sub-domain). The weak solution can be
26     constructed outof piece-wise constant elements or be
27     differentiable. The differentiable equations can not be satisfied by
28     piece-wise constant functions.
29    
30     As an example, the 1-D constant coefficient advection-diffusion
31     equation:
32 adcroft 1.2 \begin{displaymath}
33     \partial_t \theta + \partial_x ( u \theta - \kappa \partial_x \theta ) = 0
34     \end{displaymath}
35 adcroft 1.3 can be discretized by integrating over finite sub-domains, i.e.
36     the lengths $\Delta x_i$:
37 adcroft 1.2 \begin{displaymath}
38     \Delta x \partial_t \theta + \delta_i ( F ) = 0
39     \end{displaymath}
40 adcroft 1.3 is exact if $\theta(x)$ is peice-wise constant over the interval
41     $\Delta x_i$ or more generally if $\theta_i$ is defined as the average
42     over the interval $\Delta x_i$.
43    
44     The flux, $F_{i-1/2}$, must be approximated:
45 adcroft 1.2 \begin{displaymath}
46     F = u \overline{\theta} - \frac{\kappa}{\Delta x_c} \partial_i \theta
47     \end{displaymath}
48 adcroft 1.3 and this is where truncation errors can enter the solution. The
49     method for obtaining $\overline{\theta}$ is unspecified and a wide
50     range of possibilities exist including centered and upwind
51     interpolation, polynomial fits based on the the volume average
52     definitions of quantities and non-linear interpolation such as
53     flux-limiters.
54    
55     Choosing simple centered second-order interpolation and differencing
56     recovers the same ODE's resulting from finite differencing for the
57     interior of a fluid. Differences arise at boundaries where a boundary
58     is not positioned on a regular or smoothly varying grid. This method
59     is used to represent the topography using lopped cell, see
60     \cite{Adcroft98}. Subtle difference also appear in more than one
61     dimension away from boundaries. This happens because the each
62     direction is discretized independantly in the finite difference method
63     while the integrating over finite volume implicitly treats all
64     directions simultaneously. Illustration of this is given in
65     \cite{Adcroft02}.
66 adcroft 1.2
67 adcroft 1.1 \subsection{C grid staggering of variables}
68    
69     \begin{figure}
70 adcroft 1.7 \begin{center}
71     \resizebox{!}{2in}{ \includegraphics{part2/cgrid3d.eps}}
72     \end{center}
73 adcroft 1.1 \caption{Three dimensional staggering of velocity components. This
74     facilitates the natural discretization of the continuity and tracer
75     equations. }
76 adcroft 1.2 \label{fig:cgrid3d}
77 adcroft 1.1 \end{figure}
78    
79 adcroft 1.2 The basic algorithm employed for stepping forward the momentum
80     equations is based on retaining non-divergence of the flow at all
81     times. This is most naturally done if the components of flow are
82     staggered in space in the form of an Arakawa C grid \cite{Arakawa70}.
83    
84     Fig. \ref{fig:cgrid3d} shows the components of flow ($u$,$v$,$w$)
85     staggered in space such that the zonal component falls on the
86     interface between continiuty cells in the zonal direction. Similarly
87     for the meridional and vertical directions. The continiuty cell is
88     synonymous with tracer cells (they are one and the same).
89    
90    
91    
92 adcroft 1.5 \subsection{Grid initialization and data}
93    
94     Initialization of grid data is controlled by subroutine {\em
95     INI\_GRID} which in calls {\em INI\_VERTICAL\_GRID} to initialize the
96     vertical grid, and then either of {\em INI\_CARTESIAN\_GRID}, {\em
97     INI\_SPHERICAL\_POLAR\_GRID} or {\em INI\_CURV\-ILINEAR\_GRID} to
98     initialize the horizontal grid for cartesian, spherical-polar or
99     curvilinear coordinates respectively.
100    
101     The reciprocals of all grid quantities are pre-calculated and this is
102     done in subroutine {\em INI\_MASKS\_ETC} which is called later by
103     subroutine {\em INITIALIZE\_FIXED}.
104    
105     All grid descriptors are global arrays and stored in common blocks in
106     {\em GRID.h} and a generally declared as {\em \_RS}.
107    
108     \fbox{ \begin{minipage}{4.75in}
109     {\em S/R INI\_GRID} ({\em model/src/ini\_grid.F})
110    
111     {\em S/R INI\_MASKS\_ETC} ({\em model/src/ini\_masks\_etc.F})
112    
113     grid data: ({\em model/inc/GRID.h})
114     \end{minipage} }
115    
116 adcroft 1.2
117 adcroft 1.1 \subsection{Horizontal grid}
118    
119     \begin{figure}
120 adcroft 1.7 \begin{center}
121     \begin{tabular}{cc}
122 adcroft 1.2 \raisebox{1.5in}{a)}\resizebox{!}{2in}{ \includegraphics{part2/hgrid-Ac.eps}}
123     & \raisebox{1.5in}{b)}\resizebox{!}{2in}{ \includegraphics{part2/hgrid-Az.eps}}
124 adcroft 1.1 \\
125 adcroft 1.2 \raisebox{1.5in}{c)}\resizebox{!}{2in}{ \includegraphics{part2/hgrid-Au.eps}}
126     & \raisebox{1.5in}{d)}\resizebox{!}{2in}{ \includegraphics{part2/hgrid-Av.eps}}
127 adcroft 1.7 \end{tabular}
128     \end{center}
129 adcroft 1.2 \caption{
130     Staggering of horizontal grid descriptors (lengths and areas). The
131     grid lines indicate the tracer cell boundaries and are the reference
132     grid for all panels. a) The area of a tracer cell, $A_c$, is bordered
133     by the lengths $\Delta x_g$ and $\Delta y_g$. b) The area of a
134     vorticity cell, $A_\zeta$, is bordered by the lengths $\Delta x_c$ and
135     $\Delta y_c$. c) The area of a u cell, $A_c$, is bordered by the
136     lengths $\Delta x_v$ and $\Delta y_f$. d) The area of a v cell, $A_c$,
137     is bordered by the lengths $\Delta x_f$ and $\Delta y_u$.}
138     \label{fig:hgrid}
139 adcroft 1.1 \end{figure}
140    
141 adcroft 1.2 The model domain is decomposed into tiles and within each tile a
142     quasi-regular grid is used. A tile is the basic unit of domain
143     decomposition for parallelization but may be used whether parallized
144     or not; see section \ref{sect:tiles} for more details. Although the
145     tiles may be patched together in an unstructured manner
146     (i.e. irregular or non-tessilating pattern), the interior of tiles is
147     a structered grid of quadrilateral cells. The horizontal coordinate
148     system is orthogonal curvilinear meaning we can not necessarily treat
149     the two horizontal directions as seperable. Instead, each cell in the
150     horizontal grid is described by the length of it's sides and it's
151     area.
152    
153     The grid information is quite general and describes any of the
154     available coordinates systems, cartesian, spherical-polar or
155     curvilinear. All that is necessary to distinguish between the
156     coordinate systems is to initialize the grid data (discriptors)
157     appropriately.
158    
159     In the following, we refer to the orientation of quantities on the
160     computational grid using geographic terminology such as points of the
161 adcroft 1.3 compass.
162     \marginpar{Caution!}
163     This is purely for convenience but should note be confused
164 adcroft 1.2 with the actual geographic orientation of model quantities.
165    
166 adcroft 1.3 Fig.~\ref{fig:hgrid}a shows the tracer cell (synonymous with the
167     continuity cell). The length of the southern edge, $\Delta x_g$,
168     western edge, $\Delta y_g$ and surface area, $A_c$, presented in the
169     vertical are stored in arrays {\bf DXg}, {\bf DYg} and {\bf rAc}.
170 adcroft 1.2 \marginpar{$A_c$: {\bf rAc}}
171     \marginpar{$\Delta x_g$: {\bf DXg}}
172     \marginpar{$\Delta y_g$: {\bf DYg}}
173 adcroft 1.3 The ``g'' suffix indicates that the lengths are along the defining
174     grid boundaries. The ``c'' suffix associates the quantity with the
175     cell centers. The quantities are staggered in space and the indexing
176     is such that {\bf DXg(i,j)} is positioned to the south of {\bf
177     rAc(i,j)} and {\bf DYg(i,j)} positioned to the west.
178 adcroft 1.2
179 adcroft 1.3 Fig.~\ref{fig:hgrid}b shows the vorticity cell. The length of the
180     southern edge, $\Delta x_c$, western edge, $\Delta y_c$ and surface
181     area, $A_\zeta$, presented in the vertical are stored in arrays {\bf
182     DXg}, {\bf DYg} and {\bf rAz}.
183 adcroft 1.2 \marginpar{$A_\zeta$: {\bf rAz}}
184     \marginpar{$\Delta x_c$: {\bf DXc}}
185     \marginpar{$\Delta y_c$: {\bf DYc}}
186 adcroft 1.3 The ``z'' suffix indicates that the lengths are measured between the
187     cell centers and the ``$\zeta$'' suffix associates points with the
188     vorticity points. The quantities are staggered in space and the
189     indexing is such that {\bf DXc(i,j)} is positioned to the north of
190     {\bf rAc(i,j)} and {\bf DYc(i,j)} positioned to the east.
191 adcroft 1.2
192 adcroft 1.3 Fig.~\ref{fig:hgrid}c shows the ``u'' or western (w) cell. The length of
193     the southern edge, $\Delta x_v$, eastern edge, $\Delta y_f$ and
194     surface area, $A_w$, presented in the vertical are stored in arrays
195     {\bf DXv}, {\bf DYf} and {\bf rAw}.
196 adcroft 1.2 \marginpar{$A_w$: {\bf rAw}}
197     \marginpar{$\Delta x_v$: {\bf DXv}}
198     \marginpar{$\Delta y_f$: {\bf DYf}}
199 adcroft 1.3 The ``v'' suffix indicates that the length is measured between the
200     v-points, the ``f'' suffix indicates that the length is measured
201     between the (tracer) cell faces and the ``w'' suffix associates points
202     with the u-points (w stands for west). The quantities are staggered in
203     space and the indexing is such that {\bf DXv(i,j)} is positioned to
204     the south of {\bf rAw(i,j)} and {\bf DYf(i,j)} positioned to the east.
205 adcroft 1.2
206 adcroft 1.3 Fig.~\ref{fig:hgrid}d shows the ``v'' or southern (s) cell. The length of
207     the northern edge, $\Delta x_f$, western edge, $\Delta y_u$ and
208     surface area, $A_s$, presented in the vertical are stored in arrays
209     {\bf DXf}, {\bf DYu} and {\bf rAs}.
210 adcroft 1.2 \marginpar{$A_s$: {\bf rAs}}
211     \marginpar{$\Delta x_f$: {\bf DXf}}
212     \marginpar{$\Delta y_u$: {\bf DYu}}
213 adcroft 1.3 The ``u'' suffix indicates that the length is measured between the
214     u-points, the ``f'' suffix indicates that the length is measured
215     between the (tracer) cell faces and the ``s'' suffix associates points
216     with the v-points (s stands for south). The quantities are staggered
217     in space and the indexing is such that {\bf DXf(i,j)} is positioned to
218     the north of {\bf rAs(i,j)} and {\bf DYu(i,j)} positioned to the west.
219 adcroft 1.2
220     \fbox{ \begin{minipage}{4.75in}
221     {\em S/R INI\_CARTESIAN\_GRID} ({\em
222     model/src/ini\_cartesian\_grid.F})
223    
224     {\em S/R INI\_SPHERICAL\_POLAR\_GRID} ({\em
225     model/src/ini\_spherical\_polar\_grid.F})
226    
227     {\em S/R INI\_CURVILINEAR\_GRID} ({\em
228     model/src/ini\_curvilinear\_grid.F})
229    
230     $A_c$, $A_\zeta$, $A_w$, $A_s$: {\bf rAc}, {\bf rAz}, {\bf rAw}, {\bf rAs}
231     ({\em GRID.h})
232    
233     $\Delta x_g$, $\Delta y_g$: {\bf DXg}, {\bf DYg} ({\em GRID.h})
234    
235     $\Delta x_c$, $\Delta y_c$: {\bf DXc}, {\bf DYc} ({\em GRID.h})
236    
237     $\Delta x_f$, $\Delta y_f$: {\bf DXf}, {\bf DYf} ({\em GRID.h})
238    
239     $\Delta x_v$, $\Delta y_u$: {\bf DXv}, {\bf DYu} ({\em GRID.h})
240    
241     \end{minipage} }
242    
243     \subsubsection{Reciprocals of horizontal grid descriptors}
244    
245     %\marginpar{$A_c^{-1}$: {\bf RECIP\_rAc}}
246     %\marginpar{$A_\zeta^{-1}$: {\bf RECIP\_rAz}}
247     %\marginpar{$A_w^{-1}$: {\bf RECIP\_rAw}}
248     %\marginpar{$A_s^{-1}$: {\bf RECIP\_rAs}}
249     Lengths and areas appear in the denominator of expressions as much as
250     in the numerator. For efficiency and portability, we pre-calculate the
251     reciprocal of the horizontal grid quantities so that in-line divisions
252     can be avoided.
253    
254     %\marginpar{$\Delta x_g^{-1}$: {\bf RECIP\_DXg}}
255     %\marginpar{$\Delta y_g^{-1}$: {\bf RECIP\_DYg}}
256     %\marginpar{$\Delta x_c^{-1}$: {\bf RECIP\_DXc}}
257     %\marginpar{$\Delta y_c^{-1}$: {\bf RECIP\_DYc}}
258     %\marginpar{$\Delta x_f^{-1}$: {\bf RECIP\_DXf}}
259     %\marginpar{$\Delta y_f^{-1}$: {\bf RECIP\_DYf}}
260     %\marginpar{$\Delta x_v^{-1}$: {\bf RECIP\_DXv}}
261     %\marginpar{$\Delta y_u^{-1}$: {\bf RECIP\_DYu}}
262     For each grid descriptor (array) there is a reciprocal named using the
263     prefix {\bf RECIP\_}. This doubles the amount of storage in {\em
264     GRID.h} but they are all only 2-D descriptors.
265    
266     \fbox{ \begin{minipage}{4.75in}
267     {\em S/R INI\_MASKS\_ETC} ({\em
268     model/src/ini\_masks\_etc.F})
269    
270     $A_c^{-1}$: {\bf RECIP\_Ac} ({\em GRID.h})
271    
272     $A_\zeta^{-1}$: {\bf RECIP\_Az} ({\em GRID.h})
273    
274     $A_w^{-1}$: {\bf RECIP\_Aw} ({\em GRID.h})
275    
276     $A_s^{-1}$: {\bf RECIP\_As} ({\em GRID.h})
277    
278     $\Delta x_g^{-1}$, $\Delta y_g^{-1}$: {\bf RECIP\_DXg}, {\bf RECIP\_DYg} ({\em GRID.h})
279    
280     $\Delta x_c^{-1}$, $\Delta y_c^{-1}$: {\bf RECIP\_DXc}, {\bf RECIP\_DYc} ({\em GRID.h})
281    
282     $\Delta x_f^{-1}$, $\Delta y_f^{-1}$: {\bf RECIP\_DXf}, {\bf RECIP\_DYf} ({\em GRID.h})
283    
284     $\Delta x_v^{-1}$, $\Delta y_u^{-1}$: {\bf RECIP\_DXv}, {\bf RECIP\_DYu} ({\em GRID.h})
285    
286     \end{minipage} }
287    
288     \subsubsection{Cartesian coordinates}
289    
290     Cartesian coordinates are selected when the logical flag {\bf
291     using\-Cartes\-ianGrid} in namelist {\em PARM04} is set to true. The grid
292     spacing can be set to uniform via scalars {\bf dXspacing} and {\bf
293     dYspacing} in namelist {\em PARM04} or to variable resolution by the
294     vectors {\bf DELX} and {\bf DELY}. Units are normally
295     meters. Non-dimensional coordinates can be used by interpretting the
296     gravitational constant as the Rayleigh number.
297    
298     \subsubsection{Spherical-polar coordinates}
299    
300     Spherical coordinates are selected when the logical flag {\bf
301     using\-Spherical\-PolarGrid} in namelist {\em PARM04} is set to true. The
302     grid spacing can be set to uniform via scalars {\bf dXspacing} and
303     {\bf dYspacing} in namelist {\em PARM04} or to variable resolution by
304     the vectors {\bf DELX} and {\bf DELY}. Units of these namelist
305     variables are alway degrees. The horizontal grid descriptors are
306     calculated from these namelist variables have units of meters.
307    
308     \subsubsection{Curvilinear coordinates}
309    
310     Curvilinear coordinates are selected when the logical flag {\bf
311     using\-Curvil\-inear\-Grid} in namelist {\em PARM04} is set to true. The
312     grid spacing can not be set via the namelist. Instead, the grid
313     descriptors are read from data files, one for each descriptor. As for
314     other grids, the horizontal grid descriptors have units of meters.
315    
316    
317 adcroft 1.1 \subsection{Vertical grid}
318    
319     \begin{figure}
320 adcroft 1.7 \begin{center}
321     \begin{tabular}{cc}
322 adcroft 1.2 \raisebox{4in}{a)} \resizebox{!}{4in}{
323     \includegraphics{part2/vgrid-cellcentered.eps}} & \raisebox{4in}{b)}
324     \resizebox{!}{4in}{ \includegraphics{part2/vgrid-accurate.eps}}
325 adcroft 1.7 \end{tabular}
326     \end{center}
327 adcroft 1.1 \caption{Two versions of the vertical grid. a) The cell centered
328     approach where the interface depths are specified and the tracer
329     points centered in between the interfaces. b) The interface centered
330     approach where tracer levels are specified and the w-interfaces are
331     centered in between.}
332 adcroft 1.2 \label{fig:vgrid}
333 adcroft 1.1 \end{figure}
334    
335 adcroft 1.2 As for the horizontal grid, we use the suffixes ``c'' and ``f'' to
336     indicates faces and centers. Fig.~\ref{fig:vgrid}a shows the default
337     vertical grid used by the model.
338     \marginpar{$\Delta r_f$: {\bf DRf}}
339     \marginpar{$\Delta r_c$: {\bf DRc}}
340     $\Delta r_f$ is the difference in $r$
341     (vertical coordinate) between the faces (i.e. $\Delta r_f \equiv -
342     \delta_k r$ where the minus sign appears due to the convention that the
343     surface layer has index $k=1$.).
344    
345     The vertical grid is calculated in subroutine {\em
346     INI\_VERTICAL\_GRID} and specified via the vector {\bf DELR} in
347     namelist {\em PARM04}. The units of ``r'' are either meters or Pascals
348     depending on the isomorphism being used which in turn is dependent
349     only on the choise of equation of state.
350    
351     There are alternative namelist vectors {\bf DELZ} and {\bf DELP} which
352     dictate whether z- or
353     \marginpar{Caution!}
354     p- coordinates are to be used but we intend to
355     phase this out since they are redundant.
356    
357     The reciprocals $\Delta r_f^{-1}$ and $\Delta r_c^{-1}$ are
358     pre-calculated (also in subroutine {\em INI\_VERTICAL\_GRID}). All
359     vertical grid descriptors are stored in common blocks in {\em GRID.h}.
360    
361     The above grid (Fig.~\ref{fig:vgrid}a) is known as the cell centered
362     approach because the tracer points are at cell centers; the cell
363     centers are mid-way between the cell interfaces. An alternative, the
364     vertex or interface centered approach, is shown in
365     Fig.~\ref{fig:vgrid}b. Here, the interior interfaces are positioned
366     mid-way between the tracer nodes (no longer cell centers). This
367     approach is formally more accurate for evaluation of hydrostatic
368     pressure and vertical advection but historically the cell centered
369     approach has been used. An alternative form of subroutine {\em
370     INI\_VERTICAL\_GRID} is used to select the interface centered approach
371     but no run time option is currently available.
372    
373     \fbox{ \begin{minipage}{4.75in}
374     {\em S/R INI\_VERTICAL\_GRID} ({\em
375     model/src/ini\_vertical\_grid.F})
376    
377     $\Delta r_f$: {\bf DRf} ({\em GRID.h})
378    
379     $\Delta r_c$: {\bf DRc} ({\em GRID.h})
380    
381     $\Delta r_f^{-1}$: {\bf RECIP\_DRf} ({\em GRID.h})
382    
383     $\Delta r_c^{-1}$: {\bf RECIP\_DRc} ({\em GRID.h})
384 adcroft 1.3
385     \end{minipage} }
386    
387    
388     \subsection{Topography: partially filled cells}
389    
390     \begin{figure}
391 adcroft 1.7 \begin{center}
392 adcroft 1.3 \resizebox{4.5in}{!}{\includegraphics{part2/vgrid-xz.eps}}
393 adcroft 1.7 \end{center}
394 adcroft 1.3 \caption{
395     A schematic of the x-r plane showing the location of the
396     non-dimensional fractions $h_c$ and $h_w$. The physical thickness of a
397     tracer cell is given by $h_c(i,j,k) \Delta r_f(k)$ and the physical
398     thickness of the open side is given by $h_w(i,j,k) \Delta r_f(k)$.}
399     \label{fig:hfacs}
400     \end{figure}
401    
402     \cite{Adcroft97} presented two alternatives to the step-wise finite
403     difference representation of topography. The method is known to the
404     engineering community as {\em intersecting boundary method}. It
405     involves allowing the boundary to intersect a grid of cells thereby
406     modifying the shape of those cells intersected. We suggested allowing
407     the topgoraphy to take on a peice-wise linear representation (shaved
408     cells) or a simpler piecewise constant representaion (partial step).
409     Both show dramatic improvements in solution compared to the
410     traditional full step representation, the piece-wise linear being the
411     best. However, the storage requirements are excessive so the simpler
412     piece-wise constant or partial-step method is all that is currently
413     supported.
414    
415     Fig.~\ref{fig:hfacs} shows a schematic of the x-r plane indicating how
416     the thickness of a level is determined at tracer and u points.
417     \marginpar{$h_c$: {\bf hFacC}}
418     \marginpar{$h_w$: {\bf hFacW}}
419     \marginpar{$h_s$: {\bf hFacS}}
420     The physical thickness of a tracer cell is given by $h_c(i,j,k) \Delta
421     r_f(k)$ and the physical thickness of the open side is given by
422     $h_w(i,j,k) \Delta r_f(k)$. Three 3-D discriptors $h_c$, $h_w$ and
423     $h_s$ are used to describe the geometry: {\bf hFacC}, {\bf hFacW} and
424     {\bf hFacS} respectively. These are calculated in subroutine {\em
425     INI\_MASKS\_ETC} along with there reciprocals {\bf RECIP\_hFacC}, {\bf
426     RECIP\_hFacW} and {\bf RECIP\_hFacS}.
427    
428     The non-dimensional fractions (or h-facs as we call them) are
429     calculated from the model depth array and then processed to avoid tiny
430     volumes. The rule is that if a fraction is less than {\bf hFacMin}
431     then it is rounded to the nearer of $0$ or {\bf hFacMin} or if the
432     physical thickness is less than {\bf hFacMinDr} then it is similarly
433     rounded. The larger of the two methods is used when there is a
434     conflict. By setting {\bf hFacMinDr} equal to or larger than the
435     thinnest nominal layers, $\min{(\Delta z_f)}$, but setting {\bf
436     hFacMin} to some small fraction then the model will only lop thick
437     layers but retain stability based on the thinnest unlopped thickness;
438     $\min{(\Delta z_f,\mbox{\bf hFacMinDr})}$.
439    
440     \fbox{ \begin{minipage}{4.75in}
441     {\em S/R INI\_MASKS\_ETC} ({\em model/src/ini\_masks\_etc.F})
442    
443     $h_c$: {\bf hFacC} ({\em GRID.h})
444    
445     $h_w$: {\bf hFacW} ({\em GRID.h})
446    
447     $h_s$: {\bf hFacS} ({\em GRID.h})
448    
449     $h_c^{-1}$: {\bf RECIP\_hFacC} ({\em GRID.h})
450    
451     $h_w^{-1}$: {\bf RECIP\_hFacW} ({\em GRID.h})
452    
453     $h_s^{-1}$: {\bf RECIP\_hFacS} ({\em GRID.h})
454 adcroft 1.2
455     \end{minipage} }
456    
457 adcroft 1.1
458 adcroft 1.5 \section{Continuity and horizontal pressure gradient terms}
459 adcroft 1.1
460     The core algorithm is based on the ``C grid'' discretization of the
461     continuity equation which can be summarized as:
462     \begin{eqnarray}
463 adcroft 1.6 \partial_t u + \frac{1}{\Delta x_c} \delta_i \left. \frac{ \partial \Phi}{\partial r}\right|_{s} \eta + \frac{\epsilon_{nh}}{\Delta x_c} \delta_i \Phi_{nh}' & = & G_u - \frac{1}{\Delta x_c} \delta_i \Phi_h' \label{eq:discrete-momu} \\
464     \partial_t v + \frac{1}{\Delta y_c} \delta_j \left. \frac{ \partial \Phi}{\partial r}\right|_{s} \eta + \frac{\epsilon_{nh}}{\Delta y_c} \delta_j \Phi_{nh}' & = & G_v - \frac{1}{\Delta y_c} \delta_j \Phi_h' \label{eq:discrete-momv} \\
465     \epsilon_{nh} \left( \partial_t w + \frac{1}{\Delta r_c} \delta_k \Phi_{nh}' \right) & = & \epsilon_{nh} G_w + \overline{b}^k - \frac{1}{\Delta r_c} \delta_k \Phi_{h}' \label{eq:discrete-momw} \\
466 adcroft 1.1 \delta_i \Delta y_g \Delta r_f h_w u +
467     \delta_j \Delta x_g \Delta r_f h_s v +
468     \delta_k {\cal A}_c w & = & {\cal A}_c \delta_k (P-E)_{r=0}
469 adcroft 1.2 \label{eq:discrete-continuity}
470 adcroft 1.1 \end{eqnarray}
471     where the continuity equation has been most naturally discretized by
472     staggering the three components of velocity as shown in
473     Fig.~\ref{fig-cgrid3d}. The grid lengths $\Delta x_c$ and $\Delta y_c$
474     are the lengths between tracer points (cell centers). The grid lengths
475     $\Delta x_g$, $\Delta y_g$ are the grid lengths between cell
476     corners. $\Delta r_f$ and $\Delta r_c$ are the distance (in units of
477     $r$) between level interfaces (w-level) and level centers (tracer
478     level). The surface area presented in the vertical is denoted ${\cal
479     A}_c$. The factors $h_w$ and $h_s$ are non-dimensional fractions
480     (between 0 and 1) that represent the fraction cell depth that is
481     ``open'' for fluid flow.
482     \marginpar{$h_w$: {\bf hFacW}}
483     \marginpar{$h_s$: {\bf hFacS}}
484    
485     The last equation, the discrete continuity equation, can be summed in
486     the vertical to yeild the free-surface equation:
487     \begin{equation}
488 adcroft 1.6 {\cal A}_c \partial_t \eta + \delta_i \sum_k \Delta y_g \Delta r_f h_w
489     u + \delta_j \sum_k \Delta x_g \Delta r_f h_s v = {\cal
490     A}_c(P-E)_{r=0} \label{eq:discrete-freesurface}
491 adcroft 1.1 \end{equation}
492     The source term $P-E$ on the rhs of continuity accounts for the local
493     addition of volume due to excess precipitation and run-off over
494     evaporation and only enters the top-level of the {\em ocean} model.
495    
496 adcroft 1.5 \section{Hydrostatic balance}
497 adcroft 1.1
498     The vertical momentum equation has the hydrostatic or
499     quasi-hydrostatic balance on the right hand side. This discretization
500     guarantees that the conversion of potential to kinetic energy as
501     derived from the buoyancy equation exactly matches the form derived
502     from the pressure gradient terms when forming the kinetic energy
503     equation.
504    
505     In the ocean, using z-ccordinates, the hydrostatic balance terms are
506     discretized:
507     \begin{equation}
508     \epsilon_{nh} \partial_t w
509     + g \overline{\rho'}^k + \frac{1}{\Delta z} \delta_k \Phi_h' = \ldots
510 adcroft 1.6 \label{eq:discrete_hydro_ocean}
511 adcroft 1.1 \end{equation}
512    
513     In the atmosphere, using p-coordinates, hydrostatic balance is
514     discretized:
515     \begin{equation}
516     \overline{\theta'}^k + \frac{1}{\Delta \Pi} \delta_k \Phi_h' = 0
517 adcroft 1.6 \label{eq:discrete_hydro_atmos}
518 adcroft 1.1 \end{equation}
519     where $\Delta \Pi$ is the difference in Exner function between the
520     pressure points. The non-hydrostatic equations are not available in
521     the atmosphere.
522    
523     The difference in approach between ocean and atmosphere occurs because
524     of the direct use of the ideal gas equation in forming the potential
525     energy conversion term $\alpha \omega$. The form of these consversion
526     terms is discussed at length in \cite{Adcroft01}.
527    
528     Because of the different representation of hydrostatic balance between
529     ocean and atmosphere there is no elegant way to represent both systems
530     using an arbitrary coordinate.
531    
532     The integration for hydrostatic pressure is made in the positive $r$
533     direction (increasing k-index). For the ocean, this is from the
534     free-surface down and for the atmosphere this is from the ground up.
535    
536     The calculations are made in the subroutine {\em
537     CALC\_PHI\_HYD}. Inside this routine, one of other of the
538     atmospheric/oceanic form is selected based on the string variable {\bf
539     buoyancyRelation}.
540    

  ViewVC Help
Powered by ViewVC 1.1.22