Розробка об’єктно-орієнтованої архітектури скінченно-елементного моделювання елементів конструкцій
DOI:
https://doi.org/10.15587/1729-4061.2022.268018Ключові слова:
метод скінченних елементів, об’єктно-орієнтоване програмування, шаблон проєктування, теорія пружності, PyFEMАнотація
Розроблено архітектуру та програмну реалізацію бібліотеки класів скінченно-елементного аналізу задач теорії пружності з відкритим програмним кодом. Практична необхідність таких систем пов’язана з тим, що у сучасній техніці виникають нові типи матеріалів, розрахунок елементів конструкцій яких має певні особливості. Як наслідок, необхідно оновлювати відповідне наукове програмне забезпечення чи, навіть, створювати нове. Гнучка програмна архітектура розробляється з метою зменшення часу та складності таких оновлень. Проаналізовано наявні реалізації методу скінченних елементів з відкритим програмним кодом та виявлено, що відсутні системи, спрямовані на максимально гнучку та зрозумілу для користувача архітектуру. Запропонована в роботі система абстрактних класів відповідає відомим SOLID принципам об’єктно-орієнтованого проєктування та дозволяє масштабувати вже розроблену програму аналізу для нових задач у легкий та зрозумілий спосіб. Для тестування якості розробленої системи з точки зору програмної інженерії використано метрики коду індекс ремонтопридатності та цикломатична складність. Значення вказаних метрик для модулів ядра системи PyFEM змінюються в таких діапазонах: від 1 до 18 для індексу ремонтопридатності, від 22 до 100 для цикломатичної складності. Виконано тестування PyFEM на задачі визначення напружено-деформованого стану лопатки ротора турбіни. Завдяки простоті реалізації вдалося побудувати набір ефективних й інтуїтивно-зрозумілих класів, що дозволяють виконувати чисельне розв’язання статичних і динамічних задач теорії пружності. Розроблена бібліотека класів може бути використана при розробці як універсального, так і спеціалізованого програмного забезпечення, призначеного для аналізу мультифізичних задач
Посилання
- Breslavskyi, D. V., Korytko, Yu. M., Tatarinova, O. A. (2017). Proektuvannia ta rozrobka skinchennoelementnoho prohramnoho zabezpechennia. Kharkiv, 232. Available at: http://library.kpi.kharkov.ua/files/new_postupleniya/prropz.pdf
- 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: https://doi.org/10.1007/978-3-642-23099-8
- Choporov, S., Gomenyuk, S., Kudin, O., Lisnyak, A. (2018). Design patterns for object-oriented scientific software. CEUR Workshop Proceedings, 441–444. Available at: https://ceur-ws.org/Vol-2105/10000441.pdf
- Cimrman, R., Lukeš, V., Rohan, E. (2019). Multiscale finite element calculations in Python using SfePy. Advances in Computational Mathematics, 45 (4), 1897–1921. doi: https://doi.org/10.1007/s10444-019-09666-0
- Hecht, F. (2012). New development in freefem++. Journal of Numerical Mathematics, 20 (3-4). doi: https://doi.org/10.1515/jnum-2012-0013
- 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: https://doi.org/10.1016/j.cma.2022.114907
- 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: https://doi.org/10.1145/3412849
- Badia, S., Verdugo, F. (2020). Gridap: An extensible Finite Element toolbox in Julia. Journal of Open Source Software, 5 (52), 2520. doi: https://doi.org/10.21105/joss.02520
- 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: https://doi.org/10.48550/arXiv.2110.01601
- 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: https://doi.org/10.1016/j.jcp.2021.110651
- 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: https://doi.org/10.1016/j.cma.2021.114562
- Grementieri, L., Galeone, P. (2022). Towards Neural Sparse Linear Solvers. arXiv. doi: https://doi.org/10.48550/arXiv.2203.06944.
- Trushevskyi, V. M., Shynkarenko, H. A., Shcherbyna, N. M. (2014). Metod skinchennykh elementiv i shtuchni neironni merezhi. Liviv: LNU imeni Ivana Frankach, 396.
- 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: https://doi.org/10.1002/nme.2579
- Netgen/NGSolve. Available at: https://ngsolve.org/
- Weisfeld, M. (2019). The Object-Oriented Thought Process. Addison-Wesley, 412.
- 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: https://doi.org/10.26661/2413-6549-2020-1-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: https://doi.org/10.5824/1309-1581.2018.4.001.x
- Ranjan, A., Rakshith, A. (2021). Analysis of Industrial Gas Turbine Blade. International Research Journal of Engineering and Technology, 8 (5), 4247–4251.
- 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: https://doi.org/10.1109/ysf.2017.8126640
- 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.
##submission.downloads##
Опубліковано
Як цитувати
Номер
Розділ
Ліцензія
Авторське право (c) 2022 Oleksii Hniezdovskyi, Oleksii Kudin, Yuriy Belokon, Dmytro Kruglyak, Sergii Ilin
Ця робота ліцензується відповідно до Creative Commons Attribution 4.0 International License.
Закріплення та умови передачі авторських прав (ідентифікація авторства) здійснюється у Ліцензійному договорі. Зокрема, автори залишають за собою право на авторство свого рукопису та передають журналу право першої публікації цієї роботи на умовах ліцензії Creative Commons CC BY. При цьому вони мають право укладати самостійно додаткові угоди, що стосуються неексклюзивного поширення роботи у тому вигляді, в якому вона була опублікована цим журналом, але за умови збереження посилання на першу публікацію статті в цьому журналі.
Ліцензійний договір – це документ, в якому автор гарантує, що володіє усіма авторськими правами на твір (рукопис, статтю, тощо).
Автори, підписуючи Ліцензійний договір з ПП «ТЕХНОЛОГІЧНИЙ ЦЕНТР», мають усі права на подальше використання свого твору за умови посилання на наше видання, в якому твір опублікований. Відповідно до умов Ліцензійного договору, Видавець ПП «ТЕХНОЛОГІЧНИЙ ЦЕНТР» не забирає ваші авторські права та отримує від авторів дозвіл на використання та розповсюдження публікації через світові наукові ресурси (власні електронні ресурси, наукометричні бази даних, репозитарії, бібліотеки тощо).
За відсутності підписаного Ліцензійного договору або за відсутністю вказаних в цьому договорі ідентифікаторів, що дають змогу ідентифікувати особу автора, редакція не має права працювати з рукописом.
Важливо пам’ятати, що існує і інший тип угоди між авторами та видавцями – коли авторські права передаються від авторів до видавця. В такому разі автори втрачають права власності на свій твір та не можуть його використовувати в будь-який спосіб.