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.

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.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!