Animated NASA logo in which the orbit element circles the word NASA. Clicking on this graphic takes you to the NASA Home page, http://www.nasa.gov.
Image says 'GEOLAB'.
This is a rainbow colored horizontal rule.
LAB Services
Software
Hardware
Publications
Gallery

LAB Information
FAQ
Mission Statement
Meet the team
Training
Find Us
Contact Us
Lab Home
Privacy Statement

More About NASA:
Data Analysis and Imaging Branch
Systems Engineering Competency
LaRC Home
NASA Home
Empty Space

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 :
  1. chordbp1.hes: 1% chord modification at break point
  2. le.5.hes: .5% change in le sweep
  3. lebp1.hes: 1% change in le sweep at break point
  4. rc-1.hes: -1% change in root chord
  5. tc3.hes: 3% change in global t/c
  6. tip-2.hes: -2% change in chord @ tip
Graphic of baseline HSCT geometry and its individual components


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.


Graphic for NASA-wide Search Engine. Clicking on the graphic will take you to the Search page, http://www.nasa.gov/search.
Responsible NASA Official: William T. Jones
Site Curator: William T. Jones
Comments and Questions
Last Updated:Sep 17, 2002