Strömungssimulation€¦ · 3. 1.1 Darstellung eines Fluids Geschwindigkeit als wichtigste Größe...

60
Strömungssimulation Alexander Podlich & Jens Wollenhaupt {podlich, jewollen}@student.uni-kassel.de Sommersemester 2006 03.07.2006 Strömungen LBM GPGPU Einsatz Fazit

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