/[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.18 - (hide annotations) (download) (as text)
Sun Oct 17 04:14:21 2004 UTC (20 years, 8 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint57l_post
Changes since 1.17: +2 -2 lines
File MIME type: application/x-tex
fix details left from previous modifications.

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

  ViewVC Help
Powered by ViewVC 1.1.22