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

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

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

т. е. Bx = const. Это серьезное ограничение проистекает из одномерности задачи. Поэтому уменьшение пространственной размерности необходимо использовать с большой осторожностью. Тем не менее одномерные и двумерные расчеты по-прежнему часто используются в связи с большой ресурсоемкостью трехмерных задач.

Система уравнений одномерной МГД содержит семь неизвестных (ρ, vx, vy, vz, E, By, Bz) и имеет семь характеристик:

λ1 = v − cf ; λ2 = v − va; λ3 = v − cs; λ4 = v;

λ5 = v + cs; λ6 = v + va; λ7 = v + cf ;

где

va = √4πρ;

cs = r

ρ

;

 

 

Bx

 

 

 

γp

 

 

 

 

 

 

 

 

 

cf,s = r

 

 

 

 

.

2

(cs2

+ va2) ± q(cs2 + va2)2 − 4csva,x

1

 

 

 

 

 

 

Собственные числа приведены в порядке возрастания. Задача о распаде разрыва для системы МГД также может быть линеаризована и решена приближенно. Например, приближенный решатель задача Римана для системы МГД на основе решателя Роу приведен в статье [4].

5.12. Основные принципы разработки кинетических кодов

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

81

на электронных масштабах. Динамика плазмы описывается в них уравнением Власова для функции распределения частиц s-го сорта fs в пространстве координат и скоростей (или координат и импульсов):

∂f

+ v · fs + h

q

E +

v

× B + gi ·

∂f

 

s

s

 

s

= 0,

(5.40)

∂t

ms

c

∂v

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

Далее мы опустим g, поскольку это слагаемое не влияет на сложность расчетов и может быть легко добавлено при необходимости. Также для крат-

кости ограничимся нерелятивистским рассмотрением.

Заряженные частицы плазмы при движении генерируют электромаг-

нитные поля согласно уравнениям Максвелла:

 

 

1 ∂E

 

(5.41)

× B =

 

 

j +

 

 

 

;

c

c

∂t

 

1 ∂B

 

 

 

 

 

(5.42)

× E = −

 

 

 

;

 

 

 

c

∂t

 

 

 

· B = 0;

 

 

 

 

 

(5.43)

· E = 4πρ,

 

 

 

 

 

(5.44)

где плотность заряда ρ и плотность тока j выражаются через функции рас-

пределения всех сортов частиц:

y

XX

ρ = qsns =

 

qs fsd3v;

(5.45)

s

s

y

 

 

 

 

XX

j =

qsnsus =

qs

vfsd3v.

(5.46)

ss

Таким образом, в кинетическом коде на каждом шаге решаются три подзадачи.

1.Решение уравнения Власова.

2.Вычисление токов и плотностей.

3.Решение уравнений Максвелла.

Это позволяет самосогласованно моделировать нелинейную динамику плазмы. Далее рассмотрим каждую подзадачу отдельно.

82

5.13. Решение уравнения Власова

Уравнение Власова является гиперболическим уравнением в частных производных в переменных t, r и v. Следовательно, оно может быть решено одним из стандартных методов, изложенных в разд. 5.3–5.11. Описание жидкости или газа при помощи функции распределения на дискретной сетке

называется подходом Эйлера.

Коды, основанные на подходе Эйлера, используются в современной аст-

рофизике (например, код Vlasiator [20]). Однако этот подход сопряжен с определенными трудностями. Во-первых, решение уравнений на шестимерной сетке – достаточно ресурсоемкий процесс. Кроме того, на этапе дискретизации необходимо заранее задать не только границы пространственной области, но и максимальную и минимальную скорость (либо работать с динамически расширяющейся сеткой). Многие астрофизические задачи связаны с ускорением частиц, из-за чего максимальная скорость растет на протяжении всего времени моделирования. При этом ускоренных частиц может быть немного, но ради них приходится хранить в памяти и обрабатывать много дополнительных ячеек. Еще одним недостатком подхода Эйлера является возможность возникновения отрицательных значений fs в результате ошибок округления. Такой результат нефизичен и может привести к неустойчивому поведению кода. Для устранения этой проблемы отрицательные значения часто принудительно зануляют. Однако это может повлиять на выполнение закона сохранения числа частиц.

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

