Прикладная математика и механика, 2020, T. 84, № 5, стр. 554-569

Об обрушении капиллярно-гравитационных волн и формировании кумулятивных струй

Н. Д. Байков 1*, А. Г. Петров 2**

1 Московский государственный университет им. М.В. Ломоносова
Москва, Россия

2 Институт проблем механики им. А.Ю. Ишлинского РАН
Москва, Россия

* E-mail: baikov_nd@rambler.ru
** E-mail: petrovipmech@gmail.ru

Поступила в редакцию 18.10.2019
После доработки 14.07.2020
Принята к публикации 20.07.2020

Полный текст (PDF)

Аннотация

Изучаются плоские нестационарные задачи движения свободной границы в потенциальном течении идеальной несжимаемой жидкости. На основе метода граничных элементов строится численный алгоритм расчета формы свободной границы. При построении аппроксимаций учитывается гладкость границы. Основное внимание уделяется задачам формирования тонких кумулятивных струй и обрушению волн, обоснованию достоверности численных расчетов.

Ключевые слова: кумулятивные струи, метод граничных элементов, обрушение волн

Введение. При описании плоских потенциальных течений идеальной несжимаемой жидкости удобно пользоваться методом граничных элементов. Одним из преимуществ этого метода является уменьшение размерности задачи за счет сведения расчетов к (одномерной) границе области течения жидкости. Данная работа посвящена численному моделированию движения свободной границы в трех типах задач: деформации цилиндрических полостей в неограниченном объеме жидкости, деформации свободной границы цилиндров жидкости под действием заданного поля скоростей и обрушения капиллярно-гравитационных периодических волн. При определенных начальных условиях в каждой из этих задач на свободной поверхности жидкости могут образовываться тонкие кумулятивные струи. Сложность проведения таких расчетов обычно связана с потерей устойчивости численной схемы и стремительным ростом кривизны кумулятивной струи, требующей большого измельчения сетки в ее окрестности. Использование аппроксимаций специального вида, разработанных одним из авторов [1], позволяет преодолеть указанные трудности. Для обоснования достоверности расчетов по предложенной численной схеме авторами было сделано следующее:

• Проведены расчеты для задачи восстановления кривой по заданному распределению нормальной скорости и сравнение расчета с точным решением

• Приведены четыре закона сохранения, по которым ведется контроль точности расчетов

• Проведено сравнение численных расчетов с известными полуаналитическими решениями

• Проведен анализ уменьшения погрешности при удвоении элементов сетки.

1. Математическая постановка задачи. Конечной целью предлагаемого численного алгоритма будет являться нахождение формы движущейся свободной границы, которая может быть определена кинематически по значениям нормальной компоненты скорости жидкости $V$ на границе. Для определения $V$ достаточно знать значение функции тока $\Psi $ на границе, поскольку $V = \partial \Psi {\text{/}}\partial s$. Покажем, что для отыскания значений $\Psi $ и описания ее движения в задачах деформации цилиндрических полостей, движения цилиндров жидкости, а также движения периодических волн могут использоваться интегро-дифференциальные уравнения одного и того же типа.

Начнем с задачи деформации цилиндрической полости в неограниченном объеме идеальной несжимаемой жидкости, движение которой плоскопараллельно и потенциально. Пусть ось цилиндра направлена перпендикулярно плоскости течения. Будем рассматривать задачу в плоскости, параллельной течению. На этой плоскости внутренности полости соответствует некоторая ограниченная область $S$ с замкнутой гладкой свободной границей $\partial S$. Областью течения жидкости является внешность полости ${{\mathbb{R}}^{2}}{\backslash }S$, и в ней функция тока $\Psi $ удовлетворяет уравнению Лапласа. При условии, что жидкость покоится на бесконечности, из него можно вывести интегральное уравнение, связывающее значения $\Psi $ на границе $\partial S$ с вещественной функцией потенциала $\Phi $. Для этого введем два интегральных оператора $A$ и $B$. Пусть $F$ – произвольная гладкая функция, заданная на $\partial S$. Действие $A$ и $B$ на $F$ в точке $M \in \partial S$ определим по следующим формулам:

(1.1)
$[AF](M) = - \int\limits_{\partial S} G(M,M{\kern 1pt} ')F(M{\kern 1pt} '){\kern 1pt} ds{\kern 1pt} '$
(1.2)
${[BF](M) = \int\limits_{\partial S} \frac{{\partial G}}{{\partial n{\kern 1pt} '}}(M,M{\kern 1pt} ')(F(M{\kern 1pt} ') - F(M)){\kern 1pt} ds{\kern 1pt} '},$
где $G(M,M{\kern 1pt} ')$ обозначает функцию Грина и для пары точек $M(x,y)$ и $M{\kern 1pt} '(x{\kern 1pt} ',y{\kern 1pt} ')$ вычисляется по формуле

(1.3)
$G(M,M{\kern 1pt} ') = \frac{1}{2}ln[{{(x{\kern 1pt} '\; - x)}^{2}} + {{(y{\kern 1pt} '\; - y)}^{2}}]$

При этом направление нормали на свободной границе выбрано внешним по отношению к полости $S$. Для $\Psi $ справедливо следующее уравнение:

(1.4)
$ - 2\pi \Psi (M,t) = \left[ {A\left( { - \frac{{\partial \Phi }}{{\partial s}}} \right) + B\Psi } \right](M,t),$
которое и будет использоваться для построения численного алгоритма.

Постановка задачи о движении цилиндра жидкости со свободной границей может быть получена из постановки задачи о деформации цилиндрической полости. Для этого достаточно поменять местами полость $S$ и область течения жидкости ${{\mathbb{R}}^{2}}{\backslash }S$. Интегральное уравнение для $\Psi $ в этом случае также определено на $\partial S$, использует те же интегральные операторы $A$ и $B$, и ту же самую функцию Грина (1.3) и имеет следующий вид:

(1.5)
$0 = \left[ {A\left( { - \frac{{\partial \Phi }}{{\partial s}}} \right) + B\Psi } \right](M,t),$
т.е. отличается от (1.4) лишь левой частью уравнения.

Для задания уравнения, определяющего значения $\Psi $ в задаче о движении периодической волны в жидкости постоянной глубины, требуется внести в (1.4) более существенные изменения. Сформулируем постановку задачи. Введем декартову систему координат $Oxy$, где ось $y$ направлена вертикально вверх. Пусть уровень дна задается уравнением $y = - h$, где $h > 0$ обозначает глубину жидкости. Для простоты будем считать, что длина волны $\lambda = 2\pi $. Область жидкости, заключенную между двумя вертикальными прямыми $x = 0$ и $x = 2\pi $ обозначим через ${{S}_{w}}$. Граница области ${{S}_{w}}$ является кусочно-гладкой и состоит из четырех частей: отрезка дна, пары вертикальных отрезков и криволинейного участка свободной границы, который мы обозначим через $L$.

При движении периодических волн в дополнение к уравнению Лапласа $\Psi $ удовлетворяет также условию периодичности

(1.6)
$\Psi (x,y,t) = \Psi (x + 2\pi ,y,t)$

На дне задается условие непротекания. В этом случае прямая $y = - h$ (дно) совпадает с линией тока жидкости:

(1.7)
${{\left. \Psi \right|}_{{y = - h}}} = {{\Psi }_{h}} = \operatorname{const} $

Без ограничения общности можно считать, что ${{\Psi }_{h}} = 0$. Следствием этих условий является интегральное уравнение

(1.8)
$\pi \Psi (M,t) = \left[ {\tilde {A}\left( { - \frac{{\partial \Phi }}{{\partial s}}} \right) + \tilde {B}\Psi } \right](M,t)$

Здесь интегральные операторы $\tilde {A}$, $\tilde {B}$ определяются аналогично операторам $A$, $B$ из (1.1), (1.2), но вместо $\partial S$ интегрирование ведется по (незамкнутому) участку свободной границы $L$, а в качестве функции Грина используется

(1.9)
$\tilde {G}(M,M{\kern 1pt} ') = \frac{1}{2}ln\left[ {\frac{{2(ch(y{\kern 1pt} '\; - y) - cos(x{\kern 1pt} '\; - x))}}{{1 - 2Ecos(x{\kern 1pt} '\; - x) + {{E}^{2}}}}} \right],$
где $E = {{e}^{{ - 2h - y - y'}}}$. Направление нормали внешнее по отношению к области ${{S}_{w}}$. Вывод всех этих интегральных уравнений представлен в [2].

Таким образом, уравнения (1.4), (1.5) и (1.8) позволяют по известным значениям $\Phi $ на свободной границе определять значения $\Psi $ и $V = \partial \Psi {\text{/}}\partial s$ во всех трех типах задач. Касательная скорость точек границы $U$ на геометрическую форму не влияет, но от ее выбора существенно зависит устойчивость численной схемы. Ниже будет описан способ вычисления $U$, повышающий устойчивость численного алгоритма.

Наконец, чтобы получить полную систему уравнений, достаточную для построения численного алгоритма, необходимо указать способ вычисления потенциала $\Phi $. Будем использовать для этого интеграл Коши–Лагранжа. Дополнительно потребуем, чтобы давление $p$ на свободной поверхности во всех трех случаях равнялось нулю. Интеграл может быть записан в следующем виде:

(1.10)
${{\left. {\frac{{\partial \Phi }}{{\partial t}}} \right|}_{{x,y}}} + \frac{{({\mathbf{v}},{\mathbf{v}})}}{2} + gy - \sigma k = F(t),$
где плотность жидкости $\rho $ полагается равной единице, $g$ характеризует силу тяжести, $\sigma $ – коэффициент поверхностного натяжения, $k$ – кривизна, а $F(t)$ – некоторая функция времени. Так как потенциал определен с точностью до произвольной функции времени, можно положить $F(t) = 0$. В зависимости от рассматриваемой задачи $g$ и $\sigma $ могут также оказаться равными нулю. Отметим, что для использования интеграла (1.10) на подвижной свободной границе необходимо отказаться от эйлеровых координат и выразить соответствующие слагаемые через координаты на границе.

2. Численный алгоритм. Предлагаемый численный алгоритм является обобщением алгоритма [3], предложенного для решения задачи деформации цилиндрических полостей. Численные эксперименты показали, что предложенный алгоритм [3] сохраняет устойчивость при расчете тонких кумулятивных струй жидкости, возникающих при деформации полостей. Поскольку кумулятивные струи могут возникать в каждом из трех рассматриваемых случаев, это служит мотивацией для выбора метода решения.

Рассмотрим более подробно аппроксимацию интегральных уравнений (1.4), (1.5) и (1.8). При этом достаточно рассмотреть аппроксимацию только операторов $A$ и $B$, поскольку аппроксимации $\tilde {A}$ и $\tilde {B}$ могут быть получены аналогичным образом: необходимо лишь учесть изменение вида функции Грина, а также незамкнутость $L$.

Заменим интегралы в $A$ и $B$ квадратурными формулами, порядок аппроксимации которых неограниченно возрастает с ростом количества точек сетки. Для этого введем гладкую параметризацию свободной границы $\partial S$ при помощи вспомогательного параметра $\zeta \in [0,1]$ (критерии выбора параметризации будут сформулированы ниже), зададим равномерную сетку ${{\zeta }_{i}} = i{\text{/}}N$, где $i = 1,2,...,N$, и применим квадратурные формулы [1]. Получим следующую аппроксимацию оператора $A$:

(2.1)
$\left[ {A\left( { - \frac{{\partial \Phi }}{{\partial s}}} \right)} \right]({{\zeta }_{i}},t) \approx \frac{1}{N}\sum\limits_{j = 1}^N \left( {\beta ({\text{|}}i - j{\text{|}}) + {{G}_{{ij}}}} \right)\frac{{\partial \Phi }}{{\partial \zeta }}({{\zeta }_{j}},t),$
где

$\begin{gathered} \beta (0) = \alpha (0),\quad \beta (m) = - ln\left| {sin\frac{{\pi m}}{N}} \right| + \alpha (m) \\ \alpha (m) = - \left( {ln2 + \frac{{{{{( - 1)}}^{m}}}}{N} + \sum\limits_{k = 1}^{N/2 - 1} \frac{1}{k}cos\frac{{2\pi km}}{N}} \right) \\ {{G}_{{ij}}} = G({{\zeta }_{i}},{{\zeta }_{j}}),\quad i \ne j \\ {{G}_{{ii}}} = \mathop {lim}\limits_{\zeta \to {{\zeta }_{i}}} \left( {G({{\zeta }_{i}},\zeta ) - ln\left| {sin(\pi ({{\zeta }_{i}} - \zeta ))} \right|} \right) \\ \end{gathered} $

Для функции Грина (1.3) имеем

${{G}_{{ii}}} = \frac{1}{2}ln\left[ {\frac{1}{{{{\pi }^{2}}}}\left( {{{{\left( {\frac{{\partial x}}{{\partial \zeta }}({{\zeta }_{i}},t)} \right)}}^{2}} + {{{\left( {\frac{{\partial y}}{{\partial \zeta }}({{\zeta }_{i}},t)} \right)}}^{2}}} \right)} \right]$

Соответствующие коэффициенты для функции Грина (1.9) имеют вид

${{{{\tilde {G}}}_{{ii}}} = \frac{1}{2}ln\left[ {{{{\left( {\frac{{\partial x}}{{\partial \zeta }}({{\zeta }_{i}},t)} \right)}}^{2}} + {{{\left( {\frac{{\partial y}}{{\partial \zeta }}({{\zeta }_{i}},t)} \right)}}^{2}}} \right] - \frac{1}{2}ln[{{\pi }^{2}}{{{(1 - {{E}_{i}})}}^{2}}],\quad {{E}_{i}} = {{e}^{{ - 2(h + {{y}_{i}})}}}}$

Аппроксимация оператора $B$ приобретает вид

(2.2)
$[B\Psi ]({{\zeta }_{i}},t) \approx \frac{1}{N}\sum\limits_{j = 1}^N G_{{ij}}^{n}(\Psi ({{\zeta }_{j}},t) - \Psi ({{\zeta }_{i}},t)),$
где

${G_{{ij}}^{n} = \frac{{\partial G}}{{\partial x{\kern 1pt} '}}({{\zeta }_{i}},{{\zeta }_{j}})\frac{{\partial y}}{{\partial \zeta }}({{\zeta }_{j}},t) - \frac{{\partial G}}{{\partial y{\kern 1pt} '}}({{\zeta }_{i}},{{\zeta }_{j}})\frac{{\partial x}}{{\partial \zeta }}({{\zeta }_{j}},t)\quad \left( {i \ne j} \right),\quad G_{{ii}}^{n} = 0}$

Формулы (2.1) и (2.2) оперируют значениями $\partial x{\text{/}}\partial \zeta $, $\partial y{\text{/}}\partial \zeta $ и $\partial \Phi {\text{/}}\partial \zeta $ в точках сетки. Для их вычисления можно, например, использовать аппроксимацию в виде кубического сплайна или аппроксимацию производной по 4 точкам. Пусть $F(\zeta )$ обозначает произвольную гладкую периодическую функцию, заданную на отрезке $\zeta \in [0,1]$. Продолжим функцию по периоду за пределы отрезка. Аппроксимация ее производной по 4 точкам имеет следующий вид:

(2.3)
${\frac{{\partial F}}{{\partial \zeta }}({{\zeta }_{i}}) \approx N\left( {\frac{2}{3}\left( {F({{\zeta }_{{i + 1}}}) + F({{\zeta }_{{i - 1}}})} \right) - \frac{1}{{12}}\left( {F({{\zeta }_{{i + 2}}}) + F({{\zeta }_{{i - 2}}})} \right)} \right);\quad {{\zeta }_{i}} = \frac{i}{N},\quad i \in \mathbb{Z}}$

Таким образом, уравнения (1.4), (1.5) и (1.8) сводятся к системе линейных уравнений относительно значений ${{\Psi }_{i}}$ в точках сетки. Они, в свою очередь, определяют ${{V}_{i}} = (\partial \Psi {\text{/}}\partial \zeta {{)}_{i}}$.

Определение касательных скоростей точек сетки ${{U}_{i}}(t): = U({{\zeta }_{i}},t)$ тесно связано со способом ее параметризации. Зададим параметризацию $\partial S$ (и аналогично $L$) при помощи вспомогательной положительной функции $f(\zeta )$ по формуле

$ds = l(t)f(\zeta )d\zeta ,\quad 0 \leqslant \zeta \leqslant 1,\quad \int\limits_0^1 f(\zeta ){\kern 1pt} d\zeta = 1,$
где $l(t)$ – длина $\partial S$ (или одного периода волны $L$) в момент времени $t$. Функция $f(\zeta )$ здесь является известной заданной положительной функцией и позволяет управлять распределением точек на границе. Принципиальным является то, что $f$ не зависит от $t$, т.е. заданное в начальный момент распределение точек обязано сохраняться с течением времени. Такой подход позволяет за счет выбора $f(\zeta )$ вручную задать высокую плотность точек сетки на тех участках, где из-за высокой кривизны требуется более высокая точность, а также предотвратить возможность разрежения в процессе вычислений там, где точки сетки изначально были размещены близко друг к другу.

Сформулированное требование определяет значения ${{U}_{i}}$. Численно оно выражается в виде системы уравнений:

(2.4)
$\Delta {{\tilde {s}}_{i}} = \frac{1}{N}\,l(t + \Delta t)f\left( {\frac{{{{\zeta }_{{i - 1}}} + {{\zeta }_{i}}}}{2}} \right);\quad i = 1,2, \ldots ,N,$
где $\Delta {{\tilde {s}}_{i}}$ – расстояние между точками сетки с индексами $i$ и $i - 1$ в момент $t + \Delta t$. Для получения системы уравнений относительно ${{U}_{i}}$ достаточно выразить $\Delta {{\tilde {s}}_{i}}$ через значения координат ${{x}_{i}}$, ${{y}_{i}}$ и скоростей ${{U}_{i}}$, ${{V}_{i}}$ на текущем шаге по времени $t$. Для решения (2.4) используется итерационный процесс по параметру $l(t + \Delta t)$.

3. Тестирование алгоритма вычисления касательной скорости. Для тестирования алгоритма вычисления ${{U}_{i}}$ рассмотрим численное решение задачи о восстановлении эволюции контура, изменяющего свою форму, по заданному распределению нормальной скорости на границе.

Сформулируем математическую постановку задачи. Пусть на отрезке $x \in [ - \pi ,\pi ]$ задан контур, эволюция которого с течением времени известна и определяется по следующему закону:

(3.1)
$y(t,x) = \frac{1}{{1 - tcosx}}$

Уравнение кривой (3.1) имеет особенность в точке $(t,x) = (1,0)$, в которой координата $y$ обращается в $ + \infty $. При меньших значениях $t$ контур имитирует растяжение вдоль вертикали с неограниченным ростом кривизны в точке $x = 0$. Будем считать, что скорости точек, из которых состоит контур, в каждый момент времени направлены по нормали к контуру, т.е. $U = 0$. Необходимо численно восстановить форму профиля во все моменты времени по его начальной форме и известной (нормальной) компоненте скорости.

Вычислим нормальную компоненту вектора скорости. Пусть направление обхода контура задано от точки $x = \pi $ к точке $x = - \pi $, а вектор нормали получается из касательного вектора поворотом на угол $\pi {\text{/}}2$ по часовой стрелке (т.е. нормаль направлена “вверх”). Вектор нормали в осях $x,y$ имеет компоненты $(\partial y{\text{/}}\partial s, - \partial x{\text{/}}\partial s)$. Нормальная компонента скорости точек профиля точно определяется как

(3.2)
$V = \frac{{\partial y}}{{\partial t}}\left( { - \frac{{\partial x}}{{\partial s}}} \right) = \frac{{\partial y}}{{\partial t}}{{\left( {1 + {{{\left( {\frac{{\partial y}}{{\partial x}}} \right)}}^{2}}} \right)}^{{ - 1/2}}} = \frac{{cosx}}{{\sqrt {{{{(1 - tcosx)}}^{4}} + {{{(tsinx)}}^{2}}} }}$

В начальный момент $t = 0$ контур имеет форму отрезка прямой. Будем использовать для его аппроксимации $N$ точек, распределенных равномерно в начальный момент времени. Приращения пространственных координат этих точек ${{x}_{i}}$ и ${{y}_{i}}$ будем определять на основе метода Эйлера при помощи нормальной скорости (3.2) и касательной скорости ${{U}_{i}}$, которую определим одним из двух способов:

${{U}_{i}} = 0$;

• Значения ${{U}_{i}}$ вычисляются из условия сохранения пропорций расстояний между узлами сетки.

В численном эксперименте будем использовать $N = 32$ точек сетки и постоянный шаг по времени $\Delta t{{ = 10}^{{ - 4}}}$. В первом случае результаты удается получить лишь для $t \leqslant 0.72$. Возникающее к этому моменту разрежение точек сетки в окрестности $x = 0$ вызывает дестабилизацию алгоритма, не позволяя продолжить вычисления из-за быстро растущей погрешности аппроксимации. Значение кривизны в точке $x = 0$ в последний момент составляет примерно $k \approx 9.18$. Во втором случае расчет удается продлить вплоть до момента времени ${{t}_{e}} = 0.92$, после чего погрешность от использования метода Эйлера уже становится слишком большой, чтобы можно было считать численное решение близким к аналитическому. Тем не менее значение кривизны в точке $x = 0$ в последний момент времени достигает величины $k \approx 143.75$, что наглядно демонстрирует влияние способа задания ${{U}_{i}}$ на устойчивость расчетов.

4. Законы сохранения. Одним из способов контроля точности в численном алгоритме могут служить законы сохранения. Например, для движения цилиндра жидкости со свободной границей при отсутствии массовых сил выполнены следующие законы сохранения импульса $({{I}_{x}},{{I}_{y}})$, энергии $E$ и момента количества движения $M$:

(4.1)
${{I}_{x}} = - \int\limits_0^1 y\frac{{\partial \Phi }}{{\partial \zeta }}\,d\zeta ,\quad {{I}_{y}} = \int\limits_0^1 x\frac{{\partial \Phi }}{{\partial \zeta }}\,d\zeta ,\quad E = \frac{1}{2}\int\limits_0^1 \Psi \frac{{\partial \Phi }}{{\partial \zeta }}\,d\zeta ,\quad K = \int\limits_0^1 ({{x}^{2}} + {{y}^{2}})\frac{{\partial \Phi }}{{\partial \zeta }}\,d\zeta $

Ранее [4] на примере $({{I}_{x}},{{I}_{y}})$ было доказано, что указанные интегралы (4.1) сохраняются в том числе и при деформации полостей под действием течений с ненулевой циркуляцией $\Gamma $, хотя и не являются при этом импульсом, энергией и моментом количества движения, т.к. прямое вычисление их невозможно из-за расходимости соответствующих интегралов.

В дополнение к законам сохранения (4.1) в задаче о деформации границы цилиндрической полости сохраняется площадь поперечного сечения полости. Для ее вычисления справедлива следующая аналитическая формула:

(4.2)
${\text{mes}}(S) = \frac{1}{2}\int\limits_0^1 \left( {x\frac{{\partial y}}{{\partial \zeta }} - y\frac{{\partial x}}{{\partial \zeta }}} \right){\kern 1pt} d\zeta $

Ее сеточный аналог имеет вид

(4.3)
${{M}^{j}} = \frac{1}{{2N}}\sum\limits_{i = 1}^N \left( {x_{i}^{j}\frac{{\partial y}}{{\partial \zeta }}_{i}^{j} - y_{i}^{j}\frac{{\partial x}}{{\partial \zeta }}_{i}^{j}} \right),$
где при помощи верхнего индекса $j$ обозначены значения соответствующих величин на $j$-м шаге по времени. Стоит отметить, что формула (5.3) учитывает гладкость подынтегральных функций. Если $x$ и $y$ являются бесконечно гладкими, то порядок аппроксимации величины (5.2) формулой (5.3) неограниченно возрастает вместе с увеличением количества точек сетки.

Уменьшение погрешности в (4.3) имеет важное значение для устойчивости численного алгоритма. Покажем, что величину погрешности можно оценить аналитически. Для простоты положим, что шаг алгоритма по времени $\Delta t$ фиксирован, аппроксимация координат ${{x}_{i}}$, ${{y}_{i}}$ при помощи ${{V}_{i}}$ и ${{U}_{i}}$ на каждом следующем шаге по времени выполняется по методу Эйлера первого порядка точности, а для аппроксимации производных используется формула (3.3).

Оценим величину приращения при переходе от ${{M}^{j}}$ к ${{M}^{{j + 1}}}$. При использовании метода Эйлера в численном алгоритме справедливы следующие формулы для вычисления приращений пространственных координат:

(4.4)
$\begin{gathered} x_{i}^{{j + 1}} = x_{i}^{j} + \Delta t\Delta x_{i}^{j} = x_{i}^{j} + \frac{{\Delta t}}{{{{l}^{j}}f_{i}^{j}}}\left( {U_{i}^{j}\frac{{\partial x}}{{\partial \zeta }}_{i}^{j} + \frac{1}{{{{l}^{j}}f_{i}^{j}}}\frac{{\partial \Psi }}{{\partial \zeta }}_{i}^{j}\frac{{\partial y}}{{\partial \zeta }}_{i}^{j}} \right) \\ y_{i}^{{j + 1}} = y_{i}^{j} + \Delta t\Delta y_{i}^{j} = y_{i}^{j} + \frac{{\Delta t}}{{{{l}^{j}}f_{i}^{j}}}\left( {U_{i}^{j}\frac{{\partial y}}{{\partial \zeta }}_{i}^{j} - \frac{1}{{{{l}^{j}}f_{i}^{j}}}\frac{{\partial \Psi }}{{\partial \zeta }}_{i}^{j}\frac{{\partial x}}{{\partial \zeta }}_{i}^{j}} \right) \\ \end{gathered} $

Аппроксимации (2.3) обладают свойством линейности, поэтому

$\begin{gathered} {{M}^{{j + 1}}} - {{M}^{j}} = \frac{1}{{2N}}\sum\limits_{i = 1}^N \left[ {x_{i}^{{j + 1}}\frac{{\partial y}}{{\partial \zeta }}_{i}^{{j + 1}} - y_{i}^{{j + 1}}\frac{{\partial x}}{{\partial \zeta }}_{i}^{{j + 1}} - x_{i}^{j}\frac{{\partial y}}{{\partial \zeta }}_{i}^{j} + y_{i}^{j}\frac{{\partial x}}{{\partial \zeta }}_{i}^{j}} \right] = \\ \, = \frac{{\Delta t}}{{2N}}\sum\limits_{i = 1}^N \left[ {\Delta x_{i}^{j}\frac{{\partial y}}{{\partial \zeta }}_{i}^{j} + x_{i}^{j}\frac{{\partial \Delta y}}{{\partial \zeta }}_{i}^{j} - \Delta y_{i}^{j}\frac{{\partial x}}{{\partial \zeta }}_{i}^{j} - y_{i}^{j}\frac{{\partial \Delta x}}{{\partial \zeta }}_{i}^{j}} \right] + O(\Delta {{t}^{2}}) \\ \end{gathered} $

Заметим, что для аппроксимаций (2.3) выполнен сеточный аналог формулы интегрирования по частям:

(4.5)
$\frac{1}{N}\sum\limits_{i = 1}^N {{f}_{i}}{{\frac{{\partial g}}{{\partial \zeta }}}_{i}} = - \frac{1}{N}\sum\limits_{i = 1}^N {{\frac{{\partial f}}{{\partial \zeta }}}_{i}}{{g}_{i}},$
где ${{f}_{i}}$ и ${{g}_{i}}$ – две произвольные периодические сеточные функции. С учетом соотношений (4.5) формула для приращения приобретает следующий вид:

$\begin{gathered} {{M}^{{j + 1}}} - {{M}^{j}} = \frac{{\Delta t}}{N}\sum\limits_{i = 1}^N \left[ {\Delta x_{i}^{j}\frac{{\partial y}}{{\partial \zeta }}_{i}^{j} - \Delta y_{i}^{j}\frac{{\partial x}}{{\partial \zeta }}_{i}^{j}} \right] + O(\Delta {{t}^{2}}) = \\ = \frac{{\Delta t}}{N}\sum\limits_{i = 1}^N \left[ {\left( {U_{i}^{j}\frac{1}{{{{l}^{j}}f_{i}^{j}}}\frac{{\partial x}}{{\partial \zeta }}_{i}^{j} + \frac{1}{{{{{({{l}^{j}}f_{i}^{j})}}^{2}}}}\frac{{\partial \Psi }}{{\partial \zeta }}_{i}^{j}\frac{{\partial y}}{{\partial \zeta }}_{i}^{j}} \right)\frac{{\partial y}}{{\partial \zeta }}_{i}^{j} - \left. {\left( {U_{i}^{j}\frac{1}{{{{l}^{j}}f_{i}^{j}}}\frac{{\partial y}}{{\partial \zeta }}_{i}^{j} - \frac{1}{{{{{({{l}^{j}}f_{i}^{j})}}^{2}}}}\frac{{\partial \Psi }}{{\partial \zeta }}_{i}^{j}\frac{{\partial x}}{{\partial \zeta }}_{i}^{j}} \right)\frac{{\partial x}}{{\partial \zeta }}_{i}^{j}} \right]} \right. + \\ + \;O(\Delta {{t}^{2}}) = \frac{{\Delta t}}{N}\sum\limits_{i = 1}^N \frac{{\partial \Psi }}{{\partial \zeta }}_{i}^{j}\left[ {{{{\left( {\frac{{\partial x}}{{\partial \zeta }}_{i}^{j}} \right)}}^{2}} + {{{\left( {\frac{{\partial y}}{{\partial \zeta }}_{i}^{j}} \right)}}^{2}}} \right]\frac{1}{{{{{({{l}^{j}}f_{i}^{j})}}^{2}}}} + O(\Delta {{t}^{2}}) \\ \end{gathered} $

Поскольку коэффициенты при производных $\Psi $ по построению численного алгоритма в точности являются длинами единичных векторов нормали, полученное выражение удается упростить:

${{M}^{{j + 1}}} - {{M}^{j}} = \frac{{\Delta t}}{N}\sum\limits_{i = 1}^N \frac{{\partial \Psi }}{{\partial \zeta }}_{i}^{j} + O(\Delta {{t}^{2}})$

Если отдельно рассмотреть слагаемое при $\Delta t$ и подставить в него аппроксимацию (2.3), то получим

(4.6)
$\sum\limits_{i = 1}^N \frac{{\partial \Psi }}{{\partial \zeta }}_{i}^{j} = 0$

Таким образом, ${{M}^{{j + 1}}}$ и ${{M}^{j}}$ отличаются не более, чем на величину $O(\Delta {{t}^{2}})$ на любом шаге $j$ алгоритма по времени, следовательно, на любом фиксированном временном интервале $[0,T]$ сеточный аналог закона сохранения площади выполнен с точностью до погрешности порядка $O(\Delta t)$, т.е. определяется погрешностью метода Эйлера.

Фактически полученная оценка показывает, что использование в численном алгоритме интегрального уравнения (1.4) для $\Psi $, а также аппроксимации (2.3) позволяет исключить влияние шага сетки по пространственной координате $\zeta $ на погрешность в (4.3). Кроме того, несовпадение касательных скоростей точек сетки ${{U}_{i}}$ с касательными скоростями жидкости ${{(\partial \Phi {\text{/}}\partial s)}_{i}}$ также не влияет (в первом порядке) на погрешность в (4.3).

Еще раз отметим, что для упрощения рассуждений здесь использовался метод Эйлера при интегрировании по времени. В численных экспериментах использовались схемы с более высокими порядками аппроксимации, например, метод Рунге–Кутты четвертого порядка точности.

6. Численные результаты. Различным способам моделирования деформации свободной границы в задачах движения цилиндрических полостей в жидкости, а также жидких цилиндров посвящено много работ. Например, предложено полуаналитическое решение для задачи деформации полости [5], которая до этого решалась (численно) [6]. Рассмотрено [7] применение полуаналитического метода решения к задаче растекания цилиндра жидкости под действием заданного поля скоростей. Эти задачи использовались для тестирования численного алгоритма из настоящей работы. Рассчитанная по представленной схеме деформация формы полости при начальных условиях [6] изображена на рис. 1а, а модификация этой задачи с добавлением циркуляции – на рис. 1б. Добавление циркуляции нарушает симметрию задачи, делая проверку законов сохранения менее тривиальной. Рис. 2 соответствует задаче растекания цилиндра жидкости из [7].

Рис. 1.

Деформация. а – полости: N = 128, t = 0; 0.17; 0.31; 0.43; 0.57; 0.71; 0.86; 0.93, б – полости с циркуляцией: N = 128, Γ = 10, t = 0; 0.15; 0.3; 0.45; 0.6; 0.69.

Рис. 2.

Растекание цилиндра жидкости (N = 192, Δt = 0.25).

В каждом из случаев свободная граница в начальный момент имела форму единичной окружности с центром в начале координат. В первом случае потенциал течения в начальный момент задавался по формуле

$\Phi = {\text{Re}}\left[ {\frac{1}{z}} \right] = \frac{x}{{{{x}^{2}} + {{y}^{2}}}}$

Заметим, что особенность функции соответствует точке внутри полости. Во втором случае к потенциалу добавлялось дополнительное слагаемое, делающее его многозначной функцией:

$\Phi = {\text{Re}}\left[ {\frac{1}{z} + \frac{\Gamma }{{2\pi i}}lnz} \right] = \frac{x}{{{{x}^{2}} + {{y}^{2}}}} + \frac{\Gamma }{{2\pi }}\varphi $

В третьем случае для дополнительного подтверждения работоспособности алгоритма была рассмотрена задача [7], где решение строилось при помощи полуаналитических методов. Начальное поле скоростей цилиндра в этом случае задавалось по формуле

$\Phi = {\text{Re}}\left[ {\frac{{{{z}^{3}}}}{3}} \right] = \frac{{{{x}^{3}} - 3x{{y}^{2}}}}{3}$

Силы тяжести и поверхностного натяжения во всех трех задачах отсутствовали. Каждой кривой на рисунках соответствует положение свободной границы в один из моментов времени. В совокупности они демонстрируют возникновение и развитие кумулятивных струй. При этом для получения рис. 1а, б использовалось всего 128 точек сетки, а для рис. 2 – 192 точки. Можно заметить, что точки распределялись на границе неравномерно и были размещены ближе друг к другу там, где возникали струи.

Для проверки точности вычислений использовались законы сохранения (4.1). Ошибка в них не превышала по абсолютной величине $3 \times {{10}^{{ - 4}}}$.

Исследованию процесса обрушения волн также посвящено большое количество работ (см., например, обзор [8]). Для сравнения будем использовать результаты [9], где также был построен численный алгоритм решения задачи.

В качестве начальной формы для численных экспериментов с обрушением использовалась прогрессивная волна для жидкости бесконечной глубины ($h = - \infty $, $\sigma = 0$). Форма прогрессивной волны рассчитывалась по итерационному алгоритму [10]. Суть метода сводилась к поиску экстремума функционала ${{E}_{c}} - {{E}_{g}} - {{E}_{\sigma }}$, где ${{E}_{c}}$, ${{E}_{g}}$ и ${{E}_{\sigma }}$ определялись по формулам

${{{E}_{c}} = \frac{{{{c}^{2}}}}{2}\int\limits_0^l \bar {\Phi }\frac{{\partial{ \bar {\Phi }}}}{{\partial n}}ds,\quad {{E}_{g}} = \frac{g}{2}\int\limits_0^l {{y}^{2}}\frac{{\partial x}}{{\partial s}}ds,\quad {{E}_{\sigma }} = \sigma l}$

Здесь $c$ обозначает скорость волны, а потенциалом поля скоростей является функция $c\bar {\Phi }$.

Обрушение прогрессивной волны вызывалось внешним давлением, приложенным к свободной поверхности жидкости. Зависимость давления от времени задавалась по формуле вида [9]

${{p}_{s}} = \left( \begin{gathered} {{p}_{0}}sin(x - ct)sint,\quad 0 \leqslant t \leqslant \pi \hfill \\ 0,\quad \pi \leqslant t \hfill \\ \end{gathered} \right.$

Главный недостаток алгоритма [9] – его неустойчивость: свободная поверхность в процессе расчетов приобретает пилообразную форму. Для подавления неустойчивости авторы [9] прибегали к сглаживанию границы по формуле

(5.1)
${{\bar {f}}_{j}} = \frac{1}{{16}}( - {{f}_{{j - 2}}} + 4{{f}_{{j - 1}}} + 10{{f}_{j}} + 4{{f}_{{j + 1}}} - {{f}_{{j + 2}}})$

Использование сглаживания позволяло продлить расчет, однако также вносило погрешность в алгоритм. Частое применение формулы (5.1) искусственно понижало кривизну границы, из-за чего [9] удалось рассчитать лишь начальную стадию обрушения до момента времени $t = {\text{4}}.{\text{928}}$ (началом обрушения приблизительно можно считать момент времени $t = {\text{4}}.{\text{6}}$).

Предложенный в данной статье алгоритм также был применен к решению задачи [9]. Рассматривалась прогрессивная волна с амплитудой $a = 0.{\text{4}}0{\text{6}}$, что составляет приблизительно 90% от предельной амплитуды прогрессивной волны, а ${{p}_{0}} = 0.{\text{146}}$. Сравнение с результатами [9] при одинаковом количестве точек сетки показало, что новый алгоритм значительно устойчивее и позволяет продолжить расчет до полного обрушения волны. Радиус кривизны в вершине волны на конечной стадии более чем в 1000 раз меньше длины волны. Преимущества нового алгоритма наглядно демонстрирует рис. 3. Четырем контурам гребня волны соответствуют моменты времени t = 4.8; 5.1; 5.4; 5.7. Для получения первых двух контуров использовалось $N = 60$ точек сетки. Именно такое количество точек использовалось при аппроксимации границы [9]. Точки сгущались в окрестности формирующейся кумулятивной струи, что позволило рассчитать форму свободной границы вплоть до момента $t = {\text{5}}.{\text{1}}$ без потери гладкости. Для дальнейших расчетов 60 точек оказалось недостаточно, поэтому при $t > {\text{5}}.{\text{1}}$ их количество было увеличено до значения $N = 192$. Основные трудности при расчете последней стадии обрушения были связаны с удержанием наибольшей плотности точек сетки в вершине кумулятивной струи при помощи явного задания касательной скорости ${{U}_{0}}$. Для упрощения расчетов форма струи при $t = {\text{5}}.{\text{7}}$ была получена с использованием сглаживания в окрестности вершины по формуле (5.1).

Рис. 3.

Обрушение гравитационной волны (t = 4.8; 5.1; 5.4; 5.7).

Перейдем к рассмотрению капиллярных волн ($g = 0$). Разработанный численный алгоритм применялся для расчета неустойчивости возмущенной волны Крэппера. Параметрическое уравнение волны Крэппера имеет следующий вид:

$x(\alpha ) = - \frac{\lambda }{{2\pi }}\left( {\alpha + \frac{{4bsin\alpha }}{{1 - 2bcos\alpha + {{b}^{2}}}}} \right),\quad y(\alpha ) = \frac{{2\lambda }}{\pi }\frac{{bcos\alpha - {{b}^{2}}}}{{1 - 2bcos\alpha + {{b}^{2}}}},$
где $\lambda $ – длина волны, а $b$ – вещественный параметр, связанный с амплитудой волны $a$ соотношением

$a = \frac{\lambda }{{2\pi }}\frac{{4b}}{{1 - {{b}^{2}}}}$

Как и в случае прогрессивной волны в тяжелой жидкости, профиль волны Крэппера не изменяется в процессе движения, а безразмерная скорость волны $c$ постоянна. Значение $c$ и скорость распространения волны определяются как

${{c}^{2}} = \frac{{1 - {{b}^{2}}}}{{1 + {{b}^{2}}}},\quad {{u}^{2}} = {{c}^{2}}\frac{{2\pi \sigma }}{{\rho \lambda }}$

Сохранение формы профиля было экспериментально проверено в численном алгоритме в качестве теста. Рассматривалась волна Крэппера, заданная значением параметра b = 0.3. Ее достаточно сложная форма изображена на первом рис. 4. Для аппроксимации границы использовалось $N = 32$ точек сетки, распределенных равномерно по параметру $\alpha $. Для расчетов использовался фиксированный шаг по времени $\Delta t = 0.0{\text{1}}$. Сравнивались значения пространственных координат с интервалом $T = 100$. Невязка определялась в виде

(5.2)
$r = \mathop {max}\limits_{i = \overline {1,N} } \sqrt {{{{({{{\tilde {x}}}_{i}} - {{x}_{i}} - uT)}}^{2}} + {{{({{{\tilde {y}}}_{i}} - {{y}_{i}})}}^{2}}} ,$
где ${{x}_{i}}$, ${{y}_{i}}$ обозначают пространственные координаты точек сетки в начальный момент времени, ${{\tilde {x}}_{i}}$, ${{\tilde {y}}_{i}}$ – координаты в конечный момент времени. Было получено, что $r \leqslant 5.2 \times {{10}^{{ - 3}}}$. Эта проверка показывает, что в численном методе отсутствуют схемное поверхностное натяжение и схемная вязкость, которые обычно появляются в разностных схемах.

Рис. 4.

Деформация возмущенной волны Крэппера (t = 0; 30; 40.5).

Ранее [11] была доказана устойчивость по Ляпунову точного решения Крэппера относительно возмущений с периодом, равным длине волны. Тем не менее, доказательство не распространяется на возмущения с периодом, превышающим длину волны, – устойчивость в этом случае не обязана сохраняться. В численных экспериментах использовались возмущения вида $\delta y = \varepsilon sinx$ при длине волны Крэппера $\lambda = \pi $. Расчеты показали, что подобные возмущения даже при малых значениях параметра $\varepsilon $ способны вызывать значительные по амплитуде колебания свободной поверхности, а при достаточно больших значениях параметра $b$ – приводить к разрушению волны. На рис. 4 изображена эволюция формы одного периода возмущенной волны при b = 0.3 и ε = 0.03. Для аппроксимации границы использовалось $N = 192$ точек сетки. Как и в предыдущем расчете, сгущение точек сетки проводилось в окрестности участков границы, имеющих наибольшую кривизну. Как видно из рис. 4, таких участков два; они соответствуют локальным минимумам функции $y$.

Наконец, перейдем к рассмотрению аналога опыта Покровского как простейшей демонстрации формирования кумулятивной струи на свободной поверхности жидкости. В оригинальном эксперименте, описанном в монографии [12] (с. 253–254), струя образуется при ударе падающей стеклянной пробирки с водой о твердую неподвижную поверхность. Измерения показывают, что при падении с 10 см кумулятивная струя достигает более метра в высоту.

Согласно [12] при ударе свободная поверхность жидкости получает такой импульс, что центральная часть поверхности приобретает конечную скорость, направленную вверх, а ее края вблизи стенок пробирки – скорость, направленную вниз.

При проведении численного эксперимента для простоты предполагалось, что в начальный момент времени жидкость заполняет полуполосу $ - \pi < x < \pi $, $y < 0$; нормальная скорость на границе $y = 0$ задавалась по формуле ${{v}_{y}} = cosx$. Данная скорость соответствует начальному потенциалу скорости жидкости $\Phi = {{e}^{y}}cosx$. Сила тяжести полагалась равной нулю, что позволяло струе неограниченно вытягиваться. Благодаря этому предположению удалось оценить возможности численного алгоритма, так как расчет можно вести до тех пор, пока схема не потеряет устойчивость. Результаты вычислений на сетке из $N = 128$ точек изображены на рис. 5. Приведены формы кумулятивной струи в моменты времени t = 2.05; 4.1 и 6.15. В момент времени 6.15 кривизна в вершине струи достигает значения 1143.5.

Рис. 5.

Аналог опыта Покровского (t = 2.05; 4.1; 6.15).

Дополнительно для данной задачи был проведен анализ уменьшения погрешности при удвоении элементов (с сохранением прежнего распределения точек на контуре, определяемого функцией $f(\zeta )$). Невязка определялась при помощи следующей формулы:

(5.3)
$R_{N}^{j} = \mathop {max}\limits_{i = \overline {1,N} } \sqrt {{{{(x_{i}^{j} - \tilde {x}_{{2i}}^{j})}}^{2}} + {{{({{y}_{i}} - \tilde {y}_{{2i}}^{j})}}^{2}}} ,$
где $x_{i}^{j}$ и $y_{i}^{j}$ – пространственные координаты точек сетки в момент времени $t = j\Delta t$ для сетки из $N$ точек, а $\tilde {x}_{i}^{j}$ и $\tilde {y}_{i}^{j}$ – соответствующие координаты для сетки из $2N$ точек.

Было проведено сравнение результатов для 64 и 128 точек, а также для 128 и 256 точек в моменты времени 2.05 и 4.1. Эти результаты приведены в табл. 1. Отметим, что значение максимума достигалось на участках границы с наибольшим расстоянием между точками сетки.

Таблица 1.

Сравнение погрешности в аналоге опыта Покровского

Сетка 64 × 128 128 × 256
$t = {\text{2}}.0{\text{5}}$ ${\text{2}}.{\text{7}} \times {{10}^{{ - 3}}}$ $6.4 \times {{10}^{{ - 4}}}$
$t = 4.1$ $9.9 \times {{10}^{{ - 3}}}$ ${\text{2}}.3 \times {{10}^{{ - 3}}}$

Выводы. Приведенные примеры показали, что кривизна вершины струи может увеличиваться до очень больших значений без потери гладкости свободной границы. К этому же выводу пришли и авторы работ [5, 7], в которых построены полуаналитические решения для описания формирования кумулятивных струй. Предложенный в настоящей работе численный алгоритм позволяет за счет учета аналитичности свободных границ значительно сократить время расчетов тонких кумулятивных струй, сохраняя при этом высокую точность и устойчивость. Достоверность расчетов обоснована путем контроля точности на специально выведенных законах сохранения, сравнения расчетов с полуаналитическими решениями и другими специально построенными точными решениями.

Список литературы

  1. Петров А.Г. Квадратурные формулы для периодических функций и их применение в методе граничных элементов // ЖВММФ. 2008. Т. 48. № 8. С. 1344–1361.

  2. Петров А.Г. Аналитическая гидродинамика. М.: Физматлит, 2010. 520 с.

  3. Байков Н.Д., Петров А.Г. О формировании кумулятивной струи в плоско-параллельном потоке идеальной жидкости // Вестн. Моск. ун-та. Сер. 1: Математика. Механика. 2017. № 5. С. 42–47.

  4. Байков Н.Д., Петров А.Г. Деформация цилиндрических полостей в плоскопараллельных потенциальных течениях с циркуляцией и под влиянием массовых сил // Вычисл. методы и программ. 2018. Т. 19. С. 207–214.

  5. Karabut E.A., Petrov A.G., Zhuravleva E.N. Semi-analytical study of the Voinovs problem// Euro. J. Appl. Math. 2018. P. 1–40. https://doi.org/10.1017/S0956792518000098

  6. Воинов О.В., Воинов В.В. Численный метод расчета нестационарных движений идеальной несжимаемой жидкости со свободными поверхностями // Докл. АН СССР. 1975. Т. 221. № 3. С. 559–562.

  7. Karabut E.A., Zhuravleva E.N. Unsteady flows with a zero acceleration on the free boundary // J. Fluid Mech. 2014. V. 754. P. 308–331.

  8. Peregrine D.H. Breaking waves on beaches // Ann. Rev. Fluid Mech. 1983. V. 15. P. 149–178.

  9. Longuet-Higgins M.S., Cokelet E.D. The deformation of steep surface waves on water. I. A numerical method of computation // Proc. R. Soc. Lond. A. 1976. V. 350. P. 1–26.

  10. Петров А.Г., Смолянин В.Г. Расчет профиля капиллярно-гравитационной волны на поверхности тяжелой жидкости конечной глубины // Вестн. Моск. ун-та. Сер. 1: Математика. Механика. 1991. № 3. С. 92–96.

  11. Петров А.Г. Об устойчивости капиллярных волн конечной амплитуды // ППМ. 2017. Т. 81. № 4. С. 462–470.

  12. Лаврентьев М.А., Шабат Б.В. Проблемы гидродинамики и их математические модели. М.: Наука. 1977. 407 с.

Дополнительные материалы отсутствуют.