Математическое моделирование в астрофизике. В 2 частях. Ч.1. Учебное пособие
.pdfТаким образом, учитывая, что qtt = −(Aqx)t = −A(qt)x = −A(−Aqx)x = = A2qxx, получаем
|
|
k |
|
k2 |
||
Qin+1 |
= Qin − |
|
A(Qin+1 |
− Qin−1) + |
|
A2(Qin+1 − 2Qin + Qin−1). (5.33) |
2h |
2h2 |
|||||
Для нелинейных систем и уравнений вида (5.12) эти методы выглядят следующим образом.
Метод перешагивания:
|
|
|
|
Qin+1 = Qin−1 |
− |
k |
(f(Qin+1) − f(Qin−1)). |
|
|
|
|
h |
|||
|
Метод Лакса–Вендроффа: |
|
|
|
|||
Qin+1 |
= Qin − |
k |
|
f(Qin+1) −f(Qin−1) + |
k2 |
Ai+ 21 f(qin+1) −f(qin) −Ai−21 f(qin) −f(qin−1) , |
|
2h |
2h2 |
||||||
где Ai±12 – матрица Якоби системы (5.12), вычисленная при q = (qin +qin±1)/2
(для одного уравнения Ai±12 – производная df/dq).
Следует отметить, что при использовании консервативной формы уравнений грань между методом конечных объемов и конечных разностей стирается и формулы выглядят идентично.
5.7. Критерий Куранта–Фридрихса–Леви сходимости численной схемы
Мы рассмотрели нескольких методов интегрирования гиперболических систем дифференциальных уравнений в частных производных. Теперь определим условия их сходимости. Напомним, что сходимость означает стремление численного решения к точному при уменьшении шага по времени k
ишага сетки h.
В1928 году Курант, Фридрихс и Леви предложили необходимый критерий сходимости разностной схемы для гиперболических систем. Для его формулировки пригодится понятие области зависимости, введенное в разд. 5.4 для систем уравнений. Разностные схемы также обладают областью зависимости. Например, в методе Лакса–Вендроффа для нахождения Qni +1 необходимо знать значения Q на предыдущем шаге в точках i−1, i и i+1, которые
71
в свою очередь вычисляются из пяти значений на шаге n−1 и т. д. Таким образом можно дойти до t = t0 и определить численную область зависимости данного метода в точке (xi, tn+1). Эта область обведена на рис. 5.8, а.
Очевидно, что численная область зависимости определяется шагами по времени h и k. Однако если мы уменьшим эти шаги в два раза, область зависимости сохранит свою длину, хотя и будет включать больше точек (см. рис. 5.8, б ). Следовательно, численная область зависимости конкретной разностной схемы определяется отношением k/h.
Решаемая система (или уравнение) тоже имеет в каждой точке свою область зависимости, определяемую характеристиками (см. рис. 5.4). Представим, что какая-то точка из области зависимости решаемой системы не попадает в численную область зависимости применяемой схемы. Тогда мы можем менять начальные условия в этой точке произвольным образом, при этом численное решение останется неизменным, а математическое должно измениться. Очевидно, что в этом случае сходимость невозможна.
Критерий Куранта–Фридрихса–Леви, или критерий Куранта, можно сформулировать следующим образом: для сходимости разностной схемы необходимо, чтобы численная область зависимости содержала внутри себя область зависимости решаемой системы. Он применим только для гиперболи-
а) |
б ) |
t |
t |
t2 |
t4 |
t1 |
t2 |
t0 |
|
|
t0 |
|
|
|
xj−2 xj−1 xj xj+1 xj+2 x |
xj−4 xj−2 xj xj+2 xj+4 x |
|||||
|
|
|||||
Рис. 5.8. Численная область зависимости метода Лакса–Вендроффа
72
ческих систем и уравнений.
Критерий Куранта накладывает ограничения на величину шага по времени при заданном шаге сетки. Например, для схемы с разностями против потока (вариант с левой производной) этот критерий запишется в виде
0 ≤ λk/h ≤ 1 для всех собственных чисел системы λ. Для методов перешагивания и Лакса–Вендроффа – как |λk/h| ≤ 1, для всех λ.
Также существует понятие числа Куранта
C ≡ |λmaxk/h|, |
(5.34) |
где λmax – максимальная по модулю скорость распространения волны (максимальный наклон характеристики).
Часто стараются задавать число Куранта много меньше единицы, чтобы гарантированно избежать расходимости.
5.8.Методы решения гиперболических систем
иуравнений, основанные на методе конечных объемов
Вэтом разделе мы познакомимся с методами решения гиперболических систем, основанными на методе конечных объемов. При этом дискретизация уравнения (5.12) осуществляется по формуле (5.31), а потоки f находятся на границах между ячейками.
Для реализации метода перейдем к интегральной форме уравнения (5.12):
xi+1 |
|
xi+1 |
|
tn+1 |
|
|
|
|
tn+1 |
|
|
w |
q(x, tn+1) |
w |
q(x, tn) = |
w |
f(q(xi |
− |
1 , t))dt |
− |
w |
f(q(xi+1 |
, t))dt. |
|
|
− |
|
tn |
|
2 |
tn |
2 |
|
||
xi |
|
xi |
|
|
|
|
|
|
|
Поделим обе части данного уравнения на h и воспользуемся определением (5.31):
Qin+1 |
= Qin − |
k |
(Fin+21 |
− Fin−21 ), |
(5.35) |
||
|
|||||||
h |
|||||||
где |
|
|
n+1 |
|
|
|
|
|
|
|
|
|
|
|
|
Fin±21 |
= |
1 |
tw |
f(q(xi±21 , t))dt |
(5.36) |
||
k |
|||||||
|
|
|
tn |
|
|
|
|
является интегральным потоком через границу ячейки.
73
Легко убедиться, что такая схема обеспечивает выполнение законов сохранения во всей области моделирования с точностью до машинного числа. Действительно, если мы просуммируем (5.35) по всей области моделирования, все потоки попарно сократятся за исключением потоков через границу, т. е. величина Q будет сохраняться. Поэтому такие разностные схемы называются консервативными. Например, в гидродинамике консервативная схема позволяет точно соблюдать законы сохранения массы, импульса и энергии.
Для вычисления потоков по формуле (5.36) необходимо знать q в точках xi±12 на протяжении всего шага по времени. Однако на практике нам известны только значения Qni и Qni+1. Поэтому приходится прибегать к различным методам оценки потоков.
Самое простое предположение – считать поток как полусумму потоков слева и справа:
Fin+12 = 0, 5(f(Qni ) + f(Qni+1)),
согласно которому
Qni +1 = Qni − 2kh(f(Qni+1 − f(Qni−1)).
Однако этот метод неустойчив при любых шагах по времени и координате. Его можно стабилизировать, добавив искусственную вязкость (диффузионное слагаемое):
Fin+12 = 0, 5(f(Qni ) + f(Qni+1)) − 2hk(Qni+1 − Qni ).
Таким образом, мы переходим к методу Лакса–Фридриха:
Qni +1 = 12(Qni−1 + Qni+1) − 2kh(f(Qni+1) − f(Qni−1)).
Это метод 1-го порядка точности, к тому же диффузионное слагаемое ведет к дополнительному расплыванию решения, поэтому он редко используется на практике.
74
5.9. Метод Годунова
Метод Годунова и его модифицикации на данный момент являются наиболее популярными методами оценки потоков на границах ячейки. Идея метода заключается в том, что можно найти хорошее приближение q(xi±12 )
на интервале tn−tn+1, решая задачу Римана.
Набор значений Qni является дискретной аппроксимацией неизвестного решения q(x, tn). Основываясь значениях Qni , построим кусочно-постоянную функцию q˜n – реконструкцию точного решения q(x, tn), – такую, что в каждой ячейке q(x, tn) = Qni , xi−12 < x < xi+12 (рис. 5.9, а). При этом на границах между ячейками возникают разрывы. Такое состояние эволюционирует (см. разд. 5.4 и 5.5), т. е. все разрывы распадаются на несколько областей, границы между которыми движутся вдоль характеристик системы.
Решения на границах между ячейками (вертикальные штриховые линии на рис. 5.9, б ) мы ищем на небольшом интервале времени от tn до tn+1 . Поэтому с хорошей точностью мы можем воспользоваться линеаризованным решением задачи Римана. При этом решение между каждой парой характеристик будет постоянным, в том числе и q – решение на границе ячеек.
а) |
б ) |
|
|
q |
t |
|
|
|
tn+1 |
|
|
x |
tn |
xi+21 |
xi+23 x |
xi−21 |
|||
Рис. 5.9. Кусочно-линейная реконструкция непрерывной функции (а) и характеристики |
|||
задач Римана на границах ячеек (сплошные линии) (б ) |
|
||
75
Тогда оценка потока вычислится тривиально:
|
|
|
|
n+1 |
|
|
|
|
|
|
Fin |
1 |
= |
1 |
tw |
f(˜qn(xi |
|
1 |
, t))dt = f(q (Qin |
1, Qin)). |
(5.37) |
|
− |
|||||||||
− |
2 |
|
k |
tn |
|
2 |
− |
|
|
Далее найденные потоки прибавляются к значениям в ячейках, на следующем шаге снова строится кусочно-постоянная реконструкция и алгоритм повторяется.
Выражение (5.37) остается верным до пересечения характеристик. Затем разрывы, возникшие после распада, начнут взаимодействовать, и решение на границе ячеек перестанет быть постоянным. Однако пересечения характеристик в течение шага по времени легко избежать, выбирая его достаточно малым. При этом ограничение на шаг совпадает с критерием Куранта: |λmaxk/h < 1|.
Применим метод Годунова для решения уравнения переноса (5.14). Оно имеет в каждой точке одну характеристику x′ = u. Если u > 0, то граница ячеек оказывается слева от характеристики, и в точке q˜n(xi−12 ) = Qni−1, иначе q˜n(xi−12 ) = Qni . Подставляя это выражение в (5.37) и (5.35), находим
Qin+1 = |
|
|
− h |
|
− |
|
− |
||||
|
|
Qin |
|
k |
u(Qin |
|
|
Qin |
1), u > 0, |
||
|
|
|
|
|
|
||||||
|
Qn |
|
k |
u(Qn |
|
|
|
Qn), u < 0, |
|||
|
|
|
|
|
|
||||||
|
|
i |
− h |
i+1 |
− |
|
i |
||||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
что в точности совпадает с методом Upwind (5.32). Мы получили, что в частных случаях метод Годунова может быть эквивалентным другим методам. Следует отметить, что метод Upwind, несмотря на 1-й порядок точности, работает достаточно стабильно, в том числе для разрывных решений.
В методе Годунова разрывы на границах ячеек имеют исключительно численную природу, связанную с дискретизацией точного решения. Однако характеристики задачи Римана дают правильное представление о направлении и скорости распространения возмущений. Поэтому получаемая аппроксимация потоков оказывается точнее, чем в большинстве других методов. Описанный в данном разделе метод имеет 1-й порядок точности, однако его порядок точности можно повысить.
76
5.10. Обобщение метода Годунова. Реконструкция решения, ограничители производной, схемы
с уменьшением полной вариации (TVD)
Для повышения точности метода Годунова вместо кусочно-постоянной реконструкции точного решения можно использовать кусочно-линейную, ку- сочно-параболическую и т. п. При этом скачки на стыках ячеек оказываются совсем небольшими, благодаря чему линеаризованное решение задачи Римана становится еще ближе к точному.
Алгоритм решения состоит из трех основных этапов.
1.Реконструкция – построение кусочной аппроксимации решения q˜n(x, tn)
сиспользованием средних значений в ячейках Qni .
2.Решение – решение задачи Римана на границах ячеек, нахождение q .
3.Усреднение – вычисление потоков на границах по формуле (5.37)
инахождение Qni +1 по формуле (5.35).
Ванглоязычной литературе эти этапы называются Reconstruct, Solve, Average (RSA).
Вернемся к построению реконструкции и остановимся на кусочно-линей- ной. Общая формула для реконструкции в i-й ячейке выглядит следующим
образом:
q˜n(x, tn) = Qin + σin(x − xi), xi−21 ≤ x < xi+21 . |
(5.38) |
Очевидно, что среднее значение в ячейке при этом равно Qni . Производную σni можно вычислять по-разному. Приведем сначала три самых простых варианта.
Метод Фромма:
σni =
Метод Бима–Уорминга:
σni =
Метод Лакса–Вендроффа:
σni =
Qni+1 − Qni−1 .
2h
Qni − Qni−1 .
h
Qni+1 − Qni .
h
77
Метод Фромма выглядит более симметричным и, следовательно, более точным. Тем не менее, все три метода имеют 2-й порядок точности.
Рассмотрим метод Лакса–Вендроффа для уравнения переноса (5.14) с u > 0. В этом случае на каждом стыке ячеек в качестве q будет выбираться значение слева:
Qin+1 = Qin − h Fin+ |
21 − Fin− |
21 = Qin − h Qi + σin |
2 − |
|||||||||||
|
|
|
k |
|
|
|
|
|
ku |
|
|
|
h |
|
− |
Qi−1 + σin−1 2 |
= Qin − h Qin − Qin−1 |
− |
2 σin − σin−1 = |
||||||||||
|
|
|
|
h |
|
|
|
|
ku |
|
|
ku |
|
|
= Qin − h Qin − Qin−1 − |
|
2h Qin+1 − 2Qin |
+ Qin−1 |
= |
||||||||||
|
|
ku |
|
|
|
ku |
|
|
|
|
||||
=Qni − ku2h Qni+1 − Qni−1 .
За счет положительной скорости потока центральной оказалась схема Лакса–Вендроффа. Аналогичным образом при u < 0 центральной становится схема Бима–Уорминга. Метод Фромма никогда не дает симметричное выражение для Qni +1.
Нелинейные гиперболические уравнения, в частности уравнения гидродинамики, часто имеют разрывные решения, для которых построение реконструкции осложняется. Построим реконструкцию изначально разрывного решения по методу Лакса–Вендроффа (рис. 5.10). В ячейке, граничащей с разрывом, производная велика, и после реконструкции возникает два разрыва. На каждом следующем шаге их число будет увеличиваться в два раза, что приведет к численным осцилляциям. Аналогичная проблема возникла бы при использовании методов Фромма и Бима–Уорминга.
Для борьбы с численными осцилляциями используют ограничители производной (limiters), которые обнуляют производную в случае, если экстремум локальный (т. е. возникает на масштабах порядка ячейки). В качестве примера приведем ограничители minmod:
σin = minmod |
Qn |
Qn |
Qn |
Qn |
, |
|
i |
−h i−1 |
, |
i+1 − |
i |
||
|
|
|||||
|
h |
|
||||
78
q
x
Рис. 5.10. Реконструкция разрывного решения методом Лакса–Вендроффа
где
a, |a| < |b| & ab > 0,
minmod(a, b) = b, |a| > |b| & ab > 0,
0, ab ≤ 0,
и MC (monotonized central-difference limiter):
σn = |
|
Qin+1 − Qin−1 |
, 2 |
Qin+1 − Qin |
, 2 |
Qin − Qin−1 |
i |
minmod |
|
|
|
|
|
2h |
h |
h |
.
Схемы с ограничителями производных удовлетворяют условию неубывания полной вариации (total variation diminishing, TVD):
|
|
TV(Qn+1) ≤ TV(Qn), |
где TV(Q) = |
i |Qi − Qi−1| – полная вариация. |
|
Для |
моделирования разрывных течений необходимо использовать схе- |
|
|
P |
|
мы с неубывающей полной вариацией, чтобы избежать нефизичных осцилляций.
79
5.11.Уравнения магнитной гидродинамики
иих характеристики
Прежде мы рассматривали чисто гидродинамические задачи, без учета электромагнитного поля. Однако во многих астрофизических объектах магнитные поля важны (например, при формировании пульсарных туманностей). В этом случае необходимо использовать магнитогидродинамический
(МГД) код.
Поскольку МГД коды работают на масштабах много больше инерционной длины иона, можно считать магнитное поле вмороженным в плазму
E = −v × B. Система уравнений гидродинамики при этом дополняется законом Ампера, в котором можно пренебречь током смещения, а к тепловому давлению добавляется магнитное. Систему уравнений трехмерной магнит-
ной гидродинамики можно выписать в консервативной форме |
|
|||||||||||
|
∂ |
|
ρρv |
+ |
· |
|
ρv |
v +ρpvtot − BB |
|
= 0, |
(5.39) |
|
∂t |
|
|||||||||||
B |
|
|
|
|
· vB − Bv |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
где |
|
|
|
E |
|
|
|
(E + ptot)v − B(v · B) |
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ρvx2 |
|
|
|
|
|
p |
|
|
|
B2 |
|
|
|
|
|||||
|
|
|
|
|
|
E = |
|
|
|
+ |
|
|
|
|
|
|
+ |
|
|
|
; |
|
|
|
|
|||
|
|
|
|
|
|
|
|
2 |
|
γ − 1 |
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8π |
|
|
|
|
|||||||||
|
|
|
|
|
|
ptot = p + |
B2 |
. |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
8π |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
Третья строка представляет собой формальную запись закона Ампера: |
||||||||||||||||||||||||||||
|
|
∂B |
∂ |
|
|
|
|
|
|
|
|
|
|
|
|
∂ |
|
|
|
|
|
|
|
|
|
|||
|
x |
= |
|
(Byvx |
− vyBx) + |
|
|
(Bzvx |
− vxBz), |
|||||||||||||||||||
|
∂t |
∂y |
|
∂z |
||||||||||||||||||||||||
|
|
∂By |
= |
∂ |
(B v |
y |
|
|
v |
B |
) + |
|
∂ |
(B |
v |
y |
|
v |
B |
), |
||||||||
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
z |
|
|
z |
|
y |
|
|
|
|
|
|
|
x |
|
|
y |
x |
|
||||
|
|
∂t |
∂z |
|
|
− |
|
|
|
|
|
|
|
∂x |
|
|
|
|
|
− |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
∂B |
∂ |
(Bxvz |
− vxBz) + |
|
∂ |
(Byvz |
− vzBy). |
||||||||||||||||||||
|
|
∂tz = |
∂x |
|
∂y |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Также |
должно соблюдаться условие |
· |
B = 0, из которого в одномерном |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
случае следует |
|
|
|
|
|
|
|
|
∂Bx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
= 0, |
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
∂x |
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
80
