Vortex Visualization project:
Full PDF: http://sciviscontest.visweek.org/2011/contributions/UNCVortexVis_yc_jl_2/UNCVortexVis_yc_jl_4.pdf
Goal: Given three data sets of fluid flow in a centrifugal pump** that vary across time, visualize where the vortices develop, and why.
**The data is courtesy of the Institute of Applied Mechanics, Clausthal University, Germany (Dipl. Wirtsch.-Ing. Andreas Lucius).
Streamlines in original data:
Vortex extraction:
Our vortex extraction method is based on streamlines**. We seeded the streamlines from the blades of the pump. Imagine if we paint the blades of the pump (shown below) with wet paint, and pump in clear liquid with a slightly lower density than the paint density (hand-waving here). The resulting paint pattern caused by the movement of the blades is similar to the streamline patterns that we generate.
** Scientists have since informed us that this method is not Galilean invariant (streamlines change based on the space and time reference frames), and therefore not useful for visualizing turbulence.
We separated each individual streamline into multiple segments based on the direction of rotation (clockwise vs counter-clockwise).
For each segment, we find the geometric mean position of all the points in that segment. Each point in the segment also has its own unit direction vector (starting from the “seed” of the streamline and ending at the last point in the segment). We define the unit normal of each point as the cross-vector of each neighboring unit direction vector. This gives us the geometric mean direction.
We projected each segment onto a 2-D plane defined by its normal. This normal is defined by the geometric mean position and the geometric mean direction.
Then we calculate the winding angle of each segment, i.e. the sum of the angles between the edges in the segment:
Image and method courtesy of Sadarjoen et al
Now that we have the geometric mean position, direction, and winding angle of each segment, we group each segment into a “vortex” based on the : position, direction, winding angle, and bounding box of the segments.
We used these criteria because the data sets contain many vortices that may be really close to each other, but may have different winding angles (how tightly coiled a vortex is) or different rotation direction. Some vortices may have the same center but vary a lot in size.
Here are some of the images captured during our exploration:
Second image color-coded by Winding Angle. The Winding Angle does a better job of separating vortices within a local region than the x-y-z size of the segments.
Second image color-coded by Winding Angle. The Winding Angle still does a better job of separating vortices but the large vortex is really complicated. Vortex Center aggregation fails for the large vortex.
(structurally, it seems like 2 vortices sharing a same center with different extents).
The Red Vortex Center in the Right image has high Winding Angle. See next section.
Vortex with high Winding Angle but almost invisible because it is too small
Top: Vortex Core shown Bottom: The tiny red dot is actually a tightly wound streamline.
Vortex-tracking
To match vortices from one time step to the next time step, we used the same criteria as the vortex extraction method above (position, direction, winding angle, size).
In both cases, there exists more sophisticated methods for predicting the evolution of vortices and classifying the different features. See the references in our submission.