Решение уравнений Навье-Стокса на Python | Вычислительная гидродинамика на Python | Резонатор с п...
Автор: Machine Learning & Simulation
Загружено: 2021-11-19
Просмотров: 85876
Описание:
Вы когда-нибудь хотели начать программировать для вычислительной гидродинамики (CFD) для моделирования жидкостей? Вот первый пример для вас. Мы решаем уравнения Навье-Стокса для несжимаемой жидкости, используя проекцию Хорина для обеспечения несжимаемости. Вот код: https://github.com/Ceyron/machine-lea...
Мы дискретизируем несжимаемые уравнения Навье-Стокса, состоящие из уравнения импульса и ограничения несжимаемости, методом конечных разностей. Частные производные решаются с помощью центральной разностной схемы, оператора Лапласа через пятиточечный шаблон, и мы используем явный метод Эйлера по времени. Мы учитываем несжимаемость, используя проекцию Хорина, которая состоит из трёх этапов:
1. Находим предварительную скорость, прогоняя уравнения импульса без градиента давления.
2. Решаем уравнение давления-Пуассона с корректирующим давлением.
3. Корректируем скорость для обеспечения несжимаемости.
Второй этап выполняется примерно за 50 итераций Якоби для уменьшения сложности.
Шаги (1) и (3) включают граничные условия Дирихле для скорости, которые однородны всюду, за исключением заданной горизонтальной скорости в верхней точке. Граничные условия для давления являются однородными по Нейману (нулевой градиент на границе) всюду, за исключением верхней точки, где это однородное граничное условие Дирихле. Это, конечно, связано с тем, что у нас нет оттока через наши твёрдые стенки.
Если моделирование выполняется хотя бы 0,1 секунды, возникает вихревое движение, которое прекрасно видно по линиям тока, которые мы построим в итоге.
Наконец, мы реализуем ограничение устойчивости, основанное на анализе устойчивости по фон Нейману для схемы уравнения теплопроводности «Центрально-пространственно-прямо во времени» (FTCS) (также известной как условие CFL).
Это видео вдохновлено работой @lorenabarba. Ознакомьтесь с её замечательным курсом по вычислительной гидродинамике на Python https://lorenabarba.com/blog/cfd-pyth..., который также очень помог мне в понимании тем.
-------
📝 : Загляните в репозиторий канала на GitHub, куда я выкладываю все рукописные заметки и файлы с исходным кодом (вклад очень приветствуется): https://github.com/Ceyron/machine-lea...
📢 : Подписывайтесь на меня в LinkedIn или Twitter, чтобы быть в курсе новостей канала и других интересных материалов о машинном обучении и моделировании: / felix-koehler и / felix_m_koehler
💸 : Если хотите поддержать мою работу над каналом, зарегистрируйтесь на Patreon здесь: / mlsim
-------
Временные метки:
00:00 Введение
00:25 Описание задачи
00:54 Граничные условия
01:30 Проекция Хорина (метод разделения)
02:00 Ожидаемый результат: вихри
02:12 Стратегия в индексной нотации
02:37 Импорт
02:56 Определение констант (параметров моделирования)
04:05 Главный переключатель (шаблон)
04:27 Определение сетки: пространственная дискретизация
05:11 Задание начального условия
05:48 Центральные разности по x
07:13 Центральные разности по y
08:11 Пятиточечный шаблон для оператора Лапласа
09:33 Шаблон шага по времени
09:49 Решение импульса для предварительной скорости
12:48 Обеспечение граничных условий скорости
14:30 Решение уравнения Пуассона давления для коррекции давления
20:29 Коррекция скорости
21:54 Повторное обеспечение граничных условий скорости
22:14 Продвижение по времени
22:37 Решение сюжета (+ исправление ошибки)
23:42 Обсуждение решения
24:32 Оптимизация сюжета
25:13 Проверка числовой устойчивости
28:33 Заключение
Повторяем попытку...
Доступные форматы для скачивания:
Скачать видео
-
Информация по загрузке: