Computational & Technology Resources
an online resource for computational,
engineering & technology publications
Civil-Comp Proceedings
ISSN 1759-3433
CCP: 76
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

Full Bibliographic Reference for this paper
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:
  1. The classes represent the underlying data structure of the objects that they represent.
  2. The classes provide facilities to allow access to all the necessary data and services.
  3. The classes aim to make no implicit or explicit assumptions about the data structures used in any system that might use the class system.
  4. Usually only one new concept should be introduced at each new level in the hierarchy.
  5. Data should be placed with its rightful owner.

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.

Mackie, R.I., An object-oriented approach to fully interactive finite element software Advances in Engineering Software, 29(2), 139-149, 1998. doi:10.1016/S0965-9978(98)00015-5
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
Mackie, R.I., "Object oriented methods and finite element analysis", Saxe- Coburg Publications, Stirling, 2001. doi:10.4203/ccp.76.7

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