introduction to flow visualizationhuamin/msbd5005/flowvis.pdf · vector visualization ydata set is...
TRANSCRIPT
![Page 1: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/1.jpg)
This set of slides developed by Prof. Torsten Moeller, at Simon Fraser Univ and
Professor Jian Huang, at University of Tennessee , KnoxvilleAnd some other presentation slides acquired online
Introduction to Flow Visualization
![Page 2: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/2.jpg)
Vector Visualization
y Data set is given by a vector component and its magnitudey often results from study of fluid flow or by looking at
derivatives (rate of change) of some quantityy trying to find out what to see and how!y Many visualization techniques proposed
![Page 3: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/3.jpg)
Vector Visualization - Techniques
y Hedgehogs/glyphsy Particle tracingy stream-, streak-, time- & path-linesy stream-ribbon, stream-surfaces, stream-polygons,
stream-tubey hyper-streamlinesy Line Integral Convolution
![Page 4: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/4.jpg)
Vector Visualization - Origin
y Where are those methods coming from??y Rich field of Fluid Flow Visualizationy Hundreds of years old!!y Modern domain - Computational Field Simulationsy Let’s see some images first
![Page 5: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/5.jpg)
Flow visualizationLeonardo Da Vinci’s Hand drawings
Naturally occurring flow visualization
![Page 6: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/6.jpg)
Flow Past a Cylinder
Clouds past a mountain
![Page 7: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/7.jpg)
Some gas flow visualization images
Smoke visualization
Top- flow past aerofoilSide- laminar smoke jet
![Page 8: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/8.jpg)
Schlieren flow visualizationShadowgraph
Bullet at supersonic speed
![Page 9: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/9.jpg)
Flow over AerofoilSide –particle visualizationBelow –dye visualization
Liquid flows
![Page 10: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/10.jpg)
Insects walking on water
![Page 11: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/11.jpg)
Drop falling on liquid surface
Normal laminar flow chain
![Page 12: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/12.jpg)
Jets and Plumes
• Top left- flow below an ice cube in water
• Top right- near field of a jet
• Side- jet and flame jet
![Page 13: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/13.jpg)
Buoyant jet in stratified fluid
Tear ducts in wine glass
![Page 14: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/14.jpg)
Delta Wing Vortex Top & Back Views
![Page 15: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/15.jpg)
Delta Wing Vortex Top & Side Views
![Page 16: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/16.jpg)
MEMS Vortex Control
Vortex under control, moving outwards
Moving inwards
![Page 17: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/17.jpg)
Trailing Vortex Shed from Wingtip
![Page 18: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/18.jpg)
Missile Firing, Shock-cell structure
![Page 19: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/19.jpg)
Hurricane Fran, 1996
![Page 20: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/20.jpg)
Flow Visualization
y Gaseous flow:y development of cars, aircraft, spacecrafty design of machines - turbines, combustion engines
y Liquid Flow:y naval applications - ship designy civil engineering - harbor design, coastal protection
y Chemistry - fluid flow in reactor tanksy Medicine - blood vessels, SPECT, fMRI
![Page 21: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/21.jpg)
Flow Visualization (2)
y What is the problem definition?y Given (typically):y physical position (vector)y pressure (scalar),y density (scalar),y velocity (vector),y entropy (scalar)
y steady flow - vector field stays constanty unsteady - vector field changes with time
![Page 22: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/22.jpg)
Flow Visualization - traditionally
y Traditionally - Experimental Flow Vis
y How? -Three basic techniques:y adding foreign materialy optical techniquesy adding heat and energy
![Page 23: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/23.jpg)
Experimental Flow Visualiz.
y Problems:y the flow is affected by experimental techniquey not all phenomena can be visualizedy expensive (wind tunnels, small scale models)y time consuming
y That’s where computer graphics and YOU come in!
![Page 24: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/24.jpg)
Vector Field Visualization Techniques
Local technique: Advection based methods -Display the trajectory starting from a
particular location - streamxxxx- contours
Global technique: Hedgehogs, Line Integral Convolution, Texture Splats etc. Display the flow direction everywherein the field
![Page 25: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/25.jpg)
Local technique - Streamline
• Basic idea: visualizing the flow directions by releasing particles and calculating a series of particle positions based on the vector field -- streamline
( ) ∫+== dsvsxxtxvdsxd
)(or, 0
![Page 26: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/26.jpg)
Numerical Integration
y Euler
y not good enough, need to resort to higherorder methods
( ) ∫+== dsvsxxtxvdsxd
)(or, 0
( ) ( ) ( )( ) ssxvsxssx ∆+=∆+
![Page 27: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/27.jpg)
Numerical Integration
y 2nd order Runge-Kutta
( ) ( ) ( )( ) ( )( )( )s
ssxvsxvsxssx ∆
∆+++=∆+
2
*
( ) ( ) ( )( ) ssxvsxssx ∆+=∆+*
Euler Runge-Kutta
![Page 28: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/28.jpg)
Numerical Integration
y 4th order Runge-Kutta
( ) ( ) ( ) ( ) ( )( )( )( ) ( )
( ) ( )( ) ( ) sxvsxx
sxvsxx
sxvsxx
sxx
xvxvxvxvxssx
∆+=
∆+=
∆+=
=
++++=∆+
23
12
01
0
32100
2121
2261
![Page 29: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/29.jpg)
Streamlines (cont’d)
- Displaying streamlines is a local technique because you can only visualize the flow directions initiated from one or a fewparticles
-When the number of streamlines is increased, the scene becomes cluttered
-You need to know where to drop the particle seeds
- Streamline computation is expensive
![Page 30: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/30.jpg)
Pathlines, Timelines-Extension of streamlines for time-varying data (unsteady flows)
Pathlines:
Timelines:
T=1
T=2
T=3 T=4
T=5
T = 1 T = 2 T = 3
timeline
![Page 31: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/31.jpg)
Streaklines
- For unsteady flows also- Continuously injecting a new particle at each time step, advecting all the existing particles and connect them together into a streakline
b.t. =5b.t. =4
b.t. =3
b.t. =2 b.t. =1
![Page 32: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/32.jpg)
Advection methods comparison
![Page 33: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/33.jpg)
Stream-ribbon
y We really would like to see vorticities, I.e. places were the flow twists.
y A point primitive or an icon can hardly convey thisy idea: trace neighboring particles and connect them with
polygonsy shade those polygons appropriately and one will detect twists
![Page 34: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/34.jpg)
Stream-ribbon
y Problem - when flow divergesy Solution: Just trace one streamline and a constant size
vector with it:
![Page 35: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/35.jpg)
Stream-tube
y Generate a stream-line and connect circular crossflow sections along the stream-line
![Page 36: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/36.jpg)
Stream-balls
y Another way to get around diverging stream-linesy simply put implicit surface primitives at particle traces -
at places where they are close they’ll merge elegantly ...
![Page 37: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/37.jpg)
Flow Volumes
y Instead of tracing a line - trace a small polyhedra
![Page 38: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/38.jpg)
Contours
y Contour lines can measure certain quantities by connecting same values along a line
![Page 39: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/39.jpg)
Global techniques
- Display the entire flow field in a single picture - Minimum user intervention- Example: Hedgehogs (global arrow plots)
![Page 40: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/40.jpg)
Mappings - Hedgehogs, Glyphs
y Put “icons” at certain places in the flowy e.g. arrows - represent direction &
magnitude
y other primitives are possible
orientedlines
glyphs
vortex
![Page 41: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/41.jpg)
Mappings - Hedgehogs, Glyphs
y analogous to tufts or vanes from experimental flow visualization
y clutter the image real quicky maybe ok for 2Dy not very informative
![Page 42: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/42.jpg)
Global Methods
y Spot Noise (van Wijk 91)
y Line Integral Convolution (Cabral 93)
y Texture Splats (Crawfis 93)
![Page 43: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/43.jpg)
Spot Noise
y Uses small motion blurred particles to visualize flows on stream surfaces
y Particles represented as ellipses with their long axes oriented along the direction of the flow
y I.e. we multiply our kernel h with an amplitude and add a phase shift!
y Hence - we convolve a spot kernel in spatial domain with a random sequence (white noise)
![Page 44: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/44.jpg)
Spot Noise
y examples of white noise:y set of random values on a gridy Poisson point process - a set of randomly scaled delta functions
randomly placed (dart throwing)
y variation of the data visualization can be realized via variation of the spot:
d - data valuem - parameter mapping
( ) ( )( )( )∑ −=k
kkk xxxdmhaxf ,
![Page 45: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/45.jpg)
Rendering - Spot Noise
Different size Different profiles
![Page 46: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/46.jpg)
Rendering - Spot Noise
y bla
![Page 47: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/47.jpg)
Rendering - LIC
y Similar to spot noisey embed a noise texture
under the vector fieldy difference - integrates
along a streamline
LIC Spot Noise
![Page 48: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/48.jpg)
Texture Splats
y Crawfis, Max 1993y extended splatting to visualize vector fieldsy used simple idea of “textured vectors” for visualization of
vector fields
![Page 49: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/49.jpg)
Texture Splats - Vector Viz
y The splat would be a Gaussian type texturey how about setting this to an arbitrary image?y How about setting this to an image including some elongated
particles representing the flow in the field?y Texture must represent whether we are looking at the vector
head on or sideways
![Page 50: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/50.jpg)
Texture Splats
Texture images Appropriate opacities
![Page 51: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/51.jpg)
Texture Splats - Vector Viz
y How do you get them to “move”?y Just cycle over a periodic number of different textures
(rows)
![Page 52: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/52.jpg)
More global techniques
Texture Splats
![Page 53: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/53.jpg)
Spot Noise
![Page 54: Introduction to Flow Visualizationhuamin/MSBD5005/flowvis.pdf · Vector Visualization yData set is given by a vector component and its magnitude yoften results from study of fluid](https://reader030.vdocuments.site/reader030/viewer/2022040310/5f34c375cc92bb138b27218d/html5/thumbnails/54.jpg)
Line bundles