Spyview - An Unstructured Grid Visualizer

Spyview is a GUI oriented visualizer written using the QT development toolkit. It uses the lightweight SpyLib rendering library for generating images of results from unstructured grid computations. Currently supported file types are exodus II (.exo) and ASCI mesh (.msh).


Visualization Capabilities

Rendering Options:

The mesh can be rendered with the outside polygons in place or just a wire mesh, and with different smoothing options. A decreased crease angle implies smoothing of edges that meet at sharper angles.

[top]


Scene Options:

The scene options refer to the visual environment surrounding the mesh such as the colors of the background, foreground, and text.

[top]


Field Mapping Options:

The Field tab controls which data fields are mapped on what polynomial surface. IsoSurface (geometry) refers to the field used to find the location of the isosurface and IsoSurface (coloring) specifies the field used to paint it. The screenshot below uses StressYY to get isosurfaces and then paints values from StressXY on them.

Automatically set max/min may be useful because the extremes of the field values often change across timesteps.

Deformation exaggeration can be used to look at otherwise unnoticable changes in the structure of the mesh across timesteps.

[top]


Isosurfaces and Cutplanes:

Spyview can draw isosurfaces and cutplanes and paint them with any field in the database. Isosurfaces can be placed one at a time at specified field values or at some proportion of the field between the min and max. Alternately, several surfaces can be placed automatically at equally spaced intervals in the field. Entering a number for the equally spaced isosurfs removes all surfaces that were previously placed as a proportion, but leaves the isosurfaces that were placed by value alone.

Cutplanes can also be added by specifying a point in the unit box and a vector normal to that point. In order to eliminate rendering artifacts associated with large elements, the cutplane can be refined several times. Each refinement increases the resolution of the rendering by a factor of four, so large values are generally not useful and may be computationally expensive.

Use the Fields tab to specify which fields are painted on the isosurfaces and cutplanes.

[top]


Sets:

In multiblock exodus files, any block(s) can be disabled so that the others may be viewed alone or more closely. Nodesets or sidesets are rendered as a collection of spheres, on on each node, face or edge. The size of the spheres can be specified using the radius command.

[top]


Vectors:

At present, vectors may be placed on every node, on the nodes of a nodeset, on the vertices of an isosurfaces, or on the vertices of a dataframe (see next section). The look of the vectors can be altered and vectors can be skipped (e.g., for rendering on the nodes of a highly refined mesh).

[top]


Dataframe:

A dataframe is a list of locations, which may be along a straight line, at gridpoints of an arbitrarily placed rectangular grid, or on the gridpoints of a brick aligned with the coordinate axes. Spy determines the elements that contain each datapoint and interpolates the corresponding field values. Vectors, spheres, and/or gridlines can then be placed on the points in the dataframe. Spy also has the capability to write out an ASCII file with the physical (unscaled) locations of each data point and the correspoinding field values (up to three and determined by the fields loaded in vector tab.

Dataframes can be a powerful tool for finding data in specific locations, but for large meshes, can be fairly expensive computationally because it may be difficult to determine which element contains the points. As the mesh deforms, the datapoints remain fixed in space.

[top]


Element Highlighting and Other Options:

Individual elements or nodes can be highlighted for use in debugging or analysis. Elements are outlined in red and nodes are highlighted by spheres. In order to highlight a large number of elements, a list can be read from an ASCII file.

The default colormap can also be changed by specifying a number of colors to use or by reading a colormap file (.pal). The colormap file is an ASCII file with 256 rows of three columns, each row representing an RGB values of the color. (Example file)

[top]


Viewing Options:

The perspective and other viewing options can be altered using the view tab on the control panel. Alternately, the image can be rotated using the left mouse button and scaled using the right mouse button.

[top]


Image Saving Options:

Currently, output images may be generated in tiff, jpeg, rgb, ppm or postscript formats by using the save button below the graphical window.

[top]


Image Composition:

Multiple analyses can be done at once using spyview's tab functionality. New tabs (which are essentially new spyview sessions) can be created using the new button. Tabs can be killed using the kill button. If the screen does not refresh when you move from one tab to another, click the screen or press the refresh button.

Using the tabs and compositing functionality, multiple images from different analyes can be merged into a single image. In order to merge images, load the meshes you want to merge into separate tabs and position them as you would like them to appear in the final composited image. Open the composition dialog using the compose button below the graphical window. View each tab and click the compose image into buffer button to merge the image into the originally empty buffer. When you have done all your composition, or when you want to see what is currently in the buffer, open a new tab and press the show buffered image button. This image can then be saved or viewed. In order to erase the composition you have done and start anew, press the clear buffered images button.

Note: the image produced by the show buffered image command is just an image, not an object, so it cannot be rotated or altered and it may not reappear when you move to another tab and then back. It is still in the buffer, so just redisplay it using the show buffered image button when you want to see or save it. Also, don't try to resize the screen between merges. That doesn't work and it doesn't make sense either.

[top]


Automated Scripts

Every action in the gui is associated with a command from the spy language, which can be referenced using the help button. Instead of using the gui, the user is welcome to type the commands into the Spy Command window. Commands preceeded by the exclamation point (!) are passed to the shell. Spy can execute a list of commands from a file, one after the other, which allows the user to do repetetive tasks, such as outputting a sequence of images for use in creating a movie. This is done via the script command. If this example script existed in the current directory, a number of images could be outputted via the following command:

script movie.txt

An example movie (1.8 Mb .avi) generated by spyview.

[top]


Spy Definition Files

Since all actions are also commands in the spy command language, Spyview can write (and soon will be able to read) spyview definition files, which can be used to automate generation of images using the spy library from within other applications, such as the ALEGRA hydrocode.

[top]


The Spy Library

See the
spylib documentation

[top]


Authors

Mark A. Christon, Ph.D. and Grant V. Farnsworth

Copyright (c) - 1996, 1997, 1998, 2002