суперпозиции конечного числа макрочастиц:

 

fs(t, r, v) = Xp

wpδ(r − rp(t))δ(v − vp(t)).

(5.47)

Коэффициент wp называется весом макрочастицы и возникает вследствие того, что частиц в памяти компьютера на много порядков меньше, чем реальных частиц в моделируемой системе. Следовательно, wp 1.

Поскольку в левой части уравнения (5.40) выписана полная производная функции распределения вдоль траектории частицы, эти траектории

83

являются характеристиками уравнения Власова. Таким образом, подход Лагранжа связан с методом характеристик, а для его сходимости необходимо выполнение критерия Куранта: |vmaxk/h < 1| (в качестве наклона характеристик выступают скорости частиц). Траектория частицы может быть рассчитана одним из методов, приведенных в главе 2.

Кинетические коды, основанные на подходе Лагранжа, называются кодами типа «частица в ячейке» (particle-in-cell, PIC-кодами). Их основной недостаток – численные шумы, возникающие из-за ограниченного числа частиц в ячейках. Методы подавления шумов рассматриваются в следующем разделе.

5.14. Интерполяция токов

Комбинируя формулы (5.47) и (5.45)–(5.46), получим выражения:

ρ =

Xp

wpqpδ(r − rp);

(5.48)

j =

Xp

wpqpvpδ(r − rp).

(5.49)

Поскольку уравнения Максвелла решаются на сетке, нам необходимо задать не плотность заряда и тока в каждой точке пространства, а их средние значения в каждой ячейке Ci. Для этого усредним (5.48)–(5.49) по объему ячейки (будем считать размеры ячейки по всем осям равными h):

 

1

X

(5.50)

ρi =

 

wsqp;

 

h3

p Ci

 

 

1

X

(5.51)

ji =

 

wsqpvp,

 

h3

p Ci

 

 

 

 

где s – сорт частицы p; ws – вес макрочастицы, безразмерная величина, равная отношению реального числа частиц данного сорта Ns к числу макрочастиц NPs.

Рассчитаем эти величины в пределах одной ячейки. Число частиц s-го сорта в ячейке обозначим ppcs (particle per cell). Это важный параметр, поскольку возникающая из-за численных шумов дисперсия плотности заряда

84

оценивается как 1/ppcs. Число реальных частиц s-го сорта в ячейке равно nsh3, следовательно, ws = nsh3/ppcs.

Для уменьшения численных шумов вместо дельта-функции по координате в (5.48)–(5.49) можно подставить интерполирующую весовую функцию, например, как в методе CIC (3.16) или как в методе TSC (3.17). При этом в пространстве скоростей макрочастица всегда представляет собой дельтафункцию, так как должна двигаться как целое, а не расплываться.

Как и в гравитационных кодах с частицами в ячейках, одну и ту интерполирующую функцию в PIC-коде необходимо использовать дважды: при вычислении токов и плотностей, а затем при вычислении сил, действующих на частицу. В противном случае будут возникать нефизичные силы, действующие на частицу со стороны нее самой. Интуитивно это правило проще понять, представив частицу конечного размера, которая находится сразу в нескольких ячейках (как на рис. 3.3). Частица вносит вклад в токи и плотности ячеек пропорционально попавшим в эти ячейки долям объема частицы и подвергается воздействию электромагнитных полей в этих ячейках, также пропорционально долям объема. Поскольку макрочастица конечного размера ведет себя как абсолютно твердое невращающееся тело, результирующая сила будет суперпозицией всех сил.

Также для подавления шумов используют фильтрацию токов и плотностей. Например, часто используется трехточечный фильтр:

jif

j

i−1

+ j

i+1

 

(5.52)

= αji + (1 − α)

2

.

