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

CSCMDO - Coordinate and Sensitivity Calculator for Multi-disciplinary Design Optimization SYNOPSIS

Usage: CSCMDO input [output]

By default, the code writes to stderr, but will write to the file output if provided.

DESCRIPTION

CSCMDO is a Multi-Block Structured Volume grid generator which is optionally capable of quickly updating an exist- ing volume grid with any number of new surface grids. The code runs in the batch environment and is written entirely in the C language. Dynamic memory allocation is used for problem size independence. An ASCII input file is used to control code flow and function. CSCMDO performs the algebraic grid initialization of the block interior as well as that of any block surface. The block surfaces may be input or generated as intermediate "hard planes" to allow automatic block subdivision for increased control of the developing interior. Once the interior of the block is defined through input or alge- braic initialization, the block may be redistributed to a user specified spacing requirement. This is useful for generating an initial grid using 32-Bit precision with redistribution at a higher precision. Also, blocks may be redimensioned with spacing optionally specified for the new block.

COMMANDS

The command set recognized by CSCMDO is described below ( optional arguments are contained in [brackets] ) :

BLOCK blockname imax jmax kmax dim

Manually allocate a block named blockname with dimensions imax x jmax x kmax of dimension dim.
BLOCK_SUMMARY [blockname]

Provide a summary of the block blockname.

READ type filename

Read the file filename of the file type specified by type. The valid values of type are defined below :

GGBLOCK(B)(D) filename
Read a GRIDGEN Block file (*.mlg, *.mlga) as an ASCII, C Binary file (B), or Double precision C Binary (D) file. Dynamically allocates space to hold the block based on dimensions.

GGFACE(B)(D) filename face n blockname [ngrid] [sensfile] [dvs] [dve]
Read a grid from and ASCII, C Binary (B), or Double precision C Binary (D) GRIDGEN face file (*.grd, *.grda). Reads the grid into the block as a block face or intermediate "hard plane". The grid is read as a face plane (I, J, or K), and is loaded into the index n of blockname. To load other than the first surface grid in the file, use the optional [ngrid] parameter. Sensitivity derivatives may be read from the file [sensfile] in the sensitivity enhanced CSCMDO.AD version only and will be ignored by other versions. A range of deriviatives can be specified with the dvs and dve parameters.

P3DFACE(B)(D) filename face n blockname [ngrid] [sensfile] [dvs] [dve]
Read a grid from and ASCII, C Binary (B), or Double precision C Binary (D) PLOT3D file (*.fmt, *.bin). Assumes Kdim=1. Reads the grid into the block as a block face or intermediate "hard plane". The grid is read as a face plane (I, J, or K), and is loaded into the index n of blockname. To load other than the first surface grid in the file, use the optional [ngrid] parameter. Sensitivity derivatives may be read from the file [sensfile] in the sensitivity enhanced CSCMDO.AD version only and will be ignored by other versions. A range of deriviatives can be specified with the dvs and dve parameters.

HESSFACE filename face n blockname [ngrid]
Read a grid from and ASCII HESS face file. Reads the grid into the block as a block face or intermediate "hard plane". The grid is read as a face plane (I, J, or K), and is loaded into the index n of blockname. To load other than the first surface grid in the file, use the optional [ngrid] parameter.

P3DVOL(B)(U)(D)(UD) filename [ngrid]
Read a PLOT3D Volume grid file (*.fmt, *.bin, *.dat) as an ASCII, C Binary (B), FORTRAN Unformatted (U), Double precision C Binary (D), or Double precision FORTRAN Unformatted (UD) file. Dynamically allocates space to hold the block(s) based on dimensions in filename. The read can be limited to the first ngrid blocks in the file.

GGSURF(B)(D) filename [sensfile] [dvs] [dve]
Read a GRIDGEN surface file (*.grd, *.grda) as an ASCII, C Binary (B), or Double precision C Binary (D) file. The data is placed in a dynamically allocated surface network data structure for use in PARAMETRIC surface updates. Sensitivity derivatives may be read from the file [sensfile] in the sensitivity enhanced CSCMDO.AD version only and will be ignored by other versions. A range of deriviatives can be specified with the dvs and dve parameters.

P3DSURF(B)(D) filename [sensfile] [dvs] [dve]
Read a PLOT3D surface file (*.fmt, *.bin) as an ASCII, C Binary (B), or Double precision C Binary (D) file. Assumes Kdim=1. The data is placed in a dynamically allocated surface network data structure for use in PARAMETRIC surface updates. Sensitivity derivatives may be read from the file [sensfile] in the sensitivity enhanced CSCMDO.AD version only and will be ignored by other versions. A range of deriviatives can be specified with the dvs and dve parameters.

HESSSURF filename [sensfile] [dvs] [dve]
Read a HESS surface file (*.hes) as an ASCII file. The data is placed in a dynamically allocated surface network data structure for use in PARAMETRIC surface updates. Sensitivity derivatives may be read from the file [sensfile] in the sensitivity enhanced CSCMDO.AD version only and will be ignored by other versions. A range of deriviatives can be specified with the dvs and dve parameters.

GGCURVES filename [sensfile] [dvs] [dve]
Read a GRIDGEN ASCII curves file (*.crv). The data is placed in a dynamically allocated surface network data structure for use in PARAMETRIC surface updates. One-dimensional curve entity will be converted to 2-D through duplication of the curve. Sensitivity derivatives may be read from the file [sensfile] in the sensitivity enhanced CSCMDO.AD version only and will be ignored by other versions. A range of deriviatives can be specified with the dvs and dve parameters.

WRITE(B)(U)(D)(UD) outfile [blockname] [is ie js je ks ke]
Write the volume grid as an ASCII, C Binary (B), FORTRAN Unformatted (U), Double precision C Binary (D), or Double precision FORTRAN Unformatted (UD), PLOT3D Multi-Zone 3D/Whole file named outfile. A specific range may be specified using is ie js je ks ke as well as a specific block with blockname. The sensitivity enhanced CSCMDO.AD version will additionally write sensitivity data to the file outfile.sens for each volume grid.

INTERPOLATE [blockname] [is ie js je ks ke]
Interpolate the interior of block blockname using arclength based blending functions for the range specified by is ie js je ks ke. Previously defined block "hard planes" are located automatically to control the interpolation.

INTERPOLATION_PARAMETERS [sweeps] [EPS] [avgsk] [maxsk] [speed]
Specify global parameters to govern subsequent operations. sweeps determines the number of smoothing sweeps used to smooth the arclength based SONI blending functions (default 0). EPS specifies the tolerance below which all numbers are to be treated as ZERO. This value is used in singularity detection as well as negative volume checks (default 0.0). The values of avgsk and maxsk set the maximum average skewness and absolute maximum skewness, respectively, allowed for cells within the volume. These values are specified in degrees. Cell skewness is calculated by determining the intersection angles of each individual face and its four adjacent neighbors. The largest of these is considered to be the cell skewness (0.0 implies orthogonality). A grid with cells exceeding avgsk will trigger a Warning return code to a CSCMDO controlling executive. Cells exceeding maxsk will trigger a Fatal return code. The default values are avgsk=45.0, and maxsk=90.0. The speed is used to control the accuracy of grid PROJECTION. A value of 0 provides the most accurate (but costly) projection. The default value of 1 will speed projection, but in some cases will not provide a suitable grid. Using this command with no arguments will reset all parameters to the defaults. Specifying a -1 for any argument will maintain the current value of the corresponding parameter.

INTERPOLATE_FACE face n [blockname] [ss se ts te]
Interpolate a block surface using arclength based blending functions based only on the surface edges (2D computationally). This can be used to generate intermediate hard planes within a block. Will interpolate a face (I, J, or K) grid at index n of block blockname. Optionally, will only interpolate face over the range ss to se and ts to te.

COLLAPSE face n edge [blockname][ss se ts te]
Collapse a block surface to a true singularity. Will collapse the range of the face (I, J, or K) grid at index n to edge defined by the GRIDGEN edge numbering scheme (1, 2, 3, or 4) of block blockname. A range of the face may be specified with ss se ts te.

CHECK [type] [blockname] [is ie js je ks ke]
Check the quality of blocks. The type of check is determined by type which has one of the following values :

ALL Check for negative volumes and cell skewness.
NEG Check for negative volumes only using all methods.
NEGOLD Check for negative volumes only using original mehtod.
NEGNEW Check for negative volumes only using method similar to that used in CFL3D.
SKEW Check for cell skewness only.
SD Summarize sensitivity derivative data in the sensitivity enhanced CSCMDO.AD version.

