Computational & Technology Resources
an online resource for computational,
engineering & technology publications
Computational Science, Engineering & Technology Series
ISSN 1759-3158
CSETS: 15
INNOVATION IN ENGINEERING COMPUTATIONAL TECHNOLOGY
Edited by: B.H.V. Topping, G. Montero, R. Montenegro
Chapter 3

High Abstraction Level Frameworks for the Next Decade in Computational Mechanics

D. Eyheramendy

ICJ/CDCSP, Claude Bernard University Lyon 1, Villeurbanne, France
LaMCoS, INSA de Lyon, Villeurbanne, France

Full Bibliographic Reference for this chapter
D. Eyheramendy, "High Abstraction Level Frameworks for the Next Decade in Computational Mechanics", in B.H.V. Topping, G. Montero, R. Montenegro, (Editors), "Innovation in Engineering Computational Technology", Saxe-Coburg Publications, Stirlingshire, UK, Chapter 3, pp 41-61, 2006. doi:10.4203/csets.15.3
Keywords: finite elements, object-oriented programming, Java, parallel computing, symbolic computing.

Summary
This paper aims to investigate the different tracks open to design future computational frameworks in mechanics and related disciplines. More and more computational mechanics applications consider strongly coupled multi-physics, multi-scale problems. At the same time, access to multi-processor architectures has been made easier thanks, firstly, to the decreasing price of hardware, and secondly to the development of networks which permit users to associate heterogeneous hardware systems. It is of high priority to design environments capable of handling this multiple complexity.

Various high-level programming environments have been helpful in the management of code complexity. Among them, object-oriented programming (OOP) has been applied to the finite element method for more than fifteen years (for example see [1] and its references). In the beginning, the approach brought new code organization, mainly based on data encapsulation and the inheritance mechanism. From a practical point of view, several languages were used: C++, CTalk, Smalltalk, Ada, and, more recently, Java. OOP still remains an active and promising domain in the design of complex numerical codes [2].

Today, symbolic frameworks represent a very promising alternative for bringing modularity in the design of computational schemes. This kind of approach, little investigated until now, offers the main advantage of allowing the front-end user to adapt the computational tool to their own problem, which is a very important feature in relation to the increased variety and complexity of models developed today (e.g. see [3,4]).

At last the integration of computational tools over networks, to access either shared computational hardware (distributed or/and parallel computing) or shared software resources, is possible (e.g. see [2,5]).

OOP is presented as the key point for fulfilling the requirements to design modern tools and a brief analysis of OOP since its origin permits us to justify the points mentioned in this paper. The use of symbolic concepts in the design of finite element code is advocated to speed up developments and to bring generality to codes. Roughly speaking, it is better to introduce into a finite element code a new class of methods that just a formulation for a given problem. The crucial point of code structure is then discussed. An adequate choice of programming language, here Java rather than traditional C++, offers richer code structuring capabilities. An example of development for J2 plasticity illustrates this point. The use of existing classes in a Java framework is shown on different parallel computing applications. Programming using a single concept and language, i.e. without using external libraries, should simplify the development of finite element code. The cyber infrastructure is today an important feature. We have presented a natural means of integrating a Java finite code over the Internet. The different tracks presented and illustrated in this paper are, from our point of view, of great relevance. The choice of the Java language made here to illustrate advanced structuring of code remains, of course, controversial. However, it is quite certain that the next generation of programming tools will be based on similar concepts.

References
1
Y. Dubois-Pelerin and Th. Zimmermann, "Object-oriented finite element programming: III - An efficient implementation in C++", Computer Methods Appl. Mech. Eng. 108/2 165-183, 1993. doi:10.1016/0045-7825(93)90159-U
2
D. Eyheramendy, "Java for Nonlinear Computational Mechanics: An Initial Approach to Handle Complexity", NATO Advance research workshop, Bled, Slovenia, 2004. doi:xxxxx
3
D. Eyheramendy, "An object-oriented hybrid Symbolic/Numerical Approach for the Development of Finite Element Codes", Finite Element Analysis and Design, 36, 315-334, 2000. doi:10.1016/S0168-874X(00)00038-X
4
D. Eyheramendy and Th. Zimmermann, "Object-oriented finite elements: IV. Application of symbolic derivations and automatic programming to nonlinear formulations", Computer Methods in Applied Mechanics and Engineering, 190, 2729-2751, 2001. doi:10.1016/S0045-7825(00)00261-9
5
W.B. VanderHeyden, E.D. Dendy and N.T. Padial-Collins, "CartaBlanca-a pure-Java, component-based systems simulation tool for coupled nonlinear physics on unstructured grids-an update", Concurrency and Computation: Practice and Experience 15 431-458, 2003. doi:10.1002/cpe.662

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

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