При α = 0, 5 этот фильтр называется биномиальным. Часто используют несколько прогонок фильтра для достижения более гладкого решения. К недостаткам этого метода можно отнести тот факт, что применение токовых фильтров нарушает равенство интерполирующих функций для токов и для сил, а значит возникают и силы, действующие на частицу со стороны нее самой. Кажется, что проблему можно решить, проведя также фильтрацию электромагнитных полей. Однако это нарушит выполнение закона сохранения энергии и нулевой дивергенции магнитного поля. Поэтому биноминальная фильтрация полей не производится.

85

5.15. Нормировка PIC-кодов

Прежде чем решать уравнения Максвелла, перейдем к нормированным единицам. Каждый лишний коэффициент в системе уравнений добавляет количество арифметических операций за шаг. Следовательно, нормировка должна минимизировать число коэффициентов. Кроме того, нормировка физических величин на характерные значения позволяет работать с числами порядка единиц или десятков, что может быть удобнее для восприятия. Нормировка позволяет использовать подобие и применять результаты одной и той же численной модели для различных объектов, масштабируя единицы измерения. Для однозначного определения системы единиц достаточно выбрать три независимых размерности, например, время, расстояние и массу. Тогда остальные размерности выразятся через них. Однако при этом останется еще свобода выбора безразмерного коэффициента.

Для примера покажем вывод нормировки, используемой в PIC-коде TRISTAN-MP [9]. В качестве базовых размерностей выбираются время, расстояние и масса. Время нормируется на шаг по времени k, координата – на шаг сетки h, масса – на массу электрона me. Недостатком такой нормировки является невозможность работы с адаптивной сеткой или адаптивным шагом по времени: все ячейки имеют одинаковый размер по всем осям, а шаг по времени жестко фиксируется перед началом счета. Однако этот метод позволяет избавиться от большей части коэффициентов в уравнениях.

Обозначив нормировочные коэффициенты x0, v0, m0 и т. д., а отнормированные величины r,˜ v˜p, m˜ p и т. д., найдем оптимальную нормировку. Дискретная система уравнений PIC-кода включает в себя два векторных уравнения движения частиц, два векторных и два скалярных уравнения Максвелла:

trp

 

= vp;

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

tvp

 

 

 

 

q

 

 

 

vp

 

 

 

 

 

 

 

 

 

 

=

 

p

E +

× B ;

 

k

mp

c

 

yBz

 

zBy

 

 

1 ∆tEx

 

 

 

 

 

=

 

 

 

jx +

 

 

 

 

 

 

;

h

 

h

 

c

 

c

 

k

zBx

 

 

xBz

 

 

 

1 ∆tEy

 

 

 

 

 

 

=

 

 

jy +

 

 

 

;

h

 

 

h

 

 

c

c

k

(5.53)

(5.54)

(5.55)

(5.56)

86

xBy

yBx

1 ∆tEz

 

 

 

 

=

 

 

 

 

 

jz +

 

 

 

 

 

;

h

h

c

c

k

yEz

 

zEy

 

1 ∆tBx

 

 

 

 

 

 

 

 

 

= −

 

 

 

 

 

 

 

;

 

h

h

c

k

 

zEx

 

xEz

 

 

1 ∆tBy

 

 

 

 

 

 

 

 

 

= −

 

 

 

 

 

 

;

 

h

h

 

c

k

 

 

xEy

 

yEx

 

 

 

1 ∆tBz

 

 

 

 

 

 

 

 

 

= −

 

 

 

 

;

 

h

h

c

k

 

 

XiBi = 0; h

i=x,y,z

XiEi = 4πρ, h

i=x,y,z

(5.57)

(5.58)

(5.59)

(5.60)

(5.61)

(5.62)

где ∆i обозначает приращение по i-му направлению, а индекс p – номер частицы.

˜

 

Подставив в (5.53)–(5.62) значения rp = h˜rp, t = kt, а также вводя

нормировку скорости vp = (h/k)v˜, преобразуем (5.53) к виду

 

t˜rp = v˜p.

(5.63)

Таким образом, благодаря нормировке из уравнения движения исчезла операция деления, выполняющаяся гораздо медленнее сложения и вычита-

ния.

Нормировку электрического заряда можно вывести из базовых норми-

ровочных коэффициентов с точностью до множителя α1:

 

