Чопоров, С. В.Игнатченко, М. С.Кудин, А. В.Кривохата, А. Г.Гоменюк, С. И.Чопоров, С. В.Ігнатченко, М. С.Кудін, О. В.Кривохата, А. Г.Гоменюк, С. І.Choporov, S. V.Ihnatchenko, M. S.Kudin, O. V.Kryvokhata, A. G.Homeniuk, S. I.2026-03-112026-03-112021https://eir.zp.edu.ua/handle/123456789/27287Чопоров С. В. Реализация конечно-элементной библиотеки классов с использованием обобщенного программирования / С. В. Чопоров, М. С. Игнатченко, А. В. Кудин, А. Г. Кривохата, С. И. Гоменюк // Радіоелектроніка, інформатика, управління. – 2021. – № 2 (57). – C. 164-173.RU: Актуальность. Для компьютерного моделирования сложных объектов и явлений различной природы на практике часто используют численный метод конечных элементов. Его программная реализация (особенно для исследования новых классов задач) является достаточно трудоемким процессом. Высокая стоимость разработки программного обеспечения обусловливает актуальность разработки новых подходов к повышению эффективности программирования и сопровождения (в т.ч. добавление новых функций). Цель. Цель работы – создание новой эффективной архитектуры программ конечно-элементного анализа проблем математической физики, позволяющей легко расширять их функциональность для решения новых классов задач. Метод. Предложен метод разработки программ для конечно-элементного анализа с использованием обобщенного программирования, что дает возможность существенно упростить архитектуру программного обеспечения и сделать его более удобным для сопровождения и модификации за счет разделения алгоритмов и структур данных. Предложена новая архитектура классов, реализующих конечно-элементный расчет, позволяющая легко расширять функциональность программ за счет добавления новых типов конечных элементов, методов решения систем линейных алгебраических уравнения, параллельных вычислений и т.д. Результаты. Предложенный подход был программно реализован в виде библиотеки классов на языке С++. Проведен ряд вычислительных экспериментов, подтвердивших его работоспособность при решении практических задач. Выводы. Разработанный подход можно использовать как для создания систем конечно-элементного анализа общего назначения с открытой архитектурой, так и для реализации специализированных программных пакетов, ориентированных на решение конкретных классов задач (механики разрушения, эластомеров, контактного взаимодействия и т.п.). UK: Актуальність. Для комп’ютерного моделювання складних об’єктів і явищ різної природи на практиці часто застосовують чисельний метод скінченних елементів. Його програмна реалізація (особливо для дослідження нових класів задач) є досить трудомістким процесом. Висока вартість розробки програмного забезпечення обумовлює актуальність розробки нових підходів до підвищення ефективності програмування й супроводу (у т.ч. додавання нових функцій). Мета. Мета роботи – створення нової ефективної архітектури програм скінченно-елементного аналізу проблем математичної фізики, що дозволяє легко розширювати їх функціональність для розв’язання нових класів задач. Метод. Запропоновано метод розробки програм для скінченно-елементного аналізу з використанням узагальненого програмування, що дає можливість істотно спростити архітектуру програмного забезпечення й зробити його більш зручним для супроводу і модифікації за рахунок розділення алгоритмів і структур даних. Запропоновано нову архітектура класів, які реалізують скінченно-елементний розрахунок, що дозволяє легко розширювати функціональність програм за рахунок додавання нових типів скінченних елементів, методів розв’язання систем лінійних алгебраїчних рівняння, паралельних обчислень тощо. Результати. Запропонований підхід було програмно реалізовано у вигляді бібліотеки класів на мові С++. Проведено ряд обчислювальних експериментів, які підтвердили його працездатність при вирішенні низки практичних задач. Висновки. Розроблений підхід може бути використаний як для створення систем скінченно-елементного аналізу загального призначення з відкритою архітектурою, так і для реалізації спеціалізованих програмних пакетів, орієнтованих на розв’язання конкретних класів задач (механіки руйнування, еластомерів, контактної взаємодії і т.д.) EN: 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.).ruметод конечных элементовконечный элементобъектно-ориентированное программированиеобобщённое программированиеархитектура программного обеспеченияметод скінченних елементівоб’єктно-орієнтоване програмуванняузагальнене програмуванняархітектура програмного забезпеченняfinite element methodfinite elementobject-oriented programminggeneric programmingsoftware architectureРеализация конечно-элементной библиотеки классов с использованием обобщенного программированияРеалізація скінченно-елементної бібліотеки класів з використанням узагальненого програмуванняImplementation of a finite element class library using generalized programmingArticle