| PEGASUS 5 User's Guide | ||
| Previous Section | Return to Table of Contents | Next Section |
PEGASUS has been developed and tested on SGI, LINUX, and Cray platforms. Every attempt has been made to conform to standard Fortran 90 conventions; therefore, compilation on other platforms with compliant Fortran 90 compilers should be straightforward.
To compile and install PEGASUS and all of the utility programs and scripts, follow these steps:
| configure --enable-dp | To enable double-precision |
| configure --enable-mpi | To enable MPI parallel execution (See MPI Compilation below) |
| configure --enable-mpilog | To enable MPI parallel exection with MPE logging |
| configure --enable-mips2 | SGI -mips2 compiler option |
| configure --enable-mips3 | SGI -mips3 compiler option |
| configure --enable-mips4 | SGI -mips4 compiler option |
| configure --enable-debug | To enable debug compiler flags and output |
| configure --with-pgi | Use Portland Group compilers |
| configure --installdir=DIR | Executables will be installed in directory DIR |
The executable will be named pegasus5.
It is recommended that PEGASUS be compiled and run in double precision
when viscous grids are used. Running viscous cases in single precision
has been seen to sometimes adversely affect the hole-generation process,
and in some cases can affect interpolation as well.
3.1.1 MPI Compilation
As of version 5.1g, PEGASUS5 has a parallel execution option which utilizes Message-Passing Interface (MPI) standard. This option must be enabled when the code is compiled. Use of the --enable-mpi or the --enble-mpilog configure options will produce a peg/Makefile which enables MPI, and will produce an executable named pegasus5mpi. The MPI version of PEGASUS5 has been tested using the mpich implementation of MPI. The MPI version of the peg/Makefile utilizes mpif90, which is a script interface to your f90 compiler that is created when you install mpich. If another implemntation of mpi is to be used, you need to edit your peg/Makefile appropriately. See http://www-unix.mcs.anl.gov/mpi/mpich/ for more information about mpich. See Section 4.2 for information about running pegasus5mpi.
3.2 User Inputs
Two types of input must be supplied: the volume grids, and the standard input file. There are some utility codes, which are described in Section 3.3, which help in the preparation of this input. The details of these inputs are described in this section.
The individual volume grids are stored in a sub-directory within the project directory called X_DIR. See Section 3.5 for a description of the directory structure used by PEGASUS5 code. The grids are to be stored as unformatted, single-zone, PLOT3D grid files. These grid files are named "mesh_nameA.x", "mesh_nameB.x", etc, where mesh_nameA, mesh_nameB, ... correspond to the NAME variables in the $MESH namelists in the standard input file.
All of the user inputs to PEGASUS are read from the standard input. All inputs are in a form similar to FORTRAN NAMELISTS. The following is a list of all of the NAMELISTS defined in PEGASUS . Not all of these NAMELISTS have to be included in the input, and the order in which the NAMELISTS appear in the input does not matter. Most problems will only require input to be specified in the first three of these NAMELISTS:
In the namelists which require grid indices, negative numbers can be used to specify indices relative to the last index. For example, an index of j=-1 is equivalent to j=jmax, j=-2 is equivalent to j=jmax-1, etc.
$GLOBAL
This input sets global values for all meshes. Each record can be
overridden for any individual mesh by using the $MESH input. However, the mesh override is
limited to that individual mesh. For subsequent meshes, the global
values are used unless specifically overridden.
| Variable | Description | Default |
|---|---|---|
| ANGLE | Maximum angle, in degrees, between the surface normal of the projected point and the reference surface of projection. If greater than this angle, the projection is not allowed. | 30.0 |
|
CARTX CARTY CARTZ |
Each of these inputs is a pair of numbers to set the min and max boundaries
in the x, y, or z directions of the Cartesian boxes used in the automatic
hole cutting. If they are left at their default values, the
hole-cutting cartesian boundaries are set to extend just beyond the
surfaces making up the hole cutter. This input can be used to limit the extent of the of the volume in which holes can be blanked out by the hole-cutters, and in some instances, can be used to help close off leaks in a hole-cutting surface. |
-1.e30, 1.e30 |
| CENTER | Set equal to .TRUE. to create an internal cell-centered grid. | .FALSE. |
| CNX, CNY, CNZ | Integer dimensions of Cartesian grids (hole maps) used for hole cutting. | 512 |
| DISTANCE | A positive integer value that controls the maximum distance that a surface point can be projected. The input DISTANCE is the number of grid cells in the solid-wall normal direction used to compute the actual distance limit. | 20 |
| EPS | Tolerance of interpolation coefficient. Value of interpolation coefficients less than 0 and greater than 1.0 that is allowed for a converged stencil. Should be larger than machine epsilon. | 0.001 |
| EXCLBC | Set equal to .TRUE. if the points specified as boundary conditions are to be excluded as interpolated boundary points. | .TRUE. |
| FRINGE | Set equal to 1 for single fringe or equal to 2 for double fringe. | 1 |
| HBFRNG | Hole boundary fringe. Set equal to 1 for single fringe or equal to 2 for double fringe. | Value of FRINGE |
| HOLE1ST | If set equal to .TRUE., hole cutting, both manual and automatic, are performed prior to interpolation. | .FALSE. |
| HCUT | Set equal to .TRUE. if automatic hole cutting is to be performed. | .TRUE. |
| INCORE | Specifies if main data (e.g., meshes, interpolation values, etc.) are kept incore (=.TRUE.) or written and read from file (=.FALSE.) | .FALSE. |
| LEVEL2 | Set equal to .TRUE. if "level 2" interpolation is to be performed. | .TRUE. |
| OBFRNG | Outer boundary fringe. Set equal to 1 for single fringe or equal to 2 for double fringe. If this value is not specified it takes on the value of FRINGE. | Value of FRINGE |
| OFFSET | Set to a positive integer value, zero or greater. This value specifies the increase of the minimum hole that was created by an automatic hole cutter. For example, if OFFSET=2, all field points within 2 indices of the hole are changed to hole points. | 0 |
| ORPHFIX | Set equal to .TRUE., second fringe orphan points will be fixed, i.e., returned to field values. Certain flow solvers (e.g., OVERFLOW and INS3D) allow for mixed fringed conditions (single and double) and can use this option. | .TRUE. |
| OUTER | Set equal to .TRUE. if automatic outer boundary specifications are to be performed. | .TRUE. |
| THRU |
Perform processing up to and including a particular operation.
The following are the operations in the order that they are executed:
projection - project meshes with solid boundary conditions adt - creates alternating digital tree for each mesh interpolate - interpolates each mesh-to-mesh combination auto_hbound - creats automatic Cartesian hole cutters man_hbound - creates surface cutter based on user inputs auto_cut - cuts holes using automatic Cartesian hole cutter man_cut - cuts holes using manual hole cutting comp_hole - assembles composite holes spec_int1 - specify points for "level 1" interpolation spec_level1 - pick "best" points for "level 1" interpolation spec_int2 - specifies points for "level 2" interpolation spec_level2 - pick "best" points for "level 2" interpolation xintout - produces an XINTOUT file for current PEGASUS execution (perform all operations) |
xintout |
| PROJECT | Set equal to .TRUE. if projection of solid wall boundary surfaces is to be preformed. | .TRUE. |
| SHIFT | This input is the same as the shift parameter in PROGRD and is used only if PROJECT=.TRUE., If equal to 1, move all points in J/K/L direction by same increment as surface point. If equal to 2, move nearest half of point in J/K/L direction by same increment as surface point. If equal to 3, hold opposite boundary fixed in J/K/L direction and redistribute interior points proportional to arclength distance from wall. | 3 |
| QCUTOFF | The level of quality that is accepted for a mesh. Interpolated boundary points with a value of quality below this level will be considered an "orphan" point and no interpolation information will be supplied. | 0.1 |
| QTOL | Tolerance band for quality. This value is used when selecting the "best" interpolated boundary point cell-interpolation stencil pair (see Section 2.3 and Figure 7). | 0.01 |
| XINCLUDE,YINCLUDE,ZINCLUDE | Range of X, Y, and Z values, respectively, to be included as boundary points. Composed of two values (a minimum and a maximum value) in each of the X, Y, and Z directions, respectively. | none |
| Variable | Description | Default |
|---|---|---|
| QTOL | Tolerance band for quality for a. This value is used when selecting the "best" interpolated boundary point cell-interpolation stencil pair (see Section 2.3 and Figure 7). | 0.01 or QTOL specified in $GLOBAL |
| QCUTOFF | The level of quality that is accepted for a. Interpolated boundary points with a value of quality below this level will be considered an "orphan" point and no interpolation information will be supplied. | The value of QCUTOFF in $GLOBAL |
| HBFRNG | Hole boundary fringe. Set equal to 1 for single fringe or equal to 2 for double fringe. | The value of the next fringe value specified in the ascending order: FRINGE for this mesh, HBFRNG for $GLOBAL, FRINGE for $GLOBAL |
| OBFRNG | Outer boundary fringe. Set equal to 1 for single fringe or equal to 2 for double fringe. | The value of the next fringe value specified in the ascending order: FRINGE for this mesh, OBFRNG for $GLOBAL, FRINGE for $GLOBAL |
| ORPHFIX | Set equal to .TRUE., second fringe orphan points will be fixed, i.e., returned to field values. Certain flow solvers (e.g., OVERFLOW and INS3D) that allow for mixed fringed conditions (single and double) can use this option. | .FALSE. |
| PHANTOM | Setting PHANTOM=.TRUE. denotes this mesh is a "phantom" mesh, to be used only for hole cutting, and is not part of the final grid system. | .FALSE. |
| ALPHA, BETA, GAMMA | Euler angles (degrees) determining rotation of input meshes. ALPHA, BETA, and GAMMA are rotations about the Z, Y, and X coordinates, respectively. The coordinates of a mesh are transformed in the following sequence of operations: (1) scaling, (2) translation, and (3) rotation. | 0.0 |
| EPS | Tolerance of interpolation coefficient. Value of interpolation coefficients less than 0 and greater than 1.0 that is allowed for a converged stencil. Should be larger than machine epsilon. | Value of EPS in $GLOBAL |
| FRINGE | Set equal to 1 for single fringe or equal to 2 for double fringe. | Value of FRINGE in $GLOBAL |
| JINCLUDE, KINCLUDE, LINCLUDE | Range of J, K, and L indices, respectively, to be included for boundary points. Composed of two values (a starting and an ending value) in each of the J, K, and L directions, respectively. | none |
| EXCLBC | Set equal to .TRUE. if the points specified as boundary conditions are to be excluded as boundary points. | .TRUE. |
| NAME | Name of mesh to which NAMELIST record refers (must be any alpha-numeric characters with no special symbols). A NAME is a string not exceeding ICHAR characters. | none |
| SCALE | Mesh scaling factor. The original mesh coordinates are multiplied by the scaling factor. The coordinates of a mesh are transformed in the following sequence of operations: (1) scaling, (2) translation, and (3) rotation. | 1.0 |
| XINCLUDE, YINCLUDE, ZINCLUDE | Range of X, Y, and Z values, respectively, to be included for boundary points. Composed of two values (a minimum and a maximum value) in each of the X, Y, and Z directions, respectively. | none |
| XR,YR,ZR | Point (in translated and scaled coordinates) about which input mesh is to be rotated. The coordinates of a mesh are transformed in the following sequence of operations: (1) scaling, (2) translation, and (3) rotation. | 0.0 |
| X0,Y0,Z0 | Mesh translation factors. These factors are added to the original mesh coordinates. The coordinates of a mesh are transformed in the following sequence of operations: (1) scaling, (2) translation, and (3) rotation. | 0.0 |
| OFFSET | Set to a positive integer value, zero or greater. This value specifies the increase of the minimum hole that was created by an automatic hole cutter. For example, if OFFSET=2, all field points within 2 indices of the hole are changed to hole points. | 0 |
| PROJECT | Logical variable which controls whether or not solid-wall points in this mesh will actively project themselves onto other solid-wall surfaces in other meshes. Even it this is set to .FALSE., this meshes solid walls may be used as a reference surfaces for other meshes to project onto, unless this mesh is listed in the PEXCLUDE list for all other meshes. | Value of $GLOBAL PROJECT. |
| SHIFT | This input is the same as the shift parameter in PROGRD and is used only if PROJECT=.TRUE., If equal to 1, move all points in J/K/L direction by same increment as surface point. If equal to 2, move nearest half of point in J/K/L direction by same increment as surface point. If equal to 3, hold opposite boundary fixed in J/K/L direction and redistribute interior points proportional to arclength distance from wall. | 3 |
| ANGLE | Maximum angle between the surface normal of the projected point and the reference surface of projection. If greater than this angle, the projection is not allowed. | 30.0 |
| DISTANCE | A positive integer value that controls the maximum distance that a surface point can be projected. The input DISTANCE is the number of grid cells in the solid-wall normal direction used to compute the actual distance limit. | 20 |
| PINCLUDE | Names of meshes that are to be included for projection with this mesh. | All meshes. |
| PEXCLUDE | Names of meshes that are to be excluded from projection with this mesh. | No meshes. |
This input is like the BCINP namelist in the OVERFLOW flow solver. This namelist specifies all of the boundary conditions for each mesh. PEGASUS uses this information to automatically cut holes (based on the specification of the solid walls), and to automatically determine the outer boundary points which will require interpolation. It also uses these boundary conditions to determine certain mesh topologies, such as o-grid periodic meshes, 2D meshes, and symmetry planes.
| Variable | Description | Default |
|---|---|---|
| ISPARTOF | Name of MESH for which these boundary conditions apply. | None |
| IBTYP | List of boundary condition types
-1 = dummy solid wall: used as a solid wall for hole-cutting, but these points will still be added to the list of outer-boundary interpolation points 1 - 8 = Solid wall 10 = O-grid periodicity (apply to first or last plane) 11 = Symmetry in X 12 = Symmetry in Y 13 = Symmetry in Z 14 = Axis (J around) 15 = Axis (K around) 16 = Axis (L around) 17 = Symmetry with no reflection plane 21 = 2-D condition in Y (apply to one face) (3 planes supplied at Y=-1,0,1) 22 = Axisymmetric in Y, (apply to one face) (3 planes supplied, +/- 1 deg rotation about X) 30 = Outflow (extrapolation) 31 = Characteristic condition 32 = Supersonic/subsonic inflow/outflow 33 = Specified pressure outflow 35 = Outflow (1st-order extrapolation) 40 = Impose freestream 41 = Nozzle inflow 42 = Prescribed Q 43 = Prescribed Q with slow start 43 = Impose freestream 44 = actuator disk 45-46 = prescribed Q/inflow-outflow condition 47 = Freestream/characteristic condition 49 = Default (no change) 51 = C-grid flow-through (specify on side) (J is C-direction) 52 = C-grid flow-through (specify on side) (K is C-direction) 53 = C-grid flow-through (specify on side) (L is C-direction) 54 = Fold-over cut flow-through (fold-over in J) 55 = Fold-over cut flow-through (fold-over in K) 56 = Fold-over cut flow-through (fold-over in L) 57 = C-grid at a wall (apply wall first) (J is C-direction) 58 = C-grid at a wall (apply wall first) (K is C-direction) 59 = C-grid at a wall (apply wall first) (L is C-direction) 61 = Blank out region (set IBLANK=0) 70 = Copy to 71 = Copy from 81 = Slotted wind-tunnel wall 82 = Slotted wind-tunnel wall 86 = Wind tunnel exit |
None |
| IBDIR |
List of index directions:
1 = positive J direction -1 = negative J direction 2 = positive K direction -2 = negative K direction 3 = positive L direction -3 = negative L direction |
None |
| JBCB | list of beginning j-indices | None |
| JBCE | list of ending j-indices | None |
| KBCB | list of beginning k-indices | None |
| KBCE | list of ending k-indices | None |
| LBCB | list of beginning l-indices | None |
| LBCE | list of ending l-indices | None |
| XSYM | symmetry at X=0.0 | 1 if ibtyp=11
0 otherwise |
| YSYM | symmetry at Y=0.0 | 1 if ibtyp=12
0 otherwise |
| ZSYM | symmetry at Z=0.0 | 1 if ibtyp=13
0 otherwise |
| X2D | 2-dimensional in X
supply 3 planes in X=-1,0,1 |
0 |
| Y2D | 2-dimensional in Y
supply 3 planes in Y=-1,0,1 |
1 if ibtyp=21
0 otherwise |
| Z2D | 2-dimensional in Z
supply 3 planes in Z=-1,0,1 |
0 |
This input specifies a group of meshes that be used to create a hole cutting boundary, as well as which meshes will be cut by this hole cutting boundary. Entries in the $BCINP namelist must be present for this method to work. Both solid boundary and symmetry plane information must be present in the $BCINP namelist for the meshes that are used for the hole cutting boundary. If no $HCUT namelist groups are specified and HCUT is equal to .TRUE. (in namelist group $GLOBAL), a hole cutting boundary will be created from all solid boundaries in all of the $BCINP namelists, and this hole cutting boundary will cut a hole in all meshes. There can be zero to many $HCUT namelist groups specified in the user inputs.
| Variable | Description | Default |
|---|---|---|
| NAME | Name of hole cutting group (must be any alphanumeric characters with no special symbols). | none |
| MEMBER | List of meshes that make up a group. This group of meshes must define a completely enclosed volume. | all meshes |
| INCLUDE | List of meshes that will have minimum holes cut by this group of meshes. | all meshes |
| EXCLUDE | List of meshes that will not have minimum holes cut by this group of meshes. This input is only used when INCLUDE is not specified, i.e., when all meshes have been specified. | none |
| CNX,CNY,CNZ | Integer dimensions of Cartesian grids (hole maps) used for hole cutting. | Global values of CNX, CNY, CNZ |
|
CARTX CARTY CARTZ |
Each of these inputs is a pair of numbers to set the min and max boundaries
in the x, y, or z directions of the Cartesian boxes used in the automatic
hole cutting. If they are left at their default values, the
hole-cutting cartesian boundaries are set to extend just beyond the
surfaces making up the hole cutter. This input can be used to limit the extent of the of the volume in which holes can be blanked out by the hole-cutters, and in some instances, can be used to help close off leaks in a hole-cutting surface. |
Global values of CARTX, CARTY, CARTZ |
| INTERNAL | Logical variable which controls whether the hole cutter assumes an internal or an external flow orientation. Set this to .true. for fully-enclosed internal-flow type geometries, ie - flow through an duct. Set to .false. for external-flow geometries, ie - flow around an airplane. | .false. |
If this input is not specified and OUTER is equal to .TRUE. (in namelist group $GLOBAL) outer boundaries for all meshes will be specified automatically. This means that meshes which do not have boundary condition data given in the $BCINP namelist will have outer boundary points specified on all mesh faces. The $OUTER namelist group should be used only if a specific group of meshes needs to be included or excluded from automatic outer boundary specification. Only one $OUTER namelist group can be specified.
| Variable | Description | Default |
|---|---|---|
| INCLUDE | List of meshes that will have outer boundaries determined from input boundary conditions. | all meshes |
| EXCLUDE | List of meshes that will not have the outer boundaries determined from input boundary conditions. This input is only used when INCLUDE is not specified, i.e., when all meshes have been specified. | none |
| Variable | Description | Default |
|---|---|---|
| CLOSED | Either .TRUE. or .FALSE. Set equal to .FALSE. when the surfaces do not describe a completely closed boundary. | .TRUE. |
| ISPARTOF | Mesh which contains boundary (must be any alpha-numeric characters with no special symbols). ISPARTOF is a string not exceeding ICHAR characters. | none |
| MHOLEIN | Meshes in which the named boundary causes holes. MHOLEIN's are specified as follows: MHOLEIN = 'mesh name 1', 'mesh name 2', etc. Each mesh name in MHOLEIN is a string not exceeding ICHAR characters. | none |
| NAME | Name of boundary (must be any alpha-numeric characters with no special symbols). A boundary name is a string not exceeding ICHAR characters. | none |
| Variable | Description | Default |
|---|---|---|
| ISPARTOF | Boundary to which surface belongs (must be any alpha-numeric characters with no special symbols). ISPARTOF is a string not exceeding ICHAR characters. | none |
| JRANGE, KRANGE, LRANGE | Ranges of indices that define surface. Composed of two values (a starting and an ending value) in each of the J, K, and L directions, respectively. Maximum allowable ranges are: JRANGE: 1,JMAX KRANGE: 1,KMAX LRANGE: 1,LMAX | Default: none |
| MESHNAME | Name of mesh that contains the surface (ISPARTOF) (must be any alpha-numeric characters with no special symbols). NAME is used only for hole creation boundaries. Name is a string not exceeding ICHAR characters. | mesh name given in ISPARTOF for $BOUNDARY. |
| NVOUT | Direction of normal outward from hole. NVOUT is required only for hole creation boundaries. Allowable values are "+J", "-J","+K", "-K", "+L", and "-L". | none |
| Variable | Description | Default |
|---|---|---|
| ISPARTOF | Boundary to which box belongs (must be any alpha-numeric characters with no special symbols). ISPARTOF is a string not exceeding ICHAR characters. | none |
| XRANGE,YRANGE,ZRANGE | Ranges of X, Y, and Z coordinates that define box. Composed of two values (a minimum and a maximum value) in each of the X, Y, and Z directions, respectively. | none |
| Variable | Description | Default |
|---|---|---|
| ISPARTOF | Mesh which contains region (must be any alpha-numeric characters with no special symbols). ISPARTOF is a string not exceeding ICHAR characters. | none |
| NAME | Name of region (must be any alpha-numeric characters with no special symbols). A region name is a string not exceeding ICHAR characters. | none |
| TYPE |
Defines type of region being specified.
TYPE='HOLE': hole with a fringe is created; all points in the ranges specifed in the $VOLUME(s) for this REGION are blanked out. If TYPE='UNBL': specified points will not be hole points: all points in the ranges specifed in the $VOLUME(s) for this REGION are unblanked. TYPE='INTR': an interior region will be blanked out, but no fringe points will be created; blanks out only the points interior to the ranges specified in the $VOLUME(s) for this REGION. The VOLUME ranges for this TYPE are allowed to range from 0 to the meshes max dimension pluse one. For example, a VOLUME range that is part of a REGION of this type can have JRANGE=0,0, which will be interpreted as JRANGE=0,jmax+1. This will blank out the points for j=1,jmax. |
HOLE |
| Variable | Description | Default |
|---|---|---|
| ISPARTOF | Region to which volume belongs (must be any alpha-numeric characters with no special symbols). ISPARTOF is a string not exceeding ICHAR characters. | none |
| JRANGE,KRANGE,LRANGE | Ranges of indices that define volume. Composed of two values (a starting and an ending value) in each of the J, K, and L directions, respectively. Maximum allowable ranges are: JRANGE: 1,JMAX KRANGE: 1,KMAX LRANGE: 1,LMAX unless the VOLUME is part of a REGION of TYPE = 'INTR', in which case the maximum allowable ranges are: JRANGE: 0,JMAX+1 KRANGE: 0,KMAX+1 LRANGE: 0,LMAX+1 Note that JRANGE=0,0 is interpreted as JRANGE=0,JMAX+1 | none |
If this input is not specified and LEVEL2 is equal to .TRUE. (in namelist group $GLOBAL) "level 2" interpolation for all meshes will be specified automatically. The $LEVEL2 namelist group should be used only if a specific group of meshes needs to be included or excluded from "level 2" interpolation. Only one $LEVEL2 namelist group (INCLUDE or EXCLUDE) can be specified.
| Variable | Description | Default |
|---|---|---|
| INCLUDE | List of meshes that will have "level 2 interpolation" performed on them. | all meshes |
| EXCLUDE | List of meshes that will not have "level 2 interpolation" performed on them. This input is only used when INCLUDE is not specified, i.e., when all meshes have been specified. | none |
3.3 Utility Codes
Several utility codes are supplied with PEGASUS in the /tools
directory:
peg_setup - This is a menu-driven script which gives the
user options to initialize a PEGASUS problem, remove a PEGASUS
problem, prepare to restart a PEGASUS run from the beginning, or redo the
hole-cutting from the beginning. The first option requires that the
user supply a multi-zone PLOT3D grid file containing all of the volume
grids to be used. Also, you can supply an OVERFLOW input file to
provide the boundary conditions. It executes
mesh_lister,
peg_in,
make_WORK,
p3d2peg,
and peg_hole_surf.
This option will split up the user-supplied multi-zone grid into
individual meshes and place them in the X_DIR directory, ready
for PEGASUS5. It creates a standard input file called
peg.in.raw to help get you started. If an OVERFLOW input file
is supplied, it will add the boundary condition data to the input
file, and will also create a PLOT3D file of the solid surfaces of the
configuration, called hcutter.g. This file makes it easy to
plot and check that the solid-wall boundaries form a closed surface,
which is necessary for the automatic hole cutting to work. See
Section 4.2 for more information on the
use of peg_setup.
The following six utility codes can be executed by running peg_setup, but can also be executed as stand-alone codes:
peg_in [-no_add_te] - Creates a minimal PEGASUS5 input file. It
is written to a file called peg.in.raw with the intention that it
be reviewed and edited if necessary before use. It requires the
mesh_list file, which can be generated with the mesh_lister program. peg_in
will also read the boundary condition data from an OVERFLOW input file
and add this information into peg.in.raw The mesh names must be
present in the OVERFLOW input file, otherwise the boundary condition
information can not be used by PEGASUS.
The -no_add_te flag will cause it to not add an extra solid
surface (ibtyp=-1) at the trailing edge of a component where a
flow-through boundary starts.
peg_hole_surf [-sp] - creates one unformatted, multi-zone PLOT3D
grid file for each HCUT namelist in the pegasus input file (or just
one grid file if there is no HCUT namelist). The grid file will
contain all of the no-slip and slip-wall surfaces from the meshes
which are members of the HCUT hole cutter. This is very useful for
verifying that the HCUT hole-cutter surfaces comprise an airtight surface.
This program requires the pegasus input file, and it
reads the grid coordinates from the mesh files
in the X_DIR directory. If the code was compiled using
double-precision, one can produce a single-precision grid file
by adding the command-line argument -sp.
p3d2peg - breaks up the user-supplied PLOT3D file into single
grid files which are placed in the /X_DIR directory.
make_WORK. -creates the WORK directory and its
sub-directories which are needed within the project directory. If
these are not created before-hand, PEGASUS5 will create them when it
is executed.
mesh_lister - generates a list of mesh names for use by the other
utility codes. The names will be generated from an OVERFLOW input file,
if it exists; otherwise, the user will be prompted to either enter mesh
names or assign default names to each grid in the user-supplied PLOT3D
grid file.
clean_holes - removes the contents of /WORK sub-directories
which are relevant to hole generation. Use this script if it is desired
to re-run only the hole-generation processes again. If one one wants
to re-run the entire PEGASUS process from the beginning, simply remove
or rename the WORK directory.
The following utility codes are supplied for diagnostic purposes:
peg_plot [-sp] [-noorphfix] - produces an unformatted,
multiple grid PLOT3D file (with IBLANKs) of the grid system. It
reads the iblank and stencil data from the XINTOUT file, and so can
only be used after PEGASUS5 has been run to completion (THRU =
'xintout'). Use peg_hole to plot the holes
if you have only run with THRU = 'comp_hole'. The program prompts for
the name of the output file, and for the level of fringes
to plot, where the fringe level can be:
1 = single fringe: blank out level-2 and higher fringe points
2 = double fringe: blank out level-3 and higher fringe points
3 = all: only the minimum holes are blanked out
If the code was compiled using double-precision, one
can produce a single-precision grid file by adding the command-line
argument -sp.
It assigns an iblank value of 101 to first level ORPHAN points so they
can be plotted; for example, use function 3 in PLOT3D.
The code will automatically assign second-level ORPHAN points an
iblank value of 1 (a valid interior point) unless
used with the -noorphfix argument, in which case the iblank will
be assigned a value of 101.
peg_diag [-sp] - produces a diagnostic
file for plotting. It can be produced after PEGASUS execution has been
completed. The file that is created allows the user to visualize
quality and cell difference parameter with PLOT3D or FAST (as well as
any visualization software that reads PLOT3D grid and solution
files). This file can be used with the grid file produced with
peg_plot. There are no PHANTOM meshes included in this
file. The values in this file are as follows:
| Variable | Value or parameter | Grid point type |
|---|---|---|
| Q(1) |
Quality Parameter
1.0 |
Legal Interpolated Boundary Point
Field Point |
| Q(2) |
Cell Difference Parameter
0.0 |
Legal Interpolated Boundary Point
Field Point |
| Q(3) |
Connecting Mesh Number
Current Mesh Number 0.0 |
Legal Interpolated Boundary Point
Field Point Orphan Point |
| Q(4) |
1.0
0.0 -1.0 |
Field Point
Legal Interpolated Boundary Point Orphan Point |
| Q(5) |
Connecting Mesh Number
0.0 -1.0 |
Legal Interpolated Boundary Point
Field Point Orphan Point |
peg_hole [-sp] - creates a grid file with IBLANK for the hole
system that has been created. PEGASUS must be executed through (at
least) the "comp_hole" process in order to use this utility. An
unformatted, multiple grid, with IBLANK, PLOT3D file is produced. This
code must be executed in the project directory.
If the code was compiled using double-precision, one
can produce a single-precision grid file by adding the command-line
argument -sp.
peg_proj [-sp] - creates diagnostic
multi-zone PLOT3D grid and solution files, named peg_proj.g and
peg_proj.q, which contain a zone for each solid-wall boundary surface.
The grid file contains the grid-cooridnates at the surface points, and
the q file contains fields 1, dx, dy, dz, and 1. The dx, dy, and dz
data are the components of the projection vector at each surface point
for the projection of that point with the greatest magnitude. This
data is best used by plotting velocity vectors at all the points, and
coloring the vectors by velocity magnitude. Typically, it is best to
scale the velocity vectors by a factor in the range 10 - 100.
peg_proj creates a PLOT3D command file named peg_proj.com,
which can be used to create this type of plot using PLOT3D.
peg_proj also reports the maximum distance moved for each mesh,
and onto which mesh that maximum projection occured.
If the code was compiled using double-precision, one
can produce a single-precision grid file by adding the command-line
argument -sp.
peg_orph [-noorphfix] - Lists the orphan points for all
of the meshes or for a specified mesh. The output can be sent
to a file or to the screen. If the -noorphfix command-line
argument is given, it will not fix the 2nd-fringe orphans, and they
will be included in the list.
peg_mem - estimates memory requirements for a given PEGASUS problem.
Requires the pegasus5 input file, and the grid files in the X_DIR directory.
XINtegrity - checks the XINTOUT file produced by
PEGASUS for internal consistency. This utility checks the accuracy of interpolations
and determines whether interpolated boundary points are receiving information
from the correct mesh elements. A PLOT3D file is produced with IBLANKS
set equal to the negative of the mesh number from which interpolated points
receive information. Orphan points are identified with IBLANK=2.
XIN2sp - converts a double precision
XINTOUT file
to single precision. This utility is used if it is desired to run the flow
solver in single precision, but PEGASUS was run in double precision.
cmpxint - compares two XINTOUT files. If they
have the same grid dimensions and number if stencils, it reports
the maximum difference in the stencils weights and number of
differences in the iblank arrays.
It is recommended that all of the utility codes be executed from the
project directory, as most of them require information from the /WORK
and /X_DIR directories.

