12.07.2015 Aufrufe

Handout - TU Berlin

Handout - TU Berlin

Handout - TU Berlin

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

VortragLösen von partiellen Differentialgleichungenmit derFinite Differenzen Methode (FDM)Implemetierung in PASCALvonMartin Marmulla20051. Problemstellung/Zusammenfassung Finite Differenzen Methode2. Gleichungen3. Programmaufbau4. Probleme/Fehler5. Zusammenfassung6. Quellen1. Problemstellung/Zusammenfassung Finite Differenzen Methodedu x ,tMan möchte partielle Differentialgleichungen der Form = x ,t lösen.dtNumerisch relativ zu behandeln sind gewöhnliche Differentialgleichungendut=t ,u ,..dtDie Näherungslösung mit dem Eulerverfahren 1.Ordung lautet utt=utt ,u ,..tDie Idee ist also, dass man u(x,t) in an vielen Stellen betrachtet und an diesen Stellen gewöhnlicheDifferentialgleichungen löst, also u x ,tt=u x ,t x ,t ,u ,..t für diskretes xDie in enthaltenen Differentiale werden, wegen des diskretisierten x , durch Differenzenersetzt.Tabelle 1 Zentrale Differenzen QuotientenDifferentialgleichungen höherer Ordnung schreibt man in ein System von DGL's 1.Ordnung um.Ein grundsätzliches Problem was bei der Diskretisierung auftritt, ist dass aufgrund der begrenztenAnzahl der Stützstellen immer Randpunkte existieren. Man muss sich also um Randbedingungenimmer Gedanken machen, selbst wenn das untersuchte Problem gar kein Randwertproblem enthält.z.B. Wellengleichung, Schrödingergleichung.


2. GleichungenDie Finite Differenzen Methode soll nun in PASCAL implementiert werden. Dazu werden einigeGleichungen mit verschiedenen Randbedingungen eingeführt:d²u d²u1.Wellengleichung =k x , y⋅dt² dx² d²u mit u=0 auf dem Randdy²du d²u2.Wärmeleitungsgleichung =k⋅dt dx² d²u q x , y mit Dirichletbed. und Neumannbed.dy²3.Wärmeleitungsgleichung für verschiedene Materialiendudt = k x , y d²u⋅[ x , y⋅c x , y dx² d²u dudy² dx ⋅dk dx dudy ⋅dk q x , y]dymit Dirichletrandbedingungen4. Stationäre Wärmegleichungd²udx² d²u =−q x , y mit Dirichletranddy²ausser für 3. werden die Anfangszustände auf u(x,y)=const. gesetzt. Man wird dann mit der Mausselbst manipulieren können.Bei den Wärmegleichungen wird entscheidend sein, wie das q(x,y) gesetzt wird.3. ProgrammaufbauDas Programm ist recht umfangreich geworden. Möchte man nur ein spezielles Problem lösen undwill die Ausgabe nur in eine Datei geschrieben bekommen, so dürfte der Quelltext erheblich kürzerwerden. Das Programm enthält folgende Elemente- Feldein/ausgabe-Prozeduren- Definition der Finiten Differenzen- Eingabe der verschiedenen Gleichungen mit verschiedenenen Rand-und Anfangsbedingungen- Ein/Ausgabe-Routinen- HauptschleifeDie Behandlung der Stationären Wärmeleitungsgleichung ist in der Includedatei statwgl1.incausgelagert.Der Quelltext ist kommentiert. Weitere Erklärungen findet man dort.4. Probleme/FehlerBesondere Probleme bei der Implementierung der zeitabhängigen Gleichungen traten nicht auf. DieStationäre Wärmegleichung war nicht ganz einfach zu implementieren, daher ist sie auchausgelagert. Das Problem ist, dass es aus vielen Teilproblemen besteht: wie sieht die Matrix mitRandbedingungen aus? Wie löst und speichert man so eine riesige Matrix? Zudem war es wichtigständig zu testen; da so eine LR-Zerlegung teilweise Minuten dauern kann, war dies nicht immereinfach. Daher habe ich diesen Algorithmus zunächst mit einem anderen Programm geschrieben,welches mit kleineren Matrizen umgehen konnte. Dort kam dann die Erkenntnis, dass währendeiner Zerlegung die Bandmatrix keine Elemente ausserhalb der Bänder erhält, was einekomprimierte Speicherung erst ermöglicht.Zudem sind da einige Merkwürdigkeiten bei der Stationären Wärmeleitung, die aber nichts mit derMethode zu tun haben. Bespielsweise lässt sich die Gleichung nicht für Felder die grösser sind als60x60 nicht lösen. Das Programm begründet dabei den Abbruch mit zu wenig Speicherplatz.Allerdings ist eigentlich noch genug RAM frei, womöglich liegt dies an der Speichersegmentierung,also dass nicht mehr genügend grosse Blöcke reserviert werden können.


