doi: 10.17586/2226-1494-2022-22-1-193-205


УДК 532.529

Использование векторизованных структур данных при реализации вычислительных алгоритмов решения задач механики сплошной среды

Брыков Н.А., Волков К.Н., Емельянов В.Н.


Читать статью полностью 
Язык статьи - русский

Ссылка для цитирования:
Брыков Н.А., Волков К.Н., Емельянов В.Н. Использование векторизованных структур данных при реализации вычислительных алгоритмов решения задач механики сплошной среды // Научно-технический вестник информационных технологий, механики и оптики. 2022. Т. 22, № 1. С. 193–205. doi: 10.17586/2226-1494-2022-22-1-193-205


Аннотация
Предмет исследования. В работе выполнено исследование возможностей, предоставляемых новыми информационными технологиями, средствами объектно-ориентированного программирования и современными операционными системами, для решения краевых задач механики сплошной среды, описываемых дифференциальными уравнениями в частных производных. Для дискретизации основных уравнений применены методы конечных разностей и конечных объемов. Рассмотрена реализация данных методов с векторизованными сеточными структурами, включая обращение к внутренним и граничным ячейкам сетки, а также особенности реализации алгоритмов в особых точках расчетной области. Метод. Для решения краевых задач, описываемых дифференциальными уравнениями в частных производных, разработан подход к построению векторизованных алгоритмов и рассмотрены особенности их программной реализации в пакете MATLAB с использованием средств пользовательского программирования. Векторизация в таких задачах, для исключения вложенных циклов, обеспечена за счет организации данных и использования векторизованных операций обращения к сеточным узлам. Разработанные алгоритмы, с одной стороны, широко используют функции MATLAB, предназначенные для обработки векторов и разреженных матриц, а с другой, отличаются высокой эффективностью и скоростью счета. Основные результаты. Проведено численное решение ряда задач механики сплошной среды, связанных с расчетами напряжений в твердом теле, а также поля скорости и температуры в потоке вязкой несжимаемой жидкости. Показаны особенности дискретизации основных уравнений и реализации конечно-разностных и конечно-объемных алгоритмов. Практическая значимость. Применение системы MATLAB открыло широкие возможности по формализации и реализации конечно-разностных и конечно-объемных методов численного решения краевых задач механики сплошной среды. Несмотря на то, что возможности разработанных алгоритмов иллюстрируются на примере решения достаточно простых задач, они допускают сравнительно простое обобщение на более сложные задачи, например решение уравнений Эйлера и Навье–Стокса. В рамках работы подготовлены расчетные модули, реализованные при помощи средств пользовательского программирования, которые расширяют возможности пакета MATLAB и ориентированы на решение задач механики сплошной среды.

Ключевые слова: математическое моделирование, векторизация, численный алгоритм, механика сплошной среды

Благодарности. Исследование выполнено за счет гранта Российского научного фонда № 21-19-00657, https://rscf.ru/project/21-19-00657/.

