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 3
Finite Element Software Design for Today's Computers R.I. Mackie
Civil Engineering, School of Engineering, Physics and Mathematics, University of Dundee, United Kingdom R.I. Mackie, "Finite Element Software Design for Today's Computers", in M. Papadrakakis, B.H.V. Topping, (Editors), "Trends in Engineering Computational Technology", Saxe-Coburg Publications, Stirlingshire, UK, Chapter 3, pp 41-60, 2008. doi:10.4203/csets.20.3
Keywords: distributed computing, finite element analysis, object-oriented, parallel processing, component oriented.
Summary
Over the last fifty years computers have changed beyond measure. In recent years
changes have taken place which have important consequences for software design.
These are the increasing importance of distributed computing, and the prevalence of
multi-core computers. It is now the case that practically every new desktop and
notebook computer has a dual core processor, and quad core computers are available
at a modest price. The internet and local networks are of ever increasing importance,
with even home computers being networked together. In the past advantages could
be taken of developments in hardware almost automatically by the very fact that the
processors were faster and more memory was available, though of course software
developments were made as well. With these recent developments changes in
software design are essential in order to take full advantage of the new capabilities.
Parallel computing used to be a somewhat specialised area, but with multi-core
computers being commonplace this is no longer the case.
This paper will focus on software design issues relevant to this new environment, demonstrating how object and component oriented methods can be used to develop flexible software in the following areas:
Component oriented design is used to decouple the solver system from the finite element system. This means that development of either system can be carried out independently, and one can be changed without requiring changes in the other. The methods can be applied to domain decomposition solution methods and in a parallel manner. This enables advantage to be taken of multi-core processors and distributed systems. The component oriented design ensures that the logic of the system is blind to whether the solution is being carried out on the local computer, or using a remote server. The techniques are further applied to conjugate gradient solvers. A particular advantage here is that component oriented design enables pre-conditioners to be written in a "plug and play" manner. This means that design of pre-conditioners can be carried out independently from the rest of the solver framework. The advantages are particularly well demonstrated when considering the Schur complement approach. Finally, a high-level view of a complete system is given, showing how the various aspects fit together. It is believed that there are many advantages to be gained by using component oriented methods in designing scientific software for today's computing environment. purchase the full-text of this chapter (price £20)
go to the previous chapter |
|