Метод Годунова
Метод Годунова — реализация схем сквозного счета, с помощью которых можно рассчитывать газодинамические течения с разрывами параметров внутри расчётной области. Эта схема предложена С. К. Годуновым в 1959 г. Метод Годунова — это вариант метода контрольного объёма. Потоки через боковые грани определяются из решения задачи о распаде произвольного разрыва. Поясним на примере.
Пример
Рассмотрим построение численного метода Годунова первого порядка точности на примере решения системы уравнений одномерной нестационарной газовой динамики, записанной в дивергентной форме:
- [math]\displaystyle{ \begin{cases} \begin{array}{lll} \frac{\partial \rho }{ \partial t} + \frac{\partial \rho u }{ \partial x}& = & 0 \\ \frac{\partial(\rho u)}{ \partial t} + \frac{\partial(p + \rho u^2 )}{ \partial x}& = & 0 \\ \frac{\partial E}{ \partial t} + \frac{\partial u (E + p)}{ \partial x}& = & 0 \end{array} \end{cases} }[/math]
Здесь:
- [math]\displaystyle{ \rho }[/math] — плотность
- [math]\displaystyle{ p }[/math] — давление
- [math]\displaystyle{ u }[/math] — скорость
- [math]\displaystyle{ E }[/math] — полная энергия в единице объёма
Заметим, что:
- Первое уравнение выражает закон сохранения массы
- Второе уравнение выражает закон сохранения импульса
- Третье уравнение выражает закон сохранения энергии
- [math]\displaystyle{ E = e + \frac{\rho u^2}{2} }[/math]
- [math]\displaystyle{ e = \rho \varepsilon, }[/math]
- [math]\displaystyle{ \varepsilon = \varepsilon(p, \rho), }[/math]
- [math]\displaystyle{ \varepsilon = \frac{1}{\gamma - 1} \cdot \frac{p}{\rho} }[/math], где [math]\displaystyle{ \gamma }[/math] — показатель адиабаты
Дифференциальная форма
Начальная система может быть записана в более компактной форме:
- [math]\displaystyle{ \frac{\partial q}{\partial t} + \frac{\partial f}{\partial x} = 0 }[/math]
где:
- [math]\displaystyle{ q }[/math] — вектор консервативных переменных
- [math]\displaystyle{ q = \left( \begin{array}{c} \rho \\ \rho\,u \\ E \end{array} \right) }[/math]
- [math]\displaystyle{ f }[/math] — вектор потоков
- [math]\displaystyle{ f = \left( \begin{array}{c} \rho\,u \\ p + \rho\,u^2 \\ u (E + p) \end{array} \right) }[/math]
Интегральная форма
Вместо дифференциальной формы уравнений выведем новую интегральную форму уравнений, более приспособленную для представления слабого решения. Здесь под слабым решением понимается обобщённая функция, определяемая интегральными равенствами, полученными из соответствующих дифференциальных уравнений и начальных условий задачи. Для этого выделим некоторый контрольный объём [math]\displaystyle{ \Omega }[/math] и проинтегрируем систему уравнений по этому объёму. Применим обобщённую теорему Стокса к полученному интегралу от дивергенции (при двух независимых переменных это будет теорема Грина, и формула Остроградского-Гаусса в трёхмерном пространстве). При этом введем направление обхода контура против часовой стрелки.
Отдельно, рассматривая уравнение неразрывности, получаем:
- [math]\displaystyle{ \iint\limits_{\Omega} \left( \frac{\partial \rho}{\partial t} + \frac{\partial \rho u}{\partial x} \right)d\,x d\,t = \oint\limits_{\partial \Omega} \rho dx - \rho u d t }[/math]
Для всей системы уравнений
- [math]\displaystyle{ \iint\limits_{\Omega} \left( \frac{\partial q}{\partial t} + \frac{\partial f}{\partial x} \right)d\,x d\,t = 0 \Leftrightarrow \oint\limits_{\partial \Omega} (q dx - f d t) = 0 }[/math]
Записывая систему в развернутом виде:
- [math]\displaystyle{ \begin{cases} \begin{array}{lll} \oint\limits_{\partial \Omega} (\rho\;d\,x - \rho u\;d\,t )& = & 0 \\ \oint\limits_{\partial \Omega} (\rho u \;d\,x - (p + \rho u^2)\;d\,t )& = & 0 \\ \oint\limits_{\partial \Omega} (E\;d\,x - u(p + E)\;d\,t )& = & 0 \\ \end{array} \end{cases} }[/math]
Аппроксимация
Произведен переход от дифференциальной формы записи исходной системы уравнений к интегральной форме. Интегральная форма записывается в виде равенства нулю интегралов по контуру (границе выделенного контрольного объёма) от векторов консервативных переменных и потоков. Контурный интеграл представляем в виде суммы интегралов по участкам (интервалам) 1-2, 2-3, 3-4, 4-1 контрольного объёма на рисунке (которого пока нет) и на каждом участке аппроксимируем интеграл с использованием метода прямоугольников как произведение подынтегрального выражения в центре интервала на длину интервала интегрирования:
- [math]\displaystyle{ \begin{array}{c} q_{12} \cdot (x_{2} - x_{1}) - f_{12} \cdot (t_{2} - t_{1}) + \\ \qquad q_{23} \cdot (x_{3} - x_{2}) - f_{23} \cdot (t_{3} - t_{2}) + \\ \qquad \qquad q_{34} \cdot (x_{4} - x_{3}) - f_{34} \cdot (t_{4} - t_{3}) + \\ \qquad \qquad \qquad q_{41} \cdot (x_{1} - x_{4}) - f_{41} \cdot (t_{1} - t_{4}) = 0 \end{array} \Rightarrow q_{34} = q_{12} - \frac{\Delta t}{\Delta x} (f_{23} - f_{41}) }[/math]
с учётом равенств, справедливых для контрольного объёма, построенного по декартовой расчётной сетке:
- [math]\displaystyle{ x_3 - x_2 = 0 }[/math]
- [math]\displaystyle{ x_1 - x_4 = 0 }[/math]
- [math]\displaystyle{ t_2 - t_1 = 0 }[/math]
- [math]\displaystyle{ t_4 - t_3 = 0 }[/math]
кроме того:
- [math]\displaystyle{ x_2 - x_1 = \Delta x }[/math]
- [math]\displaystyle{ x_4 - x_3 = - \Delta x }[/math]
- [math]\displaystyle{ t_3 - t_2 = \Delta t }[/math]
- [math]\displaystyle{ t_1 - t_4 = - \Delta t }[/math]
находим значения вектора консервативных переменных на интервале 3-4, принадлежащем новому слою:
- [math]\displaystyle{ q_{34} = q_{12} - \frac{\Delta t}{\Delta x} (f_{23} - f_{41}) \qquad \Rightarrow \qquad q_{j}^{n+1} = q_{j}^{n} - \frac{\Delta t}{\Delta x} (f_{j + \frac{1}{2}} - f_{j - \frac{1}{2}}) }[/math]
В данном случае величинами с полуцелыми индексами обозначены потоки сохраняемых величин через границы расчётной ячейки за время или потоки через боковые грани (2-3 и 4-1) контрольного объёма. Если скорость потока направлена в одну сторону с внешней нормалью к боковой грани, то поток отрицательный, то есть вытекает из контрольного объёма и наоборот.
В развернутом виде:
- [math]\displaystyle{ \begin{cases} \begin{array}{lll} \rho_{j}^{n+1} & = & \rho_{j}^{n} - \frac{\Delta t}{\Delta x} ((\rho u )_{j + \frac{1}{2}} - (\rho u)_{j - \frac{1}{2}}) \\ (\rho u)_{j}^{n+1} & = & (\rho u)_{j}^{n} - \frac{\Delta t}{\Delta x} ((p + \rho u^2 )_{j + \frac{1}{2}} - (p + \rho u^2)_{j - \frac{1}{2}}) \\ E_{j}^{n+1} & = & E_{j}^{n} - \frac{\Delta t}{\Delta x} (( u(p + E) )_{j + \frac{1}{2}} - ( u(p + E) )_{j - \frac{1}{2}}) \end{array} \end{cases} }[/math]
Потоки через боковые грани, [math]\displaystyle{ f_{j + \frac{1}{2}} }[/math] и [math]\displaystyle{ f_{j - \frac{1}{2}} }[/math]определяются из решения задачи о распаде произвольного разрыва.
Постановка граничных условий
Особенностью постановки и реализации граничных условий в методах контрольного объёма (в том числе и в методе Годунова) является необходимость задания или расчета потоков через грань контрольного объёма, совпадающую границей расчётной области. Для первой и последней ячеек расчётного слоя надо определить потоки массы, импульса и энергии через грани.
Часто для задания граничных условий вводятся «виртуальные» расчётные ячейки. Для этого слева от первой ячейки и справа от последней ячейки вводится ещё по одной дополнительной ячейке, в каждой из которых задаются такие параметры течения, чтобы при решении задачи Римана на боковой грани моделировались требуемые потоки.
Типы граничных процедур
Все предположения производятся относительно левой границы
Неподвижная жесткая стенка
Главное условие — отсутствие перетекания потока массы газа через границу, что соответствует условию нулевой скорости потока на данной грани [math]\displaystyle{ U=0 }[/math] В виртуальной ячейке тогда нужно задать следующие параметры течения:
- [math]\displaystyle{ \begin{cases} \begin{array}{lcl} p_w & = & p_1 \\ \rho_w & = & \rho_1 \\ u_w & = & -u_1 \\ \end{array} \end{cases} }[/math]
- «w» — параметры в виртуальной ячейке
- «1» — параметры в первой ячейке
Получаемые в задаче распада разрыва параметры течения на боковой грани реализуют нулевой поток массы через эту грань.
Резервуар неограниченной ёмкости
Этому случаю математически соответствует задание на грани значение давления [math]\displaystyle{ \tilde{P} }[/math]. Скорость втекания можно определить по формуле
- [math]\displaystyle{ \tilde{U} = u_1+ \frac{\tilde{P} - p_1 }{c_1} }[/math]
При этом:
- если [math]\displaystyle{ \tilde{P} \gt p_1 }[/math], то
- [math]\displaystyle{ c_1 = \frac{\sqrt{ \rho_1 \cdot ( (\gamma + 1) \tilde{P} + (\gamma + 1)p_1 ) }}{2} }[/math]
- если [math]\displaystyle{ \tilde{P} \lt p_1 }[/math], то
- [math]\displaystyle{ c_1 = \frac{a_1 \rho_1 (\gamma - 1) \left( 1 - \frac{P}{p_1}\right) }{2 \gamma \left( 1 - \left( \frac{P}{p_1} \right)^{\frac{\gamma -1}{2 \gamma }}\right)} }[/math]
Втекающий сверхзвуковой поток
Пусть верхнее подчеркивание обозначает параметры сверхзвукового потока, тогда, если [math]\displaystyle{ \bar{U} \gt \bar{c} = \sqrt{\frac{\gamma \bar{P}}{\bar{\rho}}} }[/math], то
- [math]\displaystyle{ \begin{cases} \begin{array}{lcl} p_w & = & \bar{P} \\ \rho_w & = & \bar{\rho} \\ u_w & = & \bar{U} \\ \end{array} \end{cases} }[/math]
Вытекающий сверхзвуковой поток
При этом в виртуальной ячейке задаются следующие параметры течения:
- [math]\displaystyle{ \begin{cases} \begin{array}{lcl} p_w & = & p_1 \\ \rho_w & = & \rho_1 \\ u_w & = & u_1 \\ \end{array} \end{cases} }[/math]
Выбор параметров сетки
Шаг расчётной сетки по временной координате в методе Годунова можно определить из критерия устойчивости Куранта — Фридрихса — Леви. Применительно к рассматриваемой схеме это условие формулируется следующим образом:
Волны, возникающие в задаче распада произвольного разрыва в точке [math]\displaystyle{ j + \frac{1}{2} }[/math], не должны за время [math]\displaystyle{ \Delta t }[/math] достигать боковых граней [math]\displaystyle{ j + \frac{3}{2} }[/math] и [math]\displaystyle{ j - \frac{1}{2} }[/math] и искажать автомодельное решение.
Реализация этого принципа приводит к следующим соотношениям:
- [math]\displaystyle{ \Delta t_j = r \frac{\Delta x_j}{\max \left( |D^{L}_{j+\frac{1}{2}}|, |D^{L}_{j-\frac{1}{2}}| \right)} }[/math]
где
- [math]\displaystyle{ D^{L}_{j+\frac{1}{2}} }[/math] — значение скорости самой левой волны в распаде разрыва;
- [math]\displaystyle{ D^{R}_{j-\frac{1}{2}} }[/math] — значение скорости самой правой волны в распаде разрыва;
В итоге мы берем:
- [math]\displaystyle{ \Delta t = \min_j \Delta t_j }[/math]
Литература
- Численное решение многомерных задач газовой динамики. Альбом / редактор Годунов С. К. . — М.: Наука, 1976. — 400 с. — 6500 экз.
- Самарский А.А., Попов Ю.П. Разностные методы решения задач газовой динамики. — М.: Наука, 1992. — 2470 экз.
Ссылки
- С. К. Годунов, «Разностный метод расчета ударных волн», УМН, 12:1(73) (1957), 176—177
- С. К. Годунов, «Разностный метод численного расчета разрывных решений уравнений гидродинамики», Матем. сб., 47(89):3 (1959), 271—306
- Обсуждение метода Годунова
Для улучшения этой статьи желательно: |