Математическое моделирование в астрофизике. В 2 частях. Ч.1. Учебное пособие
.pdf
t
|
λ |
1 |
t= |
|
|
|
|
|
d |
|
|
x/ |
|
|
d |
|
|
(x, t) 
λ2 = t d dx/
3 λ
=
t d
x/
d
x 
Рис. 5.4. Область зависимости линейной системы дифференциальных уравнений в частных производных в точке (x, t) (три красных точки на оси x)
Теперь найдем q(x, t), умножив v на R:
mm
X |
X |
(5.21) |
q(x, t) = Rv(x, t) = |
vp(x, t)rp = vp(x − λpt, 0)rp. |
|
p=1 |
p=1 |
|
Из (5.21) следует, что значение q в точке (x, t) зависит от начальных условий не во всей области, а в нескольких точках. На рис. 5.4 из них проведены характеристики в точку (x, t). Эти точки являются областью зависимости системы (5.19) в точке (x, t). Мы можем любым образом изменить начальные условия вне области зависимости, при этом решение в точке (x, t)
останется тем же. Для линейных систем область зависимости дискретна, но в общем случае может быть непрерывна. В физических задачах область зависимости ограничена принципом причинности (v < c).
Задача Римана для системы (5.19) решается похожим образом. Пусть q = qL при x < 0 и q = qR при x > 0, где qL, qR – столбцы чисел. Слева и справа от разрыва мы имеем задачу Коши с постоянными начальными условиями. Снова ищем решение в виде v = R−1q. Обозначим значения v
слева и справа от разрыва в начальный момент времени
vL,R = R−1qL,R. |
(5.22) |
61
Таким образом мы представили начальные условия qL, qR как линейную комбинацию собственных векторов матрицы A:
|
m |
|
Xp |
qL = |
vpLrp; |
|
=1 |
|
m |
|
Xp |
qR = |
vpRrp. |
|
=1 |
Все компоненты столбца v удовлетворяют уравнениям переноса со скоростями, равными соответствующим собственным числам. Из-за того, что все эти скорости разные, происходит распад разрыва, и при t > 0 разные компоненты v имеют разрыв в разных точках:
vp(x, t) =
vpL, x − λpt < 0,vpR, x − λpt > 0.
Наклон характеристик линейной системы не зависит от времени и координаты. Следовательно, скорость распространения также не меняется, и решение со временем расширяется самоподобно.
Зная v(x, t), находим q(x, t) = Rv(x, t). Оно будет кусочно-постоянным с границами вдоль характеристик. Распишем его покомпонентно. Допустим, размерность матрицы A равна 3×3. Тогда есть три собственных числа и три характеристики. Расположим собственные числа в порядке возрастания:
λ1 < λ2 < λ3. Пусть r1, r2, r3 – соответствующие собственные векторы. Три характеристики делят плоскость x−t на четыре области (рис. 5.5).
На область, находящуюся левее самой левой характеристики, еще не повлиял распад разрыва, поэтому решение в ней совпадает с начальным условием слева от разрыва qL. Данное утверждение верно и для самой правой области, где q = qR.
Рассмотрим область между характеристиками λ1 и λ2: она находится слева от характеристик λ2 и λ3, поэтому в ней v2 = v2L и v3 = v3L, но правее λ1, поэтому v1 = v2R.
Следовательно,
q |
= vRr |
1 |
+ vLr |
2 |
+ vLr |
. |
(5.23) |
|
L |
1 |
2 |
3 |
3 |
|
|||
62
t |
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
λ |
|
|
|
3 |
d |
|
|
|
|
= |
λ |
|
= |
|
|
|
||
x/ |
|
|
|
|
||
|
|
|
t |
|
||
|
t |
|
d |
|
|
|
d |
q |
q |
|
|
||
t= |
d |
dx/ |
|
|
||
λ |
L |
x/ |
R |
|
|
|
1 |
|
d |
|
|
|
|
qL |
|
|
|
qR |
|
|
|
|
|
|
|
|
x |
Рис. 5.5. Иллюстрация к задаче о распаде разрыва в случае линейной гиперболической системы дифференциальных уравнений
в частных производных
Аналогично
q |
= vRr |
1 |
+ vRr |
2 |
+ vLr |
. |
(5.24) |
|
R |
1 |
2 |
3 |
3 |
|
|||
Таким образом, решение задачи Римана включает следующие шаги.
1.Нахождение собственных чисел и векторов матрицы A.
2.Упорядочивание их по возрастанию собственных чисел (необходимо поменять и порядок собственных векторов для сохранения соответствия).
3.Вычисление vL и vR по формуле (5.22).
4.Нахождение значений q во всех областях между характеристиками по формулам, аналогичным (5.23), (5.24).
5.5. Задача Римана для нелинейной системы уравнений. Решатель Роу
В линейном случае решение задачи Римана содержит только скачки – ударные волны и контактные разрывы. В нелинейном добавляются волны разрежения, и задача существенно усложняется. Однако для численных кодов достаточно приближенных методов решения нелинейной задачи Римана. В этом разделе мы разберем эффективный приближенный метод, разработанный для одномерной гидродинамики, – решатель Роу (Roe solver) [21].
63
Основным принципом решателя Роу является линеаризация системы уравнений. Пусть имеется задача Римана вида (5.13), где q и f – столбцы и f зависит от q. Задача состоит в том, чтобы заменить нелинейную систему
ˆ
линейной вида qˆt + A(qL, qR)ˆqx = 0 и получить приближенное решение qˆ.
ˆ
Перечислим требования к матрице A.
ˆ
1. Условие гиперболичности: A – диагонализируема, с вещественными
собственными числами.
ˆ − −
2. Условие на разрыве: A(qL, qR)(qR qL) = f(qR) f(qL). Тогда если условия на разрыве подобраны согласно адиабате Гюгонио, разрыв не распадется, а будет просто перемещаться. Таким образом, приближенное решение совпадет с точным.
ˆ
3. Условие сходимости: A(qL, qR) стремится к матрице Якоби при уменьшении разницы qL и qR. Это гарантирует корректную аппроксимацию гладких решений.
Приведем пример построения такой матрицы для системы уравнений
одномерной гидродинамики: |
∂x(ρvx) = 0, |
|
||||||||||||
|
∂t + |
|
||||||||||||
|
|
∂ρ |
|
∂ |
|
|
|
|
|
|||||
|
∂ |
|
|
|
|
∂ |
2 |
+ p) = 0, |
(5.25) |
|||||
|
|
|
(ρvx) + |
(ρvx |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
∂E |
|
∂ |
|
|
|
|
|
|||||
|
∂t |
|
|
|
|
∂x |
|
|
|
|
|
|||
|
|
∂t + |
∂x((E + p)vx) = 0, |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
где энергия единицы |
объема |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ρvx2 |
|
|
p |
|
|||
|
|
|
|
E = |
|
+ |
|
|
. |
|
||||
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
2 |
γ |
− 1 |
|
||||||
В системе оставлена скорость и производные только вдоль x. Физически это соответствует динамике жидкости в тонкой трубе. Все уравнения выписаны в консервативной форме и представляют собой законы сохране-
ния массы, импульса и энергии. |
|
|
|
||
Сопоставляя систему (5.25) с (5.13), получаем |
. |
||||
q = ρvx |
, |
f(q) = |
ρvx2 + p |
||
|
ρ |
|
|
ρvx |
|
|
|
|
|
||
|
|
|
|
|
|
|
E |
|
|
(E + p)vx |
|
64
Удобно ввести новые переменные: |
|
|
|
|
|
|
|
|
|
|
|||||
w |
w2 |
= √ρvx |
, |
(5.26) |
|||||||||||
|
w1 |
|
|
|
√ |
ρ |
|
|
|
|
|
||||
|
≡ w3 |
|
|
√ |
|
|
|
|
|
|
|
||||
|
|
ρh |
|
|
|
|
|||||||||
где удельная энтальпия |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
E + p |
v2 |
|
|
|
|
γ |
|
|
p |
|||||
h = |
|
= |
|
x |
+ |
|
|
|
|
. |
|||||
|
2 |
|
|
|
|
||||||||||
|
ρ |
|
|
γ − 1 ρ |
|||||||||||
Обозначим qR − qL ≡ ∆q, f(qR) − f(qL) ≡ ∆f и будем искать матрицу
ˆ ˆ −1
A(qL, qR) в виде A = CB . Согласно второму требованию нам необходимо
ˆ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
соблюдать условие A∆q = ∆f. Если ∆q = B∆w, а ∆f = C∆w, то требова- |
|||||||||||||||||
ние будет выполнено. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Выразим q и f через w: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
w1w2 |
|
|
|
|
|
|
|
|
|
|||||
|
w1w3 |
w12 |
|
|
|
|
|
|
|
|
|
|
|
||||
|
+ γ − 1 w2 |
|
|
|
|
|
|
||||||||||
q = |
|
γ |
|
|
|
γ |
|
|
2 |
|
; |
|
|
|
|
(5.27) |
|
|
|
|
|
2 |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
γ |
|
|
1 |
|
|
|
|
|
w22 |
|
|
|
||
|
|
|
|
γ |
w1w2 |
|
|
3 − 2 |
|
|
|
(5.28) |
|||||
|
|
2 |
|
|
1 |
|
|
|
|
||||||||
f = |
|
w + |
|
− |
|
w w |
|
|
|
|
|
. |
|
||||
|
|
|
|
|
w2w3 |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Теперь посчитаем ∆q и ∆f. Для этого введем правила «дифференцирования» суммы и произведения на разрыве. Если с суммой все просто (∆(a + b) = ∆a + ∆b), то скачок произведения можно представить в двух эквивалентных видах:
∆(ab) = aRbR − aLbL = aRbR − aRbL + aRbL − aLbL = aR∆b + bL∆a; ∆(ab) = aRbR − aLbL = aRbR − aLbR + aLbR − aLbL = bR∆a + aL∆b.
Взяв полусумму этих выражений, получим
|
aR + aL |
|
bR + bL |
¯ |
∆(ab) = |
2 |
∆b + |
2 |
∆a ≡ a¯∆b + b∆a. |
65
Воспользовавшись правилами «дифференцирования», найдем из (5.27) и (5.28):
∆q = |
|
w¯1∆w2 |
1+ w¯2∆w1 |
|
|
; |
|
|
|||||||||
|
|
|
|
|
2w¯ |
∆w1 |
|
w¯2∆w2 |
|
|
|||||||
w¯1∆w3 |
+ |
w¯3∆w1 |
+ |
γ − 1 |
|
|
|||||||||||
|
|
|
|
|
|
|
|||||||||||
|
γ |
|
|
|
γ |
|
|
|
|
γ |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
γ |
|
11 |
2 |
+ w¯ |
2 |
∆w |
1 |
|
|||||
|
|
|
2 γ |
w¯ |
∆w |
|
|
2 |
|
||||||||
|
2 |
1 |
3 |
|
|
3 1 − 2 |
|
||||||||||
|
|
|
− |
|
|
|
|
|
|
|
|
|
|
|
|||
∆f = 2w¯ ∆w + |
|
|
|
w¯ ∆w + w¯ ∆w w¯ ∆w |
|
. |
|||||||||||
|
|
|
|
|
|
w¯2∆w3 + w¯3 |
∆w2 |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Тогда с учетом ∆q = B∆w и ∆f = C∆w можно получить матрицы B и C:
B = |
w¯2 |
w¯1 |
0 , C = |
γ − 1w¯3 |
γ +γ 1w¯2 |
γ −γ 1w¯1 , |
||||||||||
|
2w¯1 |
0 |
|
0 |
|
|
w¯2 |
w¯1 |
0 |
|
||||||
|
|
|
|
γ − 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
w¯3 |
|
w¯2 |
w¯1 |
γ0 |
w¯ |
|
|
w¯ |
|
||||||
|
|
|
γ |
3 |
|
2 |
||||||||||
|
γ |
γ |
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
ˆ
а значит, и искомую матрицу A, для которой по построению будет выполнено
второе требование. Нетрудно убедиться, что и два других критерия будут удовлетворены. Таким образом, мы перешли от нелинейной задачи Римана к линейной, которую мы научились решать в прошлом подразделе.
Первый пункт алгоритма – нахождение собственных чисел и собствен-
ˆ |
ˆ |
ных векторов матрицы A. Для этого необязательно выписывать A в яв- |
|
ном виде. Используя равенство Aˆ = CB−1, можно преобразовать уравнение |
|
ˆ |
|
Ar = λr следующим образом: |
|
CB−1r = λr = λBB−1r (C − λB)˜r = Xr˜ = 0, |
(5.29) |
где r˜ ≡ B−1r, X ≡ C − λB.
Собственные числа (скорости волн) находятся из условия det X = 0, которое сводится к кубическому уравнению
|
|
w¯1 |
|
3 |
|
w¯1 |
|
2 |
|
w¯1 |
h |
γ + 5 |
|
|
|
|
w¯1w¯3 |
i − |
γ + 1 |
|
|
|
|
|
|
w¯1w¯3 |
|
|||||||||||
|
|
− |
|
|
|
|
|
|
|
|
− |
|
|
− |
|
|
|
|
|
|
|
|
|
− |
|
|
|
|
||||||||||
|
w¯2 |
w¯2 |
|
|
w¯2 |
2 |
|
|
|
|
|
w¯22 |
|
2 |
|
|
|
|
|
|
w¯22 |
|
||||||||||||||||
|
λ |
|
|
|
3 λ |
|
|
|
+ |
λ |
|
|
|
|
|
|
|
(γ |
|
1) |
|
|
|
|
|
|
|
|
+ (γ |
|
|
1) |
|
= 0, |
||||
имеющему три корня: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
λ0 |
= w¯1 |
, |
λ± = w¯1 |
± r |
|
|
|
|
|
|
|
|
|
|
|
(5.30) |
|||||||||||||||||
|
|
|
|
|
(γ − 1) |
w¯1 |
− 2 |
|
|
w¯1 . |
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
w¯2 |
|
|
|
|
w¯2 |
|
|
|
|
|
|
|
w¯3 |
1 |
|
w¯2 |
2 |
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
66
p |
|
|
v |
|
|
|
|
3 |
|
|
0,5 |
|
|
|
|
|
|
|
|
|
|
|
|
2,5 |
|
|
0,4 |
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
0,3 |
|
|
|
|
|
|
0,2 |
|
|
|
|
|
1,5 |
|
|
|
|
|
|
|
|
|
0,1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
2 x 0 |
|
|
|
|
−2 −1 |
0 |
1 |
−2 −1 |
0 |
1 |
2 x |
|
ρ |
|
|
t |
|
|
|
|
3 |
|
|
0,8 |
|
|
|
|
2,5 |
|
|
0,6 |
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
0,4 |
|
|
|
|
|
|
|
|
|
|
|
|
1,5 |
|
|
0,2 |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
2 x 0 |
|
|
|
|
−2 −1 |
0 |
1 |
−2 −1 |
0 |
1 |
2 x |
|
Рис. 5.6. Сравнение точного (сплошные линии) и приближенного (штриховые линии) |
|||||||
|
|
|
решения задачи Сода |
|
|
|
|
Сравнивая (5.30) c (5.26), легко понять, что λ0 имеет значение средней скорости потока, а λ± – скорости потока плюс/минус средняя скорость звука
p
γp/ρ. Таким образом, приближенный метод дал физически обоснованную оценку скорости распространения возмущений в среде: со скоростью движения плазмы либо со скоростью звука относительно потока. Далее можно подставить найденные собственные числа в (5.29) и найти r˜. Cобственные векторы линеаризованной системы равны r = Br˜.
В качестве примера приведем известную гидродинамическую задачу – задачу Сода. Она представляет собой задачу Римана в одномерной гидродинамике с ρL = 3, ρR = 1, vl = vR = 0, pL = 3, pR = 1 (т. е. раcпад разрыва на границе областей разной плотности и одинаковой температуры). Приближенное решение сравнивается с точным на рис. 5.6. На четырех панелях
67
представлены давление, скорость, плотность и характеристики задачи. Точное решение, показанное сплошными линиями, включает в себя волну разрежения, внутри которой параметры меняются плавно; контактный разрыв, где нет скачка давления; ударную волну. Приближенное решение, состоящее из трех ударных волн, тем не менее достаточно адекватно воспроизводит форму всех профилей и наклон характеристик. Точность приближенного решателя Роу достаточна для гидродинамических кодов.
5.6.Методы численного решения гиперболических систем
При реализации метода характеристик, рассмотренного ранее, пространство не разбивается на фиксированные ячейки, в которых считается приращение q. Точки, в которых постоянны определенные величины, движутся вдоль характеристик, т. е. на каждом шаге меняют свое положение. Однако эти методы могут быть сложны в реализации, особенно при возникновении разрывных решений или взаимодействии разрывов.
В общем случае гиперболические системы могут решаться при помощи разностных схем на фиксированной сетке. Для этого в самом начале моделирования осуществляется пространственная дискретизация и задание начальных условий. Для начала выясним, какими способами можно осуществить дискретизацию непрерывной величины q.
Различают два основных метода дискретизации – метод конечных разностей и метод конечных объемов. В первом случае за значение величины в ячейке принимается значение в центре ячейки Qni = q(xi, tn), а во втором – среднее по ячейке (рис. 5.7):
|
|
|
x |
1 |
|
|
Qin = |
|
1 |
|
wi+ 2 q(x)dx, |
(5.31) |
|
h |
||||||
|
|
|
x |
i− |
1 |
|
|
|
|
|
2 |
|
|
где xi±12 – координаты границ ячейки.
При дискретизации подразумевается, что размер ячейки много меньше характерных масштабов изменения всех величин, поэтому в большинстве случаев метод конечных разностей дает достаточно адекватные результаты.
68
а) |
q |
x |
б ) |
q |
x |
Рис. 5.7. Методы пространственной дискретизации: метод конечных разностей (a) и метод конечных объемов (б )
Однако для лучшего выполнения законов сохранения предпочтительнее использовать метод конечных объемов. При этом гиперболические уравнения записываются в консервативной форме qt + f(q)x = 0, а потоки f(q) вычисляются на границах ячеек. Эти методы будут рассмотрены в разд. 5.8–5.9.
В этом разделе мы познакомимся с методами решения гиперболических уравнений и систем, основанными на методе конечных разностей. Самый простой из них – схему с разностями против потока (Upwind) – проще всего проиллюстрировать на примере уравнения переноса (5.14). Пространство разбивается на ячейки, в каждой из которых задается дискретная величина Qni . Этот метод зависит от знака скорости потока u:
n+1 |
n |
+ u |
n |
n |
= 0, u > 0; |
|
Qi |
− Qi |
Qi |
−hQi−1 |
|||
|
|
|||||
|
k |
|
||||
n+1 |
n |
+ u |
n |
n |
= 0, u < 0. |
|
Qi |
− Qi |
Qi+1 − Qi |
||||
|
||||||
|
k |
h |
||||
69
Отсюда явно выражается |
|
|
|
|
|
|
|
|
|
|
Qin |
|
k |
u(Qin |
|
Qin |
1), u > 0, |
||
|
|
|
|
||||||
Qn |
|
k |
u(Qn |
|
|
Qn), u < 0. |
|||
|
|
|
|
||||||
|
i |
− h |
i+1 |
|
i |
||||
Qin+1 = |
|
|
− |
|
− |
(5.32) |
|||
|
|
− h |
|
− |
|
|
|||
|
|
|
|
|
|
|
|
|
|
Напомним, что верхние индексы обозначают номер шага по времени, а нижние – номер ячейки. Этот метод можно понять интуитивно: в случае если u > 0, на i-ю ячейку могут влиять только ячейки слева, в противоположном случае – только ячейки справа.
Метод Upwind имеет 1-й порядок точности по времени и координате. Он также применим к линейным системам, если все собственные числа в них одного знака. В случае нелинейных систем и уравнений вида (5.12) его можно применять только в случае, если характеристики во всей интересующей области наклонены в одну сторону:
Qn+1 = Qin − h |
(f(Qin) − f(Qin−1)), dq (Qi) > 0, |
||||||||||
|
|
|
|
k |
|
|
|
|
|
df |
|
i |
n k |
|
n |
|
|
n |
df |
||||
|
Q |
i |
|
|
(f(Q |
i+1 |
) |
|
f(Q )), |
|
(Qi) < 0. |
|
|
|
|
|
|||||||
|
|
− h |
|
|
− |
i |
dq |
||||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
К методам 2-го порядка точности по координате и времени относятся, например, метод перешагивания (Leapfrog) и метод Лакса–Вендроффа. Метод перешагивания для линейных систем вида (5.19) выглядит следующим образом:
|
Qin+1 − Qin−1 |
+ A |
Qin+1 − Qin−1 |
= 0, |
||
|
2k |
|
|
2h |
|
|
или |
|
|
k |
|
|
|
|
Qin+1 = Qin−1 |
− |
A(Qin+1 − Qin−1). |
|||
|
|
|||||
|
h |
|||||
Он требует знания Q на двух предыдущих шагах, поэтому первый шаг делается любым другим методом.
Метод Лакса–Вендроффа основан на разложении в ряд Тейлора:
q(x, t + k) = q(x, t) + kqt(x, t) + 12k2qtt(x, t) + ... .
70
