Introduction

During the last decades engineering community has been facing a rapid development in many related fields. Also the recent progress in computer technology allows the practical use of many advanced, complex, and large FE models. Due to these facts, the necessity for a suitable FEM computation environment is evident. An analyst or researcher naturally wants to work with code which is easily extensible towards future demands, easily maintainable, but still efficient and portable across many platforms.

Generally, there are two main groups of existing programs. The first group consists of commercial products available on the market. These codes are offering wide functionality including many different analysis procedures, wide element libraries and are often provided with pre- and post- processing tools. Despite these facts, these packages are designated mainly to end users in design offices, providing excellent tools for standard types of analyses. The main disadvantage is their very limited or even impossible extensibility. Usually a set of user defined subroutines is provided. By using these subroutines, the addition of a new element type or the introduction of a new constitutive laws is theoretically possible. Nevertheless, the extension to a new analysis type or the extension to a principally new material model with required history variables can be hardly possible. Therefore, these programs are oriented towards practical computations, rather than to the research engineering community. The second group of available programs is represented by programs distributed with source codes. In-house programs as well as many free- and share-ware programs were analysed and tested to determine whether they fulfilled required needs. They usually proved to be entirely inmodular or very poorly modular. Extensibility, primarily of interest to a researcher, is enabled due to existence of source code, but it is extremely time consuming and error prone due to unclear data structure or bad program design. This is further complicated by missing or insufficient documentation. Also, as a consequence of poor modularity, the distributed software development within a team is hardly possible.

Due to the aforementioned facts, a new general FEM kernel has been designed and developed with several modules being built on its top. The kernel provides the basic common services and data structures. Particular modules are designed to implement analysis specific parts by extending and specializing the basic kernel structure represented by its services and data structures. The module must provide problem formulation, numerical algorithms, finite elements and other necessary components for a specific analysis. At the very beginning, the following project goals were formulated:

Borek Patzak 2013-03-10