IMPLEMENTATION OF A FINITE ELEMENT CLASS LIBRARY USING GENERALIZED PROGRAMMING

Authors

  • S. V. Choporov Zaporizhzhia National University, Zaporizhzhia, Ukraine., Ukraine
  • M. S. Ihnatchenko Zaporizhzhia National University, Zaporizhzhia, Ukraine., Ukraine
  • O. V. Kudin Zaporizhzhia National University, Zaporizhzhia, Ukraine., Ukraine
  • A. G. Kryvokhata Zaporizhzhia National University, Zaporizhzhia, Ukraine., Ukraine
  • S. I. Homeniuk Zaporizhzhia National University, Zaporizhzhia, Ukraine., Ukraine

DOI:

https://doi.org/10.15588/1607-3274-2021-2-17

Keywords:

finite element method, finite element, object-oriented programming, generic programming, software architecture.

Abstract

Context. For computer modeling of complex objects and phenomena of various nature, in practice, the numerical finite element method is often used. Its software implementation (especially for the study of new classes of problems) is a rather laborious process. The high cost of software development makes the development of new approaches to improving the efficiency of programming and maintenance (including the addition of new functions) urgent.

Objective. The aim of the work is to create a new effective architecture of programs for finite element analysis of problems in mathematical physics, which makes it easy to expand their functionality to solve new classes of problems.

Method. A method for developing programs for finite element analysis using generalized programming is proposed, which makes it possible to significantly simplify the architecture of the software and make it more convenient for maintenance and modification by separating algorithms and data structures.

A new architecture of classes that implement finite element calculation is proposed, which makes it possible to easily expand the functionality of programs by adding new types of finite elements, methods for solving systems of linear algebraic equations, parallel computations, etc.

Results. The proposed approach was implemented in software as a class library in C ++. A number of computational experiments have been carried out, which have confirmed its efficiency in solving practical problems.

Conclusions. The developed approach can be used both to create general-purpose finite element analysis systems with an open architecture, and to implement specialized software packages focused on solving specific classes of problems (fracture mechanics, elastomers, contact interaction, etc.).

Author Biographies

S. V. Choporov, Zaporizhzhia National University, Zaporizhzhia, Ukraine.

Dr. Sc., Professor, Professor of the Software Engineering Department.

M. S. Ihnatchenko, Zaporizhzhia National University, Zaporizhzhia, Ukraine.

Postgraduate student of the Software Engineering Department.

O. V. Kudin, Zaporizhzhia National University, Zaporizhzhia, Ukraine.

PhD, Associate Professor of the Software Engineering Department.

A. G. Kryvokhata, Zaporizhzhia National University, Zaporizhzhia, Ukraine.

PhD, Senior Lecturer of the Software Engineering Department.

S. I. Homeniuk, Zaporizhzhia National University, Zaporizhzhia, Ukraine.

Dr. Sc., Professor, Dean of the Faculty of Mathematics, Professor of the Software Engineering Department.

References

Zienkiewicz O. C., Taylor R. L., Zhu J. Z. The Finite Element Method: Its Basis and Fundamentals. Sixth edition. Oxford, Butterworth-Heinemann, 2016, 753 p. DOI: 10.1002/nme.1760

Madenci E., Guven I. The Finite Element Method and Applications in Engineering Using ANSYS®. Boston, Springer, 2015, 651 p. DOI: 10.1007/978-1-4899-7550-8

Zimmerman W. Multiphysics Modeling with Finite Element Methods. Singapore, World Scientific, 2006, 432 p. DOI: 10.1142/6141

MSC Nastran – Multidisciplinary Structural Analysis. [Electronic resource]. Access mode: https://www.mscsoftware.com/product/msc-nastran

Top Finite Element Analysis (FEA) Software: List, Reviews, Comparison & Price | TEC. [Electronic resource]. Access mode: https://www3.technologyevaluation.com/sd/category/finiteelement-analysis-fea

