OVERGRID Version 2.6
Author: William M. Chan
Date: March, 2026.
Notes:
- Transforms, zoom box, direct entity picking coded by Steven M. Nash
- Compatible with Chimera Grid Tools version 3.0
Introduction
OVERGRID is a graphical user interface (GUI) for performing one or more of the
following tasks:
- interactive visualization, manipulation, processing and diagnostic of geometry and grids
- performing overset surface and volume grid generation
- preparation of grid boundary conditions
- preparation of inputs for the PEGASUS 5 and GEN_X/DCF domain connectivity codes, and
for the OVERFLOW and OVERFLOW-2 flow solvers
- creating components hierarchy, preparing inputs and viewing animations for multiple component dynamics.
- visualization of grid/component surface subsets for force/moment computation
- visualization/animation of flow solutions for single and multiple time frames
- preparation of inputs for debris transport analyses
- visualization of prismatic near-body grid and AMR Cartesian grids
The GUI contains a viewer for displaying the geometry and grids, and various modules are
accessed from a main menu.
The programming languages used by the GUI are listed below. It is assumed that
the necessary libraries are available on the local machine.
C - main program and driver for graphics
Tcl/Tk - window management, widgets creation
OpenGL - 3-D graphics display
Fortran90 - geometry/grid library routines
The Togl widget by Brian Paul and Ben Bederson is used for communication between
Tk and OpenGL ( Copyright (C) 1996-2002, See the togl_LICENSE file for copyright details ).
Togl is included in the overgrid package.
For users without Tcl/Tk, look under
http://www.tcl.tk/
for information on down-loading and installing your own. OVERGRID is now compatible
with the following versions:
Tcl/Tk 8.0p2, 8.0.3, 8.0.4, 8.0.5
Tcl/Tk 8.1.1
Tcl/Tk 8.2.2, 8.2.3
Tcl/Tk 8.3.0, 8.3.1, 8.3.2, 8.3.3, 8.3.4, 8.3.5
Tcl/Tk 8.4.0, 8.4.1, 8.4.2, 8.4.3, 8.4.4, 8.4.5, 8.4.6, 8.4.7,
8.4.8, 8.4.9, 8.4.10, 8.4.11, 8.4.12, 8.4.13
Tcl/Tk 8.5.1, 8.5.2, 8.5.3, 8.5.4, 8.5.5, 8.5.6, 8.5.7, 8.5.8, 8.5.9, 8.5.10,
8.5.11, 8.5.12, 8.5.13, 8.5.14, 8.5.15, 8.5.16, 8.5.17, 8.5.18, 8.5.19
Tcl/Tk 8.6.0, 8.6.1, 8.6.2, 8.6.3, 8.6.4, 8.6.5, 8.6.6, 8.6.7, 8.6.8, 8.6.9,
8.6.10, 8.6.11, 8.6.12, 8.6.13, 8.6.14, 8.6.15, 8.6.16, 8.6.17
*** Do not try 9.* yet ***
This code is under frequent modifications and improvements and may contain
some undiscovered bugs. OVERGRID is used by
invoking a C-shell script called overgrid which then calls the C executable og
and the Tcl/Tk script og.tcl. OVERGRID also has its own Makefile which relies
on user-specified environment variables for locating the necessary include
and library files (see Installation section below). A C-compiler (gcc/icc)
and a Fortran-90-compiler (gfortran/ifort) are required to compile OVERGRID.
For gfortran and gcc, it is recommended that version 8 or newer be used.
Installation of Tcl/Tk on machines with Linux, Unix, Mac OS-X (X11 option)
Skip this if you already have Tcl/Tk installed in your system. On Mac OS-X Intel
machines, it is possible to use either the X11 or the Aqua version of Tcl/Tk.
Currently, the X11 version is preferred since it gives a better appearance and
faster performance, and it is easier to compile and install. Installation instructions
of the X11 version of Tcl/Tk are the same as those for Linux/Unix and are
given here.
- Download tcl8.*.*-src.tar.gz and tk8.*.*-src.tar.gz from the web-site given above.
- Expand the tcl file first (tar xzf tcl8.*.*-src.tar.gz).
- Go to the unix subdirectory and type "./configure" to generate a Makefile
for your particular operating system and hardware.
- Type "make" to create the tcl library called libtcl8.*.so for Linux/Unix, or
libtcl8.*.dylib for Mac.
- Expand the tk file in a similar way and go to the unix subdirectory.
- Type
./configure --with-tcl=$TCLUNIXDIR
where $TCLUNIXDIR is the full path to the matching tcl{*.*.*}/unix directory
that contains tclConfig.sh.
- Type "make" to generate a library called libtk8.*.so for Linux/Unix,
or libtk8.*.dylib for Mac.
Installation of Libxml2
Skip this if you do not need to read
CART3D .trix files,
or if libxml2 is already installed in your system.
Libxml2 is required to use the TRIX
triangulation reader. Most systems have this
library installed; however, not all systems have the "developer" package available. This is detected
automatically by the CGT make system, which looks for the existence of the "xml2-config" script.
If your system does not have "xml2-config", then you can download and install your own libxml2 library as follows:
- Download a copy from http://www.xmlsoft.org/downloads.html
or go directly to ftp://xmlsoft.org/libxml2/.
If there is libxml2 on your system, e.g. look in /usr/lib64 for libxml2*, then it's best to download
the same version, otherwise, download the latest version. Source tarballs are recommended. If you
choose an rpm archive, then make sure you download both the libxml2 and libxml2-devel packages.
- Unpack the tarball by typing "tar xvzf libxml2*.tar.gz"
- Change directory to libxml2 and:
./configure --prefix=$HOME
make
make install
- Check that xml2-config is in your path by typing "which xml2-config"
Installation of OVERGRID on machines with Linux, Unix, Mac OS-X (X11 option)
Let $TCLDIR and $TKDIR be the full path names to the top level directories where
tcl8.*.* and tk8.*.* are installed, respectively, i.e., $TCLDIR should contain
the full path to the tcl8.*.* directory, and similarly for $TKDIR.
- The following environment variables should be set in the user's .cshrc file
(the first 6 are needed for compilation, the last 3 are needed at run time):
TCLDIR_INC = full path to directory containing tcl.h
TKDIR_INC = full path to directory containing tk.h
X11DIR_INC = full path to directory containing X11/X.h, GL/gl.h
TCLDIR_SO = full path to directory containing libtcl8.*.so
TKDIR_SO = full path to directory containing libtk8.*.so
X11DIR_SO = full path to directory containing libX11.so
TCL_LIBRARY = full path to directory containing init.tcl
TK_LIBRARY = full path to directory containing tk.tcl
On Unix/Linux machines:
LD_LIBRARY_PATH = full path to the libtcl8.*.so and libtk8.*.so libraries
On Mac OS-X machines:
DYLD_LIBRARY_PATH = full path to the libtcl8.*.dylib and libtk8.*.dylib libraries
- A convenient way to do this is to set the following:
setenv TCLDIR_INC $TCLDIR/generic
setenv TKDIR_INC $TKDIR/generic
setenv X11DIR_INC /usr/include
setenv TCLDIR_SO $TCLDIR/unix
setenv TKDIR_SO $TKDIR/unix
setenv X11DIR_SO /usr/lib64
setenv TCL_LIBRARY $TCLDIR/library
setenv TK_LIBRARY $TKDIR/library
setenv LD_LIBRARY_PATH $TCLDIR/unix:$TKDIR/unix
- On machines that can handle either 32 or 64 bit objects, specify appropriate
compile flags for og.c so that the resulting executable has the same object
type as that of the Tcl/Tk shared libraries libtcl8.*.so and libtk8.*.so.
- Type make to compile og.c and produce the og executable
- Modify the EXECDIR variable in the overgrid script file to point to the
directory where og and og.tcl are located.
- Move the overgrid script file to a directory in the user's path, e.g. ~/bin.
- The following modules in the chimera*.*/src directory are used by overgrid:
grided, srap, progrd, seamcr, seamcrt, surgrd, wkcut, hypgen, and boxgr.
Single and double precision versions of the executables should be stored in
separate directories. Loading a single or double precision file into overgrid
will automatically trigger the use of executables in the appropriate directory
specified by the user (see next item below and on-line help under PREFERENCES
in the Controls Window).
- Create a preferences file called .overgridrc in the user's home directory.
This file should contain the following 3 lines:
< directory_path_for_single_precision_executables >
< directory_path_for_double_precision_executables >
< background_color, exec_endian >
where the first two lines must point to different locations, and
background_color = 0/1 (0=black, 1=white), exec_endian = 0/1 (0=little, 1=big).
The exec_endian parameter is used to specify the `endianess' of the
executables in the directories contained in the first two lines.
Grid files of big or little endian can be handled appropriately by
OVERGRID provided the exec_endian parameter is set properly.
The .overgridrc file can also be created from inside OVERGRID by clicking
on the PREFERENCES button, filling in the appropriate entries, and saving
the contents to disk.
- The environment variable CGTROOTDIR can be used to override the locations
of the CGT executables in the .overgridrc file. If CGTROOTDIR exists, then
the single precision executables are assumed to be in $CGTROOTDIR/bin_sp, and
the double precision executables are assumed to be in $CGTROOTDIR/bin_dp.
Installation of OVERGRID on machines with Mac OS-X (Aqua option)
For the adventurous users who insist on the Aqua version of Tcl/tk, installation
instructions are given below. These instructions have not been tested on recent versions
of Mac OS-X.
- Download tcl8.*.*-src.tar.gz and tk8.*.*-src.tar.gz from the web-site given above.
- Put these files in a directory (let's call it $PKG from now).
- Expand the tcl8.*.* directory, cd to the macosx subdirectory, and type make.
- Expand the tk8.*.* directory, cd to the macosx subdirectory, and type make.
- This will generate a directory called build in $PKG which contains two
subdirectories, one called tcl, one called tk.
Next, define the following environment variables for the location of the Tcl and
Tk framework directories.
For self-installed tcl/tk,
setenv TCL_FRWK $PKG/build/tcl/Tcl.framework
setenv TK_FRWK $PKG/build/tk/Tk.framework
For tcl/tk that is already installed on the system, these are usually located at
setenv TCL_FRWK /System/Library/Frameworks/Tcl.framework
setenv TK_FRWK /System/Library/Frameworks/Tk.framework
Overgrid also uses the Togl dynamic library which has been pre-compiled for
Mac OS-X and is found in the gui/macosx subdirectory of CGT. Define the following
environment variable for Togl and append the path to the dynamic library path.
setenv TOGL_DIR $CGT/gui/macosx
setenv DYLD_LIBRARY_PATH ${DYLD_LIBRARY_PATH}:${TOGL_DIR}
where $CGT is the full path to the chimera* directory
Go to the $CGT/gui directory and type make -f Makefile.darwin.aqua to
create the og executable.
Installation of OVERGRID on Windows machines with WSL
Review the following doc:
WSL
and then install CGT following the normal Linux procedures.
Platform specific problems
- Linux/Mac OS-X - with certain combinations of OS kernels and graphics
drivers, remote display from a remote machine may not work. Even for
local display, it is usually risky to use the latest graphics drivers.
Tutorial for User
The user is strongly urged to go through the tutorial under chimera*.*/gui/tutorial
for details on the capabilities and usage of the modules of OVERGRID.
Tutorial Videos
A three-part tutorial on the various features of OVERGRID under the Advanced Modeling
and Simulation (AMS) Seminar Series at NASA Ames Research Center can be found at
Chan, W. M.,
The OVERGRID Graphical User Interface in Chimera Grid Tools (Part 1) The OVERGRID
Graphical User Interface in Chimera Grid Tools (Part 1), AMS Seminar Series, May 13, 2014.
Chan, W. M.,
The OVERGRID Graphical User Interface in Chimera Grid Tools (Part 2) The OVERGRID
Graphical User Interface in Chimera Grid Tools (Part 2), AMS Seminar Series, May 20, 2014.
Chan, W. M.,
The OVERGRID Graphical User Interface in Chimera Grid Tools (Part 3) The OVERGRID
Graphical User Interface in Chimera Grid Tools (Part 3), AMS Seminar Series, May 29, 2014.
Execution
OVERGRID can be invoked using one of the following commands. Command line arguments are automatically
written to a file called overgrid.log if the current directory is writable, and if -nolog is not activated.
overgrid
or
overgrid [FILENAMES]
or
overgrid -cmd [cmd_filename]
or
overgrid [-2] [-l] [-r] [+x xshift] [+y yshift] [-no4k] [-dp] [-nolog] [-noax] \
[-fun fun_name] [-qfile q_filename] [-img image_filename] \
[-wirefun 0 or 1 ] [-cntrfun 0 or 1 ] [-shadfun 0 or 1 ] \
[-minval valmin] [-maxval valmax] [-nlevel nlevels] \
[-nogrid] [-sub sub_filename] [-vp viewpt_filename] [FILENAMES]
where FILENAMES can be one or more grid filenames.
The command line options -2, -l, and -r affect dual screen setups only. If xdpyinfo is not available,
individual screen aspect ratios are assumed to be 1.6. The primary screen (screen 1) is always the
upper left screen. Screen 2 is either to the right of screen 1 (horizontal stacking),
or below screen 1 (vertical stacking).
By default, overgrid windows will appear in screen 1.
-2: Use "-2" on the command line to send the overgrid windows to screen 2. If both screens are the
same size, just "-2" should work. If the two screens are of different sizes and xdpyinfo is not available,
"-r" and "-l" may be used
to indicate the location of the smaller screen ("-r" means smaller screen is on the right, "-l" means
the smaller screen is on the left). E.g., "-2 -r" will send the overgrid windows to smaller screen 2 which
is on the right, and "-2 -l" will send overgrid to the bigger screen on the right.
+x, +y: For more general shifting, use overgrid +x followed by an integer (optional xshift), and +y followed by
an integer (optional yshift), to shift all overgrid windows to the right by xshift pixels, and down by yshift pixels.
E.g., "overgrid +x 200 file" will shift all windows 200 pixels to the right.
-no4k: Use overgrid -no4k to turn off larger font size and window resizing for "large" screens.
-cmd: read command line arguments from cmd_filename
(if cmd_filename is omitted, overgrid.log is read;
if -cmd is present, all other command line arguments are disregarded)
-cntrfun: 0/1 turn off or on contour display for solution function
-dp: use double precision mode to read ascii structured grid files
-fun: plot function fun_name in solution viewer, valid fun_name include
q1,q2,...,u,v,w,velocity magnitude,Mach number,pressure,Cp,
sound speed,temperature,internal energy,total enthalpy,entropy
-img: dump image to image_filename (non-interactive mode)
-maxval: set max value of contours to valmax
-minval: set min value of contours to valmin
-nlevel: set number of contour levels to nlevels
-noax: do not display axis
-nogrid: do not display grid wireframe in solution function
-nolog: do not write overgrid.log file
-qfile: load q_filename for structured grid solution
(q_filename could be PLOT3D or OVERFLOW q file)
-shadfun: 0/1 turn off or on shaded display for solution function
-sub: load solution subsets using sub_filename
-vp: load view point using viewpt_filename
-wirefun: 0/1 turn off or on wireframe display for solution function
For accessing native CAD files, OVERGRID must be invoked by typing `overgrid' alone.
Input File Types
OVERGRID is intended to be used primarily for structured grid data types. Unstructured
surface triangulation data types are accepted for visualization purposes or for use as a
reference surface geometry definition for the SEAMCR, SURGRD, PROGRD and COMPONENTS
modules. Geometry definition files, in the form of IGES, STEP, or EGADS parts, can
also be read and internally converted to an unstructured surface triangulation and/or
untrimmed structured surface patches for display and then be used as reference geometry
for surface grid generation.
For geometry files in IGES, STEP, OpenCASCADE, or EGADS formats, the open source Engineering
Sketch Pad (ESP) library from MIT is used for geometry access via the egads2srf
and srf2egads modules in CGT.
The following file name extensions are used by OVERGRID to identify the geometry file type:
IGES - .igs
STEP - .stp
EGADS - .egads
The following structured grid and unstructured triangulation file types are currently
readable by OVERGRID:
- PLOT3D grid (unformatted/binary/formatted, big/little endian, single grid/multiple grid,
3-D/2-D, with/without iblanks, single/double precision). The format is automatically
determined by OVERGRID. The filename can be any string. If a filename contains the
strings ".tri", ".i.tri", ".fst", ".triq", or ".ucd" it will first be considered as a triangulation
file. If read fails, an attempt will be made to read it as a PLOT3D file. OVERGRID
can currently read and write both big and little endian PLOT3D files. However, for
the execution of CGT batch modules like SRAP and HYPGEN to work successfully, the
endian type of the CGT modules must be specified properly in the .overgridrc file.
For the "ifort" compiler, the endian type of the executable can be hard-coded to little
endian, while a user-defined environment variable F_UFMTENDIAN can be set to be
either "big" or "little" to control the endian setting for file i/o. A similar environment
variable GFORTRAN_CONVERT_UNIT can be set for gfortran executables.
- CART3D triangulation (unformatted/formatted). The format is automatically
determined but the filename must contain the string ".tri" (un-intersected components)
or the string ".i.tri" (intersected components), or the string ".triq" (triangulation
with scalar q variables at vertices).
- CART3D extended trianguation (trix) format (subset of vtk). A trix file is automatically
detected and it can have any extension in the filename. The xml2 library needs to be
present in the system for parsing the file.
- UCD unstructured surface with triangles and quads (formatted). The format is automatically
determined but the filename must contain the string ".ucd".
- STL unstructured surface with triangles (formatted). The format is automatically
determined but the filename must contain the string ".stl".
- FAST unstructured triangulation (unformatted/formatted). The format is automatically
determined but the filename must contain the string ".fst".
WARNING - the capabilities for triangles data types are currently restricted to
the list below. Attempts to use other OVERGRID features on triangles may produce unexpected
results. Further capabilities and error checks for triangles will be implemented in the
future.
- read .tri, .i.tri, .triq, .trix, .fst, .ucd, or .stl files, write .tri, .i.tri or .fst files.
- view triangulation in wireframe or shaded modes
- perform TRIGED functions
- interrogate vertex or face index info by modifying constant vertex/face widgets in
Entity Highlight and Selection window
- construct surface curves in the SEAMCR module
- generate hyperbolic surface grids using triangulation as reference surface in
the SURGRD module
- project surface or curve entities onto triangulated reference surface in the
PROGRD module
- used in components definition and animation
PLOT3D File Format (no restriction on filename extension)
read(2) ngrid
read(2) (nj(n),nk(n),nl(n),n=1,ngrid)
do n=1,ngrid
read(2) (((x(j,k,l),j=1,nj(n)),k=1,nk(n)),l=1,nl(n)), &
(((y(j,k,l),j=1,nj(n)),k=1,nk(n)),l=1,nl(n)), &
(((z(j,k,l),j=1,nj(n)),k=1,nk(n)),l=1,nl(n)), &
(((ib(j,k,l),j=1,nj(n)),k=1,nk(n)),l=1,nl(n))
enddo
where ngrid = number of grids
nj,nk,nl = j,k,l dimensions of each grid
x,y,z = vertex coordinates
ib = vertex iblank value (optional)
For single grid format, ngrid is omitted.
CART3D Surface Triangulation File Format (.tri filename extension)
read(2) nvert,nface
read(2) (x(i),y(i),z(i),i=1,nvert)
read(2) (iface(i,1),iface(i,2),iface(i,3),i=1,nface)
read(2) (icomp(i),i=1,nface)
where nvert = number of vertices
nface = number of faces
x,y,z = coordinates of vertex i
iface = vertex indices of face i (vertex numbering begins with 1)
icomp = ID tag of face i (integer)
CART3D Surface Triangulation with scalar Q File Format (.triq filename extension)
read(2) nvert,nface,nscalar
read(2) (x(i),y(i),z(i),i=1,nvert)
read(2) (iface(i,1),iface(i,2),iface(i,3),i=1,nface)
read(2) (icomp(i),i=1,nface)
read(2) ((q(j,i),j=1,nscalar),i=1,nvert)
where nvert = number of vertices
nface = number of faces
x,y,z = coordinates of vertex i
iface = vertex indices of face i (vertex numbering begins with 1)
icomp = ID tag of face i (integer)
CART3D Surface Triangulation with scalar tags at vertices and faces (.tri filename extension)
read(2) nvert,nface,nvtag,nftag
read(2) (x(i),y(i),z(i),i=1,nvert)
read(2) (iface(i,1),iface(i,2),iface(i,3),i=1,nface)
read(2) (icomp(i),i=1,nface)
read(2) ((vtag(i,j),),i=1,nvert),j=1,nvtag)
read(2) ((ftag(i,j),),i=1,nface),j=1,nftag)
where nvert = number of vertices
nface = number of faces
x,y,z = coordinates of vertex i
iface = vertex indices of face i (vertex numbering begins with 1)
icomp = ID tag of face i (integer)
vtag = tag at vertex i (4-byte or 32-bit real)
ftag = tag at face i (4-byte or 32-bit real)
CART3D Extended Surface Triangulation Format (no restriction on filename extension)
A trix file allows arbitrary triangle and vertex data. Syntactically, this format
is a subset of the VTK Unstructured Grid XML (VTU) format.
This compatibility means that VTK-based tools such as Paraview and VisIt
can read these files natively. Detailed specification can be found in
http://vtk.org/VTK/img/file-formats.pdf.
FAST Surface Triangulation File Format (.fst filename extension)
read(2) nvert,nface,ntet
read(2) (x(i),i=1,nvert),(y(i),i=1,nvert),(z(i),i=1,nvert), &
(iface(i,1),iface(i,2),iface(i,3),i=1,nface), &
(icomp(i),i=1,nface)
where ntet = 0
UCD Surface File Format (.ucd filename extension)
This is currently restricted to triangles and quads only and each quad
is immediately converted to two triangles on input.
One or more lines of comments that begin with '#' followed by
read(2,*) nvert,nface,ndata,cdata,mdata
do i=1,nvert
read(2,*) vertnum,x(i),y(i),z(i)
enddo
do i=1,nface
read(2,*) facenum,tag,element,vertlist(i)
enddo
where ndata,cdata,mdata,vertnum,facenum,tag are disregarded integers,
element = "tri" or "quad"
vertlist = flist(i,1),flist(i,2),flist(i,3) if element = "tri"
flist(i,1),flist(i,2),flist(i,3),flist(i,4) if element = "quad"
INTOUT File Format (donor stencil interpolation file)
read(2) g(n)%nf,n=1,ngrid)
do n=1,ngrid
nf = g(n)%nf
read(2) jb(1:nf),kb(1:nf),lb(1:nf),id(1:nf),ji(1:nf),ki(1:nf),li(1:nf),dj(1:nf),dk(1:nf),dl(1:nf)
read(2) g(n)%ib
enddo
ngrid = number of grids
g(n)%nf = number of fringe points in grid n
jb(i),kb(i),lb(i) = j,k,l indices of ith fringe point
id(i) = donor grid index of ith fringe point
ji(i),ki(i),li(i) = donor cell index of ith fringe point
dj(i),dk(i),dl(i) = trilinear interpolation coefficients for donor cell of ith fringe point
g(n)%ib(j,k,l) = iblank array of grid
(allowed values are 0 = blanked or orphan point
1 = interior field point)
Orphan points may be included in fringe point list with id = 0
Help Buttons
General on-line help is available by clicking the "HELP" button under the Main Menu window. More detailed on-line
help is also available under the "HELP" button of each module.
Transforms
Left mouse (up/down motion) - rotate about screen X axis
Left mouse (side motion) - rotate about object Z axis
Middle mouse - zoom
Right mouse - translate
Alt + Left mouse (side motion) - rotate about screen Y axis
Transforms using the mouse are almost like PLOT3D with the following exceptions.
- With mouse button depressed, the transforms continue when the mouse motion
stops in PLOT3D. In OVERGRID, the transforms stop when the mouse motion stops.
- There is no acceleration with mouse motion in OVERGRID.
Sensitivity of mouse motion can be decreased/increased using the down/up arrow keys
on the keyboard.
Entity Highlight and Selection
Highlighting and selection are performed in the "Entity Highlight and Selection"
window at the lower right corner of the screen. For a black background, a highlighted
surface is painted white while a selected surface has a thick white perimeter and a
spherical icon in the middle. Similarly a highlighted curve is painted white with
white symbols at the grid points and a selected curve has a spherical icon near the
middle. The black/white colors are reversed for a white background.
Highlighting can be applied to a single entity (using the Entity # widget
at the upper left corner of the "Entity Highlight and Selection" window).
Highlighting is used when the user needs to flag a single entity for performing
operations such as grided functions.
Selection can be applied to multiple entities. After an entity is highlighted,
it can be selected by clicking on the Select button. Another entity can then be
highlighted and selected subsequently. All entities that belong to a certain
type (volumes, surfaces or curves) can be selected at once by pressing the
appropriate Select All button. Selection is used when the user needs
to flag multiple entities for performing further operations. The `Clear All'
button clears all selections.
Selection of an unblanked entity can also be achieved by holding down the
Ctrl key and clicking on the entity in the Graphics Display window with one of
the mouse buttons.
Ctrl + left mouse button - surface entity
Ctrl + middle mouse button - curve entity
Ctrl + right mouse button - point entity
Performing the above operation on a selected entity will unselect the entity.
Selection/unselection of a group of entities can be achieved by drawing a drag box with
Shift + middle mouse buttom - select entities within or partially within box
Shift + right mouse buttom - unselect entities within or partially within box
Blank, Unblank, and Delete
Entities that are highlighted or selected can be blanked, unblanked or
deleted by clicking on the appropriate buttons. A deleted entity can only be
retrieved by reading from a file. Clicking the Tog Blank button will exchange
the display status of blanked and unblanked entities.
Index Notation
A J-K-L index notation is used for all grids. For a surface grid (J/K/1),
the tangent vector in J is indicated by an arrow, while the tangent vector
in K is indicated by a line when the Show Tangent vector checkbutton is activated.
A subset of an entity can be highlighted by clicking on the JS,JE,KS,KE,LS,LE
widgets in the Entity Highlight and Selection window. When the constant J, K and L
checkbuttons are all activated, the x, y, z coordinates and iblank value of a
point is displayed in the message window for structured entities. A similar display
for the vertex coordinates and face vertex indices are available for triangulated
entities.
Current limitations
Entity Names
Each entity read into OVERGRID is automatically given a default name that can
be viewed in the lower right corner message box when the entity is selected. The
default name is the filename where the entity came from followed by ".", followed
by the entity number in the file. This feature is only partially implemented and
can only be trusted provided no entities are deleted or created by any of the
modules in OVERGRID.
Drag box and Overlays
Unlike the previous implementation of the drag box for performing zooming and selection,
the current implementation no longer require overlay plane support in hardware or software.
However, due to an unknown bug or implementation problem probably related to Togl,
shadows of the drag motion are displayed. The function of the drag box is not affected
and the results are dependent only on the final edition of the box on release of the
mouse button.
GRIDED
The GRIDED module contains a number of grid manipulation functions for structured
curve, surface and volume entities. These include:
- Swap J/K, K/L, L/J indices
- Reverse J, K, and/or L index
- Mirror about x, y, or z=0
- Scale by specified factor in x, y, and z
- Translate by specified amount in x, y, and z
- Rotate about x, y, or z Cartesian axis, or user-defined axis
- Extract a subset
- Extrapolate a number of planes by given stretching ratio at J/K/L boundaries
- Split an entity into 2 along a J, K or L constant slice
- Concatenate 2 entities in J, K or L
- Auto-concatenate multiple surface entities recursively in arbitrary orientations
- Swap entity ID's between 2 entities
- Resequence all entity ID's
- Generate surface/volume of revolution from curve/surface entity
- Smooth surface entity
- Create curve between intersector surface entity and intersectee surface entities
Notes:
- The Swap, Reverse, Mirror, Scale, Translate and Rotate functions can be used
on one or multiple entities. The Extract and Extrapolate functions can only be
used on a single entity at a time. The Concat function operates on two selected
entities only, i.e. the user must select the first and then the second entity
to be concatenated. The order of selection is important. Use the tangent vector
display to determine which should be selected first. The Auto-concat function
operates on two or more surface or curve entities. Auto-concat does not work on
volume entities currently.
- The Extract function operates on a highlighted subset of an entity.
- The old entity is replaced by the new entity for Swap J/K, Swap K/L, Swap J/L,
Reverse, Mirror, Scale, Translate and Rotate. The old entity is retained and the
new entity/entities is/are created for Extract, Extrapolate, Concatenate, Split,
Auto-concatenate and Smooth.
- The UNDO button will erase the effects of the last operation only. UNDO's with
scale, translate, rotate may be subjected to round-off errors, i.e. entities after
the UNDO may not be bitwise identical to the original under these operations.
SRAP
The SRAP code is used to redistribute grid points on a curve or surface entity.
- It is assumed that the user is familiar with the terminology used for SRAP.
See srap.html for explanation of usage.
- The current end spacings of the segment are displayed in Da_c and Db_c.
The new end spacings of segment can be specified under Da_n and Db_n.
PROGRD
PROGRD is a tool for performing projection of a grid subset (active grids)
onto a grid surface (reference grids). The reference surface can be a collection of
panel networks or a surface triangulation. The features implemented in OVERGRID
is a subset of the features available in the batch version of PROGRD in
Chimera Grid Tools. The display colors for entities under the PROGRD module
are as follows:
Reference surface : yellow
Unprojected active entities : green
Projected active entities : red
DIAGNOS
The DIAGNOS module contains a number of grid diagnostic functions for surface and
and volume entities, and grid connectivity quality.
The grid quality functions supported for structured surface and volume entities include:
- Stretching ratio in J, K, or L
- Turning angle in J or K
- Truncation error estimate
- Average cell size at vertex
- Iblanks statistics
- Orphan points analysis
- Jacobians statistics (volume entities only)
- Negative cell volume statistics (volume entities only)
- Self-intersection analysis (volume entities only)
- Surface grid topology display and reset (surface entities only)
The grid quality functions supported for unstructured surface triangulations include:
- Vertex valence (number of faces sharing the vertex)
- Minimum and maximum angle at vertex
- Curvature function at vertex
Grid connectivity quality diagnostics under this module include
- Iblanks analysis
- Orphan points analysis (show all or show selected grids only). Hit the 'o' key when
the mouse cursor is over an orphan point to display neighboring grid slices that
may cover the point.
- Interpolation stencil analysis (by reading XINTOUT or INTOUT interpolation stencil
file generated by domain connectivity programs)
- Display of compatibility of cell volumes between fringe points and interpolation stencils
- Display of interpolation stencil quality
- Jacobians analysis (by computing Jacobians using the same routine as that in OVERFLOW-2)
- Display of local self intersections of curvilinear volume grid line segments in L direction
against triangulated surface grid at L=1. In regions where the surface grid quad cells
are not aligned with local curvature, the choice of triangulation split of a quad could
affect the exact location of the L line segment pierce point.
- Display of hole boundaries
- Display of fringe points that have been converted to field points when fringe repair
is activated
- Display of grid cells cut by specified Cartesian plane (complete cut cells in 3-D,
or exact cross section on cut plane)
- Surface topology analysis and reset
TRIGED
The TRIGED module contains a number of grid manipulation functions for surface
triangulations.
- Swap edge between two adjacent faces
- Reverse normals of all faces
- Mirror about x, y, or z=0
- Scale by specified factor in x, y, and z
- Translate by specified amount in x, y, and z
- Rotate about x, y, or z Cartesian axis, or user-defined axis
- Remove unused vertices
- Extract all faces on one side of x, y, or z=constant plane
- Extract all faces belonging to specified components
- Change face tags for all triangles with a given tag
- Assign different face tags to different regions based on
disjointedness and sharp edge criteria
- Automatically flip triangle normals if necessary by painter's algorithm
to make all connected triangles have the same sense of normals
SEAMCR
The SEAMCR tool can operate on two types of reference surfaces: multiple panel networks
and triangulations. It is primarily used for creating surface curves.
For multiple panel networks, it can be used for
- automatic extraction of seam curves
- creation of surface curves by intersection with x, y, or z constant plane
- generation of spider web surface grids around the seam corners (where
3 or more seam curves meet)
- trimming and redistribution of seam curves based on global spacing and local turning
angle. See seamcr.html for
more details.
For surface triangulations, it can be used to create surface curves by
- automatic extraction of sharp edges
- intersection with x, y, or z constant plane
- stencil walk between 2 given vertices along existing edges
- construction of direct surface path between 2 given vertices
SURGRD
SURGRD is used to create structured surface grids from 1, 2, 3, or 4 initial curves
using hyperbolic and algebraic methods. The reference geometry can consists of multiple
panel networks or a surface triangulation.
- Once the SURGRD button is depressed from the main menu, the colors of all
entities will change: all surfaces will become gray and will be assumed to be
part of the reference surface; all curves will be colored individually and are
available for selection as reference curves.
- After generating one set of surface grids, the user must hit UNDO or
exit the overgrid session before trying to generate something else with SURGRD.
This limitation will be removed in the future.
- Use the SAVE button to store surface grids generated and the input parameter
file produced.
- It is assumed that the user is familiar with the terminology used for SURGRD.
See surgrd.html for explanation of usage.
WKCUT
WKCUT is a wake cut surface grid generator for wing and cap grids.
HYPGEN
HYPGEN s hyperbolic field grid generator for creating
field (volume) grids from one or more surface grids. The user can select one or more surface
entities before clicking on the HYPGEN button. Boundary conditions for multiple surface
entities are automatically determined while the same stretching parameters (marching distance,
number of points, grid spacings) are used for all the grids. Further details are found in
the HYPGEN User's Manual which is available as a NASA TM.
BOXGR
BOXGR is a Cartesian box grid generator. It can be used
to create box grids around selected entities.
TOPOLOGY AND BC
This module can be used to determine the boundary conditions of all grids currently
in memory. Topological boundary conditions: periodic, axis, constant plane, wake cut,
are automated detected. Heuristic rules are used to estimate the locations of inviscid
and viscous walls. The user should cycle through the grids and check the auto-selection
and make modifications if needed. A color viewer is available to view the various
boundary condition types conveniently (by grid and/or by type). Supported flow solvers
include OVERFLOW and LAVA.
FORCE/MOMENT
This module is used to visualize and verify the surface subsets and components
defined for force and moment integration using the FOMOCO (mixsur and overint) tools.
The FOMOCO input parameters file and the composite input grid file are read as input
and checkbuttons are available to activate or deactivate display of surface subsets
and components found in the FOMOCO input file.
DYNAMICS
This module is used to define components hierarchy and relation motion dynamics.
If the motion is prescribed, an animation can be viewed here prior to running the flow
solver. XML files are used as interfaces to flow solvers.
A configuration is defined to be the complete collection of objects in a simulation.
Each configuration is made up of a collection of components. Each component can be
a structured grid, a set of triangles, or a container. A container is used to
group a set of lower level components and is not linked to any geometry or grids.
Each component can be positioned initially by applying a sequence of transforms
(rotate, translate, mirror). This mechanism is used to place duplicated components
into their proper initial positions. For example, the 3 blades of a rotor can all
be read from an input file with all 3 in the same location. The second and third
blades can be placed into their proper positions by a rotation transform.
Also, each component is allowed to have one parent or none at all. A component
inherits the motion of its immediate parent. Each component can have no motion relative
to the inertial reference frame or to its parent component, or be allowed to move
relative to other components under Prescribed Rotation motion, Prescribed Translation
motion, Table-Lookup motion or Aero6dof motion.
This tool can be used to
- Assign a name to a component, specify its type, parent, transforms, and the
structured grids and triangle tags that it is associated with. This information
can be written to or read from a Configuration XML file. An additional option
allows the output of the components file (Components.list) to be read by the
CART3D suite of tools (WRITE CART).
- Prescribe and animate motion for components. Specified velocities are
assumed to be non-dimensionalized and consistent with the grid/geometry units
provided. Analytic expressions in the time variable 't' and the constant 'pi'
are allowed in the translational velocity components and the rotation speed,
e.g. rotation speed = 2.0 * sin ( 0.5 * pi * t ).
- Read or write the prescribed motion from and to a Scenario XML file.
- Animate motion for table-lookup components with optional contact dynamics
(see below for table input format).
- Prepare inputs to Aero6dof motion - motion that is driven by aerodynamic forces
and moments, with optional external applied loads and constraints.
The Config.xml and Scenario.xml files are usable by FLOWCART and will soon be
also usable by OVERFLOW version 2.
Format for Table-Lookup Motion
The input dynamics table file should contain one or more rows of data in the
following format:
Component_ID T xc yc zc e1 e2 e3 e4
where
Component_ID = integer that stores the component ID tag
T = time
xc,yc,zc = coordinates of component center of mass at time T
e1,e2,e3,e4 = Euler parameters of component at time T
The first time entry for each component should be at T=0.0. The default assumes
the components start their initial positions in inertial coordinates (e.g. as adopted
by the FLOWCART solver). If the components start off in body coordinates (e.g. as
adopted by the OVERFLOW-D solver), the first line in the file should contain only the
string "body", and there should be a subsequent entry with T=-1.0 that contains xc,yc,zc
of the component at its initial undisturbed, untransformed position (e1,e2,e3,e4 for this
entry are ignored).
An optional contacts log file can also be read to indicate the times, locations and
local surface normals of contact points. The format for this file is
ID_1 ID_2 T xc yc zc nx ny nz diam
where
ID_1, ID_2 = component ID tags of component pair in contact
T = time of contact
xc,yc,zc = coordinates of contact point
nx,ny,nz = local surface normal at point of contact
diam = tolerance for contact detection
Non-dimensionalization of Component Inertial Properties and Loads
Non-dimensional variables are indicated with an asterisk.
Length scale = L
Free stream fluid density = rho_0
Free stream sound speed = c_0
mass m* = m/(rho_0 L^3),
moment of inertia I* = I/(rho_0 L^5)
applied force F* = F/(rho_0 c_0^2 L^2)
applied moment M* = M/(rho_0 c_0^2 L^3)
PEGASUS 5
PEGASUS5 is a tool
for performing domain connectivity. The OVERGRID interface can be used to prepare the
namelist input required for PEGASUS 5.
GEN_X
GEN_X is a pre-processor for performing domain connectivity
using OVERFLOW-D. It can be used to create X-ray maps for the hole cutters.
CALCULATORS
The CALCULATORS module contains
1. Freestream conditions calculator based on standard atmosphere
Input : altitude, speed, reference length in dimensional units
Output: Mach number, Reynolds number, pressure, temperature, density, sound speed,
viscosity, mean free path
2. Mass properties calculator for triangulated objects
Input : surface triangulation, density (constant)
Output: mass, volume, surface area, center of mass, principal moments and axes of
inertia, Euler parameters for transformation from inertial to principal
axes coordinates
3. 6-dof units conversion
Input : mass properties, gravity, applied forces/moments, etc. in dimensional units
Output: corresponding parameters in non-dimensional units suitable for input to
OVERFLOW-2 flow solver
OVERFLOW
The OVERFLOW button is used to access windows for preparing namelist input for
the standard version of OVERFLOW (version 1.8+).
OVERFLOW-2
The OVERFLOW-2 button is used to access windows for preparing namelist input for
the OVERFLOW-2 flow solver (version 2.0s+). Buttons are also available to execute
the off-body Cartesian grid generation function, and the domain connectivity
function of OVERFLOW-2.
SOLUTION VIEWER
This tool can be used to view different frames of grid and solution where
each frame can contain one or more grid and solution surfaces. Solution files
supported include: PLOT3D q, OVERFLOW q, PLOT3D function, CART3D triq files
All three of the following options are available for structured grid and solution
files, while only the first two are available for unstructured .triq files.
Grid frame Solution frame
Steady state cases 1 1
Steady/unsteady cases at different times 1 multiple
Moving/adaptive grid cases multiple multiple
Begin by specifying the surface slices to be read under Surface Specification.
By default, the L=1 slice of each grid in current memory is automatically
selected. The grid slice subsets defined here can be saved to a file for reload at another time.
For cases with adaptive grids, enter the number of near-body grids
whose dimensions remain fixed with time. Two cut plane options are available:
(1) cut all curvilinear and Cartesian grids to generate an unstructured grid and
view the solution on an arbitrary constant plane; (2) cut off-body Cartesian grids
and view solution on a constant x, y, or z plane.
The next step is to pick single or multiple frame for grid and q and read
the files. The PLAY button will automatically cycle through the frames if
multiple frames are read. The REC button will play and save each frame to a png
image file, and the collection of png files can then be processed into a movie
using an external program such as ffmpeg. Function options are available to plot
all q variables in the q files, including those from turbulence models and species
partial densities, common functions such as Mach number and velocity vectors.
A log option is allowed for showing scalar functions. The function display can be
made to appear in grid wireframes or contours.
After quitting this module, the grid and solution frames are released from
memory. These have to be read in again for further viewing.
WARNING: there is currently no check for negative densities.
KNOWN BUG: After performing plane cut operations through structured grid solutions,
OVERGRID may exit unexpected on quiting the Solution Viewer module.
DEBRIS TRACING
This interface can be used to prepare the input and execute the debris tracing
code DEBRIS. Seven types of shapes are supported: general, box, cylinder, sphere,
tumbling disk, disk with broadside to flow and frustum. For different shapes, different
initial condition parameters are supported with two options for sample variation: uniform
or random. For each parameter, a min and a max value are needed. For uniform distribution,
the number of samples per parameter is specified and the samples are distributed
uniformly over the given minmax range. For random distribution, the total number of
samples is prescribed. For each such sample, a random value over the given range is
automatically generated.
Currently, the initial positions are restricted to constant L surfaces. A convenient
way to prescribe the initial positions is to click on the `Use highlighted' button to copy
a highlighted subset (lower right window) into the J,K,L range entries for initial positions.
For a uniform distribution, the initial velocity direction is the local surface normal
direction if only one entry is prescribed. If more than one entry is prescribed, the initial
velocity direction is varied over a hemisphere with axis aligned with the local normal.
Display of initial positions and velocity vector directions can be toggled via the
appropriate checkbuttons.
Clicking the DEBRIS button will execute the code (assumed to be in user's path or in
the CGT bin directory) and display the trajectories in the graphics window. The impact points
on L=1 surfaces are colored by the impact speed. Note that when `Minimal output' is selected,
there is no information to determine impact points. In this case, all trajectories are
assumed to end in impact points. Work is in progress to add various options and filters for
viewing the trajectories.
An input file for the DPREP input preparation batch code is automatically written to
ogdprep.i. This can be used to generate the DEBRIS code input file in batch mode.
HYBRID GRID VIEWER
This tool is used for viewing prismatic (strand) grids in the SAC format created
by the sprout code, and AMR Cartesian grids. For the strand grid, intersection of the
constant coordinate cut plane with each prism cell is computed which may result in
3, 4, or 5 intersections. The intersection polygons are then displayed as triangles,
quads or pentagons. The following options are available for visualization of the
cut plane intersections:
1. Display prism cut cells as wireframes, colored by same color or by component ID of
triangles on surface triangulation
2. Display prism cut cells as shaded polygons which will reveal gaps between the trimmed prism cells
3. Highlight the cut cell polygons that belong to fringe cells which will show whether these are
surrounded by any donor cells.
4. Display neighboring strands that straddle the cut plane.
5. Display the surface triangle face index for each intersection polygon. Each
intersection polygon comes from a prism cell which belongs to a prism stack that can
be traced down to a surface triangle. This option provides a map of the prism stacks
and shows where they terminate on the cut plane and if they terminate at a fringe cell.
On the same display, the user can read in AMR Cartesian grids (in PLOT3D format for now) and display
the different levels at the specified cut plane. Options are available to color by level, display wireframe grid
lines or display just the grid bounding box outline. Having the prism cut and Cartesian cut in the same
display provides a valuable tool for checking the AMR grid generator and for debugging interpolation
stencil problems.
To be implemented
- Command journals using updated CGT script library macros
- Elliptic grid smoothing capability
- Better arrowheads for direction vectors for curves
References
Chan, W. M.,
"Enhancements to the Grid Generation Script Library and Post-Processing
Utilities in Chimera Grid Tools," 9th Symposium on Overset Composite Grid and
Solution Technology, State College, Pennsylvania, October, 2008.
Chan, W. M.,
CAD Interface, Strand Grid Technology, and Other New Developments in Chimera Grid Tools 2.0,
Proceedings of the 8th Symposium on Overset Composite Grids and Solution Technology,
Houston, Texas, October, 2006.
Chan, W. M.,
The OVERGRID Interface for Computational Simulations on Overset Grids ,
AIAA Paper 2002-3188, 32nd AIAA Fluid Dynamics Conference, St. Louis, Missouri, June, 2002.
Chan,, W. M., Meakin, R. L. and Potsdam, M. P., CHSSI Software for Geometrically
Complex Unsteady Aerodynamic Applications, AIAA Paper 2001-0593, January, 2001.
Murman, S., Chan, W. M., Aftosmis, M. J., Meakin, R. L.,
An Interface for Specifying Rigid-Body Motions for CFD
Applications, AIAA Paper 2003-1237, 41st Aerospace Sciences Meeting and Exhibit, January, 2003.
Sponsors
Funding for this work has been partially provided by the Subsonic Vehicle Technologies and Tools (SVTT) Project, the Revolutionary Vertical Lift Technology Project (RVLT), the Transformational Tools and Technology (TTT) Project, and the Subsonic Flight Demonstrator (SFD) Project. Past sponsors include the NASA Space Launch Systems Program, the NASA Constellation Program under the Ares, Ground Operations, and Simulation-Assisted Risk Assessment (SARA) projects; the DOD HIARMS project; the NASA CICT/CNIS Program the NASA High Performance Computing and Communications Program; the DOD High Performance Computing Modernization Program under the CHSSI CFD-4 Project; the Advanced Subsonic Technology Program, and the Space Shuttle Program.
Questions and Comments
Questions and comments can be directed to William M. Chan at William.M.Chan@nasa.gov
Last modified: Mon March 30 10:28:00 2026