For more information:
Interactive Visualization of 3D Finite Element Data
The objective of this project is to develop interactive visualization software in order to view and properly present 3D finite element data. This data includes both finite element meshes as well as flow data. Brian Matheis, my partner, was responsible of the finite element mesh part. My part of the project was to work with the flow data. To accomplish the project the code was generated using C programming language. OpenGL library was used in order to build geometric models, view models interactively in 3D space, and control color and lighting. OpenGL is a powerful software interface for graphics that allows programmers to produce high-quality color images of 3D objects. The Tcl scripting language and the Tk toolkit libraries were used to create the graphical user interface under X Windows.
In order to display the 3D image a series of files have to be analized. Examples of the file names are "mesh.info", "mxyz", "mien" and "mrng". Some of the information that was obtained from those files include the node's xyz coordinates, that compose the finite element mesh. After the proper mapping and node connectivity is obtained the final 3D object is presented in its corresponding window. The object's mesh is composed either of tetrahedral or hexahedral elements. The distribution of elements among the object do not have to be consistent. More elements are used for the areas on which the flow data has more impact in order to obtain more precise results. The object is divided in different subsections called boundaries. Those boundaries can be activated and desactivated independently, this facilitates the user's analisis of a specific area. The image can be rotated, translated and resized using the different mouse buttons or through the keyboard. The mouse buttons also includes an interactive menu that facilitates the selection between the different object movements.
In this project, Mr. Matheis was helped by Drs. Andrew Johnson and Shahrouz
Aliabadi, at that time both research associates supervised by Tezduyar.
After presenting the original object this project is focused on the visualization of large data sets of flow variables such as pressure, temperature, and velocity. In order to display the flow data a colormap is used to represent the impact of the flow variables on the object (Figure 1). This colormap file is specified by the user.
Figure 1: Colormap example. Color varies between blue and red.
To display the flow data the 256 colors of the colormap are distributed among the values of the flow variables. During this process one color is assigned to each of the nodes of the object. The result of this operation is demostrated in Figure 2.
Figure 2: Figure with flow data
In order to display the flow data among the object a series of parameters have to be selected. The program displays the minimum and maximum values for each of the flow variables. If these values are selected as the parameters the 256 colors of the colormap would be evenly distributed among the object (Figure 3A). Otherwise if the maximum and minimum values are reduced, 254 colors would be distributed among the range and colors 0 and 255 are used for the values that are outside that range. By reducing the parameters the user is able to analyze specific areas in the object (Figure 3B).
Two different analysis can be performed using the flow data. You can either generate an iso-surface or you can create a cross section. When we are talking about iso-surfaces we refer to an area on the object where the flow data is equal to a specific value. This is really useful to identify the effect of the flow variables on the object. For example, it can be shown if the impact area grows as the pressure increases or if the impact points are near a specific region. To create this iso-surface each of the elements on the object is analized. If the value is present on that element a polygon is drawn between all the corresponding faces on the element. The final result shown in Figure 4 is the group of polygons that are part of the iso-surface.
Figure 3A: Flow data, default parameters
Figure 3B: Flow data, reduced parameters
Fmin = -0.42 Fmax = 0.64
Fmin = -0.2 Fmax = 0.4
Figure 4: Iso-surface
Another analysis is to create a cross section of the object. To enable the process of selecting the cross section, in this case the 2D plane, a cutting plane is available. The position of this cutting plane will determine the position of the final 2D plane. The cutting plane movements can be controlled with the mouse right button. Another way of establishing the position of the final 2D plane is by specifying the three points that form the plane. The final result will be the 2D plane with different colors that represent the flow data (Figure 5). By this method the user can compare the flow changes inside the object.
Figure 5: Cross section
Many iso-surfaces or 2D planes can be displayed at the same time. There is a window from which you can activate and disactivate in either of two forms, with polygons shaded or with the polygons outlined.