Individual blocks may be specified by blockname. The default type is ALL. Skewness checks include histogram output. Return codes are produced which are controlled by avgsk and maxsk defined with the INTERPOLATION_PARAMETERS command.

PARAMETRIC us ue vs ve psurf face n [blockname] [ss se ts te] [c0 c1 c2 c3]
Update an existing block surface grid to that defined by a parametric network. The existing surface will be updated to the shape defined by the region us ue to vs ve of the parametric surface psurf. The existing block surface grid will be updated for blockname. The range of the existing surface grid may be controlled with ss se ts te. The code will attempt to determine the grid/surface orientation automatically. However, the orientation may be specified by associating the grid corners c0 c1 c2 c3 with the surface definition corners (0, 1, 2, 3). The corners are defined using GRIDGEN edge numbering scheme with corner c0 at the beginning of edge 1, c1 at the end of edge 1, c2 at the beginning of edge 3, and c3 at the end of edge 3 (Surface corners are defined similarly with umin,vmin = 0, umax,vmin = 1, umin,vmax = 2, and umax,vmax = 3).

COPY iss ies jss jes kss kes src ist iet jst jet kst ket trg
Copy the range defined by iss ies jss jes kss kes of the source block src to the range defined by ist iet jst jet kst ket of the target block trg. The copy can be reversed by reversing the only target range limits of the selected direction (ie. ist > iet, etc.). Also, the ranges may be swapped (ie. I with J) by swapping the target ranges limits only (ie. tjs tje tis tie tks tke). Note: Computationally "Square" ranges must be copied in two rectangular pieces.

EDGE edge face n [blockname][ss se ts te]
Redefine an edge of a block face using linear blending. The edge is defined by the GRIDGEN edge numbering scheme (1, 2, 3, or 4) and will depend on the type of face (I, J, or K). The face index is specified with n. The block name can be given by blockname over the face range ss se ts te.

CLOSE us ue vs ve [surface]
Close a surface to a straight line connecting the end points of the range given by us ue vs ve of the surface surface. (Used as a quick-and-dirty close of wing tips, etc.)

CLEAR_FACE_DEFORMATIONS [blockname]
Used to clear out all face deformations in [blockname].

FACE_DEFORMATIONS d1 d2 d3 d4 face n [blockname] [ss se ts te]
Set up the face deformations according to d1 d2 d3 d4 for face (I,J,K) n of block blockname and range ss se ts te. The values of d1 d2 d3 d4 are integer flags controlling the deformation of each edge of face (Edge order is defined by the GRIDGEN edge numbering scheme). Valid values are given below :

	-1 - Copy deformation from opposing edge
	 0 - Zero deformation  (Anchor original edge)
	 1 - Calculated edge deformation (difference
	     between modified and original)
	 2 - Interpolate deformation along edge from
	     end values
	 3 - Do not disturb present edge deformation
          

Edge deformations are interpolated on the interior of the face, unless all flags are -1 or 1 when a pure copy or difference is indicated.

DEFORM [blockname]
Apply face deformations to the interior of blockname and evaluate the new deformed block.

DEFORM_FACE face n [blockname] [ss se ts te]
Apply deformations to the face n of blockname therefore evaluating only the deformed face. The range of the face to be deformed may be controlled with ss se ts te.

COMPONENT name [surfname] [us ue vs ve]
Create a COMPONENT named name. Optionally, a MEMBER may be added to name at creation using the surface definition surfname. The range of the surface definition may be further restricted with us ue vs ve. If surfname is ommitted, an empty component is created for name.

MEMBER compname surfname [us ue vs ve]
Add the surface definition surfname as a MEMBER of the COMPONENT compname. The range of the surfname may be restricted with us ue vs ve.

PROJECT compname face n [blockname] [ss se ts te]
Project the grid defined on the face (I,J,K) Face at index n onto compname. The projection may be restricted to blockname with the Face range optionally restricted with ss se ts te.

UV_PROJECTION oldcomp newcomp face n [blockname] [ss se ts te]
Similar to the PROJECT command, this command is used to project the grid defined on the face (I,J,K) Face at index n onto a COMPONENT. The grid is projected to oldcomp which is assumed to contain surface members originally used to define the grid. This projection returns the parametric coordinates of each grid point which can be evaluated on the corresponding members of newcomp to obtain the new physical coordinates of the grid point. The members of both components are assumed to be in the same order and to have similar parameterizations. The component members, however, do not need to have the same parameterization as face. Arclength parameter (APS) space will be used for parameter evaluation if turned on. The projection may be restricted to blockname with the Face range optionally restricted with us ue vs ve.

