Computational & Technology Resources
an online resource for computational,
engineering & technology publications
PROCEEDINGS OF THE THIRD INTERNATIONAL CONFERENCE ON ENGINEERING COMPUTATIONAL TECHNOLOGY
Edited by: B.H.V. Topping and Z. Bittnar
Developing Extendable Component-Oriented Finite Element Software
Faculty of Civil and Geodetic Engineering, University of Ljubljana, Slovenia
M. Dolenc, "Developing Extendable Component-Oriented Finite Element Software", in B.H.V. Topping, Z. Bittnar, (Editors), "Proceedings of the Third International Conference on Engineering Computational Technology", Civil-Comp Press, Stirlingshire, UK, Paper 8, 2002. doi:10.4203/ccp.76.8
Keywords: component-oriented software development, finite element method, component object model, extendible markup language, object-oriented programming, C++, engineering software.
Finite element programs are being constantly customized, upgraded and extended. This is especially true for research environments where, for example, new types of finite elements and solution algorithms are being researched and developed. A research-oriented finite element program should therefore have two basic properties:
In the last decade, a lot of research work (Zimmermann et al. , Adeli et al. , Archer et al. ) was performed in the field of object-oriented development of programs for structural analysis using the finite element method. Researchers showed that the object-oriented programming technique can greatly improve the implementation efficiency, extendibility and ease of maintenance of large engineering software. While this is certainly true, developers are still required to modify the source code of the program they want to extend. This can lead to multiple, possible incompatible, versions of the same program. Developers are also limited by the choice of programming languages and development tools. To solve the problems of software distribution and to enable the development of extendable software solutions, programs must be component-oriented, where independent software components are used.
In the first part of the paper an overview of component-oriented software development is briefly presented. The component-oriented software development focuses on building large software systems by integrating previously-existing software components. By enhancing flexibility and maintainability of systems, this approach can potentially be used to reduce software development costs, assemble systems rapidly, and reduce the spiraling maintenance burden associated with the support and the upgrade of large systems.
To demonstrate that component-oriented software development can be applied to the development of finite element software systems, a prototype program for structural analysis using the finite element method, described in the second part of the paper, was implemented. The implementation of the prototype is completely based on the Component object model (COM)  that enables development of modular, object-oriented, customizable and upgradable, distributed programming systems using a number of different programming languages. While presented CoFFEE system was designed and build from the ground up to support component-oriented software development (CoFFEE ), existing finite element software systems could also be redesigned to enable component-oriented software development, where only selected parts of the systems would be re-implemented as software components (for example solvers, finite element types, ...). To enable input and output data reuse in different programs, the Extensible Markup Language (XML) format was used for all input and output files of the CoFFEE system. Because XML is text based and has well defined format, XML files can easily be processed and converted, using standard programming tools, to required formats for use in different software systems.
The use of the component object model COM for the development of the programming system for structural analysis using the finite element method has fulfilled all expectations. While relatively difficult to use, it does enable the development of extendable programming systems, what is especially important for research-oriented software programs.
purchase the full-text of this paper (price £20)