ein kompakter und vektorisierter matlab code zur losung ... · pdf filex lab simulation matlab...

Post on 06-Feb-2018

219 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

x

SciComp

Lab

Labor fur ScientificCom

putingund

Simulation

MATLAB EXPO 2015 SciComp Lab, Hochschule Aschaffenburg, www.h-ab.de/SciComp

Ein kompakter und vektorisierter MATLABCode zur Losung der inkompressiblen Navier-Stokes GleichungenM. Kilgenstein, K. M. Kraenzel, S. Schuster, M. Stuhmer & J.-M. Sautter

Labor fur Scientific Computing und Simulation, Hochschule Aschaffenburg

Zusammenfassung

MATLAB bildet eine ideale Basis fur die Simulation von sowohl zeit-als auch ortsabhangigen Prozessen. Dazu zahlen auch inkompressibleviskose Stromungen, deren zeit- und ortsabhangiges Verhalten durchdie inkompressiblen Navier-Stokes Gleichungen beschrieben wird.

Der hier vorgestellte Code ermoglicht die Simulation zweidimensio-naler instationarer inkompressibler viskoser Stromungen. Um den Co-de schlank zu halten, erfolgt die Ortsdiskretisierung der Navier-StokesGleichungen mit finiten Differenzen. Dies ermoglicht insbesondere ei-ne weitgehend vektorisierte und auf den Starken von MATLAB basie-rende Implementierung. Die Zeitdiskretisierung erfolgt explizit in Ver-bindung mit einer Projektionsmethode. Zur Steigerung der Effizienzdes Codes wurden verschiedene direkte und iterative Verfahren ver-wendet und analysiert, wodurch die Simulationen drastisch beschleu-nigt werden konnten.

Der Code erlaubt derzeit verschiedene (orts- und zeitabhangige) Rand-bedingungen, verschiedene benutzerdefinierte Geometrien und bie-tet unterschiedliche Moglichkeiten der Visualisierung. Haupteinsatz-zweck des Codes ist die Ein- und Heranfuhrung von Bachelorstudie-renden ingenieurwissenschaftlicher Fachrichtungen an fortgeschritteneThemen und Fragestellungen aus dem Bereich des Computational En-gineering, des Scientific Computing und insbesondere auch aus demBereich der erneuerbaren Energien.

Einleitung

In vielen Bereichen der Natur- und Ingenieurwissenschaftenist die rechnergestutzte Entwicklung verschiedenster Applika-tionen Stand der Technik. Technische Fragestellungen werdendurch mathematische Modelle, meist Differentialgleichungen,beschrieben und dann zunachst am Computer simuliert und opti-miert. Im Falle der Simulation instationarer inkompressibler vis-koser Stromungen mussen dafur die Navier-Stokes Gleichungennumerisch gelost werden.

Allerdings gehort die numerische Simulation von Stromungenzweifelsohne nicht gerade zu den einfuhrenden Beispielen beider Lehre bzw. dem Erlernen numerischer Verfahren. Zwar gibtes diverse Spezialsoftware zur komfortablen Simulation vonStromungen, aber die Weiterentwicklung derartiger Softwarebleibt meist nur einem vergleichsweise kleinen Kreis von Spe-zialisten, meist Mathematikern, vorbehalten. Mithilfe von MAT-LAB konnen jedoch auch bereits im fortgeschrittenen ingenieur-wissenschaftlichen Bachelorstudium numerische Verfahren so-gar fur die Simulation von Stromungen selbststandig implemen-tiert, angewendet und analysiert werden. Mit klassischen Pro-grammiersprachen ware der Aufwand ungleich hoher und beider Verwendung von spezieller CFD-Software das Verstandnisnumerischer Verfahren wesentlich geringer.

Mathematisches Modell

Fur instationare Stromungen von inkompressiblen und viskosenFluiden in der Ebene lauten die Navier-Stokes Gleichungen

∂u

∂t+ (u · ∇)u = ν∆u−∇p (1a)

∇ · u = 0, (1b)

wobei u : R×R2→ R2 mit (t,x) 7→ u(t,x) das Geschwindig-keitsfeld bezeichnet, p : R×R2→ R den Druck und ν ∈ R diekinematische Viskositat. Dazu kommen noch Anfangsbedingun-gen sowie zeit- und ortsabhangige Randbedingungen (vgl. [5]).

Diskretisierung

Die Ortsdiskretisierung von (1) erfolgt mittels finiter Differen-zen. Dabei sind die Komponenten u und v der Fluidgeschwin-digkeit u sowie der Druck p auf jeweils versetzten Gittern defi-niert (siehe Abb. 1). Der Konvektionsterm wird mit der Donor-Cell-Methode stabilisiert (vgl. [1]). Insgesamt lassen sich durchdiese Vorgehensweise die im Ort diskretisierten Terme beson-ders einfach vektorisieren (vgl. [4]).

Die Zeitdiskretisierung erfolgt mit dem expliziten Euler-Ver-fahren und im Wesentlichen der Chorin’schen Projektions-methode. Der Druck p ist dabei in jedem Zeitschritt (unterBerucksichtigung der aktuellen Randbedingungen) als Losungeiner Poisson-Gleichung gegeben. Aus den vollstandig diskre-tisierten Impulsgleichungen (1a) kann schließlich das neue Ge-schwindigkeitsfeld berechnet werden.

