Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Výpočetní dynamika tekutin(Computational Fluid Dynamics)
Tomáš Oberhuber
Faculty of Nuclear Sciences and Physical EngineeringCzech Technical University in Prague
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Cíle CFD
• výpočetní dynamika tekutin se zabývá počítačovýmsimulováním proudění tekutin
• hlavním cílem je napočítat vektorové pole rychlostiproudění
• stacionární (ustálené)• měnící se v čase
• často nás ale zajímají i další veličiny jako tlak, hustota,teplota apod.
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Projekt Manhattan
• první numerická schémata vznikala během projektuManhatten
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Letecký průmysl akosmonautika
• hlavním tahounem vývoje CFD byl v druhé polovině 20.století letecký průmysl
• počítá se hlavně proudění vzduchu podél profilu křídla
Figure: Hyper-X scramjet
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Letecký průmysl akosmonautika
• návrh proudových motorů
Figure: L. Panek
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Automobilový průmysl
• aerodynamika - "náhrada" za větrný tunel
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Energetický průmysl
• návrh turbín
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Medicína
• proudění krve v srdečních komorách
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Astrofyzika
• pohyb galaxií
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Matematický popis proudění
Claude-Louis Navier (1785–1836) Sir George Gabriel Stokes(1819–1903)
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Navierovy-Stokesovy rovnice
%
(∂v∂t
+ v · ∇v)
= −∇p +∇ ·T+ f,(∂%
∂t+ v · ∇%
)= −%∇ · v
Rovnice jsou odvozeny ze zákonu zachování:• hybnosti• hmoty
v – rychlost, % – hustota, p – tlak, T – tenzor napětí, f –objemová síla
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Vazkost
Výraz ∇ ·T se často aproximuje jako
∇ ·T = (λ+ µ)∇ (∇ · v) + µ∆v,
kde λ a µ jsou koeficienty popisující vazkost. Rovnice pakmají tvar:
%
(∂v∂t
+ v · ∇v)
= −∇p + (λ+ µ)∇ (∇ · v) + µ∆v + f,(∂%
∂t+ v · ∇%
)= −%∇ · v
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Eulerovy rovnice
Je-li λ = µ = 0, dostaneme Eulerovy rovnice pro nevazképroudění:
%
(∂v∂t
+ v · ∇v)
= −∇p + f,(∂%
∂t+ v · ∇%
)= −%∇ · v
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Nestlačitelné proudění
Je-li % (x) = %0, jde o nestlačitelné proudění:
%0
(∂v∂t
+ v · ∇v)
= −∇p + µ∆v + f, (1)
∇ · v = 0 (2)
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Reynoldsovo čísloPro převedení rovnic do bezrozměrného tvaru zavedeme:
• charakteristickou délku L• charakteristickou rychlost V
Ty pak definují časové měřítko T = L/U.Přejdeme k bezrozměrným veličinám:
• x′ = xL , v′ = vV , t
′ = tT
Nestlačitelné N.-S. rovnice pak mají tvar (s f = 0):
(∂v′
∂t ′+ v′ · ∇′v′
)= − 1
%0∇′p′ + ν
LV∆′v′, (3)
∇ · v′ = 0, (4)
kde ν = µ%0 .Definujeme Reynoldsovo číslo Re = LVν .
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Stokesova rovnice
Pro malá Reynoldsova čísla je 1/Re velké a lze uvažovatzjednodušenou Stokesovu úlohu:
∂v∂t
= −∇p + 1Re
∆v, (5)
(6)
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Řešení N.-S. rovnic
Matematická analýza i numerická aproximace N.-S. rovnicje velice komplikovaný úkol, dodnes nedořešený!!!Stokesova úloha je užitečná tím, že slouží jako mezikrok kN.-S.Dokázat existenci řešení N.-S. rovnic v R3 s danýmipočátečními podmínkami patří mezi největší problémysoučasné matematiky.
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Millennium Prize Problems
Těchto 7 úloh prohlásil Clayův matematický institut(Cambridge, Massachusetts) ze problémy tisíciletí:
1 Problém P versus NP2 Hodgeova domněnka3 Poincarého domněnka (vyřešena)4 Riemannova hypotéza5 Yangova-Millsova teorie a hypotéza hmotnostních
rozdílů6 Navierovy-Stokesovy rovnice7 Birchova a Swinnerton-Dyerova domněnka
Za vyřešení každého z nich je vypsána odměna 1,000,000$.
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Řešení N.-S. rovnic
Prof. RNDr. Jindřich Nečas DrSc.14. prosince 1929 v Praze - 5. prosince 2002
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Řešení N.-S. rovnic
Řešení N.-S. rovnic může vykazovat následující jevy:
• rázové vlny (nespojitosti)• turbulence
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Rázová vlna (shock wave)
R. v. vzniká, pokud se tekutina pohybuje rychleji než zvuk.Dochází k jejímu "trhání", což se projevuje jako nespojitosttlaku a rychlosti.
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Rázová vlna (shock wave)
U nespojitých veličin nemá derivace smysl. Přesto chcemetaková řešení studovat.Místo klasického řešení se studuje tzv. slabé řešení.
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Turbulence
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Turbulence
Vizualizace turbulence pomocí laserové fluorescence:
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Turbulence
Pro turbulence je typické velmi chaotické chování. Stáleneexistuje aparát pro pochopení turbulencí. To je jeden zhlavních problémů současné fyziky:"Is it possible to make a theoretical model to describe thestatistics of a turbulent flow (in particular, its internalstructures)? Also, under what conditions do smoothsolutions to the Navier-Stokes equations exist?"List of unsolved problems in physics, Wikipedia
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Turbulence – aplikace
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Numerická aproximace
Rovnice nelze řešit analyticky, lze jen hledat přibližnénumerické řešení.
• konstrukce numerické sítě• časová a prostorová diskretizace• řešení algebraické úlohy• řešení lineární úlohy• paralelizace pro velké superpočítače• vizualizace výsledků
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Numerická sít’
• celou výpočetní oblast pokryjeme nejčastěji sítítrojúhelníku (2D úloha) nebo čtyřstěnů (3D úloha)
• vektorové rychlostní pole (a tlak, hustotu, teplotu apod.)počítáme jen ve vrcholech sítě
• sít’ by se měla skládat s přibližně rovnostrannýchtrojúhelníků resp. čtyřstěnů
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Prostorová adaptivita
• chyba numerické aproximace závisí na jemnosti sítě• pomocí aposteriorních odhadů chyb lze přesně
napočítat chybu aproximace v daném místě• sít’ je pak možné zjemnit jen v místech s velkou chybou
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Prostorová diskretizace
V numerické matematice jsou nejčastěji používanénásledující metody:
• metoda konečných diferencí• metoda konečných objemů• metoda konečných prvků
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Metoda konečných diferencí
• patří mezi nejjednodušší metody• těžko se implementuje na nestrukturovaných sítích• pro řešení N.-S. rovnic není příliš vhodná
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Metoda konečných objemů
• byla navržena speciálně pro rovnice popisující proudění• aproximuje přímo toky různých veličin mezi jednotlivými
objemy• dává dobré výsledky• je náročnější na analýzu výsledných numerických
schémat
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Metoda konečných prvků
• je nejnáročnější na pochopení• řeší slabou formulaci úloh• je velice dobře zmatematizována, což usnadňuje
analýzu výsledných numerických schémat• ve své základní podobě nedává dobré výsledky (nebyla
navržena pro proudění)• stále probíhá aktivní výzkum, jak aplikovat tuto metodu
na problémy proudění• v současnosti patří mezi nejoblíbenější metody
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Metoda konečných prvků
Prof. Ing. Dr. Ivo Babuška DrSc. (* 22. března 1926, Praha)
„Will you sign the blueprint?“
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Řešení soustavy algebraickýchrovnic
• numerická diskretizace převede PDR na systémalgebraických rovnic.
• pokud nejsou lineární, provede se linearizace např.pomocí Newtonovy metody
• výsledkem je soustava s řídkou maticí
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Řešení soustavy lineárníchrovnic
• pro efektivní řešení je potřeba využít řídkou strukturu• lze použít přímé nebo iterativní řešiče
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Přímé řešiče
• jsou založeny na Gaussově eliminaci• při výpočtu LU rozkladu vznikají nové nenulové prvky
• jen mezi prvním a posledním nenulovým prvkem vřádku
• počet nových nenulových prvků lze snížit vhodnýmpřeuspořádáním matice
• Minimal Degree Ordering (Approximate Minimal DegreeOrdering) - teorie grafů
• i tak nejsou přímé řešiče vhodné pro 3D úlohy• momentálně asi nejlepší přímé řešiče jsou UMFPACK
nebo PARADISO
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Iterativní řešiče
• stacionární metody jako Gauss-Seidel nebo SORnejsou moc efektivní
• metody Krylovových podprostorů• CG, BiCG, BiCGStab, TFQMRES, GMRES
• jsou efektivnější, ale ne o moc• matice má podmínění ≈ 1/h2
• s jemnější sítí máme nejen větší matici, ale musímedělat více iterací
• pro jejich urychlení se používá vhodné předpodmínění
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Předpodmínění
Místo úlohy
Ax = b,
řešíme úlohu
MAx =Mb,
kdeM ≈ A−1. MA je pak lépe podmíněná.
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Neúplný LU rozklad
• jde o velmi účinné předpodmínění• počítá se běžný LU rozklad, ale malé prvky se nulují,
aby nedocházelo k zaplnění• v kombinaci s GMRES jde o velmi oblíbený a robustní
řešič• bohužel na naši úlohu není příliš efektivní• je to proto, že řešíme sedlovou úlohu, tj. matice má
kladná i záporná vl. čísla• běžné metody zde selhávají
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Multigridní techniky
• geometrický multigrid je postaven na Gauss-Seidelověmetodě
• lze ukázat, že tato metoda rychle vyhlazuje vysokéfrekvence rezidua, ale pomalu ty nízké
• nízké se proto vyhlazují na hrubších sítích, kde sestávají relativně vysokými, vůči velikosti oka sítě
• sestrojíme hierarchii sítí a provádíme projekce úlohy zjedné sítě na druhou
• multigrid velmi významně urychluje konvergenci• počet iterací nezávisí na h• jde asi o nejefektivnější metodu pro řešení lineárních
soustav spojených s PDR• hlavní nevýhodou je, že hodně závisí na řešené úloze a
je náročný na implementaci
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Algebraický multigrid
• snaží se napodobit geometrický multigrid bez nutnostivíce sítí
• je postaven pouze na znalosti matice a ne úlohysamotné
• fungoval by více jako blackbox, ale tyto metody sezatím jen rozvíjejí
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Řešiče pro sedlové úlohy
Náš lineární systém Ax = b lze zapsat blokově takto:(A BT
B −C
)(up
)=
(fg
)
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Schurův doplněk
Násobíme první řádek A−1(I A−1BT
B −C
)(up
)=
(g
A−1f
)Odečteme B-násobek prvního řádku od druhého:
(I A−1BT
0 −(C + BA−1BT
) )( up
)=
(A−1f
g − BA−1f
)
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Schurův doplněk
Označíme S = C + BA−1BT a řešíme soustavu:
Sp = BA−1f − g.
Je-li řešení rovno p∗, pokračujeme se systémem
Au = f − BT p∗
tj.
u = A−1(
f − BT p∗)
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Schurův doplněk
• pokud bychom měli A−1 uložené explicitně, výpočet byse výrazně zjednodušil
• to většinou nemáme, ale i tak jde o efektivnější postupnež použití obyčejného řešiče
• ve skutečnosti jde o to, že se nejprve napočítá tlak, apotom rychlost
• to dělali inženýři i bez znalosti Schurova doplňku
• výpočet A−1 většinou nahrazujeme iterativním řešičemse známou pravou stranou
• k tomu lze s výhodou využít multigrid
• pro sedlové úlohy existuje řada efektivníchpředpodmínění založených na blokové struktuře
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Modelování turbulencí pomocíDNS
• jedna z možností, jak simulovat turbulentní proudění jetzv. Direct Numerical Simulation
• N.-S. rovnice se "pouze" řeší na dostatečně jemné síti• dnes dokážeme počítat s řádově 109 − 1010 stupni
volnosti (DOF)• DNS pro reálné výpočty vyžaduje až 1020 stupňů
volnosti• to zřejmě nebude nikdy možné
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Modelování turbulencí pomocíDNS
• turbulentní víry mají význam disipace kinetické energie• pokud je nejsme schopni zachytit, energie se kumuluje
a řešení je až moc divoké• v současnosti se zkoumají možnosti, jak simulovat
turbulence na hrubších sítích• LES - large eddy simulation• k − � model• ...
• i tak ale potřebujeme být schopni řešit N.-S. rovnice smnohem větší přesností na jemnějších sítích
• to lze jen s pomocí paralelizace
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Paralelizace
Paralelizace řešičů pro CFD je poměrně komplikovaná:
• iterativní řešiče jsou omezovány datovou propustností,vícejádrové procesory příliš nepomáhají
• ILU předpodmínění prakticky nelze paralelizovat• Gauss-Seidelova metoda použitá v multigridu je též
netriviální pro paralelizaci• paralelizace na architekturách s distribuovanou pamětí
(klastry nebo superpočítače) je náročná a pro N.-S.rovnice stále nevyřešená
• doposud neumíme efektivně využít řádově 100 000jader pro řešení N.-S. rovnic
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Domain decomposition
Používá se pro výpočty na architekturách s distribuovanoupamětí
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Domain decomposition
A1 C14
A2 C24A3 C34
C41 C42 C43 C44
x1x2x3x4
=
b1b2b3b4
I A−11 C14I A−12 C24
I A−13 C34C41 C42 C43 C44
x1x2x3x4
=
A−11 b1A−12 b2A−13 b3
b4
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Domain decomposition
I A−11 C14
I A−12 C24I A−13 C34
S
x1x2x3x4
=
A−11 b1A−12 b2A−13 b3
d
kde
S = C44 − C41A−11 C14 − C42A−12 C24 − C43A
−13 C34
d = b4 − C41A−11 b1 − C42A−12 b2 − C43A
−13 b3
Výpočetnídynamika
tekutin (Com-putational
FluidDynamics)
TomášOberhuber
Aplikace CFD
Matematickáformulace
Numerickáaproximace
Domain decomposition
• pro dobrou efektivitu je potřeba mít dobrépředpodmínění pro Sx4 = d
• např. metoda BDDC ale existuje jen pro Stokesovuúlohu, ne pro N.-S.
Aplikace CFDMatematická formulaceNumerická aproximace