Computational & Technology Resources
an online resource for computational,
engineering & technology publications |
|
Computational Science, Engineering & Technology Series
ISSN 1759-3158 CSETS: 20
TRENDS IN ENGINEERING COMPUTATIONAL TECHNOLOGY Edited by: M. Papadrakakis, B.H.V. Topping
Chapter 2
Object-Oriented Finite Elements: From Smalltalk to Java D. Eyheramendy1 and F. Oudin-Dardun2
1Ecole Centrale de Marseille - LMA, CNRS UPR7051, Marseille, France D. Eyheramendy, F. Oudin-Dardun, "Object-Oriented Finite Elements: From Smalltalk to Java", in M. Papadrakakis, B.H.V. Topping, (Editors), "Trends in Engineering Computational Technology", Saxe-Coburg Publications, Stirlingshire, UK, Chapter 2, pp 17-39, 2008. doi:10.4203/csets.20.2
Keywords: object-oriented programming, multiphysics, finite elements, nonlinear mechanics, parallel programming.
Summary
Since the middle of the 1980s, the object-oriented programming has been gaining
more and more attention in the computational mechanics community. Although the
most popular language used today is C++, several languages have been used since
the beginning of the object-oriented era. From an industrial point of view, this
choice remains crucial and beyond the technical problems, it may have tremendous
economic consequences. The choice of the programming language may have a
dramatic impact on the software architecture and cannot be considered as a simple
technical choice. The new problems that are to be solved in modern computational
mechanics involve more and more complex phenomena at different space and time
scales. This implies in general the growth of the size of the numerical problems to be
solved in this context. The use of parallel processing strategies that are to be
implemented on heterogeneous computer systems may be an answer to solve this
kind of problem. Despite the developments of both programming languages and
associated programming methodologies and tools, and high level commercial
computational tools (ABAQUS, Nastran, COMSOL,...), the development of a new
computational model in mechanics may still be tremendous. Roughly speaking,
commercial tools generally do not offer enough flexibility to introduce new complex
problems. Moreover, they are strongly system dependent (computer system,
operating system,...). We advocate that a global philosophy involving a single
programming paradigm in a complete environment capable of managing hardware
(memory, network, GUI,...) is needed to handle this global complexity. In this paper,
we address the problem of the development of computational tools from a global
point of view. A first problem in modern computational mechanics deals with
complexity of the problem to be solved: physical problem, mathematical
algorithms,... A second one is the complexity of the computer system on which the
code is implemented, including the networking aspects. The latter is essential for the
development of large scale simulation tools. Environments such as Java or C# (i.e.
.NET) bring a global answer to this multiple complexity. The object-oriented
programming has shown in the past its capability to deal with complexity. However,
additional features are needed to achieve reliability and generality in the
developments, e.g. to ensure portability on complex systems in the context of
parallel programming. The global approach proposed here offers both a high level
object-oriented programming language and high level libraries. Programming using
a single concept and language, i.e. without the requirement of external libraries or
tools, somehow simplifies the developments of finite element codes. The
homogeneity of codes guarantees a faster extension and easier portability typical in
the case of distributed computing. At last, the Internet may become in the near future
an important feature for the deployment of computational tools. The technologies
presented in this chapter offer a natural potential for the portability of computational
tools.
purchase the full-text of this chapter (price £20)
go to the previous chapter |
|