Andrea Brambilla1
Øyvind Andreassen2,3
Helwig Hauser1
Integrated Multi-aspect Visualization of 3D Fluid Flows
1 University of Bergen, Norway2 Norwegian Defence Research Establishment, Norway3 University Graduate Center at Kjeller, Norway
Flow aspects
Brambilla et al. 4 / 27
𝑺=12
(𝛻𝒖+(𝛻𝒖)𝑇 )
𝒖 (𝒙 ,𝑡 )
𝝎=𝛻×𝒖
Velocity (motion)
Rate of strain (deformation)
Vorticity (rotation)
Requirements
Brambilla et al. 7 / 27
Visual representationConvey local informationHandle vector and tensor data
Manage visibility issuesFocus + Context visualizationExploit data coherency
GlyphColor -> magnitudeGeometry -> direction
Velocity magnitude
Vorticity magnitude
Rate of Strain magnitude
min max
min max
min max
Multiple Focus + Context
Brambilla et al. 8 / 27
Different flow aspects can be more or less relevant
Swirling motion in a constant laminar flow?
The relevance of an attribute can vary over the domainMultiple relevance measures
Relevance measures
Brambilla et al. 9 / 27
For each attribute aDefine a set of potential locations Pa Define relevancea: Pa
-> [0, 1]
ux
min max min max
1
0
rele
vanc
e
uy
0
1
rele
van
ce
Relevance measures are user defined
Relevance measures
Brambilla et al. 10 / 27
For each attribute aDefine a set of potential locations Pa Define relevancea: Pa
-> [0, 1]
ux
min max min max
1
0
rele
vanc
e
uy
0
1
rele
van
ce
Relevance measures are user defined
Flow feature detectors can capture physical aspects
Hunt’s Q / λ2 / Haimes and Kenwright
1
0
rele
van
ce
λ2min max
1
0
rele
van
ce
Qmin max
Coherency and Visual Redundancy
Brambilla et al. 11 / 27
Information can be replicated over many samples
Visualize that information only once!
Coherency measures
Brambilla et al. 12 / 27
A coherency measure encodes the degree of redundancy of a set of data samples
For each attribute a, coherencya: P(Pa) -> R+
Specified by the user4 measures implemented in our systemMore measures can be easily addedSimilar overall behaviour, but small differences
test dataset 2nd moment entropy c_diffv c_dotv
for each attribute a .. γa = coherency threshold .. build(Pa) .. sort(Pa, relevancea) .. for p in Pa
.. .. Ap = sphere around p .. .. while coherencya(Ap) < γa .. .. .. increase radius of Ap .. .. place a glyph in p .. .. Pa = Pa - Ap
Visualization strategy
Brambilla et al. 13 / 27
Glyph placement algorithm:
for each attribute a .. γa = coherency threshold .. build(Pa) .. sort(Pa, relevancea) .. for p in Pa
.. .. Ap = sphere around p .. .. while coherencya(Ap) < γa .. .. .. increase radius of Ap .. .. place a glyph in p .. .. Pa = Pa - Ap
Visualization strategy
Brambilla et al. 14 / 27
Glyph placement algorithm:
Pa
for each attribute a .. γa = coherency threshold .. build(Pa) .. sort(Pa, relevancea) .. for p in Pa
.. .. Ap = sphere around p .. .. while coherencya(Ap) < γa .. .. .. increase radius of Ap .. .. place a glyph in p .. .. Pa = Pa - Ap
Visualization strategy
Brambilla et al. 15 / 27
Glyph placement algorithm:
Pa
for each attribute a .. γa = coherency threshold .. build(Pa) .. sort(Pa, relevancea) .. for p in Pa
.. .. Ap = sphere around p .. .. while coherencya(Ap) < γa .. .. .. increase radius of Ap .. .. place a glyph in p .. .. Pa = Pa - Ap
Visualization strategy
Brambilla et al. 16 / 27
Glyph placement algorithm:
Pa
Ap
for each attribute a .. γa = coherency threshold .. build(Pa) .. sort(Pa, relevancea) .. for p in Pa
.. .. Ap = sphere around p .. .. while coherencya(Ap) < γa .. .. .. increase radius of Ap .. .. place a glyph in p .. .. Pa = Pa - Ap
Visualization strategy
Brambilla et al. 17 / 27
Glyph placement algorithm:
Pa
Ap
for each attribute a .. γa = coherency threshold .. build(Pa) .. sort(Pa, relevancea) .. for p in Pa
.. .. Ap = sphere around p .. .. while coherencya(Ap) < γa .. .. .. increase radius of Ap .. .. place a glyph in p .. .. Pa = Pa - Ap
Visualization strategy
Brambilla et al. 18 / 27
Glyph placement algorithm:
Pa
Ap
for each attribute a .. γa = coherency threshold .. build(Pa) .. sort(Pa, relevancea) .. for p in Pa
.. .. Ap = sphere around p .. .. while coherencya(Ap) < γa .. .. .. increase radius of Ap .. .. place a glyph in p .. .. Pa = Pa - Ap
Visualization strategy
Brambilla et al. 19 / 27
Glyph placement algorithm:
Pa
Ap
for each attribute a .. γa = coherency threshold .. build(Pa) .. sort(Pa, relevancea) .. for p in Pa
.. .. Ap = sphere around p .. .. while coherencya(Ap) < γa .. .. .. increase radius of Ap .. .. place a glyph in p .. .. Pa = Pa - Ap
Visualization strategy
Brambilla et al. 20 / 27
Glyph placement algorithm:
Pa
Ap
The radius of Ap is mapped to size
The relevance of p is mapped to opacity
for each attribute a .. γa = coherency threshold .. build(Pa) .. sort(Pa, relevancea) .. for p in Pa
.. .. Ap = sphere around p .. .. while coherencya(Ap) < γa .. .. .. increase radius of Ap .. .. place a glyph in p .. .. Pa = Pa - Ap
Visualization strategy
Brambilla et al. 21 / 27
Glyph placement algorithm:
Pa
The radius of Ap is mapped to size
The relevance of p is mapped to opacity
Visualization strategy
Brambilla et al. 22 / 27
Glyph placement algorithm:for each attribute a .. γa = coherency threshold .. build(Pa) .. sort(Pa, relevancea) .. for p in Pa
.. .. Ap = sphere around p .. .. while coherencya(Ap) < γa .. .. .. increase radius of Ap .. .. place a glyph in p .. .. Pa = Pa - Ap
Pa
Repeat until all the points have been processed
Repeat for every attribute of interest
Parameter settings
Brambilla et al. 26 / 27
Relevance corresponds to user’s interest
Coherency thresholdInitially set to 10% of maximal coherency valueCan be interactively adjusted
high thresh. mid thresh. low thresh.
Final remarks
Brambilla et al. 27 / 27
Our visualization strategy Presents multiple flow aspects simultaneouslyHandles visibility issues through smart placementCan be easily extended
Future work Streamlets as a new representationCoherency measure based on tensor invariantsAdapt the strategy to integral curvesExtension to time-dependent datasets
Andrea Brambilla1
Øyvind Andreassen2,3
Helwig Hauser1
Integrated Multi-aspect Visualization of 3D Fluid Flows
1 University of Bergen, Norway2 Norwegian Defence Research Establishment, Norway3 University Graduate Center at Kjeller, Norway
Attributes of interest
Brambilla et al.
Velocity vector field
Rate of strain tensor
Vorticity tensor
Vorticity vector
𝐷𝜔 𝑖
𝐷𝑡=𝑆 𝑖𝑗𝜔 𝑗+ν
𝜕2𝜔𝑖
𝜕 𝑥𝑘𝜕 𝑥𝑘
𝑆 𝑖𝑗=12 ( 𝜕𝑢𝑖
𝜕 𝑥 𝑗
+𝜕𝑢 𝑗
𝜕 𝑥 𝑖)
𝑢𝑖 (𝑥 𝑗 , 𝑡 )
Ω𝑖𝑗=12 ( 𝜕𝑢𝑖
𝜕𝑥 𝑗
−𝜕𝑢 𝑗
𝜕 𝑥𝑖 )𝜔 𝑖𝑗=−𝜀𝑖𝑗𝑘Ω 𝑗𝑘
Vorticity transport equation
Performance
Brambilla et al.
PerformanceRelevance is pre-cumputedCoherency computation depends on
Dataset size and number of relevant pointsActual data coherencyExhaust Manifold (133x81x31) -> 0.128 sec (2.8GHz CPU)
Bottleneck is the geometry generationExhaust Manifold -> 0.470 sec / 1.037 sec (depth sort)But GPU implementation feasible!