HYPGEN Version 3.0d

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.

Execution:

HYPGEN is executed by typing

hypgen < [input parameters filename] > [output messages filename]

Input Files:

The input files required are:
----------------------------------------------------------------------------
        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   
------------------------------------------------------------

Filenames Convention

The input surface grid and output field grid filenames can be specified by the user in the first 2 lines of the input parameters file. If no filenames are specified in the first 2 lines of the input parameters file, the following defaults are assumed:
   -------------------------------------
    Filename          Description
   -------------------------------------
    surf.i          Input surface grid
    plot3d.dat      Output volume grid
   -------------------------------------

Special Notes on version 2.2h

Version 2.2h of HYPGEN will automatically determine an appropriate boundary condition at a given boundary based on the surface grid topology if the input boundary condition is set to 0.

Optional Filenames

Filenames can be specified at the beginning of the input parameters file. There are 2 options:

(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.

Description of Input Parameters

A sample input parameters file and explanation of the input parameters are given below.

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

Last modified: Mon Aug 23 14:20:00 2004