Authors: William M. Chan
Date: August, 2004.
The HYPGEN program is used to generate a volume grid over a user-supplied surface grid in three dimensions. It can also be used to create a two dimensional field grid from a given curve in two dimensions. In both 2D and 3D, a field grid is generated by marching from the initial surface or curve using hyperbolic methods. Limited control of side boundaries is available via user-specified boundary conditions. Marching distances and grid spacings in the normal direction are given via a stretching function. Two grid quality checks are automatically performed: tetrahedral volume decomposition and Jacobian computation as in the flow solver OVERFLOW. Negative values are reported. PLOT3D command files are automatically generated for viewing the resulting grid.
The primary application of HYPGEN is intended for overset field grid generation on complex geometries. HYPGEN can be run in batch mode on any machine that supports Fortran 77. More detailed descriptions on the usage and on examples on HYPGEN are given in the user's manual.
Chan, W. M., Chiu, I.-T., and Buning, P. G., "User's Manual for the HYPGEN Hyperbolic Grid Generator and the HGUI Graphical User Interface," NASA TM 108791, October, 1993.
Comments, questions, bug reports can be sent to wchan@nas.nasa.gov.
hypgen < [input parameters filename] > [output messages filename]
---------------------------------------------------------------------------- Description File Type Dimensions ---------------------------------------------------------------------------- Surface grid PLOT3D single grid file * jmax,kmax,1 ** Input parameters (STDIN) ASCI ---------------------------------------------------------------------------- * unformatted or formatted, single or multiple grid format (output volume grid file will follow single or multiple grid format from surface grid) ** kmax can be equal to 1 in 2D cases The output files produced are: ------------------------------------------------------------------------------- Description File Type Dimensions ------------------------------------------------------------------------------- Field grid PLOT3D single grid file * jmax,kmax,lmax Output messages (STDOUT) ASCI ------------------------------------------------------------------------------- The output PLOT3D command files produced are: ------------------------------------------------------------ Filename Description ------------------------------------------------------------ surf.com For viewing surface grid edges.com For viewing boundary slices of volume grid far.com For viewing lmax slice of volume grid minmax.com For setting minmax and view point ------------------------------------------------------------
------------------------------------- Filename Description ------------------------------------- surf.i Input surface grid plot3d.dat Output volume grid -------------------------------------
(1) No filenames are supplied - old defaults will be used (surface grid = surf.i, volume grid = plot3d.dat, etc.) (2) Two, three, or four filenames are supplied - 1st line = input surface grid filename 2nd line = output volume grid filename 3rd line = variable zeta filename (*) 4th line = user-defined stretching function filename (*) (*) needed only if corresponding options are activated If filenames are supplied, the first two lines must contain the surface and volume grid filenames. The 3rd and 4th lines may be filled but only used as needed.
input_surface.dat
output_field.dat
0 IFORM(0/1)
1, 1, 3 IZSTRT(-1/1/2),NZREG,[KLAYER] #
33, 0.28, 5e-05, 0 NPZREG(),ZREG(),DZ0(),DZ1()
20, -1, 12, 12 IBCJA,IBCJB,IBCKA,IBCKB
1, 0.000, 4, 2 IVSPEC(1/2),EPSSS,ITSVOL,[NSUB] ##
1, 0.80 IMETH(0/1/2/3),SMU2
0.00, 0.00 TIMJ,TIMK
1, 0.50, 0.60 IAXIS(1/2),EXAXIS,VOLRES (line needed only
if singular axis B.C. is used)
# A new optional input input parameter KLAYER may be added after the NZREG
input parameter. This line may contain 2 or 3 numbers. Default for KLAYER
is 1.
## A new optional input parameter NSUB may be added after the ITSVOL
input parameter. The input line IVSPEC, EPSSS, ITSVOL, [NSUB] may contain
3 or 4 numbers. If a 4th number exists, it will be read into NSUB.
Otherwise, NSUB is assumed to be 1.
--------------------------------------------------------------------------------
The input parameters are described in more detail below.
C-----------------------------------------------------------------------
C INPUT NOTES:
C-----------------------------------------------------------------------
C
C IFORM = 0 unformatted output of PLOT3D volume grid file
C = 1 formatted . . . . . . . . . . . . . . . . . .
C
C IZSTRT = 1 exponential stretching in L
C = 2 hyperbolic tangent stretching in L
C = -1 stretching funtion specified in file zetastr.i (@)
C NZREG = number of L-regions
C KLAYER = number of constant wall-spacing cells in L
C (optional, default set to 1, e.g., KLAYER=2 means the first 3
C points, and hence the first 2 cells, in L have constant spacing)
C (@) Only 1 L-region can be used with this option and ZREG,DZO,DZ1
C will be disregarded.
C
C NPZREG = number of points (including ends) in each L-region
C ZREG > 0 distance to march out for this L-region
C <=0 variable far field distance specified in file zetavar.i (#)
C DZ0 = 0 initial spacing is not fixed for this L-region
C > 0 initial spacing for this L-region
C < 0 variable initial spacing specified in file zetavar.i (#)
C DZ1 = 0 end spacing is not fixed for this L-region
C > 0 end spacing for this L-region
C < 0 variable end spacing specified in file zetavar.i (#)
C (#) Applied to first L-region only
C
C The boundary conditions types at J=1, J=JMAX, K=1, K=KMAX are indicated
C by IBCJA, IBCJB, IBCKA, IBCKB, respectively
C
C IBCJA = -1 float X, Y and Z - zero order extrapolation (free floating)
C < -1 outward-splaying free floating boundary condition which bends
C the edge away from the interior. Use small $|$IBCJA$|$ for
C small bending - mixed zeroth and first order extrapolation
C with EXTJA = -IBCJA/1000.0 where EXTJA must satisfy 0 < EXTJA < 1
C = 0 automatically determine boundary condition based on surface
C grid topology
C = 1 fix X, float Y and Z (constant X plane)
C = 2 fix Y, float X and Z (constant Y plane)
C = 3 fix Z, float X and Y (constant Z plane)
C = 4 float X, fix Y and Z
C = 5 float Y, fix X and Z
C = 6 float Z, fix X and Y
C = 7 floating collapsed edge with matching upper and lower sides
C (points along K=1,(KMAX+1)/2 are matched with those on K=KMAX,(KMAX+1)/2)
C = 10 periodic condition (*)
C = 11 reflected symmetry condition with X=constant plane
C = 12 reflected symmetry condition with Y=constant plane
C = 13 reflected symmetry condition with Z=constant plane
C = 20 singular axis point
C = 21 constant X planes for interior and boundaries slices (*)
C = 22 constant Y planes for interior and boundaries slices (*)
C = 23 constant Z planes for interior and boundaries slices (*)
C (*) Must also apply at the other end condition in J
C
C IBCJB, IBCKA, IBCKB likewise
C
C IVSPEC = 1 volume spec. by cell area times arc length
C = 2 volume spec. by mixed spherical volumes scaling
C EPSSS = parameter that controls how fast spherical volumes are mixed in
C (used with IVSPEC=2 only)
C ITSVOL = number of times volumes are averaged
C NSUB > 0 number of sub-steps per marching step
C = 0 reset to NSUB=1
C < 0 start with 1 sub-step, automatically increase by 1 (up to
C -NSUB) until no negative Jacobians are found.
C
C IMETH = 0 constant coef. dissipation
C = 1 spatially-varying coef. dissipation
C = 2 severe convex corners treated by solving averaging eqns.
C = 3 severe convex corners treated by angle-bisecting predictor
C SMU2 = second order dissipation coef.
C
C TIMJ = Barth implicitness factor in J
C TIMK = Barth implicitness factor in K
C
C The following 3 parameters are read in only if axis bc is activated
C
C IAXIS = 1 extrapolation and volume scaling logic
C = 2 same as 1 but with dimple smoothing
C EXAXIS = 0 zeroth order extrapolation at axis
C > 0 and < 1 control local pointedness at axis (~0.3)
C = 1 first order extrapolation at axis
C VOLRES restrict volume at one point from axis. This parameter is
C only switched on if exaxis is non-zero. Good values are
C ~0.1 to ~0.5