На сегодняшний день метод конечных элементов является одним из эффективных и наиболее часто используемых численных методов для решения научных и прикладных инженерных задач, математические модели которых описываются с помощью дифференциальных уравнений в частных производных. В частности, МКЭ применяется для решения задач математической физики (механика деформируемого твердого тела, теплообмен, электромагнетизм, аэро- и гидродинамика). О популярности метода говорит тот факт, что результатом запроса "finite element method" в поисковой системе Google является ~16.1 млн страниц, для сравнения с конечно-разностным методом: "finite difference method" ~3.0 млн страниц (август 2021 г.).
Данный курс кратко представляет математические основы метода конечных элементов для численного решения уравнений с частными производными эллиптического типа. Для построения метода необходимо перейти от краевой задачи к вариационной (интегральной) формулировке. Исследование вопроса существования решения вариационной задачи приводит к применению пространств Соболева, в которых ищется неизвестное решение. Численная реализация метода становится возможной за счет перехода к конечномерным подпространствам (метод Галеркина). Специальное построение базисных функций на основе триангуляции области позволяет применять метод конечных элементов для задач с большим числом неизвестных ~ 106–109.
На практических занятиях рассматриваются двухмерные и трехмерные задачи, применяются линейные и квадратичные элементы. Задания выполняются в системе Matlab с применением Partial Differential Equation Toolbox, а также на Python с использование пакета FEniCS (fenicsproject.org).
Интеграция метода конечных элементов в систему компьютерной математики
# | Тема | Материал | Скачать |
---|---|---|---|
1а | Знакомство с Partial Differential Equation Toolbox системы Matlab. Решение краевой задачи для уравнения Пуассона, сравнение точного и конечно-элементного решения | Задание 1.4, 1.5, 1.6 из Темы 1 | (скриптовая реализация в Matlab) |
1б | Знакомство с пакетом FEniCS для Python (fenicsproject.org). Решение краевой задачи для уравнения Пуассона, сравнение точного и конечно-элементного решения | Задание 1.7 из Темы 1 | Для работы с FEniCS через Colab см. ссылку. (реализация в FEniCS) (альтернативная реализация в FEniCS) |
2 | Задача о стационарном распределении тепла в двухслойной пластине. Конечно-элементная реализация в Matlab (GUI или скриптовая реализация). Конечно-элементная реализация средствами FEniCS на Python, вспомогательные ссылки: Subdomains and Boundary Conditions Handling Domains with Different Materials | Задание 2.5 из Темы 2 | (реализация в FEniCS) |
3 | Задача о рассеянии волны в канале. Влияние геометрии канала на решение. Реализация в Matlab (GUI + скриптовая реализация). Реализация средствами библиотеки FEniCS на Python. Реализация в Mathematica | Задание 3.4 из Темы 3 | |
4 | Применение метода конечных элементов для нестационарных краевых задач в трехмерной области | Задание 4.4 из Темы 4 | |
5 | Построение и визуализация базисных функций для P3-элемента (кубическая аппроксимация) на произвольном треугольнике | Задание 5.4, 5.5, 5.6 из Темы 5 | |
6 | Реализация алгоритма метода конечных элементов в пространстве P1-элементов | Задание 6.1 (задача Дирихле) из Темы 6 |