/[MITgcm]/manual/s_outp_pkgs/text/grid_gen.tex
ViewVC logotype

Annotation of /manual/s_outp_pkgs/text/grid_gen.tex

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


Revision 1.3 - (hide annotations) (download) (as text)
Fri Jun 30 20:53:52 2006 UTC (19 years ago) by edhill
Branch: MAIN
Changes since 1.2: +41 -33 lines
File MIME type: application/x-tex
fix syntax

1 edhill 1.3 % $Header: /u/gcmpack/manual/part7/grid_gen.tex,v 1.2 2006/06/30 15:40:20 edhill Exp $
2 edhill 1.1 % $Name: $
3    
4     \section{Grid Generation}
5     \label{sec:pkg:grid_gen}
6     \begin{rawhtml}
7     <!-- CMIREDIR:package_grid_gen: -->
8     \end{rawhtml}
9    
10    
11     The horizontal discretizations within MITgcm have been written to work
12     with many different grid types including:
13     \begin{itemize}
14     \item cartesian coordinates
15     \item spherical polar (``latitude-longitude'') coordinates
16     \item general curvilinear orthogonal coordinates
17     \end{itemize}
18     The last of these, especially when combined with the domain
19     decomposition capabilities of MITgcm, allows a great degree of grid
20     flexibility. To date, general curvilinear orthogonal coordinates have
21     been used primarily (in fact, almost exclusively) in conjunction with
22     so-called ``cube-sphere'' grids. However, it is important to observe
23     that cube-sphere arrangements are only one example of what is possible
24 edhill 1.3 with domain-decomposed logically rectangular regions each containing
25 edhill 1.1 curvilinear orthogonal coordinate systems. Much more sophisticated
26     domains can be imagined and constructed.
27    
28     In order to explore the possibilities of domain-decomposed curvilinear
29     orthogonal coordinate systems, a suite of grid generation software
30 edhill 1.3 called ``SPGrid'' (for SPherical Gridding) has been developed. SPGrid
31     is a relatively new facility and papers detailing its algorithms are
32     in preparation. Althogh SPGrid is new and rapidly developing, it has
33     already demonstrated the ability to generate some useful and
34 edhill 1.1 interesting grids.
35    
36     This section provides a very brief introduction to SPGrid and shows
37     some early results. For further information, please contact the
38 edhill 1.3 MITgcm support list at:
39 edhill 1.1 \begin{center}
40     MITgcm-support@mitgcm.org
41     \end{center}
42    
43    
44     \subsection{Using SPGrid}
45    
46     The SPGrid software is not a single program. Rather, it is a
47 edhill 1.3 collection of C++ code and MatLAB scripts that can be used as a
48     framework or library for grid generation and manipulation. Currently,
49     grid creation is accomplished by either directly running matlab
50     scripts or by writing a C++ ``driver'' program. The matlab scripts
51     are suitable for grids composed of a single ``face'' (that is, a
52     single logically rectangular region on the surface of a sphere). The
53     C++ driver programs are appropriate for grids composed of multiple
54     connected logically rectangular patches. Each driver is program is
55     written to specify the shape and connectivity of tiles and the
56     preferred grid density (that is, the number of grid cells in each
57     logical direction) and edge locations of the cells where they meet the
58     edges of each face. The driver programs pass this information to the
59     SPGrid library which generates the actual grid and produces the output
60     files that describe it.
61 edhill 1.1
62     Currently, driver programs are available for a few examples including
63     cubes, ``lat-lon caps'' (cube topologies that have conformal caps at
64     the poles and are exactly lat-lon channels for the remainder of the
65     domain), and some simple ``embedded'' regions that are meant to be
66     used within typical cubes or traditional lat-lon grids.
67    
68     To create new grids, one may start with an existing driver program and
69     modify it to describe a domain that has a different arrangement. The
70     number, location, size, and connectivity of grid ``faces'' (the name
71     used for the logically rectangular regions) can be readily changed.
72     Further, the number of grid cells within faces and the location of
73     the grid cells at the face edges can also be specified.
74    
75    
76     \subsubsection{SPGrid Requirements}
77    
78     The following programs and libraries are required to build and/or run
79     the SPGrid suite:
80     \begin{itemize}
81     \item MatLAB is a run-time requirement since many of the generation
82     algorithms have been written as MatLAB scripts: \\
83     \begin{rawhtml} <A href="http://www.mathworks.com"> \end{rawhtml}
84     \texttt{http://www.mathworks.com}
85     \begin{rawhtml} </A> \end{rawhtml}
86    
87 edhill 1.3 \item the Wild Magic graphics engine (a C++ library) is needed for the
88 edhill 1.1 main ``driver'' code: \\
89     \begin{rawhtml} <A href="http://geometrictools.com/"> \end{rawhtml}
90     \texttt{http://geometrictools.com/}
91     \begin{rawhtml} </A> \end{rawhtml}
92    
93     \item the NetCDF library is needed for file I/O: \\
94     \begin{rawhtml} <A href="http://www.mathworks.com"> \end{rawhtml}
95     \texttt{http://www.mathworks.com}
96     \begin{rawhtml} </A> \end{rawhtml}
97    
98     \item the BOOST Serialization library is used for I/O: \\
99     \begin{rawhtml} <A href="http://www.boost.org"> \end{rawhtml}
100     \texttt{http://www.boost.org}
101     \begin{rawhtml} </A> \end{rawhtml}
102    
103 edhill 1.3 \item a typical Linux/Unix build environment including the make
104     utility (preferably Gnu Make) and a C++ compiler (SPGrid was
105     developed with g++ v4.x).
106 edhill 1.1 \end{itemize}
107    
108    
109     \subsubsection{Obtaining SPGrid}
110    
111     The latest version can be obtained from:
112     \begin{center}
113 edhill 1.2 \begin{rawhtml}
114     <A href="http://mitgcm.org/eh3/grids/spgrid_releases/">
115 edhill 1.1 \end{rawhtml}
116     \texttt{http://mitgcm.org/eh3/grids/spgrid\_releases/}
117     \begin{rawhtml} </A> \end{rawhtml}
118     \end{center}
119    
120    
121     \subsubsection{Building SPGrid}
122    
123     The procedure for building is similar to many open source projects:
124     \begin{verbatim}
125     tar -xf spgrid-0.9.4.tar.gz
126     cd spgrid-0.9.4
127     export CPPFLAGS="-I/usr/include/netcdf-3"
128     export LDFLAGS="-L/usr/lib/netcdf-3"
129     ./configure
130     make
131     \end{verbatim}
132 edhill 1.3 where the \texttt{CPPFLAGS} and \texttt{LDFLAGS} environment variables
133 edhill 1.1 can be edited to reflect the locations of all the necessary
134 edhill 1.3 dependencies. SPGrid is known to work on Fedora Core Linux (versions
135     4 and 5) and is likely to work on most any Linux distribution that
136     provides the needed dependencies.
137 edhill 1.1
138    
139 edhill 1.3 \subsubsection{Running SPGrid}
140 edhill 1.1
141 edhill 1.3 Within the \texttt{src} sub-directory, various example driver programs
142     exist. These examples describe small, simple domains and can generate
143     the input files (formatted as either binary \texttt{*.mitgrid} or
144     netCDF) used by MITgcm.
145 edhill 1.1
146     One such example is called ``SpF\_test\_cube\_cap'' and it can be run
147     with the following sequence of commands:
148     \begin{verbatim}
149     cd spgrid-0.9.4/src
150 edhill 1.3 make SpF_test_cube_cap
151 edhill 1.1 mkdir SpF_test_cube_cap.d
152     ( cd SpF_test_cube_cap.d && ln -s ../../scripts/*.m . )
153     ./SpF_test_cube_cap
154     \end{verbatim}
155 edhill 1.3 which should create a series of output files:
156 edhill 1.1 \begin{verbatim}
157     SpF_test_cube_cap.d/grid_*.mitgrid
158     SpF_test_cube_cap.d/grid_*.nc
159     SpF_test_cube_cap.d/std_topology.nc
160     \end{verbatim}
161 edhill 1.3 where the \texttt{grid\_*.mitgrid} and \texttt{grid\_*.nc} files
162     contain the grid information in binary and netCDF formats and the
163     \texttt{std\_topology.nc} file contains the information describing the
164     connectivity (both edge--edge and corner--corner contacts) between all
165     the faces.
166 edhill 1.1
167    
168     \subsection{Example Grids}
169    
170     The following grids are various examples created with SPGrid.

  ViewVC Help
Powered by ViewVC 1.1.22