Математическое моделирование в астрофизике. В 2 частях. Ч.1. Учебное пособие
.pdfпогрешность в данных приводит к совершенно другому решению. Устойчивость и согласованность являются необходимым и достаточным условием сходимости разностной схемы, при этом достичь устойчивости намного сложнее.
2. МЕТОДЫ МОДЕЛИРОВАНИЯ ДВИЖЕНИЯ ЗАРЯЖЕННОЙ ЧАСТИЦЫ В ЗАДАННЫХ ПОЛЯХ
Одной из самых простых задач, часто используемых в астрофизике, является задача о движении заряженных частиц в заданных электромагнитных полях. Она применяется, например, при исследовании законов распространения космических лучей в Галактике. Напомним, что космические лучи – заряженные частицы сверхвысоких энергий (в основном протоны), которые наблюдаются вблизи орбиты Земли. Теоретические модели и наблюдательные данные указывают, что большая их часть ускоряется ударными волнами в остатках сверхновых. Дальнейшее распространение космических лучей происходит под влиянием галактических магнитных полей.
Также задача о движении частиц в заданных полях является частью более сложной задачи о самосогласованной динамике плазмы (см. главу 5). Плазма является основным агрегатным состоянием вещества во Вселенной, в одних объектах – вследствие высокой температуры, в других – за счет разреженности вещества. Поэтому динамика плазмы важна для описания многих астрофизических явлений.
Рассмотрим методы перемещения частиц в заданных электромагнитных полях. При этом должны решаться следующие уравнения:
dr |
= v; |
|
|
|
||||
dt |
|
E + |
|
× B ; |
||||
|
|
|
|
|||||
du |
= |
q |
v |
|||||
|
|
|
|
|
||||
dt |
m |
c |
||||||
u = γv,
(2.1)
(2.2)
(2.3)
где q – электрический заряд частицы; m – ее масса; r – радиус-вектор; v –
скорость; γ – лоренц-фактор; E – электрическое поле; B – магнитное поле. При этом время разбивается на интервалы длиной k и дифференциаль-
ных уравнения преобразуются в разностную схему.
11
Основная трудность решения задачи о движении частицы в электромагнитном поле заключается в том, что скорость частицы является одной из неизвестных и одновременно входит в правую часть уравнения (2.2). Проще всего обойти эту трудность при использовании явного метода Эйлера: в этом случае приращение скорости вычисляется через ее значение на предыдущем шаге. Таким образом, уравнения (2.1)–(2.3) имеют вид:
rn+1 − rn |
= vn; |
|
|
|
|
(2.4) |
|||||
|
k |
|
|
|
|
|
|
|
|
|
|
u |
n+1 |
n |
|
|
|
|
n |
(2.5) |
|||
k− u |
|
= m En + vc × Bn ; |
|||||||||
|
|
|
|
q |
|
|
|
|
|
||
un = γnvn = r |
|
|
|
. |
|
||||||
1 + |
un · un |
vn |
(2.6) |
||||||||
c2 |
|||||||||||
На n-м шаге известны значения vn, un, rn и поля En и Bn в точке нахождения частицы. Тогда алгоритм решения состоит из трех шагов.
1.Из уравнения (2.5) находим новое значение un+1.
2.Из уравнения (2.4) находим новые координаты частицы rn+1.
3.Из уравнения (2.6) находим vn+1 через un+1.
В принципе шаг 2 допускается менять местами с остальными, но при этом не следует забывать, что в данном методе при перемещении частиц используется скорость на предыдущем шаге. Если шаг 2 делается после шага 3, то необходимо отдельно хранить в памяти компьютера предыдущее значение скорости. Если шаг 2 делается до шага 1, то нужно сохранять либо предыдущие координаты, либо электрическое и магнитное поля в предыдущей точке нахождения частицы. Поэтому приведенный порядок действий оптимален с точки зрения использования оперативной памяти. Современные коды делают расчеты с многими миллиардами частиц, следовательно, оптимизация очень важна.
Ранее приведенный явный метод Эйлера имеет 1-й порядок точности по времени и являеся неустойчивым. Несмотря на его простоту, на практике используются методы 2-го порядка точности и выше. Далее рассмотрим несколько таких методов. Для простоты начнем с нерелятивистского случая.
Неявный метод Эйлера (метод Рунге–Кутты 2-го порядка, predictor-corrector). Данный метод заключается в том, что мы сначала
12
предсказываем явным методом Эйлера скорость и координаты в конце шага, а затем делаем поправку нашей догадки с учетом найденных значений. Обозначим f(rn, vn) ≡ mq (En + vcn ×Bn) ускорение частицы со скоростью vn, находящейся в точке rn. Тогда алгоритм записывается следующим образом:
ar = kvn; av = kf(rn, vn);
br = k(vn + av); bv = kf(rn + ar, vn + av); rn+1 = rn + 12(ar + br);
vn+1 = vn + 12(av + bv).
Легко убедиться, что
|
k2 |
|
|
|
|
|||
rn+1 |
= rn + kvn + |
|
|
fn; |
|
|
|
|
|
|
|
|
|
|
|||
|
2 |
|
f · ∂∂v |
f |
t=tn |
|||
vn+1 = vn + kfn + k22 (v · ) f + |
||||||||
|
|
|
|
|
|
|
|
|
(2.7)
≡ vn + kfn + k2 dfn . (2.8)
2 dt
Выражения (2.7)–(2.8) соответствуют разложению координаты и скорости в ряд Тейлора до 2-го порядка включительно. Таким образом, мы обосновали, что данный метод имеет 2-й порядок точности.
Метод Рунге–Кутты 4-го порядка аналогичен:
ar = kvn; av = kf(rn, vn);
br = k(vn + 12av); bv = kf(rn + 12ar, vn + 12av); cr = k(vn + 12bv); cv = kf(rn + 12br, vn + 12bv); dr = k(vn + cv); dv = kf(rn + cr, vn + cv);
rn+1 = rn + (ar + 2br + 2cr + dr)/6; vn+1 = vn + (av + 2bv + 2cv + dv)/6.
Метод перешагивания (leapfrog). Этот метод также имеет 2-й порядок точности и может использоваться для широкого круга задач. В общем случае, если есть величины A и B, для которых выполняется условие dA/dx = B или dA/dt = B, оказывается удобно задавать эти величины либо в различных точках пространства (в первом случае), либо в различные моменты времени (во втором). Например, задавая значения скоростей частиц
13
на полуцелых шагах по времени, а значения координат и электромагнитного поля – на целых, мы получим
rn+1 − rn |
= vn+21 ; |
|
|
|
|
|
|
(2.9) |
||||
k |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
||
vn+21 − vn−21 |
= |
|
q |
|
En + vn |
Bn |
; |
|
||||
|
|
|
|
|
|
|
|
|
× |
|
|
(2.10) |
|
k |
|
|
m |
c |
|
||||||
vn = |
vn+21 + vn−21 |
. |
|
|
|
|
|
(2.11) |
||||
|
|
|
|
|
|
|||||||
|
|
2 |
|
|
|
|
|
|
|
|
|
|
Согласно уравнению (2.10), схема неявная: чтобы найти vn+12 , надо знать vn, которая в свою очередь выражается через vn+12 . Однако систему можно привести к явному виду, подставив (2.11) в (2.10), а затем умножив полученное выражение скалярно и векторно на Bn. Для краткости сначала обезраз-
˜ |
qBnk ˜ |
qEnk |
. Тогда (2.10) преобразуется |
мерим систему, обозначив B = |
mc , E = |
m |
|
в выражение |
|
|
|
n−1 × ˜
n+1 n−1 ˜ v 2 B v 2 = v 2 + E +
2
n+1 × ˜
+ v 2 B. (2.12)
2
Наша задача – выразить последнее слагаемое в правой части через ве-
˜
личины, известные на предыдущем шаге. Умножая (2.12) скалярно на B, получим
|
|
vn+21 · B˜ = vn−21 |
· B˜ + E˜ · B˜. |
|
|
|
|
|
|
(2.13) |
||||||||||||||||
|
|
|
|
|
|
|
˜ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Умножая (2.12) векторно на B, получим |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
n |
− |
21 |
˜ |
|
|
|
v |
n+21 |
˜ |
|
|
|
|
|||||
vn+21 × B˜ = vn−21 × B˜ + E˜ × B˜ + |
v |
× B |
× B˜ + |
× B |
× B˜ = |
|||||||||||||||||||||
|
|
|
||||||||||||||||||||||||
|
|
2 |
|
|
2 |
|||||||||||||||||||||
1 |
|
|
|
˜ |
1 |
|
|
|
|
|
˜2 |
|
˜ |
1 |
|
|
|
|
˜2 |
|||||||
|
|
B |
|
|
|
1 B |
|
B |
|
|
|
1 B |
||||||||||||||
= vn−2 |
× B˜ + E˜ × B˜ + |
|
|
(vn−2 · B˜) − vn−2 |
|
|
|
|
|
+ |
|
(vn+2 |
· B˜) − vn+ |
2 |
|
. |
||||||||||
2 |
2 |
|
|
2 |
2 |
|||||||||||||||||||||
Подставляя (2.13), получим |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
vn+21 × B˜ = vn−21 × B˜ + E˜ × B˜ + B˜(vn−21 · B˜)− |
|
|
|
(2.14) |
|||||||||||||||||||||
|
|
˜2 |
|
|
|
˜ |
|
|
|
˜2 |
|
|
|
|
|
|
|
|
||||||||
|
1 B |
|
|
B |
|
|
1 B |
|
|
|
|
|
|
|
|
|
|
|||||||||
|
− vn−2 |
|
+ |
|
|
(E˜ · B˜) − vn+ |
2 |
|
|
. |
|
|
|
|
|
|
|
|
|
|
||||||
|
2 |
2 |
2 |
|
|
|
|
|
|
|
|
|
|
|||||||||||||
14
Теперь можно подставить (2.14) в (2.12) и перенести слагаемые с vn+12
в левую часть:
vn+2 1 + |
|
˜2 |
|
= vn− |
|
|
|
˜2 |
|
+ E˜ + vn−2 |
× B˜+ |
|||||||
4 |
|
2 1 − 4 |
|
|||||||||||||||
|
1 |
|
|
B |
|
|
|
|
|
1 |
|
|
B |
|
|
|
1 |
|
|
˜ ˜ |
|
|
˜ |
|
|
|
|
|
1 |
|
|
|
|
|
|
||
+ |
E × B |
|
+ |
B |
(vn−21 |
· |
B˜) + |
|
B˜ |
(E˜ |
· |
B˜). |
|
|||||
2 |
2 |
|
|
|||||||||||||||
|
|
|
|
|
|
|
4 |
|
|
|
|
|
||||||
Таким образом, мы получили явное выражение для скорости на следующем шаге в методе перешагивания. Следует отметить, что, если в начале счета все величины известны при t = t0, то необходимо сделать предва-
1
рительные полшага (prepusher), чтобы найти v2 . Эти полшага можно без потери точности сделать с помощью явного метода Эйлера (2.5).
Метод Бориса. Этот метод перемещения частиц в электромагнитных полях является одним из лучших, поскольку он достаточно прост в реализации и при этом устойчив. Можно показать, что этот метод на каждом шаге сохраняет объем фазового пространства (адиабатический инвариант). Алгоритм основан на разделении движений: сначала частица ускоряется в электрическом поле, затем поворачивается в магнитном и снова ускоряется в электрическом:
v1 = vn−12 + 2qkmEn;
v2 − v1 = qk vn × Bn; k mc
vn+12 = v2 + 2qkmEn,
где vn – формальная запись вектора, на который нужно умножить магнитное поле, чтобы получить нужный угол поворота.
Разницу v2 и v1 проще всего найти геометрически (рис. 2.1). Считаем, что магнитное поле Bn направлено перпендикулярно плоско-
сти рисунка в направлении от зрителя. Далее у магнитного поля опустим индекс n. Угол поворота между векторами v1 и v2 равен
θ = qkBmc .
15
|
|
|
B |
|
|
v2 |
|
|
θ/2 |
v3 |
u |
O |
D |
||
θ/2 |
|
C |
|
|
|
|
|
|
|
v1 |
w |
|
|
|
|
|
|
|
A |
Рис. 2.1. Схема поворота вектора скорости в методе Бориса
Введем вспомогательный вектор v3 = v1 + w так, чтобы треугольник
OAC был прямоугольным. Катет AC = |v1| tan(θ/2) при этом перпендику-
лярен v1 и магнитному полю. Поэтому |
|
|
|||||||
|
w = |
v1 × B |
tan(θ/2); |
||||||
|
|
|
|
B |
|
|
|||
|
v3 = v1 |
+ |
v1 × B |
tan(θ/2). |
|||||
|
|
|
|
|
B |
|
|
||
Теперь можно найти вектор u = v2 − v1, учитывая, что он ортогонален |
|||||||||
v3 и B, а его длина равна 2|v1| sin(θ/2): |
|
|
|||||||
u = 2 |
v3 × B |
v |
|
sin(θ/2) = |
v3 × B |
sin(θ). |
|||
|v3|B | |
1| |
|
|||||||
|
|
|
|
|
|
B |
|||
Таким образом, выражая синус через тангенс половинного угла, схему Бориса можно записать следующим образом (индексы электромагнитных
полей опущены): |
|
|
qk |
|
|
v1 |
= vn−21 + |
|
E; |
||
|
|
||||
a1 |
2m |
||||
= B−1 tan |
|
2mc ; |
|||
|
|
|
|
qkB |
|
2a1
a2 = 1 + a21B2 ;
v3 = v1 + a1v1 × B; v2 = v1 + a2v3 × B;
16
vn+21 = v2 |
+ |
qk |
E. |
|
|||
|
2m |
|
|
Чаще всего в целях ускорения счета тангенс раскладывается в ряд Тейлора и оставляется только линейный член. Тогда
qk a1 = 2mc.
Часто также в литературе встречается метод Бориса в следующих обо-
значениях [7,25]:
v− = vn−12 + 2qkmE; v+ = v− + v ′ × s;
2t
s = 1 + t2 ;
t = 2qkmcB;
v ′ = v− + v− × t; vn+12 = v+ + 2qkmE.
Все методы, приведенные ранее, могут быть модифицированы для релятивистского случая. Например, в методах Рунге–Кутты меняется только
выражение для ускорения:
q En − vn (vn · En) + vn × Bn . mγn c2 c
Метод Бориса в релятивистском случае преобразуется в выражения:
u− = un−21 + |
qk |
En; |
(2.15) |
|
2m |
||||
|
|
|
t = 2mcqkγ− Bn;
2t
s = 1 + t2 ;
u ′ = u− + u− × t; u+ = u− + u ′ × s; un+12 = u+ + 2qkmEn,
где u = γv.
(2.16)
(2.17)
(2.18)
(2.19)
(2.20)
17
Схема (2.15)–(2.20) получается в предположении, что при повороте от u−
к u+ используются выражения:
un+21 − un−21 |
= q |
En |
+ vn |
|
Bn |
; |
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
× |
|
|
|
|
|
|
|
(2.21) |
|||
|
k |
|
m |
|
c |
|
|
|
|
|
|
|||||||||||
vn = |
un−21 + un+21 |
; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2.22) |
|||||
|
2γn |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
γn = s |
|
|
|
|
|
|
= s |
|
|
|
|
|
|
|
|
|
||||||
|
|
un−21 |
+ |
qk |
En |
|
2 |
|
1 + |
un+21 − |
qk |
En |
|
2 |
|
|
||||||
1 + |
|
2m |
|
|
|
2m |
|
|
, (2.23) |
|||||||||||||
|
|
|
2 |
|
|
|
|
|
2 |
|
|
|
|
|||||||||
|
|
|
|
|
|
c |
|
|
|
|
|
|
|
c |
|
|
|
|||||
т. е. за полшага вектор 4-скорости получает половину приращения. Однако данное предположение противоречиво. Представим, что частица со скоростью v помещена в однородное постоянное электромагнитное поле такой величины и направления, что
E + vc × B = 0.
Очевидно, что вследствие компенсации сил частица будет двигаться равномерно и прямолинейно. Проверим, будет ли это условие выполняться при применении метода Бориса. Предположим, что
En + vn−12 × Bn = 0; c
En + vn+12 × Bn = 0; c
un−12 = un+12 ≡ u.
Из (2.26) и (2.21) следует, что
En + vn × Bn = 0. c
Комбинируя это выражение с (2.24) и (2.25), получаем vn × Bn = vn−12 × Bn = vn+12 × Bn = 0.
В то же время, из (2.22) и (2.26) следует, что
vn = un−12 = un+12 ,
γn γn
18
т. е. вектор vn сонаправлен с un−12 и un+12 , тогда из (2.27) следует vn = = vn−12 = vn+12 и γn = γn−12 = γn+12 . C учетом (2.23) это равенство возмож-
но только при En = 0 и vn × Bn = 0, т. е. в общем случае компенсация сил не происходит. Отметим, что в нерелятивистском случае γ = 1 эта проблема исчезает. Однако на сильно релятивистскую частицу при использовании метода Бориса начинают действовать нефизичные силы, связанные с особенностями метода.
Для компенсации этого эффекта был разработан метод Вэя. Он представляет собой метод Бориса, в котором вместо выражения (2.22) скорость в середине шага определяется как полусумма начальной и конечной:
vn = γn−12 vn−12 + γn+12 vn+12 .
2γn
Однако это небольшое изменение делает схему более громоздкой:
un = un−2 |
+ |
|
2m |
En + c− |
21 |
× Bn! |
; |
||||||||||||||||
|
|
|
1 |
|
|
|
qk |
|
|
vn |
|
|
|
||||||||||
u |
′ = un + |
qk |
En; |
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
qk |
2m |
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
τ |
= |
|
|
|
|
|
Bn; |
|
|
|
|
|
|
|
|
|
|
|
|
||||
2mc |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
σ′ |
= γp′2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
− τ2; |
′ |
2/c2; |
|
|
|
|
|
|
|||||||||||||||
γ |
= |
|
|
1 + u |
|
|
|
|
|
|
|
||||||||||||
u = |
u ′ · τ |
; |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
c |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
γn+21 = s |
|
|
|
|
|||||||||||||||||||
|
|
|
|||||||||||||||||||||
σ + σ2 + 4(τ2 + u 2) |
; |
|
|||||||||||||||||||||
|
|
|
|
p |
2 |
|
|
|
|
||||||||||||||
|
|
|
τ |
|
|
|
|
|
|
|
|
|
|
|
|||||||||
t = |
|
; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
γn+21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
s = |
1 |
; |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
1 + t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
un+12 = s u ′ + u ′ · t)t + u ′ × t .
Вследствие большего объема вычислений за шаг разумно использовать схему Вэя только для релятивистских задач. Следует отметить, что методы
19
Рунге–Кутты и даже явный метод Эйлера тоже корректно работают в случае компенсации сил. Их недостатки проявляются в других задачах.
В завершение можно отметить, что из всех разобранных методов перемещения частиц наилучшее сочетание быстродействия и скорости достигается для метода Бориса в нерелятивистском случае и метода Вэя в релятивистском случае. Однако методы Рунге–Кутты и перешагивания применимы для ряда задач с нулевым магнитным полем. В частности, они эффективны в отсутствие магнитного поля.
Упражнения
1. Пусть протон движется вдоль оси x со скоростью vx = 3 · 108 см/с
воднородном магнитном поле, направленном вдоль оси z, Bz = 10−6 Гс. Электрическое поле равно 0. Написать программу, которая различными методами рассчитывает траекторию протона (зависимость координаты y от x)
винтервале времени от нуля до t = 1000 секунд и выводит ее в файл. Использовать явный метод Эйлера, методы Рунге–Кутты 2-го и 4-го порядка, метод перешагивания, метод Бориса. Сравнить результаты для различных шагов по времени, начиная с шага по времени, равного 1 секунде, и постепенно увеличивая его до k = 100 секунд.
2.Пусть протон движется вдоль оси x со скоростью vx = 0.9c в магнитном поле, направленном вдоль оси z, Bz = 10−3 Гс и электрическом, направленном вдоль оси y, Ey = 9 · 10−2 Гс. Написать программу, которая различными методами рассчитывает зависимость от времени координаты x
искорости vx протона в интервале времени от нуля до t = 50 секунд и выводит ее в файл. Использовать явный метод Эйлера, методы Рунге–Кутты 2-го
и4-го порядка, метод перешагивания, метод Бориса, метод Вэя. Сравнить результат для различных шагов по времени, начиная с шага по времени, равного 0,1 секунды, и постепенно увеличивая его до k = 5 секунд.
20
