Computational abstractions for finite element programming

Jr. John Wesley Baugh · 1989

Finite element analysis programs are difficult to develop, maintain, and extend. Current implementations, measured in tens-of-thousands of lines of FORTRAN statements, have intricate control strategies, internal data representations, and computational algorithms. Attempts to deal with these aspects of finite element programs have generally emphasized implementation techniques and tools. An adequate solution to the complexity issues raised by large-scale numerical programs, however, goes well beyond that of adding new language features to FORTRAN, for example. The problems must be addressed early in the design process, where decisions about decomposition and organization establish the structure of the resulting program. This thesis considers the design and implementation of finite element programs based on identifying and separating levels of concern. Programs designed in this manner display a number of levels of detail, allowing developers to reason about program fragments in terms of abstract behavior instead of implementation. These program fragments are referred to as data abstractions, their abstract quality being derived from precise specifications of their behavior. The process of manipulating data abstractions to produce practical results raises control issues. While conventional imperative approaches may be used, alternatives such as functional and dataflow languages allow control algorithms to be expressed without overspecifying the order of evaluation. As a result, the concurrent aspects of an algorithm are clearly revealed. Both data and control issues are investigated for finite element programming. Using abstraction techniques, a library of finite element data types is designed and implemented. These abstractions include high-level modeling concepts, such as elements and nodes, as well as mathematical and numerical concepts, such as graphs and matrices. Object-oriented languages provide linguistic support for data abstraction, and are used to implement the library. Control algorithms are presented based on both imperative and dataflow models, the latter permitting coarse-grained parallelism in the finite element solution process. Examples of using and extending the resulting finite element program are also demonstrated.

Read the paper · More papers on PaperTik