gridgen
所属分类:数学计算
开发工具:Visual C++
文件大小:528KB
下载次数:365
上传日期:2008-06-26 19:37:42
上 传 者:
simba163
说明: gridgen是一款强大的网格生成程序,可以做三维的有限元网格划分
(gridgen is a powerful mesh generation process, can do three-dimensional finite element mesh)
文件列表:
gridgen\gridgen\.indent.pro (558, 2007-10-18)
gridgen\gridgen\broyden.c (2993, 2007-10-18)
gridgen\gridgen\broyden.h (1121, 2007-10-18)
gridgen\gridgen\c99-min\clog.c (16534, 2007-10-18)
gridgen\gridgen\c99-min\cmplx.c (7618, 2007-10-18)
gridgen\gridgen\c99-min\complex.h (5826, 2007-10-18)
gridgen\gridgen\c99-min\mconf.h (4926, 2007-10-18)
gridgen\gridgen\c99-min\protos.h (6342, 2007-10-18)
gridgen\gridgen\c99-min\stubs.c (2606, 2007-10-18)
gridgen\gridgen\CHANGELOG (1240, 2007-10-18)
gridgen\gridgen\config.h.complex (430, 2007-10-18)
gridgen\gridgen\config.h.in (388, 2007-10-18)
gridgen\gridgen\config.h.nocomplex (447, 2007-10-18)
gridgen\gridgen\configure (172201, 2007-10-18)
gridgen\gridgen\configure.in (2461, 2007-10-18)
gridgen\gridgen\CUSTOMISE (1202, 2007-10-18)
gridgen\gridgen\delaunay.c (7439, 2007-10-18)
gridgen\gridgen\delaunay.h (1336, 2007-10-18)
gridgen\gridgen\examples\addheader.sh (107, 2007-10-18)
gridgen\gridgen\examples\grid_examples.pdf (278977, 2007-10-18)
gridgen\gridgen\examples\makefile (376, 2007-10-18)
gridgen\gridgen\examples\mkprotogrid.6.awk (461, 2007-10-18)
gridgen\gridgen\examples\prm.0 (108, 2007-10-18)
gridgen\gridgen\examples\prm.1 (107, 2007-10-18)
gridgen\gridgen\examples\prm.2 (107, 2007-10-18)
gridgen\gridgen\examples\prm.3 (108, 2007-10-18)
gridgen\gridgen\examples\prm.4 (106, 2007-10-18)
gridgen\gridgen\examples\prm.5 (108, 2007-10-18)
gridgen\gridgen\examples\prm.6 (109, 2007-10-18)
gridgen\gridgen\examples\proto.6 (31499, 2007-10-18)
gridgen\gridgen\examples\vg.m (1183, 2007-10-18)
gridgen\gridgen\examples\viewall.m (255, 2007-10-18)
gridgen\gridgen\examples\viewgrid.m (3941, 2007-10-18)
gridgen\gridgen\examples\xy.0 (1110, 2007-10-18)
gridgen\gridgen\examples\xy.1 (869, 2007-10-18)
gridgen\gridgen\examples\xy.2 (869, 2007-10-18)
gridgen\gridgen\examples\xy.3 (63, 2007-10-18)
gridgen\gridgen\examples\xy.4 (1257, 2007-10-18)
... ...
gridgen
Orthogonal Grid Generator
Version 1.45
Copyright 2001 CSIRO Marine Research
GPO 1538 Hobart
TAS 7001
Australia
Please send comments and bugs to Pavel.Sakov@marine.au
There is no warranty whatsoever. Use at your own risk.
These code may be freely redistributed under the condition that the copyright
notices are not removed. You may distribute modified versions of this code
UNDER THE CONDITION THAT THIS CODE AND ANY MODIFICATIONS MADE TO IT IN THE
SAME FILE REMAIN UNDER COPYRIGHT OF CSIRO, BOTH SOURCE AND OBJECT CODE ARE
MADE FREELY AVAILABLE WITHOUT CHARGE, AND CLEAR NOTICE IS GIVEN OF THE
MODIFICATIONS.
1. Build and install
The code is being developed and used under Linux/gcc/i386 platform and
essentially uses the C99 complex arithmetics available on this platform.
To compile it `gridgen', run:
./configure
make
(make install)
2. Portability
This code should compile an all platforms with gcc. It is known to compile
on Linux/gcc/i386, Cygwin/gcc/i386, Djgpp/gcc/i386, and SunOS/gcc/sparc.
On Linux/gcc/ia*** you may need to remove the optimisation flag -O2.
Make sure that you use GNU make.
Beware that the configure script currently does not do much more than a couple
of checks. It should be viewed rather as a prototype for the future than a
multi-platform configuration tool.
3. Documentation
At the moment, there is not much documentation with `gridgen'.
To get familiar with it, I would suggest the following sequence:
1. Read this file
2. Compile `gridgen'
3. Read examples/README
4. Reproduce examples
5. Read output after running "gridgen -a" and "gridgen -h"
6. There are a number of real-life grid examples on
http://www.marine.csiro.au/~sakov
4. Features.
Following is a list of some particular features of `gridgen', to indicate
what it can do and what it can not.
1. `gridgen' generates a grid based on the domain boundary and the designated
locations of the grid corners.
2. `gridgen' can handle simply connected regions only. If you have a region
with an island or re-connecting channels, you have to use masking.
3. Unlike many other generators, `gridgen' allows multiple corners (rather
than just 4 corners) in grid space. This gives one a great flexibility in
regard to generating grids for complicated regions.
4. Unlike many other generators, `gridgen' does not allow to specify cell
size explicitely. One can influence the cell density by:
A. Changing positions of the corners.
Compare grids for examples 1 and 2 from the package; they demonstrate
how the cell density may be changed via the positions of the grid
corners.
B. By specifying node coordinates in grid space.
This is done via the entry `grid' in the parameter file. This entry
points at the file that contains node coordinates in index space scaled
to 1x1 square. Two examples of using this technique may be seen at
http://www.marine.csiro.au/~sakov/fitzroy.pdf
(note elongated cells in the river); and
http://www.marine.csiro.au/~sakov/torres.pdf
(note the elongated cells in the narrowing).
Also, see example 6.
Despite the flexibility of `gridgen', I still find it difficult or
impossible at times to achieve some specific grid characteristics for
regions far from the boundary. This particularly refers to the alignment
of the grid cells in a certain (flow) direction or to obtainining the
desired cell density.
5. Because `gridgen' is based on the (exact) Schwarz-Christoffel formula,
it performs fast and is numerically robust.
6. Beware that each boundary vertex represents a singularity in the
Scwartz-Christoffel transform. To generate a smoother grid, for a section
of the boundary without corners (which will become a strait line in the
grid space), avoid putting big deviations from the strait angle (this may
result in a big deviation from orthogonality); try making sharp turns by
using a few smaller turns rather than one big turn; or move the boundary
polyline a away from the water. Also, try to make the angles in the
boundary polyline at the location of designated corners close to the
right angle.
7. To generate a grid with aspect ratio close to 1, look at the value of
"conformal modulus" reported in the log generated by `gridgen' with "-v"
option, and make the ratio (ny - 1) / (nx - 1) close to this number.
5. Acknowledgments
`gridgen' uses the following public code/algorithms:
1. CRDT algorithm by Tobin D. Driscoll and Stephen A. Vavasis -- for
conformal mapping.
2. `Triangle' by Jonathan Richard Shewchuk -- for Delaunay triangulation.
3. `SCPACK' by Lloyd N. Trefethen -- for Schwarz-Christoffel transform.
4. `DOPRI8' by E. Hairer, S.P. Norsett, G. Wanner -- for solving ODEs.
5. `libavl' by Brad Appleton -- for AVL binary tree code.
6. Shamos-Hoey algorithm implementation by softSurfer -- for testing a
polyline on self-intersections.
Please acknowledge the use of this software in publications, e.g.:
"Orthogonal grid generation software was provided by Pavel Sakov and
is available at URL: http://www.marine.csiro.au/~sakov/gridgen.tar.gz".
Good luck!
Pavel Sakov
近期下载者:
相关文件:
收藏者: