Введение в методы численного решения уравнений газовой динамики
теперь имеется алгоритм вычисления и, следовательно,
.
Из соотношения
![$ \bar{e}_{kl} \cdot h^2 = (h^2 \rho_{kl} ) \bar{\varepsilon}_{kl} + (h^2 \rho_{kl} ) \cdot \frac{{(\bar{u}_{1, {kl}} )^2 + (\bar{u}_{2, {kl}} )^2}}{2} $](/sites/default/files/tex_cache/19bda5edbb30f77a44de848435b55b3c.png)
находим величину полной удельной внутренней энергии . Однако искомыми являются значения удельной внутренней энергии для каждого вещества. Пусть
— изменение удельной внутренней энергии i вещества за первый этап шага по времени по i веществу. Зная mi (масса i вещества), запишем полное приращение полной удельной внутренней энергии в ячейке (
) и приравняем его к уже полученному полному приращению
![\sum\limits_i {m_{ikl}^{n}} \Delta \varepsilon_{ikl} = m_{kl}^{n} (\bar{\varepsilon}_{kl} - \varepsilon_{kl}^{n}).](/sites/default/files/tex_cache/473856ea95b63175b79cd7ed54d86374.png)
Для определения изменения количества каждого газа нужно сделать некое правдоподобное предположение, например, считать, что все одинаковы. Тогда
и, соответственно,
. На этом первый этап расчета (предиктор) закончен.
Рассмотрим второй этап расчета.
Движение частиц описывается обыкновенными дифференциальными уравнениями
![$ \dot{X}_p = u_1({t, X}_p, Y_p), \dot{Y}_p = u_2({t, X}_p, Y_p), $](/sites/default/files/tex_cache/ceceecc4687153676df324f011d2dbc3.png)
которые могут быть приближены, например, с использованием явного метода Эйлера. Тогда дифференциальные уравнения заменяются разностными уравнениями
![X_p^{{n} + 1} = X_p + {\tau}\tilde{u}_{1 p}, Y_p^{{n} + 1} = Y_p^{n} + {\tau}\tilde{u}_{2 p},](/sites/default/files/tex_cache/2fee6b8f948eaca78c7b4f4399442e85.png)
где скорости частиц определяются интерполяцией величин
в ячейках, окружающих p частицу.
После этого рассчитывается перенос массы и вычисляется новая масса каждой ячейки. Для этого выделяются три группы частиц:
- частицы, оставшиеся при переходе на n + 1 слой в пределах ячейки, которые, очевидно, не вносят изменений в массу, импульс, энергию новой ячейки, т.е.где
— обозначение старой ячейки,
- частицы, покинувшие ячейку
:
- частицы, перешедшие из соседних ячеек:
На шаг по времени накладывается ограничение
![$ {\tau} < \frac{h}{{\sqrt {u_1^2 + u_2^2}}}, $](/sites/default/files/tex_cache/c91eca9d25f3d7541b92a3249a2dc1a6.png)
что означает запрет на перемещение частицы за один шаг больше, чем на одну
ячейку. Перемещение в данном методе возможно только в соседнюю ячейку. Предположим, что каждая p частица, перешедшая на n + 1 шаге по времени в соседнюю ячейку, переносит в нее массу mp. Это означает, что значение массы mikl считается путем сложения масс всех частиц типа i, для которых
Процедура вычисления импульса выполняется следующим образом. Компоненты
полного импульса частиц в ячейке ( k, l ) могут быть вычислены, как , при этом p частица, покинувшая ячейку
, уносит импульс
. Изменение импульса в Skl за один шаг по времени будет
![\begin{gather*}
m_k^{{n} + 1} u_{1, {kl}}^{{n} + 1} = m_{kl}^{n} \bar{u}_{1, {kl}} - (\sum {\mu_p \bar{u}_{1, {kl}}} )_1 + (\sum {\mu_p \bar{u}_{1, {kl}}} )_2 , \\
m_{kl}^{{n} + 1} u_{2 {kl}}^{{n} + 1} = M_{kl}^{n} \bar{u}_{2 {kl}} - (\sum {\mu_p
\vec{u}_{2 {kl}}} )_1 + (\sum {\mu_p \bar{u}_{2 k^{\prime}l^{\prime}}} )_2 ,
\end{gather*}](/sites/default/files/tex_cache/3f6c5935cd34e9031104ce821d36d931.png)
здесь символы суммирования означают суммирование по частицам ( p ),
покинувшим данную ячейку и пришедшим в нее, соответственно. После вычисления компонентов импульса каждой ячейки вычисляются компоненты скорости .
Частица типа i, переходящая из Ske в другую ячейку, переносит полную энергию
![$ \Delta E_p = m_p \left[{\bar{\varepsilon}_{ikl} + \frac{{(\bar{u}_{1 {kl}} )^2 + (\bar u_{2 {kl}} )^2}}{2}}\right]. $](/sites/default/files/tex_cache/17cff2b696e0f86eb7db29448fecdeca.png)
Тогда можно вычислить энергию i вещества в ячейке на промежуточном шаге:
![$ E_{ikl} = \sum\limits_{i_p \in i}{m_p } \left[{\bar{\varepsilon }_{ikl} + \frac{{(\bar{u}_{1 {kl}} )^2 + (\bar{u}_{2 {kl}} )^2}}{2}}\right]. $](/sites/default/files/tex_cache/015bce470fefde582475c6d443e6dd1b.png)
При t = tn + 1 полная удельная энергия изменится на величину
![E_{ikl}^{n + 1} = \bar{E}_{ikl} - (\sum\limits_{i_p \in i}{\cdot \Delta E_p } )_1 + (\sum\limits_{i_p \in i}{\cdot \Delta E_p } )_2,](/sites/default/files/tex_cache/a2cadc26963483f35fcffcced948cccf.png)
где знаки суммирования снова означают суммы по всем частицам, покинувшим ячейку и пришедшим в нее, соответственно. Далее получим
![$
\varepsilon_{ikl}^{n + 1} = \frac{{h^2}}{{m_{ikl}^{n + 1}}}E_{ikl}^{n + 1} - \frac{1}{2} \left[{(u_{1 {kl}}^{n + 1} )^2 + (u_{2 {kl}}^{n + 1} )^2}\right]. $](/sites/default/files/tex_cache/844d97b1009b0a7b63798d8a9b59c90e.png)
Отметим недостатки этого метода. Во - первых, это дискретность плотности, что приводит при небольшом количестве частиц в ячейке к скачкообразным изменениям плотности. Во - вторых, аппроксимация исходных уравнений достигается при количестве частиц, стремящемся к бесконечности. Кроме того, этот метод требует значительно большего количества памяти, чем конечно - разностные методы, так как наряду с физическими характеристиками узлов необходимо хранить и свойства частиц в ячейках.
Подробное описание метода частиц в ячейках в [14.11].