Моделирование течения жидкости с помощью уравнения Эйлера

Я некоторое время смотрю на уравнения Эйлера и не могу понять одну вещь.

Пусть у нас есть начальное состояние системы с объемами жидкости, «висящими» в воздухе (время заморожено и равно нулю), каждый из них имеет свои начальные (x, y) координаты и вектор скорости (Vx, Vy). Пространство разделено на стационарные объемы, в которых происходит измерение (модель измерения Эйлера).Двухмерное представление сегментированного пространства и ограничений

Насколько я понимаю, уравнения Эйлера накладывают взаимные ограничения между функциями скорости (u(x, y, t)), плотности массы (m(x, y, t)) и давления (p(x, y, t)) при любом экземпляр времени для стационарного объема пространства с координатами (x, y), который содержит объем жидкости (в этом случае).

Так почему же каждая функция имеет параметр времени, когда уравнения должны решаться для любого момента времени (итерационный процесс)? Мы должны иметь новый набор этих функций для любого момента времени, удовлетворяющих уравнениям. И неясно, содержит объем пространства объем жидкости или нет, как мы это учитываем?

И второй вопрос: как с этими функциями связано состояние каждого объема жидкости (его координаты и вектор скорости)? Мне нужна система, которая имеет некоторое начальное состояние (массив объемов жидкости с их координатами и скоростями) и использует уравнения Эйлера для вычисления следующего состояния, которое становится начальным для следующей итерации и так далее. Что-то вроде этого:схема

Мне не нужны математические подробности, я просто хочу понять основную идею в контексте компьютерного моделирования (как метод моделирования может быть ограничен стандартными аналитическими уравнениями). Большинство документов очень сложны, с дополнительными физическими факторами и взаимодействием с пользователем, и они не охватывают эту «ссылку». Я хочу рассмотреть самый простой случай и как запустить итерационный процесс (просто идея и как это обычно делается). Извините, если некоторые вещи звучат нелепо, пожалуйста, поправьте мои утверждения, если они неверны. Если моя модель понимания совершенно неверна, просто укажите мне правильное направление, спасибо.

Взгляните на это для получения информации о том, как вводить красиво отформатированные уравнения в свои сообщения. Извините, это немного стены текста, но после выяснения пары простых уравнений это действительно довольно интуитивно понятно.
Я всегда рекомендую начинать изучение темы с поиска учебника. Из журнальных статей очень трудно выучить совершенно новую тему — предполагается, что они должны сообщать продвинутую тему экспертам в этой области. Учебники предназначены для того, чтобы научить кого-то стать экспертом.
Я поддерживаю идею tpg о получении книги. Я очень рекомендую превосходный текст Рэндалла Левека о гиперболических законах сохранения.

Ответы (1)

Что касается первой половины вашего вопроса: ваше широкое понимание кажется правильным. Чтобы ответить на вопрос о том, как определить, есть ли жидкость в данной ячейке, рассмотрим, какова массовая плотность м ( Икс , у , т ) находится в пустой ячейке. Это просто ноль. Это уже легко обрабатывается вашей системой уравнений.

Что касается второй половины вашего вопроса, то это очень широкая тема. Имитация жидкостей, как правило, сложна, и существует множество методов, подходящих для разных ситуаций (например, из двух наиболее знакомых мне алгоритмов один очень хорош в разрешении шоков, но не так хорош в моделировании). некоторые нестабильности, такие как Рэлея-Тейлора, в то время как второй хорош для нестабильностей, но плохо для разрешения шоков). Вместо того, чтобы пытаться дать вам обширное введение в тему, для чего вам, вероятно, следует просто попытаться найти хорошую книгу, я покажу вам одну концепцию, которая, я надеюсь, поможет вам начать знакомство с увлекательным миром численных методов.

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

ты т α 2 ты Икс 2 "=" 0

Рассмотрим производную по времени. Одно математическое определение производной:

ты т "=" лим Δ т 0 ты ( Икс , т + Δ т ) ты ( Икс , т ) Δ т

Одно из возможных приближений этой производной состоит в том, чтобы взять не предел, а Δ т 0 , а просто выбрать маленькое значение для Δ т , давая:

ты т ты ( Икс , т + Δ т ) ты ( Икс , т ) Δ т

Аналогичный подход можно использовать для получения пространственной производной (одно из нескольких возможных приближений):

2 ты Икс 2 ты ( Икс + Δ Икс , т ) 2 ты ( Икс , т ) + ты ( Икс Δ Икс , т ) Δ Икс 2

Соединяя все это вместе в уравнении теплопроводности и немного переставляя, получаем:

ты ( Икс , т + Δ т ) "=" ты ( Икс , т ) + α Δ т Δ Икс 2 [ ты ( Икс + Δ Икс , т ) 2 ты ( Икс , т ) + ты ( Икс Δ Икс , т ) ]

Обратите внимание, что следующее состояние системы (в т + Δ т , в левой части) полностью выражается через текущее состояние системы (в т ) с правой стороны. Таким образом, вы можете закодировать это на компьютере и многократно оценивать новые состояния с достаточно небольшим выбором для Δ Икс и Δ т чтобы получить эволюцию системы.

Концептуально вы захотите проделать то же самое с вашей системой уравнений Эйлера, но, конечно, уравнения более сложные (в них больше терминов и больше полей, которые нужно отслеживать). Имейте в виду, что при численном решении вы ВСЕГДА строите приближение, поэтому в вашем решении по определению есть ошибка. Теперь игра состоит в том, чтобы (1) понять, насколько точна ваша аппроксимация, когда она верна, сходится и т. д., и (2) попытаться свести ваши ошибки к минимуму, заплатив при этом разумные затраты вычислительных ресурсов. Пример, который я привел, прост для понимания и дает примерно правильный ответ для некоторых простых сценариев, но, как правило, он плохо сходится и имеет большие ошибки. Но как только вы поймете этот базовый пример, чтение более сложных схем решения станет намного проще.