Содержание
§ 13. Моделирование движения поверхности жидкости
Производная Лагранжа
Эта производная является частным случаем (с точки зрения физики) полной производной, а полная производная — это производная от функции по какому-то параметру (обычно, это время), которая учитывает зависимость ее аргументов от этого параметра.
Законы сохранения для жидкости
Общий закон сохранения для свойств жидкости (массы, импульса и энергии) можно сформулировать так: свойство в замкнутом объеме изменяется только за счет обмена с внешней средой (соседними объемами) и за счет источников/стоков внутри этого объема. В общем случае этот закон можно записать так.
Здесь — это свойство жидкости, — скорость жидкости, — источники/стоки (внешние и внутренние силы). Используя теорему Остроградского—Гаусса, заменяем интеграл по площади на интеграл по объему и получаем
Теперь мы можем внести производную по времени под знак интеграла, предположив, что объем не изменяется по времени.
Поскольку это уравнение должно выполняться для любого замкнутого объема, то мы можем убрать знак интеграла. Тогда получаем
Наконец, раскрыв градиент, мы можем переписать уравнение через производную Лагранжа.
Закон сохранения массы
Закон сохранения импульса
Здесь — тензор напряжений, который можно записать как . Здесь — давление, — единичная матрица, — модифицированный тензор напряжений.
Закон сохранения энергии
Эти три уравнения являются основой для решения основных задач гидродинамики. Конкретная задача получается путем добавления дополнительных уравнений, задающих начальные и граничные условия, а также состояние системы.
Волны на границе раздела двух жидкостей
Для описания таких волн используют кинематическое и динамическое граничные условия.
Кинематическое граничное условие заключается в том, что частицы жидкости на границе двигаются с той же скоростью, что и сама граница: проекция скорости частицы жидкости на нормаль к поверхности равна проекции скорости поверхности на ту же нормаль.
Динамическое граничное условие заключается в том, что давление на границе должно быть непрерывным: внутреннее давление одной жидкости равно внутреннему давлению другой.
В этих условиях граница раздела двух жидкостей подвижная, это означает, что на каждом временном шаге решения находящиеся на границе узлы придется перемещать в соответствии со скоростями жидкостей. Если же граница проходит не по узлам, а сквозь ячейки, то придется изменять сетку, чтобы учесть граничные условия. Этот процесс ресурсоемкий для компьютера, поэтому для описания волн на границе двух жидкостей используют упрощенные модели.
Волны малых амплитуд
Высота таких волн должна быть много меньше их длины. Под это описание подходят океанские волны кроме волн-убийц и волн на мелководье. Поскольку такие волны не опрокидываются, то границу раздела двух жидкостей можно задать функцией, которая определяет координату поверхности:
Тогда граничные условия перепишутся следующим образом.
Итого, кинематическое граничное условие упростилось, а динамическое теперь можно использовать для подстановки атмосферного давления как константы в закон сохранения импульса.
Также в рамках теории волн малых амплитуд упрощаются и сами законы сохранения: движение предполагается безвихревым, а жидкость несжимаемой.
Используя равенство , представим вектор скорости как градиента некоторой скалярной функции — потенциала скорости .
Теперь можно переписать законы сохранения и граничные условия, используя потенциал скорости.
Закон сохранения массы
Закон сохранения импульса (динамическое граничное условие)
Кинематическое граничное условие
или его линеаризованная форма
Линеаризованная система этих уравнений имеет аналитическое решение в виде ряда Фурье, слагаемые которого домножены на экспоненту.
Волны малых амплитуд — это наиболее простая и распространенная теория, которая используется для моделирования поведения волн на компьютере. Для этого достаточно сгенерировать случайные фазы для каждой суммируемой гармоники, а амплитуды вычислить из спектра. В итоге получится следующая формула для взволнованной поверхности.
Здесь — волновые числа, — угловая частота, — случайная фаза, — частотный спектр морских волн. Спектр можно получить с помощью аналитических аппроксимаций или в дискретном виде из метеонаблюдений. Модель получила название Лонге—Хиггинса.
Трохоидальные волны Герстнера
Эти волны являются более точным описанием взволнованной поверхности. Модель основана на описании движения отдельных частиц. Раньше мы рассматривали конечные объемы, через границы которых входили и выходили частицы. Такая система координат называется эйлеровой. Этой системе противопоставляются лагранжевы координаты, которые задают положение отдельных частиц, а не конечного объема. Волны Герстнера являются решением системы уравнений из предыдущего раздела, записанного в такой системе координат.
Здесь — координаты неподвижных узлов сетки, вокруг которых вращаются частицы, — координаты частиц.
Волны Герстнера отличаются наличием вихрей, а значит, нельзя использовать потенциал скорости для вычисления силы давления под взволнованной поверхностью. Этим ограничением часто пренебрегают, поскольку альтернативного аналитического метода просто не существует. Также эти волны используют для спецэффектов в компьютерных играх и фильмах, поскольку волны выглядят реалистично, а формулы легко переписать с помощью преобразований Фурье, которые эффективно вычисляются на процессоре и видеокарте.
Гидродинамика сглаженных частиц
Это один из так называемых бессеточных методов, то есть методов, которые используют частицы для моделирования жидкости, а не конечные объемы. Взаимодействие частиц происходит в заданном радиусе от конкретно взятой частицы. Параметры частицы (плотность, объем, давление, скорость и т.д) определяются как взвешенная сумма параметров окружающих частиц, а в качестве весовой функции используюется гауссиан или аналогичная сглаживающая функция. Раньше мы аппроксимировали производные линейной комбинацией значений функции в окружающих узлах или ячейках сетки, а теперь мы аппроксимируем их взвешенной суммой значений функции в окружающих частицах.
Это основное уравнение для гидродинамики сглаженных частиц, которое определяет некоторое свойства в виде интеграла со сглаживающим ядром (взвешенной суммы). Здесь — физическая величина (плотность, скорость, давление и т.п.), — координата частицы, — радиус взаимодействия, — сглаживающее ядро (весовая функция).
Вычисление производных так же делается по этим формулам.
Для этого нам надо знать только производную весовой функции.
Для плотности уравнение принимает следующий дискретный вид.
Здесь индексы обозначают конкретные частицы.
Теперь перепишем известные нам уравнения с помощью этой формулы.
Закон сохранения массы примет вид
Закон сохранения импульса примет вид
В качестве сглаживающего ядра выбирают следующие функции.
Гауссиан
Здесь — количество измерений.
Полиномиальную аппроксимацию
Для вычисления давления используют аппроксимацию уравнения состояния идеального газа.
Задания
Волны Герстнера1 балл
Сгенерируйте трехмерную взволнованную морскую поверхность, сформированную тремя волнами с произвольно выбранными параметрами (амплитудой, направлением, частотой, длиной). Для этого создайте равномерную сетку на поверхности, и в каждом узле сетки поставьте начальную координату частицы. Затем считайте новые координаты частиц по формулам.
Волны малых амплитуд2 балла
Используйте модель Лонге—Хиггинса для моделирования трехмерной взволнованной морской поверхности. Для этого аппроксимируйте спектр с помощью модели Пирсона—Московица.
Здесь — частотный спектр морского волнения, — угловое распределение энергии, — угловая частота, — частота волн, — направление волн, — ускорение свободного падения, — коэффициенты, — характерная угловая частота, — средняя скорость ветра.
Перейти между частотой и направлением и волновыми числами можно, используя дисперсионное соотношение для морских волн.
Случайные фазы распределены равномерно на промежутке .
Сглаженные частицы3 балла
Напишите программу, которая симулирует поведение жидкости с помощью сглаженных частиц в двухмерном пространстве в прямоугольной области, окруженной твердыми стенками. На границах нормальная составляющая скорости должна менять свой знак на противоположный и демпфироваться. Для визуализации есть скелет программы в репозитории.
git clone https://courses.igankevich.com/numerical-methods/sph.git cd sph make cd build ./sph