FreeFEM – An open-source PDE Solver using The Finite Element Method: [Electronic resource]. Access mode: https://freefem.org/

GetFEM Homepage – GetFEM. [Electronic resource]. Access mode: http://getfem.org/

OpenCAD The Programmers Solid 3D CAD Modeller. [Electronic resource]. Access mode: https://www.openscad.org/

The dial.II Finite Element Library. [Electronic resource]. Access mode: https://www.dealii.org/

Netgen/NGSolve. [Electronic resource]. Access mode: https://ngsolve.org/

Stepanov A. A., Rose D. E. From Mathematics to Generic Programming. Crawfordsville, Addison-Wesley, 2014, 292 p.

Meyers S. Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14 / S. Sebastopol, O’Reilly, 2017, 316 p.

Galowicz J. C++17 STL Cookbook. Birmingham, Packt Publishing Ltd, 2017, 504 p.

Vandevoorde D., Josuttis N. M., Gregor D. C++ Templates: The Complete Guide. Boston, Addison-Wesley, 2017, 788 p.

Bittencourt M. L. Using C++ templates to implement finite element classes, Engineering Computation, 2000, Vol. 17(7), pp. 775–788. DOI: 10.1108/02644400010352243

Bangerth W. Using Modern Features of C++ for Adaptive Finite Element Methods: Dimension-Independent Programming in deal.II, Proceedings of the 16th IMACS World Congress, 2000, [Electronic resource], Access mode: https://www.dealii.org/7.3.0/

Gurin A. , Baykin A., Polyansky T. et al. FEMEngine: finite element method C++ code based on functional and template metaprogramming, IEEE Conference Proceedings, 2019, Vol. 2019, pp. 92–96. DOI: 10.1109/ISPRAS47671.2019.00020

Plagne L., Hülsemann F. Parallel expression template for large vectors, Conference: Workshop on Parallel/High-Performance Object-Oriented Scientific, 2009, [Electronic resource], Access mode: https://www.researchgate.net/publication/228965935_Parallel_e xpression_template_for_large_vectors DOI: 10.1145/1595655.1595663

Schöberl J. C++11 Implementation of Finite Elements in NGSolve, ASC Report, 2014, No. 30. [Electronic resource]. Access mode: https://www.asc.tuwien.ac.at/~schoeberl/wiki/publications/ngscpp11.pdf

Rupp К. Increased efficiency in finite element computations through template metaprogramming, Conference: Proceedings of the 2010 Spring Simulation Multiconference. 2010, [Electronic resource]. Access mode: https://www.iue.tuwien.ac.at/pdf/ib_2010/CP2010_Rupp_2.pdf DOI: 10.1145/1878537.1878633

Cirak F., Cummings J. C. Generic programming techniques for parallelizing and extending procedural finite element programs, Engineering with Computers, 2008. [Electronic resource]. Access mode: https://www.researchgate.net/publication/220677624_Generic_ programming_techniques_for_parallelizing_and_extending_procedural_ finite_element_programs DOI: 10.1007/s00366-007-0058-x

Bastian P., Heimann F., Marnach S. Generic implementation of finite element methods in the Distributed and Unified Numerics Environment (DUNE), Kybernetika, 2010, Vol. 46, pp. 294– 315.

The Simple FEM Solver. [Electronic resource]. Access mode: https://github.com/SeregaGomen/QFEM

Timoshenko S., Woinowsky-Krieger S. Theory of plates and Shells. Singapore, McGraw-Hill, Inc., 1964, 594 p.

Published

2021-07-10

How to Cite

Choporov, S. V., Ihnatchenko, M. S., Kudin, O. V., Kryvokhata, A. G., & Homeniuk, S. I. (2021). IMPLEMENTATION OF A FINITE ELEMENT CLASS LIBRARY USING GENERALIZED PROGRAMMING . Radio Electronics, Computer Science, Control, (2), 164–173. https://doi.org/10.15588/1607-3274-2021-2-17

Issue

Section

Progressive information technologies