Der Algorithmus der Zeitentwicklung ist nicht rückwärtsstabil. Beobachten lässt sich dies anhandder Wellengleichung. Man erzeugt eine Welle und lässt dieseeine Weile laufen. Nach einer grossen Anzahl vonZeitschritten invertiert man dann die Amplitude, behält aberdie erste zeitliche Ableitung bei. Die Wellengleichung wirdweiter berechnet. Man kann zunächst nicht erkennen dasssich die Welle zurückentwickelt, dies wird erst sichtbar wennnur noch ca. 4 Reflektionen vorhanden sind.Zunächst scheint esdann auch so, als obdie Welle dann wieder in ihren Anfangszustand zurückgeht.Erhöht man jedoch den Skalenfaktor, so ist im ganzen Feldein Rauschen verteilt, dessen Amplitude sich hier etwa imBereich von 10^-2 bis 10^-3 von der Maximalamplitudebewegt. Wäre die Berechnung rückwärtsstabil dann gäbe esdieses Rauschen nicht.Ein anderes Phänomenen, das bis jetzt nur bei den Wärmeleitungsgleichungen augetreten ist, ist dieMöglichkeit des Divergierens der Lösung. Dies geschieht jedoch auf eine eigenartige Weise:Wählt man die Zeitschitte zu gross oder denGitterabstand zu klein, so gibt es einen kleinenParameterbereich in dem man die Divergenz nochbeobachten kann. Dabei teilt sich scheinbar dieLösung in zwei Lösungen auf, wobei die eine nachoben und die andere nach unten verschwindet. Diesebeiden Lösungen (hier im Querschnitt zu sehen) sindjedoch nicht an feste Stützstellen gebunden, sondernalternieren zwischen den Zeitschitten, d.h. Ein Punktder einen positiven Wert hat, hat im nächstenZeitschritt einen negativen Wert und andersherum.Die beiden Kurven, durch jeden zweiten Punkt definiert, scheinen jedoch einen klaren Verlauf zuhaben. Überlässt man die Berechnung sich selbst, dann werden die Werte irgendwann so gross, dassdas Programm mit einem Laufzeitfehler bei der Gleitkommaberechnung abbricht. Greift man jdeochein und macht den Zeitschritt wieder kleiner, so entwickeln sich beide Lösungen ab einem gewissenPunkt (hier dt~0.0650) wieder in eine korekte Lösung zurück. Eine richtige Erklärung habe ichhierfür nicht, ich dachte eigentlich auch, dass diese Phänomenen nur im Zusammenhang mit derersten Ortsableitung auftreten kann, da bei dessen finiter Differenz der Wert an einer Stelle für dieBerechnung keine Rolle spielt und es somit möglich scheint, dass an jeden zweiten Punkt eineandere Lösung entsteht, die unabhängig von den Punkten dazwischen ist. Dabei alternieren dieLösungen jedoch nicht. Was festzustellen ist: Wenn einem das FDM-Programm gleich nach demStart abstürzt, dann sollte man, den Zeitschritt zunächst einmal drastisch verringern, da diesesDivergieren sehr schnell gehen kann und somit nicht immer beobachtbar ist.Die Lösungen können auch divergieren wenn, wie in der modifizierten Wärmegleichung, zu grosseSprünge in den Materialkonstanten vorkommen.Ein drittes Problem, das mir im Zusammenhang mit den Wärmegleichung aufgefallen ist, ist dassman nicht unterschiedliche Finite Differenzen verwenden soll. Ich tat dies bei Neumannrändern miteiner Rückwärtigen Differenz aus 4 Stützstellen. In der Funktion „LapT“ ist sie auskommentiert.Diese hätte die Eigenschaft gehabt zu isolieren. Wenn man jdeoch geschickt in Randnähe dieTemperatur erhöht, dann kann man zunächst beobachten, wie die Temperatur auf dem Rand immerein wenig schneller einen Wert annimmt, als man es vielleicht erwartet, dann jedoch fängt der Randplötzlich an, selbstständig die Temperatur zu erhöhen.


5. ZusammenfassungDer Vorteil der FDM ist, dass Gleichungen ohne grossartige Umformungen direkt in das Programmeingegeben werden können. Leider treten Fehler auf, deren Ursache mit leider nicht bekannt ist. Hatman jedoch, wie hier, eine Visualisierung zur Hand, so lassen sich bestimmte Fehler erkennen unddurch Parameterveränderungen korrigieren.Ein Nachteil der FDM ist, dass die Differenzen nur für Rechteckige Gitternetze definiert sind.Runde Formen erhält man daher nur durch Weglassen von eigentlich notwendigen Gitterpunkten,was das ganze schwierig macht.6. Quellen:(1) http://hodgson.pi.tu-berlin.de/Lehre/tfd_skript/Main.htmlNumerische Methoden der ThermoundFluiddynamik von T. Rung, L. Xue, J. Yan, M. Schatz, F. Thiele zweite erweiterte Auflage2000(2) http://www.math.tu-berlin.de/numerik/mt/NumMat/Lehre/Skripte/pm1.pdf PraktischeMathematik I von Volker Mehrmann(3) http://www.math.tu-berlin.de/~bolle/lectures/pde/main.pdf.gz Numerik PartiellerDifferentialgleichungenvon Matthias Bollhöfer

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!