Kurzfassung

Die Lösung partieller Differentialgleichungen mittels Diskretisierungsschemen und algebraischen Methoden bildet einen breiten Forschungszweig im Bereich des Scientific Computing. Gemeinsame Schnittstellen für die Beschreibung einzelner Gleichungen sind jedoch in ihrer Allgemeinheit ebenso wenig angedacht wie generelle Methoden für die Assemblierung von Gleichungssystemen. Trotz zahlreicher Versuche eine Allzweck-Simulationsumgebung zu schaffen, gibt es keine einheitliche Methodik, mit der verschiedene Diskretisierungsschemen austauschbar verwendet werden können. Weiters verlangt das Aufstellen von Gleichungssystemen viele untergeordnete Schritte, die im einzelnen schwierig und mühsam durchzuführen sind und eine hohe Fehlerrate nach sich ziehen. In vielen Fällen sind die daraus resultierenden Fehler schwer zu entdecken und zu beheben.

Das wesentliche Ziel dieser Arbeit ist es, die eingangs genannten Probleme zu lösen und eine Methodik zu entwickeln, mit welcher die Spezifikation diskretisierter Differentialglei-chungen durchgeführt werden kann, sowie Strukturen zur Behandlung von Gleichungen und für das Aufstellen von Gleichungssystemen bereitzustellen.

Ein allgemeines topologiebasiertes Konzept zur Beschreibung verschiedener Diskreti-sierungsschemen sowie eine gemeinsame Beschreibungssprache für die funktionale Beschreibung von diskreten Zusammenhängen wird entwickelt. Verschiedene Differentialgleichungen können mittels unterschiedlicher Diskretisierungsschemen mit demselben Formalismus beschrieben werden, welcher von der funktionalen Programmbibliothek Phoenix2 abgeleitet und im funktionalen Teil von GSSE implementiert ist. Darüber hinaus werden funktionale Operatoren zur Durchführung der Akkumulation von Summanden bereit-gestellt, welche die Summanden in benachbarten topologischen Elementen auswerten. Die Gesamtheit dieser Funktionen kann in beliebiger Kombination mittels einer in C++ eingebetten Sprache abgerufen und verwendet werden.

Für das Aufstellen von Gleichungen wird das Konzept von linearisierten Ausdrücken verwendet, welches einfach in den oben beschriebenen Formalismus eingebettet werden kann. Es werden Datenstrukturen verwendet, welche neben einem numerischen Wert die linearen Abhängigkeiten eines entsprechenden Ausdrucks nach einzelnen Variablen angeben. Dies ist sowohl für lineare als auch für nichtlineare Verfahren von Vorteil, wobei die Berechnung von Ableitungen, die bei der Linearisierung zwangsläufig ist, automatisch durchgeführt wird. Bei der Lösung von nichtlinearen Gleichungen können residuenbasierte und gradientenbasierte Verfahren verwendet werden. Eine weitere Schnittstelle für Eigenwert-gleichungen kann analog verwendet werden.

Michael 2008-01-16