APS
Toggles between the usage of Uniform Parameter Space (UPS) and Arclength Parameter Space (APS). Default is UPS.

STOP
Causes a premature, user requested temination of program execution. Mainly used for debugging an input deck.

SAVE_FACES [blockname]
Saves the block face data for block blockname as the ghostface reference for PARAMETRIC and FACE_DEFORMATIONS commands.

DELETE_BLOCK blockname
Deletes block blockname from the system. No further reference to block blockname is valid. Note that the blockname argument is NOT optional for this command. Also, any commands which omit the blockname argument in order to operate on all blocks will no longer include block blockname. An "*" can be used as a termininating wild card (ie: DELETE_BLOCK temp*).

SURFACE surfname face n blockname
Creates a surface named surfname out of the face (I,J,K) Face at index n of block blockname. This surface may be used by any of the commands which require a surface as input (PARAMETRIC, PROJECT, etc.).

WRITE_COMPONENT filename compname
Mainly for debugging purposes, this command will write to the file filename, all of the members of component compname. The file is written only as a GRIDGEN C Binary.

RENAME_BLOCK blockname newblockname
Renames the block blockname to newblockname. Further references to the block should be made with newblockname No further reference to blockname is valid or processed.

RENAME_SURFACE surfname newsurfname
Renames the surface surfname to newsurfname. Further references to the surface should be made with newsurfname. No further reference to surfname is valid or processed.

SMOOTH [blockname] [is ie js je ks ke]
Smooth a block using PDE smoothing with Multigrid Acceleration. Smoothing is controlled with parameters specified with the SMOOTHING_PARAMETERS command. Boundary control results in angle othogonality and interpolated spacing if the entire block range is used. Angle slope continuity with the surrounding block is provided when using subblocks. The usual restrictions are specified using blockname and is ie js je ks ke.

SMOOTH_FACE face n [blockname] [ss se ts te]
Smooth a block surface using PDE smoothing with Multigrid Acceleration. Smoothing is controlled with parameters specified with the SMOOTHING_PARAMETERS command. Can be used to refine faces or intermediate "hard planes" within a block. Will smooth a face (I, J, or K) surface at index n of block blockname. Optionally, will only smooth the surface over the range ss to te and ss to te.

SMOOTHING_PARAMETERS [cycles] [eEPS] [RESTART] [MAXLEVELS] [ForeGround] [BackGround] [SURFSOLV] [STOPRESID]
Specify global parameters to govern subsequent smoothing operations. sweeps determines the number of smoothing cycles used in smoothing (default 100). eEPS specifies the tolerance below which all numbers are to be treated as ZERO. This value is different from that specified with the INTERPOLATION_PARAMETERS command. RESTART is a toggle to specify not to run the Full Multigrid portion (FMG) if restarting smoothing. Non zero values signify a restart (default is deadstart). The value of MAXLEVELS sets the maximum number of additional coarse levels to use with multigrid acceleration. The default is to use as many as can be found with standard coarsening. ForeGround is used to activate the type of 3D Foreground Control function formulation. The default value of 1 produces GRAPE type control at the boundaries. A value of 2 will produce Hilgenstock/White boundary control. A 0 value will turn off foreground control resulting in Thomas-Middelcoff control within the entire block. (Default: 1 => GRAPE) BackGround is used to activate the type of 3D Background Control function formulation. The default value of 0 will turn off background control for LaPlace type smoothing. A value of 1 will produce Thomas-Middelcoff control within the interior of the block. (Default: 1 => Thomas-Middelcoff) SURFSOLV is used to fix the grid shape for smoothing (NOT YET SUPPORTED). STOPRESID is the value of the cutoff order of magnitude reduction of the residual (ie: 2.0 means run sweeps cycles or 2.0 orders of magnitude reduction which ever comes 1st).

Using this command with no arguments will reset all parameters to the defaults. Specifying a -1 for any argument will maintain the current value of the corresponding parameter.


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

Footnotes :

[blockname]
Commands which contain the optional argument [blockname] will operate on all current blocks if the argument is omitted.
[range]
Commands which contain an optional [range] argument will operate on the entire range of the appropriate entity if the argument is omitted.
[surface]
Commands which contain the optional argument [surface] will operate on all current surface definitions if the argument is omitted.


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