Computational & Technology Resources
an online resource for computational,
engineering & technology publications
PROCEEDINGS OF THE THIRD INTERNATIONAL CONFERENCE ON ENGINEERING COMPUTATIONAL TECHNOLOGY
Edited by: B.H.V. Topping and Z. Bittnar
Object-Oriented Methods and Non-Linear Finite Element Analysis: Advantages and Difficulties
Department of Civil Engineering, University of Dundee, United Kingdom
R.I. Mackie, "Object-Oriented Methods and Non-Linear Finite Element Analysis: Advantages and Difficulties", in B.H.V. Topping, Z. Bittnar, (Editors), "Proceedings of the Third International Conference on Engineering Computational Technology", Civil-Comp Press, Stirlingshire, UK, Paper 7, 2002. doi:10.4203/ccp.76.7
Keywords: object-oriented programming, finite element analysis, non-linearity.
The paper deals with the robustness and extensibility of class systems for finite element analysis. An existing system [1,2,3] designed for linear elastic problems is extended to handle non-linearity. Only one substantive change was required to the existing classes. The other changes involved the addition of new classes, and in these the additional code required was close to the minimum possible. The system had been designed following the guidelines:
The one substantive change to the original system was related to a violation of guideline 3. in the original system.
The system does rely heavily on controlled type-casting. In the original system, the base objects contain pointers to other base objects. For instance, elements contain pointers to node objects. This allows many general operations to be defined in low-level base classes. However, it means that in higher-level classes typecasting has to be used. While this is done in a controlled fashion, it is not ideal. Therefore an alternative system was developed that did not require typecasting. Instead, the base classes contained pure virtual iterators. So instead of the base element class containing a list of pointers to base node classes, it possesses a function:
TNodeIter* NodeIter() const = 0
This means that it is still possible to define general operations, even though the base classes contain no concrete objects. Various other virtual iterators may be defined as the class hierarchy is extended. It is only classes at the ends of branches that contain concrete lists of nodes. These classes also need to define concrete implementations of the virtual iterators. The advantage of this system is that it implements very strong type control, but still allows functionality to be defined at low level through the use of iterators. It also makes extension of the system safer. Most classes are now abstract classes. The disadvantage is that when a concrete class is defined there may be many iterators to define.
It should further be noted that the system did not deal with finite elements alone, but also with a structural model that used the finite element objects. This system is highly interactive . Therefore, the functionality of this system was inherited without extra cost.
The use of the object-oriented approach allowed sub-structure based algorithms to be implemented in a straightforward manner, and thus to implement more flexible and efficient algorithms. This relates to reducing the need for stiffness matrix recalculation, and subsequent decomposition. A test example showed that significant savings could be made.
It is concluded that robust and extensible class hierarchies can be constructed if appropriate class design guidelines are followed carefully. Furthermore, the object- oriented approach yields significant advantages in terms of software engineering, and applying functionality efficiently.
purchase the full-text of this paper (price £20)