ОБ’ЄКТНО-ОРІЄНТОВАНА РЕАЛІЗАЦІЯ БІБЛІОТЕКИ СКІНЧЕННО-ЕЛЕМЕНТНОГО АНАЛІЗУ МОВОЮ ПРОГРАМУВАННЯ PYTHON
Анотація
Необхідність оцінювання міцності й довговічності розроблюваних або вже наявних інженерно-технічних систем призводить до виникнення склад- них задач механіки деформованого твердого тіла. Їх розв’язання в більшо- сті випадків неможливе без використання комп’ютерного моделювання та чисельних методів, найбільш популярним серед яких є метод скінчен- них елементів. Його практичне застосування неможливе без використання обчислювальної техніки. Розроблення відповідного програмного забезпе- чення є, як і раніше, актуальною проблемою. Більшість наявних популярних програм, що автоматизують різні аспекти застосування методу скінченних елементів, є закритими комерційними системами. Відповідне програмне забезпечення з відкритим вихідним кодом у більшості випадків написано мовою програмування С++, що в силу її складності робить процес адаптації цих програм для вирішення нових класів задач досить непростим завданням. Останнім часом великої популярності набула мова програмування Python. Її відмінними рисами є виразність і простота, а також велика кількість наявних бібліотек, що робить Python перспективним інструментом для розроблення програм для інженерно-технічних розрахунків. У статті описана об’єктно-орієнтована реалізація бібліотеки класів, при- значених для скінчено-елементного аналізу стаціонарних і динамічних задач теорії пружності мовою програмування Python. Розроблена ієрархічна структура класів, що інкапсулюють об’єкт розрахунку, статичну й динамічну реалізацію методу скінченних елементів, скінченні елементи різних типів, дискретну модель вихідного об’єкту тощо. Завдяки простоті реалі- зації вдалося побудувати набір ефективних та інтуїтивно-зрозумілих класів, що дають змогу, з одного боку, вико- нувати розрахунок різних типів задач механіки, а з іншого – легко його розширювати для підвищення функціо- нальності бібліотеки. Наведено приклади використання описаних класів для розв’язання задач теорії пружності.
Посилання
2. Design and Engineering Simulation | SIMULIA – Dassault Systemes. URL: https://www.3ds.com/products-services/simulia/.
3. Engineering Simulation & 3D Design Software | Ansys. URL: https://www.ansys.com/.
4. COMSOL Multiphysics ® Modelling Software. URL: https://www.comsol.com/.
5. MSC Nastran – Multidisciplinary Structural Analysis. URL: https://www.mscsoftware.com/product/msc-nastran.
6. Top Finite Element Analysis (FEA) Software List, Reviews, Comparison & Price | TEC. URL: https://www3.technologyevaluation.com/sd/category/finite-element-analysis-fea
7. The dial.II Finite Element Library. URL: https://www.dealii.org/.
8. FreeFEM – An open-source PDE Solver using The Finite Element Method: URL: https://freefem.org/.
9. GetFEM Homepage – GetFEM. URL: http://getfem.org/.
10. OpenSCAD The Programmers Solid 3D CAD Modeller. URL: https://www.openscad.org/.
11. QFEM – The Simple FEM Solver. URL: https://github.com/SeregaGomen/QFEM.
12. qzCAD. URL: https://github.com/qzcad.
13. Страуструп Б. Язык программирования C++. Специальное издание. Москва : Бином-Пресс, 2007. 1104 с.
14. Welcome to Python.org. URL: https://www.python.org/.
15. NumPy. URL: https://numpy.org/.
16. SciPy.org. URL: https://www.scipy.org/.
17. fempy – PiPy. URL: https://pypi.org/project/fempy/.
18. FEniCS Project. URL: https://fenicsproject.org/.
19. polyfem. URL: https://polyfem.github.io/.
20. SfePy: Simple Finite Elements in Python. URL: http://sfepy.org/doc-devel/index.html.
21. JSON. URL: http://json.org/json-ru.html.
22. PyQt5. PyPI. URL: https://pypi.org/project/PyQt5/.
23. OpenGL. The Industry Standard for High Performance Graphics. URL: https://www.opengl.org/.