AVS Modules and Components


This page provides a description of the AVS modules used to implement EB + AMR visualization. Upon conclusion of this LDRD, source code for these modules will be made available for download so that others can experiment and build upon our work.

Data Input Modules

The fundamental problem with an AVS representation of AMR data is that the data models used by the two systems are markedly different. The AVS data model, a "field," assumes a single "grid." The AVS grid may be structured or unstructured, but there is only one such grid. There is no notion of a "list of grids" in the AVS data model. In fact, there is no such notion (list of grids) in any visualization tool. The purpose of the data input modules described here is to wedge a list of grids into the AVS field model. Subsequent sections describe tools that operate on these lists of grids. In contrast, this page describes an effort to integrate the AMR data model (list of grids) directly into VTK via modifications to the VTK source code and this page describes work done at NCSA to address the same issue.

In our approach, we generate two types of AVS fields: one that has data from every box from every FAB within a given multifab, and another that has only the grid coordinates (origin and size) for each FAB within a given MultiFAB. The data reading module provides a dial that is used to specify which MutliFAB from a given problem is to be extracted then sent to downstream modules. The former field is referred to as a collection of boxes while the latter is referred to as a collection of box clusters.

The following two sections describe how each of these data objects is mapped into an AVS field. We assume the reader has some familiarity with the AVS field data structure. Note that since we are using a highly specialized representation of AMR data in the AVS field, very few, if any, of the "standard" AVS modules will be capable of processing the new types of fields. In later sections, we describe a number of custom AVS modules written especially to process and visualize this custom field. We chose to perform this work in AVS because it is a stable dataflow-based system that is designed for rapid prototyping. Some of the processing modules produce "normal" AVS fields from AMR data, so we are able to leverage some of the existing work where appropriate.

Collection of Boxes

The data input AVS module named AMRv boxes reads an AMRv file and generates a custom field. The module presentes two interface parameters, one is a browser used to select a file, while the second is a dial used to specify which MultiFAB from within the entire problem will be processed and sent to output.

The field generated by this module is an unstructured grid, where each "grid point" represents a single AMR box. The number of grid points contained by this field is the number of FABs present in the selected MultiFAB multiplied by the number of boxes in each FAB. A "ragged array" of boxes is represented as a single list, or disjoint set of boxes. There is no structural relationship between boxes in the AVS field. Future work might include ways to capture some of that structural relationship data.

Coordinate        Data[0-2]        Data[3-n]
Box[0] Origin     Box size         density, pressure, volfrac, etc.
Box[1] Origin     Box size         density, pressure, volfrac, etc.
Box[n] Origin     Box size         density, pressure, volfrac, etc.


Collection of Box Clusters

In contrast to the collection of boxes structure, the collection of box clusters does not represent every single box (from all FABs within a given MultiFAB), but rather represents only the position and size of each FAB. This type of representation is more useful for visualization techniques that are oriented towards showing something about the spatial nature of the FAB (such as grid visualization). The name of this AVS module is AVMRv clusters.

Coordinate        Data[0-2]        Data[3-5]
FAB[0] Origin     Box size         FAB resolution (#boxes)
FAB[1] Origin     Box size         FAB resolution (#boxes)
FAB[n] Origin     Box size         FAB resolution (#boxes)

FAB to Field

Unlike the other modules, this module creates a "normal" AVS field suitable for use by the "standard" visualization tools in AVS. The FAB to Field module takes as input an entire problem, then allows a user to select a specific fab from the problem. The data from this single fab is sent to an output field.

The following image shows that useful results can be obtained through the use of this module.

The data is a 32x32x16 FAB. The original data has seven variables: density, x-momentum, y-momentum, z-momentum, energy, level and vol_frac. The image shows five of the seven variables. The slices are taken from the density component, and shown using false-colored slices. The isosurface, shown as a transparent bluish surface, is an iso-energy contour. The size and orientation of the cones represent the (x,y,z-momentum) vector at each box.

Flow Visualization

By reusing components from our ACTI collaboration (need a link here), we can generate images showing flow visualization.

Click here for a 584 MPEG movie showing particle advection (3953286 bytes).

Data Visualization Modules