3.4 Output File Formats
Standard Output
Only error messages are written to stdout.
Log File
PEGASUS5 writes all of its output to a log file with the name of log.dddd.tttt, where dddd is the current date and tttt is the current time. The log file contains the following:
XINTOUT
The XINTOUT file contains all of the interpolation stencils
for the fringe points and outer-boundary points, as well as an iblank array
defining the hole-cuts. The file is unformatted, and contains the
following four records for each mesh M.
| Record Number | Variable Name |
|---|---|
| 1 | IBPNTS(M),IIPNTS(M),IIEPTR(M),IISPTR(M),
MJMAX(M),MKMAX(M), MLMAX(M) |
| 2 |
(JI(I),I=1,IINPTS(M)),
(KI(I), I=1,IINPTS(M)), (LI(I), I=1,IINPTS(M)), (DXINT(I), I=1,IINPTS(M)), (DYINT(I), I=1,IINPTS(M)), (DZINT(I),I=1,IIPNTS(M)) |
| 3 |
(JB(I), I=1,IBNPTS(M)), (KB(I), I=1,IBNPTS(M)), (LB(I), I=1,IBNPTS(M)), (IBC(I),I=1,IBPNTS(M)) |
| 4 |
(IBLANK(I),I=I1,I2) |
where I1 = 1 and I2 = MJMAX(M)*MKMAX(M)*MLMAX(M)
3.5 Directory Structure
PEGASUS 5.1 stores its files and information in a specific directory structure which it will create when it is first executed in a particular project directory. These directories can also be created in advance using the make_WORK script, which is also executed by the peg_setup script.
Execution of PEGASUS 5.1 must be performed in the project directory
(see Figure 10). The user must supply the standard input file,
see Section 3.2 for input descriptions) and the
individual volume grids. The individual volume grids are stored in
the X_DIR directory as unformatted, single-zone, PLOT3D grid files.
These grid files are named "mesh_nameA.x", "mesh_nameB.x", etc, where
mesh_nameA, mesh_nameB, ... correspond to the NAME variables in the
$MESH namelists.

| PEGASUS 5 User's Guide | ||
| Previous Section | Return to Table of Contents | Next Section |