Stadler, M. (2008). On the specification and the assembly of discretized differential equations [Dissertation, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2008.10851
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.<br />Das wesentliche Ziel dieser Arbeit ist es, die eingangs genannten Probleme zu lösen und eine Methodik zu entwickeln, mit welcher die Spezifikation diskretisierter Differentialgleichungen durchgeführt werden kann, sowie Strukturen zur Behandlung von Gleichungen und für das Aufstellen von Gleichungssystemen bereitzustellen.<br />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.<br />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.
de
The solution of partial differential equations using discretization schemes and algebraic methods is a very important topic of scientific computing, which lacks common interfaces for the description and the assembly of discretized differential equations. Even though many approaches towards a general purpose simulation environment have been implemented, an environment which enables the use of different discretization schemes is still lacking. Furthermore, the assembly of such equations requires many subsequent tasks which are error prone and cumbersome. Such errors are often hard to detect and only occur under certain circumstances.<br />The main aims of this thesis is to overcome the described difficulties and provide a method for the specification of discretized differential equations as well as structures for the assembly of algebraic equation systems.<br />A common topologically based framework for the specification of different discretization schemes is developed and a description of the functional specification layer for discrete and discretized equations is shown. Commonly used differential equations can be discretized using the provided framework. The basic features of the discrete formalism are derived from a given functional library Phoenix2 as well as the GSSE topological layer GDL. Furthermore, accumulation operations are introduced which enable the developer to calculate sums over, e.g.<br />neighboring elements which fulfill a topological property. In contrast to available functional frameworks, non-local formulae can be evaluated.<br />Therefore traversal operations can be used freely by the implementer and are not implicitly assumed by the functional framework. Due to a C++ domain specific embedded language, the formulation is concise and short.<br />For the assembly, a framework of linearized expressions is provided, that can be easily combined with the specification framework mentioned above. These data structures store linear dependences of the residual expressions specified for the discretization schemes. Therefore, the specification of the residuum with its linear dependences offers the possibility to assemble an equation system automatically, without calculating the derivatives of the residuum with respect to the single solution variables by hand. For the solution of nonlinear equation systems, gradient based methods can be employed easily and the linearization for each step is performed automatically. An interface for the treatment of eigenvalue equations can be used analogously.