Computational & Technology Resources
an online resource for computational,
engineering & technology publications |
|
Civil-Comp Proceedings
ISSN 1759-3433 CCP: 76
PROCEEDINGS OF THE THIRD INTERNATIONAL CONFERENCE ON ENGINEERING COMPUTATIONAL TECHNOLOGY Edited by: B.H.V. Topping and Z. Bittnar
Paper 7
Object-Oriented Methods and Non-Linear Finite Element Analysis: Advantages and Difficulties R.I. Mackie
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.
Summary
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 [3]. 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. References
purchase the full-text of this paper (price £20)
go to the previous paper |
|