Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Математическое моделирование в астрофизике. В 2 частях. Ч.1. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

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 =

 

1∆w2

1+ w¯2∆w1

 

 

;

 

 

 

 

 

 

 

2w¯

∆w1

 

2∆w2

 

 

1∆w3

+

3∆w1

+

γ − 1

 

 

 

 

 

 

 

 

 

 

γ

 

 

 

γ

 

 

 

 

γ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

γ

 

11

2

+ w¯

2

∆w

1

 

 

 

 

2 γ

∆w

 

 

2

 

 

2

1

3

 

 

3 1 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

∆f = 2w¯ ∆w +

 

 

 

w¯ ∆w + w¯ ∆w w¯ ∆w

 

.

 

 

 

 

 

 

2∆w3 + w¯3

∆w2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тогда с учетом ∆q = B∆w и ∆f = C∆w можно получить матрицы B и C:

B =

2

1

0 , C =

γ − 13

γ +γ 12

γ −γ 11 ,

 

2w¯1

0

 

0

 

 

2

1

0

 

 

 

 

 

γ − 1

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

2

1

γ0

 

 

 

 

 

 

γ

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, которое сводится к кубическому уравнению

 

 

1

 

3

 

1

 

2

 

1

h

γ + 5

 

 

 

 

13

i

γ + 1

 

 

 

 

 

 

13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

2

 

 

2

2

 

 

 

 

 

22

 

2

 

 

 

 

 

 

22

 

 

λ

 

 

 

3 λ

 

 

 

+

λ

 

 

 

 

 

 

 

 

1)

 

 

 

 

 

 

 

 

+ (γ

 

 

1)

 

= 0,

имеющему три корня:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

λ0

= 1

,

λ± = 1

± r

 

 

 

 

 

 

 

 

 

 

 

(5.30)

 

 

 

 

 

(γ − 1)

1

2

 

 

1 .

 

 

 

 

 

 

 

 

2

 

 

 

 

2

 

 

 

 

 

 

 

3

1

 

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

 

где x12 – координаты границ ячейки.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]