LAB
Services
LAB
Information
More About NASA:
|
|
|
Online CSCMDO Inviscid Tutorial
PROBLEM
Given a baseline wing/body
surface definition,
and a two block inviscid
volume grid,
modify the volume to reflect changes to the
baseline
as defined by six additional modified geometry definitions described below :
-
chordbp1.hes: 1% chord modification at break point
-
le.5.hes: .5% change in le sweep
-
lebp1.hes: 1% change in le sweep at break point
-
rc-1.hes: -1% change in root chord
-
tc3.hes: 3% change in global t/c
-
tip-2.hes: -2% change in chord @ tip
APPROACH
Setup a CSCMDO input
deck
which updates block faces which are defined
on modified surfaces and any adjacent faces which require modification
due to block edge changes.
Things to Note about the Input Deck
- The input deck is case sensitive
- An index reference of -1 indicates the maximum index
- If a block reference is omitted, command acts on all blocks
- Sequencing of commands is governed only by logical order
(ie. Read data before operating on it)
How to do it
- We begin by reading in the existing volume grid
definition. In this case we are given a file containing the
discrete point definition on the six faces of the computational
cube. In fact, here, the discrete point grid is merely a
representation of the baseline configuration and not truly on
the baseline surface definition. As a result, the data will be
modified 7 times (once for the baseline and once for each of
the 6 modifications). This is given in the form of a 2
block GRIDGEN Block file, base_topo.mlg. The command to read
this file follows :
-
READ GGBLOCKB base_topo.mlg
The READ
command is issued (case sensitive) along with the file
type GRIDGEN Block. The appended `B' indicates the file is in
C Binary format (see the
command page for other supported file
types). The file type is followed by the file name. The file
name is used to construct an internal block name for future
reference within the run. Each block read from the file is
sequentially appended a number to the filename. Therefore, the
1st block is referenced as base_topo.mlg1, the second as
base_topo.mlg2, etc.. In the event that the same file is read
more than once, the appended block number will continue from
that issued for the last block of the last read.
- Next we read in the modified surface discrete point
definition. This would be the data from one of the surface
definition files listed above, herein refered to as
hsct.hes as will be described later. The command to
read this file follows :
-
READ HESSSURF hsct.hes
The READ
command is issued (case sensitive) along with
the file type Hess Surface. Hess files are always ASCII (see
the man page for other supported file types). The file type
indicates that the surface grid data is to be read, and
therefore entities read from the file are assumed to represent
surface definitions. The file type is followed by the file
name. Again, the file name is used to construct an internal
surface name for future reference within the run. As with the
blocks, each surface read from the file is sequentially
appended a number to the filename. Therefore, the 1st surface
is referenced as hsct.hes1, the second as hsct.hes2, etc..
There is no need to read a surface file more than once.
- The topology defined in the original volume grid (GRIDGEN
Block) requires that the wing tips be closed. However, the
supplied modified surface grids contain open wing tips. To
accommodate the volume grid requirement, CSCMDO provides a
command used to close
surfaces to a line defined between two surface points.
-
CLOSE 1 -1 -1 -1 hsct.hes1
CLOSE 1 -1 -1 -1 hsct.hes2
The CLOSE
command is followed by surface index pairs which mark
the beginning and ending of the active surface region.
Surfaces are defined in a 2D (u,v) parametric space, therefore,
us, ue, vs, ve are given where the subscripts s and e denote
the beginning and end of the region, resectively. A value of
-1 for any index indicates the maximum value for that index.
The bounding indices are followed by a surface reference. In
this example, the vmax edge of the surface is to be closed
between umin and umax of each surface, hsct.hes1 and
hsct.hes2.
- Now we begin updating portions of the grid according to
the modified geometry. The updates in this example are handled
using arclength-based parametric transfinite interpolation.
The first portion of the grid to be updated is chosen as the
part of the modified fuselage surface contained in the first
block and defined by hsct.hes3 as
follows :
-
PARAMETRIC
10 -1 1 -1 hsct.hes3 K 1 base_topo.mlg1 1 21 1 -1
In this command us, ue, vs, ve are specified for
hsct.hes3 to define the active sub-region of the
surface. The face direction type indicator (K) and the index
of the active face are used with the block reference to confine
the operation to the Kmin face of the block 1. Finally, the
last four integers define the beginning and ending indices (is,
ie, js, je) of the active subface of Kmin. The indices are
specified in the order consistent with the right-hand rule. Updating with surface
sub-regions and subfaces allows the user to constrain the
volume grid subface edges to given iso-parametric lines on the
surface (ie. the 4 edges of the surface sub-region).
Therefore, the new volume grid will have grid lines running
along the surface sub-region edges. In this case, the
PARAMETRIC command begins the fuselage update by
modifying the grid on the upper right corner of the fuselage nose.
Additional PARAMETRIC
commands are then added to finish the fuselage grid updates.
-
PARAMETRIC
10 -1 1 -1 hsct.hes4 K 1 base_topo.mlg1 61 101 1-1
-
PARAMETRIC
1 -1 1 -1 hsct.hes6 K 1 base_topo.mlg1 21 61 1-1
-
PARAMETRIC
1 10 1 -1 hsct.hes3 K 1 base_topo.mlg2 1 21 1 -1
-
PARAMETRIC
1 10 1 -1 hsct.hes4 K 1 base_topo.mlg2 61 101 1 -1
-
PARAMETRIC
1 -1 1 -1 hsct.hes5 K 1 base_topo.mlg2 21 61 1 -1
- The wing updates are handled with the
PARAMETRIC
command in a similar manner using the hsct.hes1 and hsct.hes2
surface definitions. Note that the inboard and outboard
sections are updated separately in order to maintain the
leading edge discontinuity at the wing
break point.
-
PARAMETRIC
1 -1 1 9 hsct.hes1 J -1 base_topo.mlg1 1 27 21 61
-
PARAMETRIC
1 -1 9 -1 hsct.hes1 J -1 base_topo.mlg1 27 41 21 61
-
PARAMETRIC
1 -1 1 9 hsct.hes2 J 1 base_topo.mlg2 1 27 21 61
-
PARAMETRIC
1 -1 9 -1 hsct.hes2 J 1 base_topo.mlg2 27 41 21 61
- We continue by updating all the
adjacent faces which have common edges
known to have (or that were possibly) changed with the surface
updates. For this example, we have modified the surfaces which
define portions of the Kmin faces in our volume grid
(fuselage). Also, we have modified the wing surface. The wing
occupies part of the Jmax face of block 1 (upper wing) and part
of the Jmin face of block 2 (lower wing).
We begin by accounting for any fuselage length changes. In
this example, a line singularity extends forward from the
fuselage as the Imin face. In addition, the remainder of the
Kmin face not modified by the
PARAMETRIC
update is also
a line singularity. The EDGE
command is used to redefine a linear segment along a key edge
of each face, and then the face is collapsed to the key edge to
define the singularity. We
begin with the Imin face :
-
EDGE 4 I 1 base_topo.mlg1
The EDGE
command is followed
key edge number to modify, the face
direction type indicator (I) and the index of the active
face. Finally, the modification is restricted to the 1st block
by specifying the appropriate reference.
We now collapse the Imin face to the key edge, 4, of block 1 to
redefine the line singularity.
-
COLLAPSE
I 1 4 base_topo.mlg1
The COLLAPSE
command specifies the face direction type
indicator (I) and the index of the active face. The key
edge number is given, and the action is restricted to block 1.
Similarly for the Kmin face :
-
EDGE
1 K 1 base_topo.mlg1 101 -1 1 -1
-
COLLAPSE
K 1 1 base_topo.mlg1 101 -1 1 -1
Note the use of subface restrictions at the end of the
commands. Also, only block 1 is modified at this time due to
point-to-point interfacing with block 2 which will be accounted
for shortly.
- Next, we will use 2D arclength-based transfinite
interpolation to redefine the portions of non-singular faces
which are not defined on a given surface, and hence, were not
updated with the
PARAMETRIC
command. We begin with the
symmetry planes :
-
INTERPOLATE_FACE
J 1 base_topo.mlg1
The INTERPOLATE_FACE
command is issued specifying the
face type indicator (J) and the index of the active
face. The command is further restricted to block 1.
Similarly for the symmetry plane of block 2 :
-
INTERPOLATE_FACE
J -1 base_topo.mlg2
The Jmax face of block 1 and the Jmin face of block 2 require
special treatment because a portion of the face has already
been updated with the
PARAMETRIC
command, and must remain unchanged. Furthermore, the previous
changes to the wing portions of the face will drive the shape
of the new grid in the surrounding areas. The face must be
operated on using subfaces in
order to finish the quarter plane updates. Only the Jmax face
of block 1 need be redefined at this point, due to
point-to-point matching of the interface between blocks 1 and
2.
-
INTERPOLATE_FACE
J -1 base_topo.mlg1 41 -1 1 -1
-
INTERPOLATE_FACE
J -1 base_topo.mlg1 1 -1 1 21
-
INTERPOLATE_FACE
J -1 base_topo.mlg1 1 -1 61 -1
The interpolation of these three subfaces completes the update
of the quarter plane interface between blocks 1 and 2.
- Point-to-point block continuity is preserved by copying a
portion of the grid from one location to another. For this
example, the three previously completed subfaces of the Jmax
face of block 1 must be copied to the Jmin face of block 2.
This is accomplished as follows :
-
COPY
1 21 -1 -1 1 -1 base_topo.mlg1 1 21 1 1 1 -1 base_topo.mlg2
The COPY
command is followed by indices specifying the
source region. The indices are entered as is, ie, js, je, ks,
ke where s marks the beginning index in the given direction,
and e marks the end. The source block reference follows the
indices. Next, the indices for the target region are given in
a similar manner along with the target block reference. The
source indices must be in increasing order (ie: is < ie,
etc.). However, the target indices may be reversed (ie. is >
ie,etc.) to indicate a change in direction from source to
target. The index range may specify a 3D chunk of a block, a
face, or a point, however the size of the source and target
ranges must match. The above command copies the subface from
I=1 to I=21, of the Jmax face, from K=1 to K=Kmax, of block 1
to the same subface of the Jmin face of block 2.
The two remaining matching interfacing subfaces of are copied
to ensure block continuity as follows :
-
COPY 21 61 -1 -1 41 -1
base_topo.mlg1 21 61 1 1 41 -1 base_topo.mlg2
-
COPY 61 -1 -1 -1 1 -1
base_topo.mlg1 61 -1 1 1 1 -1 base_topo.mlg2
- The previous COPY
commands updated the block 2
interface with block 1 data. This transferred modified data to
one of each of the Jmin edges defining the two singular faces
of block 2 (Imin and part of Kmin). We now need to collapse
these singular faces to the
Jmin edges. Again, we use :
-
COLLAPSE
I 1 4 base_topo.mlg2
-
COLLAPSE
K 1 1 base_topo.mlg2 101 -1 1 -1
The two commands above complete the update of block faces
required to handle surface modifications for this example. We
are now ready to calculate the block interiors, check the
quality of the grid, and write out the modified volume grids.
- The generation of the volume grid with updated surfaces is
now accomplished as follows :
-
INTERPOLATE
No restriction is placed using block range or reference
implying the interior of all of all blocks are to be generated
using arclength-base transfinite interpolation.
- We perform a quality check of the new volume grid in the
following way :
-
CHECK
With no restrictions, the program checks for negative volumes
and excessive skewness in all blocks.
- Finally, write the new volume grid to a file using :
-
WRITEB volume.bin
This command writes the volume grid as a C Binary, PLOT3D,
multi-zoned volume grid to the file volume.bin. No
restrictions imply write the entire volume grid (all blocks).
- This concludes the example. To run CSCMDO and generate a
modified volume grid, at the unix prompt enter :
-
CSCMDO HSCT.in
This assumes the input deck is contained in the file `HSCT.in'
and the input surfaces are always in the file hsct.hes
(READ HESSSURF).
As mentioned the generated input file assumes the modified
surface is read from the file hsct.hes, but also the
modified volume grid is written to the file volume.bin
(WRITEB). A simple shell script can
be written to handle all geometries sequentially as follows :
-
# Run script for Inviscid Example of CSCMDO
echo '1st Geometry (baseline)'
cp base.hes hsct.hes
CSCMDO HSCT.in
mv volume.bin base.bin
echo '2nd Geometry (1% chord mod at break point 1)'
cp chordbp1.hes hsct.hes
CSCMDO HSCT.in
mv volume.bin chordbp1.bin
echo '3rd Geometry (.5% change in le sweep)'
.
.
.
echo '7th Geometry (-2% change in chord @ tip)'
cp tip-2.hes hsct.hes
CSCMDO HSCT.in
mv volume.bin tip-2.bin
This script will generate the baseline along with the 6
modified volume grids corresponding the the surfaces described
in the problem statement automatically.
|
|
Responsible
NASA Official: William T. Jones
Site Curator: William
T. Jones
Comments
and Questions
Last Updated:Sep
17, 2002
|
|