q0 = p

 

 

.

(5.64)

α1h3me/k2

Нормировку электромагнитного поля также определим с точностью

до множителя:

 

 

 

 

 

 

 

B0 = E0 = α2q0/h2.

(5.65)

Подставив (5.64) и (5.65) в (5.54) и перенеся все коэффициенты в правую

часть, получим

 

 

 

 

 

 

 

 

p

˜

p

 

˜

 

tp =

p

(E +

C˜

× B)α2α1,

 

˜

 

 

 

 

= 1/α1, чтобы в этом уравнении

где C = c/v0 = ck/h. Разумно выбрать α2

не возникал дополнительный множитель.

87

Окончательно оно запишется в виде

 

 

p

˜

 

 

 

p

 

˜

 

 

(5.66)

tp =

p

 

E +

 

C˜

 

 

 

× B .

 

 

Нормируя закон Ампера (5.55)–(5.57), учитываем, что j0 = q0v0/x03 =

q0/(h2k). Тогда получим уравнения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

˜

 

 

˜

 

4πα1 ˜

 

 

 

 

˜

 

 

 

 

 

 

 

∆tEx

 

 

 

yBz

− ∆zBy

=

 

 

 

 

 

 

 

 

jx +

 

 

 

 

 

;

 

 

 

C˜

 

 

 

 

 

 

 

C˜

 

 

˜

 

 

˜

 

4πα1 ˜

 

 

 

 

˜

 

 

 

 

 

 

 

 

∆tEy

 

 

 

zBx

− ∆xBz

=

 

 

 

 

 

 

 

 

jy +

 

 

 

 

;

 

 

 

C˜

 

 

 

 

 

 

 

 

C˜

 

˜

 

 

˜

 

 

4πα1 ˜

 

 

 

 

˜

 

 

 

 

 

 

 

 

 

 

tEz

 

 

 

xBy

− ∆yBx =

 

 

 

 

 

 

 

 

 

jz +

 

 

 

 

 

.

 

 

 

C˜

 

 

 

 

 

 

 

 

 

C˜

 

 

Отсюда следует, что лучше выбрать α1 = 1/(4π).

 

Нормированные уравнения Максвелла будут иметь вид:

 

˜

 

 

 

˜

 

 

 

1

 

 

 

 

 

 

 

˜

 

 

 

 

˜

 

˜

 

 

 

˜

 

 

1

 

 

 

 

 

 

˜

 

 

 

 

˜

(5.67)

yBz − ∆zBy =

 

C˜

 

 

 

 

 

 

jx + ∆tEx ;

zBx − ∆xBz =

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(5.68)

 

C˜

 

 

 

 

 

 

jy + ∆tEy ;

xB˜y − ∆yB˜x =

 

 

 

 

 

1˜jz + ∆tE˜z ;

(5.69)

 

C˜

 

 

 

˜

 

 

 

˜

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

˜

 

 

(5.70)

yEz − ∆zEy =

C˜

tBx;

 

 

˜

 

 

 

˜

 

 

 

 

 

1

 

 

 

 

˜

 

 

(5.71)

zEx − ∆xEz =

C˜

 

tBy;

 

 

˜

 

 

 

˜

 

 

 

 

 

1

 

 

 

 

˜

 

 

(5.72)

xEy − ∆yEx =

C˜

 

tBz;

 

 

i=X

 

˜

= 0;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(5.73)

 

iBi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x,y,z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=X

 

˜

=

˜

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(5.74)

 

iEi

ρ.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x,y,z

Предложенная нормировка – не единственная возможная. Например, в коде Smilei [11] в качестве базовых единиц выбираются скорость света c, заряд и массу электрона e и me, а также любая частота на выбор пользователя ωr. Кажется, что базовых величин слишком много, и нормировка не согласованна. Однако такой подход допустим, так как в уравнения движения входит только отношение qp/mp. Единственные формулы, в которых заряд

88

возникает отдельно, – это формулы вычисления плотности и тока (5.50)– (5.51). При этом в них содержится безразмерный коэффициент ws, который может быть сделан размерным для согласования нормировки.