Список литературы
1. Козелков А.С., Дерюгин Ю.Н., Зеленский Д.К., Глазунов В.А., Голубев А.А., Денисова О.В., Лашкин С.В., Жучков Р.Н., Тарасова Н.В., Сизова М.А. Многофункциональный пакет программ ЛОГОС для расчета задач гидродинамики и тепломассопереноса на суперЭВМ. Базовые технологии и алгоритмы // Труды XII Международного семинара «Супервычисления и математическое моделирование», 11–15 октября 2010 г., Саров. Саров, 2010. С. 215–230.
2. Волков К.Н., Дерюгин Ю.Н., Емельянов В.Н., Карпенко А.Г., Козелков А.С., Смирнов П.Г., Тетерина И.В. Реализация параллельных вычислений на графических процессорах в пакете вычислительной газовой динамики ЛОГОС // Вычислительные методы и программирование. 2013. Т. 14. № 1. С. 334–342.
3. Emelyanov V.N., Brykov N.A., Efremov A.V. Application of vectorized algorithms for solving problems of continuum mechanics // Journal of Physics: Conference Series. 2021. V. 2094. P. 022047. https://doi.org/10.1088/1742-6596/2094/2/022047
4. Емельянов В.Н. Механика сплошной среды: теория напряжений и основные модели. М.: Юрайт, 2018. 162 с.
5. Емельянов В.Н. Численные методы: введение в теорию разностных схем. М.: Изд-во Юрайт, 2018. 188 с.
6. Гергель В.П. Теория и практика параллельных вычислений. М.: БИНОМ, 2010. 423 с.
7. Волков К.Н., Емельянов В.Н. Применение пакета MATLAB для решения краевых задач механики жидкости и газа // Труды всероссийской научной конференции «Проектирование научных и инженерных приложений в среде MATLAB» (25–26 мая 2004, Москва, Россия). М.: Изд-во ИПУ РАН, 2004. С. 92–115.
8. Волков К.Н., Емельянов В.Н. Реализация векторизованных конечно-разностных алгоритмов решения краевых задач механики жидкости и газа в пакете MATLAB // Вычислительные методы и программирование. 2004. Т. 5. № 3. С. 13–29.
9. Alberty J., Carstensen C., Funken S.A. Remarks around 50 lines of Matlab: short finite element implementation // Numerical Algorithms. 1999. V. 20. N 1-2. P. 117–137. https://doi.org/10.1023/A:1019155918070
10. Persson P.-O., Strang G. A simple mesh generation in MATLAB // SIAM Review. 2004. V. 46. N 2. P. 329–345. https://doi.org/10.1137/S0036144503429121
11. Koko J. Vectorized MATLAB codes for linear two-dimensional elasticity // Scientific Programming. 2007. V. 15. N 3. P. 157–172. https://doi.org/10.1155/2007/838942
12. Funken S., Praetorius D., Wissgott P. Efficient implementation of adaptive P1-FEM in MATLAB // Computational Methods in Applied Mathematics. 2011. V. 11. N 4. P. 460–490. https://doi.org/10.2478/cmam-2011-0026
13. Rahman T., Valdman J. Fast MATLAB assembly of FEM matrices in 2D and 3D: nodal elements // Applied Mathematics and Computation. 2013. V. 219. N 13. P. 7151–7158. https://doi.org/10.1016/j.amc.2011.08.043
14. Anjam I., Valdman J. Fast MATLAB assembly of FEM matrices in 2D and 3D: edge elements // Applied Mathematics and Computation. 2015. V. 267. P. 252–263. https://doi.org/10.1016/j.amc.2015.03.105
15. Koko J. Fast MATLAB assembly of fem matrices in 2D and 3D using cell-array approach // International Journal of Modeling, Simulation, and Scientific Computing. 2016. V. 7. N 2. P. 1650010. https://doi.org/10.1142/S1793962316500100
16. Walker S.W. FELICITY: a MATLAB/C++ toolbox for developing finite element methods and simulation modeling // SIAM Journal on Scientific Computing. 2018. V. 40. N 2. P. 234–257. https://doi.org/10.1137/17M1128745
17. Čermák M., Sysala S., Valdman J. Efficient and flexible MATLAB implementation of 2D and 3D elastoplastic problems // Applied Mathematics and Computation. 2019. V. 355. P. 595–614. https://doi.org/10.1016/j.amc.2019.02.054
18. Tsega E.G. A finite volume solution of unsteady incompressible Navier–Stokes equations using MATLAB // Numerical and Computational Methods in Sciences and Engineering. 2019. V. 1. N 3. P. 117–131. http://dx.doi.org/10.18576/ncmsel/010302
19. Годунов С.К., Забродин А.В., Иванов М.Я., Крайко А.Н., Прокопов Г.П. Численное решение многомерных задач газовой динамики. М.: Наука, 1976. 400 с.
20. Волков К.Н., Емельянов В.Н. Вычислительные технологии в задачах механики жидкости и газа. М.: Физматлит, 2012. 468 с.
21. Лурье А.И. Теория упругости. М.: Наука, 1970. 940 с.


Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License
Информация 2001-2024 ©
Научно-технический вестник информационных технологий, механики и оптики.
Все права защищены.

Яндекс.Метрика