Computational & Technology Resources
an online resource for computational,
engineering & technology publications
Civil-Comp Proceedings
ISSN 1759-3433
CCP: 89
PROCEEDINGS OF THE SIXTH INTERNATIONAL CONFERENCE ON ENGINEERING COMPUTATIONAL TECHNOLOGY
Edited by: M. Papadrakakis and B.H.V. Topping
Paper 93

Component-Oriented Distributed Finite Element Analysis

R.I. Mackie

Civil Engineering, School of Engineering, Physics and Mathematics, University of Dundee, United Kingdom

Full Bibliographic Reference for this paper
R.I. Mackie, "Component-Oriented Distributed Finite Element Analysis", in M. Papadrakakis, B.H.V. Topping, (Editors), "Proceedings of the Sixth International Conference on Engineering Computational Technology", Civil-Comp Press, Stirlingshire, UK, Paper 93, 2008. doi:10.4203/ccp.89.93
Keywords: distributed computing, finite element analysis, object-oriented, component-oriented design.

Summary
Object-oriented programming and design has become the dominant programming paradigm in many areas of computing, and a substantial amount of work has been devoted to applying object-oriented methods to finite element analysis in the last twenty years. Component-oriented design is related to object-oriented programming, and complements it. One of the key advantages of component oriented design is that it facilitates the separation of different aspects of a program, and can isolate areas of complexity. This paper focuses on two particular aspects: (i) deployment of components; and (ii) overall program design.

Three methods of deploying components in a distributed system are considered. The most basic approach is for the client and servers to have precisely the same assemblies, but there are drawbacks to this strategy, not least problems of maintenance. Interfaces allow other approaches to be used. One is for the client to know only about the interface of the objects that the server will implement. Then there is physical and logical separation of the implementation of the interface between the servers and the client. This reduces the maintenance issue, as the assemblies on the servers can be updated without the client needing to know anything about it. This approach also has commercial potential as a means of vendors supplying services. There could be some concern in some situations over the fact that the client would actually know nothing about the implementation of the interface. In deployment terms, this approach is probably best suited for a system distributed over the internet. However, an important advantage in program design terms is that the use of interfaces encourages complete separation of areas of complexity, and so leads to a more robust and flexible design.

A further alternative is to use a hosting approach. With this approach the servers initially do not know anything about the assemblies that will be used, but they do have the capacity to act as hosts to assemblies. The client program then sends copies of the required assemblies over to the host computer and the objects can be created on the host. The program design uses the component oriented aspects of the interface design. It gives the client total control, rather than delegating this to the servers, avoids the maintenance concerns of the basic approach, and allows the client to harness the additional power of using several computers.

With regard to overall program design, component orientation allows key areas of complexity, such as equation solution and mesh generation, to be isolated from each other. Modern computing environments require modern software engineering methods to be used in order for engineering computing to take full advantage of the available power. Component oriented design is one of the technologies that need to be used in this context.

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 £95 +P&P)