Designing an object-oriented architecture for the finite element simulation of structural elements




finite element method, object-oriented programming, design pattern, theory of elasticity, PyFEM


This paper reports the development of an architecture and software implementation of the library of classes for the finite-element analysis of problems in the theory of elasticity with an open-source code. The practical necessity of such systems is due to the fact that in modern equipment there are new types of materials whose structural elements' calculation has certain features. As a result, it is necessary to update the relevant scientific software or even devise a new one. A flexible software architecture is designed to reduce the time and complexity of such updates. Existing implementations of the method of finite elements with open source have been analyzed: it was revealed that there are no systems aimed at the most flexible and user-friendly architecture. The system of abstract classes proposed in the current work corresponds to known SOLID principles of object-oriented design and makes it possible to scale the already developed analysis program for new tasks in an easy and understandable way. To test the quality of the developed system from the point of view of software engineering, the maintainability index and cyclomatic complexity code metrics were used. The values of these metrics for the modules of the PyFEM system core vary in the following ranges: from 1 to 18 for the maintainability index, and from 22 to 100 for cyclomatic complexity. PyFEM testing was performed on the task of determining the stressed-strained state of the turbine rotor blade. Due to the ease of implementation, it was possible to build a set of effective and intuitive classes that make it possible to solve numerically the static and dynamic problems in the theory of elasticity. The developed class library can be used in the development of both universal and specialized software designed to analyze multiphysics problems.

Author Biographies

Oleksii Hniezdovskyi, National University "Zaporizhzhia Polytechnic"

Senior Lecturer

Department of Informational Technologies in Tourism

Oleksii Kudin, Zaporizhzhia National University

PhD, Associate Professor

Department of Software Engineering

Yuriy Belokon, Zaporizhzhia National University

Doctor of Technical Sciences, Associate Professor

Department of Pressure Metal Processing

Dmytro Kruglyak, Zaporizhzhia National University

PhD, Associate Professor

Department of Pressure Metal Processing

Sergii Ilin, Zaporizhzhia National University


Department of Thermal Power and Hydropower


  1. Breslavskyi, D. V., Korytko, Yu. M., Tatarinova, O. A. (2017). Proektuvannia ta rozrobka skinchennoelementnoho prohramnoho zabezpechennia. Kharkiv, 232. Available at:
  2. Logg, A., Mardal, K.-A., Wells, G. (Eds.) (2012). Automated Solution of Differential Equations by the Finite Element Method. Lecture Notes in Computational Science and Engineering. doi:
  3. Choporov, S., Gomenyuk, S., Kudin, O., Lisnyak, A. (2018). Design patterns for object-oriented scientific software. CEUR Workshop Proceedings, 441–444. Available at:
  4. Cimrman, R., Lukeš, V., Rohan, E. (2019). Multiscale finite element calculations in Python using SfePy. Advances in Computational Mathematics, 45 (4), 1897–1921. doi:
  5. Hecht, F. (2012). New development in freefem++. Journal of Numerical Mathematics, 20 (3-4). doi:
  6. Xie, J., Ehmann, K., Cao, J. (2022). MetaFEM: A generic FEM solver by meta-expressions. Computer Methods in Applied Mechanics and Engineering, 394, 114907. doi:
  7. Renard, Y., Poulios, K. (2021). GetFEM: Automated FE Modeling of Multiphysics Problems Based on a Generic Weak Form Language. ACM Transactions on Mathematical Software, 47 (1), 1–31. doi:
  8. Badia, S., Verdugo, F. (2020). Gridap: An extensible Finite Element toolbox in Julia. Journal of Open Source Software, 5 (52), 2520. doi:
  9. Khara, B., Balu, A., Joshi, A., Sarkar, S., Hegde, C., Krishnamurthy, A., Ganapathysubramanian, B. (2021). NeuFENet: Neural Finite Element Solutions with Theoretical Bounds for Parametric PDEs. arXiv. doi:
  10. Mitusch, S. K., Funke, S. W., Kuchta, M. (2021). Hybrid FEM-NN models: Combining artificial neural networks with the finite element method. Journal of Computational Physics, 446, 110651. doi:
  11. Uriarte, C., Pardo, D., Omella, Á. J. (2022). A Finite Element based Deep Learning solver for parametric PDEs. Computer Methods in Applied Mechanics and Engineering, 391, 114562. doi:
  12. Grementieri, L., Galeone, P. (2022). Towards Neural Sparse Linear Solvers. arXiv. doi:
  13. Trushevskyi, V. M., Shynkarenko, H. A., Shcherbyna, N. M. (2014). Metod skinchennykh elementiv i shtuchni neironni merezhi. Liviv: LNU imeni Ivana Frankach, 396.
  14. Geuzaine, C., Remacle, J.-F. (2009). Gmsh: A 3-D finite element mesh generator with built-in pre- and post-processing facilities. International Journal for Numerical Methods in Engineering, 79 (11), 1309–1331. doi:
  15. Netgen/NGSolve. Available at:
  16. Weisfeld, M. (2019). The Object-Oriented Thought Process. Addison-Wesley, 412.
  17. Ihnatchenko, M. S., Kudin, O. V., Gnezdovskiy, O. V. (2020). Object-oriented implementation of the finite element analysis library in the python programming language. Visnyk of Zaporizhzhya National University. Physical and Mathematical Sciences, 1, 138–147. doi:
  18. Turan, O., Tanriöver, Ö. Ö. (2018). An Experimental Evaluation of the Effect of SOLID Principles to Microsoft VS Code Metrics. AJIT-e: Online Academic Journal of Information Technology, 9 (34), 7–24. doi:
  19. Ranjan, A., Rakshith, A. (2021). Analysis of Industrial Gas Turbine Blade. International Research Journal of Engineering and Technology, 8 (5), 4247–4251.
  20. Yuriy, B., Aleksandr, Z., Karina, B. (2017). The investigation of nanostructure formation in intermetallic γ-TiAl alloys. 2017 IEEE International Young Scientists Forum on Applied Physics and Engineering (YSF). doi:
  21. Sereda, B., Sereda, D., Belokon, Y. (2015). Investigation of corrosion and oxidation of γ-TiAl alloys obtained in self propagating high temperature synthesis. Materials Science and Technology Conference and Exhibition. Vol. 2. Columbus, 1249–1255.
Designing an object-oriented architecture for the finite element simulation of structural elements




How to Cite

Hniezdovskyi, O., Kudin, O., Belokon, Y., Kruglyak, D., & Ilin, S. (2022). Designing an object-oriented architecture for the finite element simulation of structural elements. Eastern-European Journal of Enterprise Technologies, 6(2 (120), 78–84.