Published in Archives of Computational Methods in Engineering, Vol. 17 (3), pp 253-297, 2010
The objective of this work is to describe the design and implementation of a framework for building multi-disciplinary finite element programs. The main goals are generality, reusability, extendibility, good performance and memory efficiency. Another objective is preparing the code structure for team development to ensure the easy collaboration of experts in different fields in the development of multi-disciplinary applications.
Kratos, the framework described in this work, contains several tools for the easy implementation of finite element applications and also provides a common platform for the natural interaction of different applications. To achieve this, an innovative variable base interface is designed and implemented. This interface is used at different levels of abstraction and showed to be very clear and extendible. A very efficient and flexible data structure and an extensible IO are created to overcome difficulties in dealing with multi-disciplinary problems. Several other concepts in existing works are also collected and adapted to coupled problems. The use of an interpreter, of different data layouts and variable number of dofs per node are examples of such approach.
In order to minimize the possible conflicts arising in the development, a kernel and application approach is used. The code is structured in layers to reflect the working space of developers with different fields of expertise. Details are given on the approach chosen to increase performance and efficiency. Examples of application of Kratos to different multidisciplinary problems are presented in order to demonstrate the applicability and efficiency of the new object oriented environment.