Abstract

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.

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.

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. neighboring elements which fulfill a topological property. In contrast to available functional frameworks, non-local formulae can be evaluated. 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.

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.

Michael 2008-01-16