Метод объёма жидкости

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Иллюстрация моделирования жидкости с помощью метода объёма жидкости

Метод объёма жидкости (англ. Volume of fluid method, VOF) — численный метод для аппроксимации свободной поверхности. Он относится к классу Эйлеровых методов, которые характеризуются сеткой, которая является стационарной или движется согласно изменяющейся форме поверхности по определённому заданному закону. Метод представляет собой алгоритм, который позволяет программисту отслеживать форму и положение поверхности в целом, но не является автономным алгоритмом. Уравнения Навье — Стокса, описывающие движение потоков, должны быть решены по отдельности, что характерно для всех других алгоритмов адвекции.

Спецификация

Основой метода является дробная функция [math]\displaystyle{ C }[/math], которая является интегралом характеристических функций жидкости в конечном объёме (назовем его ячейкой). Если ячейка пуста (нет жидкости), [math]\displaystyle{ C }[/math] равно нулю, если ячейка полная [math]\displaystyle{ C=1 }[/math], для промежуточных состояний [math]\displaystyle{ 0\lt C\lt 1 }[/math]. [math]\displaystyle{ C }[/math] является непрерывной функцией, принимающей значения от 0 до 1.

Дробная функция [math]\displaystyle{ C }[/math] является линейной и пока жидкость перемещается со скоростью

[math]\displaystyle{ \mathbf{v}=(u(x,y,z),v(x,y,z),w(x,y,z)) }[/math]

(в трёхмерном пространстве [math]\displaystyle{ \mathbf{R^3} }[/math]) каждая частица находится в заданной фазе и не меняет фазу — как частица воздуха которая часть воздушного пузырька в воде остаётся частицей воздуха независимо от перемещения пузырька (мы пренебрегаем растворением воздуха в воде). Производная дробной функции должна быть равна нулю:

[math]\displaystyle{ \frac{\partial C}{\partial t} + \mathbf{v}\cdot \nabla C +\nabla\cdot(C (1-C) U_r) =0. }[/math]

Последнее слагаемое проявляется только на поверхности и «сжимает» эту область с помощью искусственного поля [math]\displaystyle{ U_r }[/math].

Применение

Используется, в частности, в OpenFoam для моделирования задач со свободной поверхностью.