Введение в методы численного решения уравнений газовой динамики
4.2. Методы Лакса - Вендроффа и Мак - Кормака
Если система уравнений газодинамики записана в дивергентной форме
![$ \frac{{{\partial}{\mathbf{R}}}}{{\partial}t} + \frac{{{\partial}{\mathbf{Q}}}}{{\partial}x} = 0, $](/sites/default/files/tex_cache/739ef6c6f8c4cf7cf9f9ac6b7844ca3b.png)
то запись разностных схем, соответствующих методам Лакса - Вендроффа и Мак - Кормака, аналогична их записи для численного решения уравнения переноса ( "Численные методы решения уравнений в частных производных гиперболического типа (на примере уравнения переноса)" ).
Так, схема Лакса - Вендроффа может быть представлена в следующем виде:
![\begin{gather*}
\frac{\mathbf{\tilde{R}}_{m + 1/2} - 0.5(\mathbf{R}_{m + 1}^n +
\mathbf{R}_m^n)}{\tau/2} + \frac{\mathbf{Q}_{m + 1}^n - \mathbf{Q}_m^n}{h} = 0, \\
\frac{\mathbf{\tilde{R}}_{m - 1/2} - 0.5(\mathbf{R}_m^n + \mathbf{R}_{m - 1}^n)}
{\tau /2} + \frac{\mathbf{Q}_m^n - \mathbf{Q}_{m - 1}^n}{h} = 0.
\end{gather*}](/sites/default/files/tex_cache/810ceed1c59719d119f68374d3cd165d.png)
(первый этап);
![$ \frac{{{\mathbf{R}}_m^{n + 1} - {\mathbf{R}}_m^{n}}}{\tau} +
\frac{{{\mathbf{\tilde{Q}}}_{m + 1/2} - {\mathbf{\tilde{Q}}}_{m - 1/2}}}{h} = 0 $](/sites/default/files/tex_cache/e281d3666df38e8450ad42dcf7589231.png)
(второй этап).
Схему МакКормака представим следующим образом:
![\begin{gather*}
\frac{\mathbf{\tilde{R}}_m - \mathbf{R}_m^n}{\tau} + \frac{\mathbf{Q}_{m + 1} -
\mathbf{Q}_m}{h} = 0, \\
\frac{\mathbf{\tilde{R}}_{m - 1} - \mathbf{R}_{m - 1}^n}{\tau} + \frac{\mathbf{Q}_m -
\mathbf{Q}_{m - 1}}{h} = 0 \end{gather*}](/sites/default/files/tex_cache/f7054e1aa189a50d65fcd2692f8c7236.png)
(первый этап);
![$ \frac{{{\mathbf{R}}_m^{n + 1} - 0.5({\mathbf{R}}_m^{n} +
{\mathbf{\tilde{R}}}_m )}}{\tau} + \frac{{{\mathbf{\tilde{Q}}}_m - {\mathbf{\tilde{Q}}}_{m - 1}}}{{2h}} = 0 $](/sites/default/files/tex_cache/ee90f534fa338f5c074a5b5f4a2ad220.png)
(второй этап).
Так как использована дивергентная форма записи исходных уравнений, то можно ожидать, что полученные таким образом схемы окажутся консервативными. О консервативных схемах газовой динамики подробнее в [14.4], [14.5].
4.3. Сеточно - характеристический метод для численного решения уравнений газовой динамики (М. - К.М.Магомедова - А.С.Холодова)
Этот метод (точнее, семейство методов) наиболее эффективен при численном решении задач, для которых существенным являются учет волновых процессов в сплошной среде. Подробнее о методе в книге [14.6], детальное описание — в монографии [14.7].
Матрица системы уравнений газовой динамики, записанной в форме
![\begin{gather*}
\frac{{\partial}\mathbf{U}}{{\partial}t} + \mathbf{A} \frac{{\partial}\mathbf{U}}{{\partial}x} + \mathbf{f} = 0, \\
\mathbf{U} = (\rho, u, \varepsilon)^T, \mathbf{A} = \left( \begin{array}{ccc}
{u} & {\rho} & 0 \\
{\frac{1}{\rho} \frac{{\partial}p}{{\partial}\rho}} & {u} & {\frac{1}
{\rho} \frac{{\partial}p}{{\partial}\varepsilon}} \\
0 & {p/ \rho} & {u} \\
\end{array} \right), \end{gather*}](/sites/default/files/tex_cache/8b38eb12440dd5ae9e2da9917368fa92.png)
имеет вещественные собственные числа ,
,
и соответствующие им собственные векторы,
(например, левые, которые находятся при решении системы линейных алгебраических уравнений
). Таким образом, одномерная система уравнений газовой динамики является квазилинейной системой гиперболического типа.
Матрица из левых собственных векторов, записанных в строку, является матрицей перехода в базис из собственных векторов матрицы :
![$ \Omega = \left( \begin{array}{l}
{{\omega }_1} \\
{{\omega }_2} \\
{{\omega }_3 } \\
\end{array} \right) = \left( \begin{array}{ccc}
{\frac{{\partial}p}{{{\partial}{\rho}}}} & {{\rho}c} & {\frac{{\partial}p}
{{{\partial}\varepsilon }}} \\
p & 0 & {- {\rho}^2} \\
p & {- {\rho}c} & {\frac{{\partial}p}{{{\partial}{\rho}}}} \\
\end{array} \right). $](/sites/default/files/tex_cache/ee3b5b22c922bd9405e9c65a3fb3b1d6.png)
Матрица представима в виде
, где
— диагональная матрица, состоящая из собственных чисел матрицы
:
![\Lambda = diag(\lambda _{1}, \lambda _{2}, \lambda _{3}).](/sites/default/files/tex_cache/480f11b4e10054d607d92a58e36e0056.png)
Для получения разностной схемы введем обозначения
![\begin{gather*}
{\Lambda}^{+} = \frac{1}{2}({{\Lambda}} + \left|{{\Lambda}}\right|),
{\Lambda}^{-} = \frac{1}{2}({{\Lambda}} - \left| {{\Lambda}}\right|), \\
{\mathbf{A}}^{+}= \frac{1}{2}({\mathbf{A}} + \left| {\mathbf{A}}\right|),
{\mathbf{A}}^{-} = \frac{1}{2}({\mathbf{A}} - \left| {\mathbf{A}}\right|),
{\sigma}= \tau/h. \end{gather*}](/sites/default/files/tex_cache/6f4bbdbf3e708283b709401ecc61a710.png)
Умножим каждое из уравнений исходной системы газодинамики, записанных в
матричной форме на ; в результате получим
![$ {\omega }_i \frac{{{\partial}{\mathbf{U}}}}{{\partial}t} +
{\omega }_i A \frac{{{\partial}{\mathbf{U}}}}{{\partial}x} + {\omega }_i {\mathbf{f}} =
0, $](/sites/default/files/tex_cache/61329540de250db2d5e70a0299f3126c.png)
или, учитывая, что — левый собственный вектор,
![$ {\omega }_i \frac{{{\partial}{\mathbf{U}}}}{{\partial}t} +
(\lambda_i {\omega }_i ) \frac{{{\partial}{\mathbf{U}}}}{{\partial}x} + {\omega }_i {\mathbf{f}} = 0. $](/sites/default/files/tex_cache/11eeb0fc91b9d685081dca64818d6e63.png)
Построим разностную аппроксимацию полученной системы уравнений в частных производных с учетом знака собственных чисел (или направления характеристик). Для облегчения восприятия ограничимся простейшим методом первого порядка аппроксимации
![$ {\omega }_i \frac{{{\mathbf{U}}_m^{n + 1} -
{\mathbf{U}}_m^{n}}}{\tau} \mp \lambda_i{\omega }_i \frac{{{\mathbf{U}}_{m \mp 1}^{n} - {\mathbf{U}}_m^{n}}}{h} + {\omega }_i {\mathbf{f}} = 0. $](/sites/default/files/tex_cache/35328a7f77047256a39710e7f82c94aa.png)
Приведенное выше разностное уравнение может быть записано в матричной форме
![\begin{gather*}
{\Omega }({\mathbf{U}}_m^{n + 1} - {\mathbf{U}}_m^{n} ) - {\sigma}{{\Lambda}}^{+} {\Omega }({\mathbf{U}}_{m - 1}^{n} - {\mathbf{U}}_m^{n} ) + \\
+ {\sigma}{{\Lambda}}^{-}{\Omega }({\mathbf{U}}_{m + 1}^{{n}} - {\mathbf{U}}_m^{n} ) + {\tau}{\Omega \mathbf{f}}_m^{n} = 0,
\end{gather*}](/sites/default/files/tex_cache/92d52d071e7a1114bf37f3774f6ab8e4.png)
или в виде, разрешенном относительно верхнего слоя:
![\begin{gather*} {\mathbf{U}}_m^{n + 1} = {\mathbf{U}}_m^{n} - \sigma \left[({\Omega }^{- 1}{{\Lambda}}^{+} {\Omega })_m^{n}({\mathbf{U}}_{m - 1}^{n} - {\mathbf{U}}_m^{n} ) -\right. \\
\left. - ({\Omega }^{- 1}{{\Lambda}}^{-} {\Omega })_m^{n} ({\mathbf{U}}_{m + 1}^{n} -
{\mathbf{U}}_m^{n} )\right] + {\tau}{\mathbf{f}}_m^{n}, \end{gather*}](/sites/default/files/tex_cache/d33452738a600a29c2518cc0a1be962a.png)
или в компактной форме:
![{\mathbf{U}}_m^{n + 1} = {\mathbf{U}}_m^{n} + {\sigma}(- {\mathbf{B}}^{+}
{\Delta}^{-}{\mathbf{U}} + {\mathbf{B}}^{-}{\Delta}^{+}{\mathbf{U}})_m^{n} +
{\tau}{\mathbf{f}}_m^{n},](/sites/default/files/tex_cache/67198c101662c48281ea83f54ae0540f.png)
где
![{\mathbf{B}}^{+} = {{\Omega}}^{- 1}{{\Lambda}}^{+}{{\Omega }}, {\mathbf{B}}^{-} = {\Omega }^{- 1}{{\Lambda}}^{-} {{\Omega}}.](/sites/default/files/tex_cache/e09a1f110113c5b24fb6f56c46513f61.png)
Учет направления характеристик позволяет получать устойчивые разностные схемы для системы уравнений газовой динамики. Сеточно - характеристические схемы позволяют гибко менять форму шаблона в зависимости от локальных свойств решения задачи. Существует обобщение методов на случаи двух и трех пространственных измерений. В сочетании с методом неопределенных коэффициентов сеточно - характеристические схемы дали очень хорошие результаты не только в традиционной газовой динамике, но и в механике деформируемого твердого тела, магнитной гидродинамике [14.6], [14.7].