Computational & Technology Resources
an online resource for computational,
engineering & technology publications
Civil-Comp Proceedings
ISSN 1759-3433
CCP: 94
PROCEEDINGS OF THE SEVENTH INTERNATIONAL CONFERENCE ON ENGINEERING COMPUTATIONAL TECHNOLOGY
Edited by:
Paper 68

Moderate Use of Object Oriented Programming for Scientific Computing

T. Koudelka, T. Krejcí and J. Kruis

Department of Mechanics, Faculty of Civil Engineering, Czech Technical University in Prague, Czech Republic

Full Bibliographic Reference for this paper
, "Moderate Use of Object Oriented Programming for Scientific Computing", in , (Editors), "Proceedings of the Seventh International Conference on Engineering Computational Technology", Civil-Comp Press, Stirlingshire, UK, Paper 68, 2010. doi:10.4203/ccp.94.68
Keywords: object-oriented programming, C++, finite element method, open source code, code portability, SIFEL, MEFEL, TRFEL, METR.

Summary
Engineering and scientific computing is based on different programming languages. The procedural FORTRAN language still remains one of the most popular languages for engineering problems but many object oriented languages have been proposed during the last two decades. From these object oriented languages, C++ is the most popular.

This contribution describes our experience with the development of the large engineering computer code SIFEL [1] which is intended for solving engineering problems using the finite element method. The development of the code was motivated by the European research project MAECENAS which dealt with the assessment of the properties of reactor vessels of nuclear power plants at the end of their service life. Several European universities (Glasgow, Nantes, Padova, Prague and Sheffield) participated in this project and they determined the following requirements for the new software code:

  • Portability of the code: The universities had different hardware and software equipment.
  • Simple programming techniques: The codes should be comprehensible for all team members as well as for new participants.
  • Speed of code: The programming language should be compiled (FORTRAN, C++) rather than interpreted (Java).
With respect to the above requirements, the C++ language has been selected. Practical experience shows that in this case, the extensive usage of inheritance and polymorphism can lead to problems with the comprehensibility of the code for users as well as the usage of some tools like the Standard Template Library (STL) can lead to portability problems. On the other hand, encapsulation of the code has been found advantageous. Similar conclusions about object oriented programming can be found in [2].

The paper documents the most important classes and objects in the developed software. Example of data storage and data access is given for a hydro-thermo-mechanical problem. This problem is also used for description of extensibility of the code.

The program SIFEL was used for analysis of several real world engineering problems. The reactor vessel of the nuclear power plant at Hinkley (UK) was the first complex problem solved. A similar problem was solved for the containment of the Czech nuclear power plant at Temelín. Heterogeneous rock slope stability and watertightness of concrete foundation slabs represents another kind of engineering problem solved using SIFEL. More details about the real world engineering problems analysed can be found in [3].

References
1
SIFEL, http://cml/fsv/cvut.cz/~SIFEL
2
"Mozilla.org C Portability Guide", URL
3
J. Kruis, T. Koudelka, Z. Bittnar, M. Petkovski, "Hygro-Thermo-Mechanical Analysis of a Nuclear Power Plant Prestressed Concrete Reactor Vessel", in B.H.V. Topping, (Editor), "Proceedings of the Tenth International Conference on Civil, Structural and Environmental Engineering Computing", Civil-Comp Press, Stirlingshire, UK, Paper 176, 2005. doi:10.4203/ccp.81.176

purchase the full-text of this paper (price £20)

go to the previous paper
go to the next paper
return to the table of contents
return to the book description
purchase this book (price £125 +P&P)