Computational & Technology Resources
an online resource for computational,
engineering & technology publications |
|
Civil-Comp Proceedings
ISSN 1759-3433 CCP: 73
PROCEEDINGS OF THE EIGHTH INTERNATIONAL CONFERENCE ON CIVIL AND STRUCTURAL ENGINEERING COMPUTING Edited by: B.H.V. Topping
Paper 13
Efficient Object-Oriented Implementation of Boundary Element Software I.A. Jones, P. Wang, A.A. Becker, D. Chen and T.H. Hyde
School of Mechanical, Materials, Manufacturing Engineering and Management, University of Nottingham, United Kingdom I.A. Jones, P. Wang, A.A. Becker, D. Chen, T.H. Hyde, "Efficient Object-Oriented Implementation of Boundary Element Software", in B.H.V. Topping, (Editor), "Proceedings of the Eighth International Conference on Civil and Structural Engineering Computing", Civil-Comp Press, Stirlingshire, UK, Paper 13, 2001. doi:10.4203/ccp.73.13
Keywords: object-oriented programming, C++, boundary element method, photoelasticity.
Summary
This paper describes an experiment in the writing of an object-oriented boundary
element (BE) system intended to serve two substantially different purposes. One is
primarily a technology demonstrator illustrating perhaps the first truly object-
oriented boundary element system for the solution of solid mechanics problems to
find stresses etc. from a known set of tractions and boundary conditions. The second
purpose is the more specific task of finding the set of boundary conditions
(displacements and tractions) from a set of photoelastic data which relate to
principal stress difference (
) and
principal stress orientation at chosen interior
points, treating the situation as an inverse problem. Such an inverse BE system had
already been implemented in FORTRAN in a somewhat preliminary form as a
modified version of the BEACON procedural BE system [1].
The initial attempt [2] was to create a 'pure' object-oriented BE system using
objects and classes for all but the simplest data types. The object-oriented design
was refined using the class responsibility collaborators (CRC) [3] cards approach.
The resulting design has the specific feature of separating the model database from
the solution object and its sub-objects, and also enables different versions of the
"Model One of the key themes throughout this paper is to find the optimal point along the scale from purely procedural to thoroughly object-oriented implementation of engineering software. The present design deals with the OOP as the software development technique or tool. One of the hallmarks in this OOP design is that it is "just object-oriented enough, and not a bit more" [4].
The present design retains the overall framework as the previous approach, i.e. the
CModel The CBemAnalysis class is a BE analysis tool and houses the common numerical solvers as its member functions and the system equation matrices as its member data or attributes. The conventional (forward) BE analysis is encapsulated in a class derived from CBemAnalysis class and the inverse BE analysis is wrapped in a class derived from the forward BE class. The OOP design of BE analysis classes and its inheritance hierarchy guarantees the maximum reusability when the software system is extended from the conventional BE analysis to include the inverse BE approach. The routines in the analysis portion of BEISYS are mostly kept as the member functions rather than being wrapped into their own object-oriented classes. This contributes not only the advantages of OOP technique but also more readable code and faster implementation CPU times even compared to the corresponding FORTRAN code. References
purchase the full-text of this paper (price £20)
go to the previous paper |
|