Computational & Technology Resources
an online resource for computational,
engineering & technology publications
Civil-Comp Proceedings
ISSN 1759-3433
CCP: 77
PROCEEDINGS OF THE NINTH INTERNATIONAL CONFERENCE ON CIVIL AND STRUCTURAL ENGINEERING COMPUTING
Edited by: B.H.V. Topping
Paper 136

Distributed Finite Element Analysis and the .NET Framework

R.I. Mackie

Civil Engineering Division, University of Dundee, UK

Full Bibliographic Reference for this paper
R.I. Mackie, "Distributed Finite Element Analysis and the .NET Framework", in B.H.V. Topping, (Editor), "Proceedings of the Ninth International Conference on Civil and Structural Engineering Computing", Civil-Comp Press, Stirlingshire, UK, Paper 136, 2003. doi:10.4203/ccp.77.136
Keywords: object-oriented programming, finite element analysis, distributed analysis, parallel computing, .NET.

Summary
The finite element method is probably the most widely used numerical method in engineering. From its first inception, availability of processing power has exerted a significant constraint on the problems that can be solved. As computing power has increased by many orders of magnitude over the decades, so the problems that can be addressed have greatly expanded. Even so, computing power is still a limitation, particularly with regard to three-dimensional, non-linear and dynamic problems. One of the technologies used to seek to overcome these problems has been the use of parallel processing. This has ranged from specialist super computers, through to clusters of workstations. In recent years the use of clusters of PC's has received increasing attention. Until recently this involved the use of software such as PVM of MPI to enable the computers to work together. Now distributed computing is increasingly becoming available on standard desktop operating systems, and this trend will accelerate rapidly with the recent advent of the Microsoft .NET framework.

A distributed finite element system is presented which represents the initial work of an ongoing project. The system builds upon an existing object-oriented finite element system [1]. The key feature of the existing system was the use of a distributed data structure, with nodes and elements being distributed around the model, rather than being held in central lists or arrays. This had already proved invaluable in the implementation of sub-structuring solution algorithms, and multi- threaded implementation, and this provided a solid foundation for the development of the existing system.

The system consisted of a client which was used to create the structural model. Several "drones" register on a Web Server, and these drones are responsible for calculations associated with individual sub-structures. The client queries the Web Server to discover how many drones are available, and then distributes the sub- structures around the available drones. The client and drones communicate on a peer-to-peer basis, and the calculations for the interface degrees of freedom are carried out on the client. Solution is carried out using a direct domain decomposition method [2].

In the current version communication is achieved using TCP and sockets, though the possibility of using remote objects will be investigated in the future. The model data consists of geometric data, sub-division data, applied loads etc. No node or element data needs to be sent as mesh generation is carried out by the drone, therefore data transfer is minimized.

The system was used on a cluster of 700 MHz machines with 128 Mb memory. Problems of various sizes were tested and for all but the smallest problems good speed-up was achieved.

The system was written in C#, a relatively new language developed specifically with the .NET framework in mind. Execution speed was compared with that produced by similar code written in C++. If "safe" code was used, then the execution times were longer for the C# code, but not excessively so. If "unsafe" code was used for key vector operations, then the C# code was faster than the C++ code. Though the range of tests was rather limited, it is concluded that there need be no serious execution time concerns over using C#.

References
1
Mackie, R.I., "Object oriented methods and finite element analysis", Saxe-Coburg Publications, Stirling, ISBN 1-874672-08-3, (2001).
2
Mackie, R.I., Implementation of Sub-structuring within an object-oriented framework, Advances in Engineering Software, 32(10-11), 1-10, (2001). doi:10.1016/S0965-9978(01)00026-6

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