Rapid translation of finite-element theory into computer implementation based on a descriptive object-oriented programming approach

Rapid translation of finite-element theory into computer implementation based on a descriptive object-oriented programming approach

In this study, we present a framework for rapid prototyping of finite element (FE) theory for computerimplementations. For this purpose, we propose an object-oriented (OO) application programming interface in the formof a domain-specific modeling language (DSML). In contrast to the traditional OO approach, the proposed frameworkdeliberately avoids the use of subclassing for concrete implementations of node and element classes; it uses externalobjects, namely descriptors, instead. The descriptive design of the DSML provides developers with generic programmingsupport for the construction and solution of discretization schemes, in the context of partial differential equations, ina self-explanatory syntax. We take advantage of Python’s descriptor protocol to make descriptors behave like naturaldependencies of their owner class. We propose several descriptors to account for both theoretical and implementationspecific aspects of FE programming. By using concrete examples, we demonstrate that enhancing these descriptorswith both symbolic and numerical computational utilities results in a concise and customizable code base for analysisand pre/postprocessing purposes. We select Python as the base programming language because of its support foressential programming features such as customizable classes, dynamic code, arbitrary arguments, method decoration,and descriptor protocol.

___

  • Forde BWR, Foschi RO, Stiemer SF. Object-oriented finite element analysis. Comput Struct 1990; 34: 355-374.
  • Fenves GL. Object-oriented programming for engineering software development. Eng Comput 1990; 6: 1-15.
  • Lee H, Arora JS. Object-oriented programming for engineering applications. Eng Comput 1991; 7: 225-235.
  • Miller GR. An object-oriented approach to structural analysis and design. Comput Struct 1991; 40: 75-82.
  • Filho JSRA, Devloo PRB. Object oriented programming in scientific computations: the beginning of a new era. Eng Comput 1991; 8: 81-87.
  • Mackie RI. Object oriented programming of the finite element method. Int J Numer Methods Eng 1992; 35: 425-436.
  • Zimmermann T, Dubois-Pélerin Y, Bomme P. Object-oriented finite element programming: I. Governing principles. Comput Methods Appl Mech Eng 1992; 98: 291-303.
  • Dubois-Pélerin Y, Zimmermann T, Bomme, P. Object-oriented finite element programming: II. A prototype program in Smalltalk. Comput Methods Appl Mech Eng 1992; 98: 361-397.
  • Raphael B, Krishnamoorthy C. Automating finite element development using object oriented techniques. Eng Comput 1993; 10: 267-278.
  • Donescu P, Laursen TA. A generalized object-oriented approach to solving ordinary and partial differential equations using finite elements. Finite Elem Anal Des 1996; 22: 93-107.
  • Remy P, Devloo B. PZ: An object oriented environment for scientific programming. Comput Methods Appl Mech Eng 1997; 150: 133-153.
  • Besson J, Foerch, R. Large scale object-oriented finite element code design. Comput Methods Appl Mech Eng 1997; 142: 165-187.
  • Yu L, Kumar AV. An object-oriented modular framework for implementing the finite element method. Comput Struct 2001; 79: 919-928.
  • Heng BCP, Mackie RI. Using design patterns in object-oriented finite element programming. Comput Struct 2009; 87: 952-961.
  • Dadvand P, Rossi R, Oñate E. An object-oriented environment for developing finite element codes for multidisciplinary applications. Arch Comput Methods Eng 2010; 17: 253-297.
  • Touzani R. An object oriented finite element toolkit. In: Proceedings of the Fifth World Congress on Computational Mechanics; 7–12 July 2002; Vienna, Austria.
  • Moser S, Nierstrasz O. The effect of object-oriented frameworks on developer productivity. Computer 1996; 29: 45-51.
  • McKenna FT. Object-oriented finite element programming: frameworks for analysis, algorithms and parallel computing. PhD, University of California, Berkeley, CA, USA, 1997.
  • Zimmermann T, Eyheramendy D. Object-oriented finite elements I. Principles of symbolic derivations and automatic programming. Comput Methods Appl Mech Eng 1996; 132: 259-276.
  • Eyheramendy D, Zimmermann T. Object-oriented finite elements II. A symbolic environment for automatic programming. Comput Methods Appl Mech Eng 1996; 132: 277-304.
  • Eyheramendy D, Zimmermann T. Object-oriented finite elements III. Theory and application of automatic programming. Comput Methods Appl Mech Eng 1998; 154: 41-68.
  • Kelly S, Tolvanen JP. Domain-Specific Modeling: Enabling Full Code Generation. Hoboken, NJ, USA: Wiley-IEEE Computer Society Press, 2008.
  • Logg A. Automating the finite element method. Arch Comput Methods Eng 2007; 14: 93-138.
  • Logg A, Wells GN. DOLFIN: Automated finite element computing. ACM T Math Softw 2010; 37: 20.
  • Hecht F. New development in FreeFem++. J Numer Math 2012; 20: 251-265.
  • Cimrman R. SfePy-write your own FE application. In: Proceedings of the 6th European Conference on Python in Science; 2013. pp. 65-70.
  • Reddy JN. An Introduction to the Finite Element Method. 2nd ed. Boston, MA, USA: McGraw-Hill, 1993.
Turkish Journal of Electrical Engineering and Computer Sciences-Cover
  • ISSN: 1300-0632
  • Yayın Aralığı: Yılda 6 Sayı
  • Yayıncı: TÜBİTAK