pi,j pi+1,j

ui−1,j ui,j ui+1,j

vi,j−1

vi,j

vi+1,j−1

vi+1,j

Zelle (i, j) Zelle (i + 1, j)

i− 1 i i + 1 i + 2

j − 1

j

j + 1

Abb. 1: Ausschnitt des versetzten Gitters

Vektorisierung

Alle diskretisierten Terme konnen mittels Vektorisierung effizi-ent ausgewertet werden. Dies geschieht durch das ”Verschiebenvon Matrizen“. Fur das Beispiel[

∂2u

∂x2

]i,j

:=ui+1,j − 2ui,j + ui−1,j

(∆x)2

ist dies fur den einfachen Fall des klassischen Driven Cavi-ty Problems in Abb. 2 schematisch dargestellt. Das Verfahrenlasst sich jedoch auch auf komplizierte Geometrien erweitern(vgl. [3, 4]).

j = 1

j = 2

j = 3

...

jmax

jmax+1

jmax+2

i = 1 i = 2 i = 3 . . . imax imax+1 imax+2

Abb. 2: Vektorisierte Auswertung von[∂2u∂x2

]i,j

mittels ”Shift-Matrizen“

Beschleunigung

Als Teil der Stromungssimulation muss in jedem Zeitschritt einePoisson-Gleichung fur den Druck gelost werden:

∂2p(n+1)

∂x2+∂2p(n+1)

∂y2=

1

∆t

(∂u(n)

∂x+∂v(n)

∂y

)+∂F (n)

∂x+∂G(n)

∂y

Dies stellt den mit Abstand rechenintensivsten Teil der Simula-tion dar. Daher wurde die Effizienz unterschiedlicher Verfahrenzur Losung linearer Gleichungssysteme untersucht.

Ursprunglich wurde der MATLAB-Befehl mldivide zurLosung der Gleichungssysteme verwendet. Zur Beschleuni-gung wurde zunachst die LU- und dann auch die Cholesky-Zerlegung verwendet. Auf diese Weise konnte fur den Referenz-fall (vgl. [6]) eine Beschleunigung um 96,7% erzielt werden.

Um Speicherproblemen durch einen fill-in bei den direktenVerfahren entgegenzuwirken, wurde auch das iterative Verfah-ren der konjugierten Gradienten (CG-Verfahren) mit einer Un-terraumprojektion implementiert. In Abhangigkeit der gefor-derten Genauigkeit konnen damit enorme Beschleunigungenohne Speicherprobleme erzielt werden. Bezogen auf die LU-Zerlegung konnte die Berechnungsdauer im Referenzfall umweitere 25,4% reduziert werden (siehe Abb. 3).

mldivide LU CG0

10

Zei

tin

%

100

Abb. 3: Berechnungszeit der verschiedenen Losungsverfahren

Ergebnisse

Abb. 4: Geschwindigkeitsfeld einer Karman’schen Wirbelstraße (vgl. [2])

Abb. 5: Streichlinien einer Karman’schen Wirbelstraße (vgl. [2])

Abb. 6: Stufe mit Driven Cavity: Geschwindigkeitsfeld (vgl. [3])

Abb. 7: Stufe mit Driven Cavity: Stromlinien (vgl. [3])

(a) Geschwindigkeitsfeld (b) Stromlinien bei Zoom in die linkeuntere Ecke

Abb. 8: Klassisches Driven Cavity (vgl. [2])

Fazit

•Kompakter MATLAB Code

• Simulation verschiedener Stromungsprobleme durch Anpas-sung der Randbedingungen

• Beliebige Anzahl beliebig geformter Hindernisse

•Verschiedene Visualisierungstechniken

• Erhebliche Steigerung der Effizienz des Codes durch Verwen-dung des CG-Verfahrens

Ausblick

Der Code ist Work in Progress. Neben weiteren Simulations-beispielen, insbesondere solche mit freien Randern oder Mehr-phasenstromungen, sind auch weitere Verfahren zur Zeitdiskre-tisierung, insbesondere auch implizite Verfahren (mit und auchohne Projektionsmethode) geplant. Desweiteren ist geplant, dieOrtsdiskretisierung um die Methode der finiten Elemente zu er-weitern.

Literatur[1] GRIEBEL, M., DORNSEIFER T. und NEUNHOEFFER T.: Numerische Si-

mulation in der Stromungsmechanik. Vieweg Verlag, 1995.

[2] KILGENSTEIN, MARCEL: Untersuchung und Implementierung numeri-scher Verfahren zur Simulation von Stromungen. Projektdokumentation,Hochschule Aschaffenburg, 2015.

[3] KRAENZEL, KARL MARTIN: Simulation of a Backstep Flow with MAT-LAB. Bachelorarbeit, Hochschule Aschaffenburg, 2014.

[4] SAUTTER, J.-M.: Numerical Simulation in Fluid Dynamics. Thesis, Uni-versitat Tubingen, 1998.

[5] SCHUSTER, SIMONE: Implementierung verschiedenartiger Randbedin-gungen fur das Driven Cavity Problem. Bachelorarbeit, HochschuleAschaffenburg, 2014.

[6] STUHMER, MARLIES: Beschleunigung einer CFD-Simulation mithilfeeines iterativen Verfahrens. Bachelorarbeit, Hochschule Aschaffenburg,2015.

top related