Strömungssimulation€¦ · 3. 1.1 Darstellung eines Fluids Geschwindigkeit als wichtigste Größe...
Embed Size (px)
Transcript of Strömungssimulation€¦ · 3. 1.1 Darstellung eines Fluids Geschwindigkeit als wichtigste Größe...
-
Strömungssimulation
Alexander Podlich & Jens Wollenhaupt{podlich, jewollen}@student.uni-kassel.de
Sommersemester 200603.07.2006
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
-
Übersicht
1. Allgemeines über Strömungen
2. Das Lattice-Boltzmann Modell
3. Umsetzung auf GPU
4. Einsatzgebiete
5. Fazit
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
2
-
Übersicht – Kapitel 1
1. Allgemeines über Strömungen1. Darstellung eines Fluids2. Strömungsverhaten3. Navier-Stokes Gleichungen 4. Lösungsmöglichkeiten5. Zusammenfassung
2. Das Lattice-Boltzmann Modell3. Umsetzung auf GPU4. Einsatzgebiete5. Fazit
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
3
-
1.1 Darstellung eines Fluids
● Geschwindigkeit als wichtigste Größe einer
Strömung● Änderung in Raum und Zeit● Darstellung als Vektorfeld
– Geschwindigkeit in zweidimensionalem
Fluid: ux ,t=u x ,t v y ,t
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
4
-
1.1 Darstellung eines FluidsSt
röm
unge
nLB
MG
PGPU
Eins
atz
Fazi
t
Quelle:Mark J. Harris. GPU GEMS Chapter 38, Fast Fluid Dynamics Simulation on the GPU. 2004.
5
-
1.2 Strömungsverhalten
● Strömungsverhalten kann durch die Navier- Stokes Gleichungen beschrieben werden
● Allgemeine Form ist sehr kompliziert● Vereinfachungen durch Annahmen
1. Inkompressibel
2. Homogen
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
6
-
1.2 Strömungsverhalten
● Strömungsverhalten kann durch die Navier- Stokes Gleichungen beschrieben werden
● Allgemeine Form ist sehr kompliziert● Vereinfachungen durch Annahmen
1. Inkompressibel
2. Homogen
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
Dichte des Fluids ist sowohl räumlich als auch zeitlich konstant.
6
-
1.3 Navier Stokes Gleichungen
● George Gabriel Stockes
● (*13.08.1819, † 01.02.1903)● War ein irischer
Mathematiker und Physiker
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
● Claude Louis Marie Henri Navier
● (*10.02.1785, † 21.08.1836)● War ein französischer
Mathematiker und Physiker
Quelle:http://de.wikipedia.org/wiki/Bild:Gstokes.jpg
Quelle:http://herodes.feld.cvut.cz/nonlin/slavni/navier.jpg
7
-
1.3 Navier Stokes GleichungenSt
röm
unge
nLB
MG
PGPU
Eins
atz
Fazi
t
∇u=0
∂u∂ t
=−u⋅∇⋅u− 1∇ p∇2uF
8
-
1.3 Navier Stokes Gleichungen
● Massenerhaltung● Einfluß und Ausfluß in einem Fluidelement
sind symmetrisch
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
∇u=0
9
-
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
∂u∂ t
=−u⋅∇⋅u− 1∇ p∇2uF
1.3 Navier Stokes Gleichungen
● Impulsehaltung– Geschwindigkeitsfeld– Druckfeld– Kinematische Viskosität– Externe Kräfte
up
F10
-
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
∂u∂ t
=−u⋅∇⋅u− 1∇ p∇2uF
1.3 Navier Stokes Gleichungen
● Advektion– Transport von Eigenschaften eines Fluids– Ein Objekt (z.B. Dichte, Geschwindigkeit) ist
eine „Eigenschaft“ des Fluids
11
-
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
∂u∂ t
=−u⋅∇⋅u− 1∇ p∇2uF
1.3 Navier Stokes Gleichungen
● Druck– Teilchen im Fluid bewegen sich frei– Kraftaufbringung breitet sich nicht sofort aus– Druckunterschied führt zu einer
Beschleunigung/Geschwindigkeit12
-
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
∂u∂ t
=−u⋅∇⋅u− 1∇ p∇2uF
1.3 Navier Stokes Gleichungen
● Diffusion– Stellt die Dicke, die Viskosität, des Fluids dar
13
-
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
∂u∂ t
=−u⋅∇⋅u− 1∇ p∇2uF
1.3 Navier Stokes Gleichungen
● Externe Kräfte– Äußere Einflüsse, wie
● Lokale Kräfte● Globale Kräfte
14
-
1.4 Lösungsmöglichkeiten
● Analytisch– Nur in wenigen Spezialfällen möglich– Allgemeine Lösung ist ein großes Problem
dieses Jahrhunderts● Numerisch
– Integrationsverfahren (Aufteilung in Advektions-, Diffusions- und Kraftterme)
– Nichtlinearität der einzelnen Terme führt zu einem hohen Aufwand
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
15
-
1.4 Lösungsmöglichkeiten
● Molekulardynamische Betrachtungsweise
– Strömungen bestehen aus vielen kleinen Partikeln
– Das kollektive Verhalten dieser Partikel bestimmt die makroskopischen Eigenschaften des Fluids
– Idee: Simulation dieser Partikel, so dass die makroskopischen Navier-Stokes Gleichungen erfüllt sind
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
16
-
1.5 Zusammenfassung
● Geschw. als wichtige Größe der Fluide ● Eigenschaften der Fluide
– Inkompressibel & Homogen● Beschreibung durch NS-Gleichungen● Lösungsmöglichkeiten
– Analytisch– Numerisch– Molekulardynamisch
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
17
-
Übersicht – Kapitel 2
1. Allgemeines über Strömungen2. Das Lattice-Boltzmann Modell
1. Das LBM Gitter2. D3Q193. Der Simulationsablauf4. Zusammenfassung
3. Umsetzung auf GPU4. Einsatzgebiete5. Fazit
18
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
-
2. Das Lattice-Boltzmann Modell
● Vom österreichischen
Physiker und Philosophen
Ludwig Boltzmann Ende der
80er Jahre (20.02.1844, †
05.09.1906) entwickelt● Das LBM wird auf
Teilchenebene simuliert
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit Quelle:http://de.wikipedia.org/wiki/Bild:Bolt
zmann_Ludwig_Dibner_coll_SIL14-B5-06a.jpg 19
-
2.1 Das LBM Gitter
20
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
-
2.1 Das LBM Gitter
20
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
-
2.1 Das LBM Gitter
20
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
-
2.1 Das LBM Gitter
20
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
-
2.1 Das LBM Gitter
20
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
-
2.1 Das LBM Gitter
20
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
-
2.1 Das LBM Gitter
● Klassifikation in DxQy– Dimension x– Anzahl der
Kollokationspunkte y
● Alle Gittertypen werden aus Untergittern konstruiert
D2Q4
21
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
-
2.1 Das LBM Gitter - D3Q19
1. UG
3. UG
0,0 ,0
±1 ,±1,00,±1 ,±1±1,0 ,±1
4. UG±1 ,±1,±1
2. UG±1,0 ,00 ,±1,00,0,±1
22
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
-
2.2 D3Q19● Kombination aus 1., 2. und 3. UG● 19 Richtungsvektoren● 18 + 1 Verteilungen ● Makroskopische Eigenschaften:
– Dichte:
– Geschwindigkeit:
=∑if i
u= 1∑i f i ei
eif i x , t
23
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
-
2.3 Der Simulationsablauf
Dichte Geschwindigkeit
Neue Verteilung
Kollision &Propagation
Gleichgewichts-verteilung
24
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
-
2.4 Zusammenfassung
● LBM simuliert die Partikelbewegung● Unterteilung des Fluids in ein Gitter
– D3Q19● Simulationsablauf für alle Untergitter
– Geschwindigkeitsverteilung– Dichte– Geschwindigkeit
25
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
-
Übersicht Kapitel 3
1. Allgemeines über Strömungen2. Das Lattice-Boltzmann Modell 3. Umsetzung auf GPU
1. HardwareAnpassung2. Berechnung pro Zelle3. Daten auf der GPU4. Besondere Berechnungen5. Cg Shaderprogramm6. Zusammenfassung
4. Einsatzgebiete5. Fazit
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
26
-
3.1 Hardwareanpassung aufder GPU
● Kernel-Stream Model● Eingeschränkter Speicherzugriff● eingeschränktes Zahlenformat● SIMD Architektur für 4-Komponenten
Vektoren
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
27
-
3.2 Berechnung pro ZelleSt
röm
unge
nLB
MG
PGPU
Eins
atz
Fazi
t
Partikelkollisionen undresultierende Paket -verteilung berechnen
Bestimmung der Gleichgewichts -
verteilung
Propagieren der Paketverteilung in Nachbarzellen
Spezielle Propagationfür Ränder und
Hindernisse berechnen
Ergebnisse zu Einga -bedaten für nächstenDurchlauf umkopieren
Makroskopische Geschwindigkeit
berechnen
MakroskopischeDichte berechnen
28
-
3.2 Berechnung pro ZelleVertexTextur
Ergebnistextur
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
Partikelkollisionen undresultierende Paket -verteilung berechnen
Bestimmung der Gleichgewichts -
verteilung
Propagieren der Paketverteilung in Nachbarzellen
Spezielle Propagationfür Ränder und
Hindernisse berechnen
Ergebnisse zu Einga -bedaten für nächstenDurchlauf umkopieren
Makroskopische Geschwindigkeit
berechnen
MakroskopischeDichte berechnen
29
-
3.2 Berechnung pro ZelleSt
röm
unge
nLB
MG
PGPU
Eins
atz
Fazi
t
VertexTextur
ErgebnistexturPartikelkollisionen undresultierende Paket -verteilung berechnen
Bestimmung der Gleichgewichts -
verteilung
Propagieren der Paketverteilung in Nachbarzellen
Spezielle Propagationfür Ränder und
Hindernisse berechnen
Ergebnisse zu Einga -bedaten für nächstenDurchlauf umkopieren
Makroskopische Geschwindigkeit
berechnen
MakroskopischeDichte berechnen
30
-
3.2 Berechnung pro ZelleSt
röm
unge
nLB
MG
PGPU
Eins
atz
Fazi
t
VertexTextur
ErgebnistexturPartikelkollisionen undresultierende Paket -verteilung berechnen
Bestimmung der Gleichgewichts -
verteilung
Propagieren der Paketverteilung in Nachbarzellen
Spezielle Propagationfür Ränder und
Hindernisse berechnen
Ergebnisse zu Einga -bedaten für nächstenDurchlauf umkopieren
Makroskopische Geschwindigkeit
berechnen
MakroskopischeDichte berechnen
extra Vertex31
-
3.2 Berechnung pro ZelleSt
röm
unge
nLB
MG
PGPU
Eins
atz
Fazi
t
VertexTextur
ErgebnistexturPartikelkollisionen undresultierende Paket -verteilung berechnen
Bestimmung der Gleichgewichts -
verteilung
Propagieren der Paketverteilung in Nachbarzellen
Spezielle Propagationfür Ränder und
Hindernisse berechnen
Ergebnisse zu Einga -bedaten für nächstenDurchlauf umkopieren
Makroskopische Geschwindigkeit
berechnen
MakroskopischeDichte berechnen
extra Vertex32
-
3.3 Daten in einer Textur
● Makr. Geschwindigkeit● Makr. Dichte● Paketverteilung
Quelle: [2]
R G B Avx vy vz Dichte
f(1,0,0) f(-1,0,0) f(0,1,0) f(0,-1,0)f(1,1,0) f(-1,-1,0) f(1,-1,0) f(-1,1,0)f(1,0,1) f(-1,0,-1) f(1,0,-1) f(-1,0,1)f(0,1,1) f(0,-1,-1) f(0,1,-1) f(0,-1,1)f(0,0,1) f(0,0,-1) f(0,0,0) leer
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
33
-
3.3 Daten in einer Textur
● Skalieren der Eingangsdaten
● Makr. Geschwindigkeit● Makr. Dichte● Paketverteilung
Quelle: [2]
R G B Avx vy vz Dichte
f(1,0,0) f(-1,0,0) f(0,1,0) f(0,-1,0)f(1,1,0) f(-1,-1,0) f(1,-1,0) f(-1,1,0)f(1,0,1) f(-1,0,-1) f(1,0,-1) f(-1,0,1)f(0,1,1) f(0,-1,-1) f(0,1,-1) f(0,-1,1)f(0,0,1) f(0,0,-1) f(0,0,0) leer
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
34
-
3.3 Daten für 3D Gatter● Grafikhardware optimiert für 2D Texturen● 3D Gatter in großer 2D Textur speichern● Volumes müssen umgerechnet werden
Volume einer Zelle 2D Textur
x
y z
uv
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
35
-
3.4 Besondere Berechnungen● Bei Propagationsberechnung an Rändern
und Hinderissen➔ Übergang zur nächsten Seite➔ Abprallen➔ Austreten● gesonderte Shaderprogramme● gesonderte Vertizes, durch deep peeling
bestimmen
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
36
-
3.4 Deep Peeling
Layer X
Blick
0
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
37
-
3.4 Deep Peeling
Layer X
Blick
01
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
38
-
3.4 Deep Peeling
Layer X
Blick
01
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
38
-
3.4 Deep Peeling
Layer X
Blick
01
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
38
-
3.4 Deep Peeling
Layer X
Blick
01
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
38
-
3.4 Deep Peeling
Layer X
Blick
01
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
38
-
3.4 Deep PeelingBlick
0
Layer Y
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
39
-
3.4 Deep Peeling
Layer X
Blick
0 1
Layer Y
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
40
-
3.4 Deep Peeling
Layer X
BlickLayer Y
0 1 2
Bildquelle: [2]
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
41
-
3.5 Cg Shaderprogramm
void advect( float2 coords :WPOS // grid coordinates out float4 xNew :Color // advected qty uniform float timestep, uniform float rdx, // 1/grid scale uniform samplerRECT u, // input velocity uniform samplerRECT x, // qty to advect){
//follow the velocity field „back in time“float2 pos = coords – timestep * rdx *
f2textRECT(u, coords);//interpolate and write to the output fragmentxNew = f4texRECTbilerp(x, pos);
}Quelle: [3]
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
42
-
3.6 Zusammenfassung
● Vertizes für Gitterzellen erstellen● Extra-Vertizes für spezielle Berechnungen
– Berechnung auf Fragment-Shader ausführen– Eingabedaten in 2D-Textur ablegen
● Ergebnisse eines Durchlaufs mit „copy-to-
texture“ oder „render-to-texture“
umkopieren
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
43
-
Übersicht Kapitel 4
1. Allgemeines über Strömungen
2. Das Lattice-Boltzmann Modell
3. Umsetzung auf GPU
4. Einsatzgebiete
1. Speedups
5. Fazit
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
44
-
4. Einsatzgebiete
● Strömungssimulation für
Frischluftversorgung oder Gefahrenstoffe● Temperaturströmungen
– Wettervorhersage● Luftströmungen an PKW und Flugzeugen● Grafische Strömungssimulationen für
Filme und Computerspiele
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
45
-
4.1 SpeedupSt
röm
unge
nLB
MG
PGPU
Eins
atz
Fazi
t
Bildquelle: [1]
Bildquelle: [4]
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
46
-
Übersicht Kapitel 5
1. Allgemeines über Strömungen
2. Das Lattice-Boltzmann Modell
3. Umsetzung auf GPU
4. Einsatzgebiete
5. Fazit
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
47
-
Fazit
● große Speedups möglich● Umsetzung erscheint nicht viel
aufwendiger● Speicher noch zu klein, daher
Simulationen noch zu klein● rasante Entwicklung wird dies bestimmt
lösen
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
48
-
Vielen Dank für Ihre Aufmerksamkeit!
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
49
-
Quellen
[1] Arie Kaufman Zhe Fan and Suzanne Yoakum-Stover. Gpu cluster for high performance computing. 2004.
[2] Xiaoming Wei Wei Li Zhe Fan and Arie Kaufman. GPU GEMS Chapter 47, Flow Simulation with Complex Boundaries. 2005.
[3] Mark J. Harris. GPU GEMS Chapter 38, Fast Fluid Dynamics Simulation on the GPU. 2004.
[4] Xiaoming Wei Wei Li and Arie Kaufman. Implementing lattice boltzmann computation on graphics hardware. 2003.
[5] Thomas Schiwietz. Echtzeitfähige Simulation von Wasser auf Grafikhardware. Master’s thesis, Technische Universität München, Fakultät für Informatik, 2003.
Strö
mun
gen
LBM
GPG
PUEi
nsat
zFa
zit
50