Ранее мы считали, что ws = nsh3/ppc. В этом случае из формулы (5.50) получалось условие ρ0 = q0/x30. Пусть теперь единицы измерения ws умножили на некоторый коэффициент αw (соответственно, значение веса в новых единицах уменьшилось во столько же раз). Тогда нормировка плотности заряда также увеличится: ρ0 = αwq0/x30. Из уравнения Пуассона (5.62) имеем выражение ρ0 = E0/(4πx0), а из уравнения движения (5.54) – выражение

E0 = v0m0/(t0q0). Объединяя эти три равенства, получаем

q02 =

x02v0m0

.

(5.75)

 

 

4πt0αw

 

Если мы выбрали в качестве базовой размерности времени t0 обрат-

ную плазменную частоту электронов ωpe, то q02 = e2 = ω2peme/(4πne) = = m0/(4πnet20). Тогда можно из (5.75) найти коэффициент αw = nex30. В но-

вых единицах вес макрочастицы будет вычисляться по формуле

ns

 

h

 

3 1

 

(5.76)

s = wsw =

 

 

 

 

,

ne

x0

ppc

т. е. для электронов он будет равен нормированному объему ячейки, деленному на количество макрочастиц в ячейке. Также удобно в формулах (5.50)–(5.51) объединить коэффициент 1/h3 и αw. Тогда вес макрочастицы будет равен w˜s = (ns/ne))1/(x30ppc), т. е. станет размерной величиной.

5.16. Выбор шагов по времени и координате. Критерий Куранта

В процессе нормировки мы не фиксировали определенные h и k. Поскольку PIC-коды работают на электронных длинах и временах, выберем

в качестве таких масштабов электронную плазменную частоту (5.3) и инер-

˜ −1

ционную длину электрона (5.10). Тогда обозначим h = ale, k = aCωpe , что

˜

соответствует принятому ранее обозначению C = ck/h.

Для того чтобы PIC-код с явной схемой работал корректно, необходимо, чтобы размер ячейки не превышал дебаевский радиус (5.8). Есть PIC-коды

89

с неявной схемой, которые могут обойти это условие [15], но их мы не будем рассматривать в данном пособии. Таким образом, мы получим ограничение a < λD/le ≈ vth,e/c. Нарушение этого условия ведет к сильному искусственному нагреву плазмы, поскольку мелкомасштабные неустойчивости быстро диссипируют из-за грубой сетки. Это ограничение делает очень ресурсоемкими нерелятивистские расчеты и нередко заставляет исследователей искусственно завышать скорости и температуры в моделируемой плазме.

Как было указано ранее, в разд. 5.13, подход Лагранжа подразумевает, что частицы являются характеристиками уравнения Власова. Следовательно, критерий Куранта для частиц записывается в виде: |vmaxk/h < 1|. Закон Ампера (5.55)–(5.57) и закон Фарадея (5.58)–(5.60) имеют форму неодно-

˜ ˜

родного уравнения переноса, где E и B попеременно представляют собой

величину и ее поток. Скорость распространения волн равна c, и мы полу-

˜

чим критерий Куранта ck/h C < 1. Этот критерий ограничивает шаг

по времени, при этом является более сильным критерием, чем критерий Ку-

˜

ранта для частиц. Таким образом, постоянная C в выбранной нормировке имеет смысл не только нормированной скорости света, но и числа Куранта для системы уравнений Максвелла.

5.17. Решение уравнений Максвелла

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

Заметим, что в уравнениях (5.55)–(5.57) в роли потока выступает магнитное поле, а в уравнениях (5.58)–(5.60) – электрическое, т. е. границы и центры ячеек меняются ролями. Это проще реализовать в одномерном случае, когда центры ячеек и их границы представляют собой просто точки на прямой, следовательно, различия между ними минимальны. Тогда разностная схема для уравнений Максвелла может выглядеть так:

 

 

k

n+1

 

n+1

 

 

n+1

 

Ey,in+1 = Ey,in

 

 

Bz,i+2

21

− Bz,i−2

21

 

− kjy,i 2

;

h

90

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