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

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

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

3. МОДЕЛИРОВАНИЕ ГРАВИТИРУЮЩИХ СИСТЕМ

3.1. Джинсовская неустойчивость. Крупномасштабная структура Вселенной

Одно из четырех фундаментальных взаимодействий – гравитация –

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

Без учета общей теории относительности (ОТО) гравитирующую систему можно представить как множество попарно взаимодействующих точечных масс (N-body problem):

 

 

F12 = −G

m1m2

· r12.

(3.1)

 

 

r123

Однако часто бывает удобно перейти к гидродинамическому описанию:

2φ = 4πGρ;

 

 

 

 

(3.2)

∂v

1

 

 

(3.3)

 

 

+ (v · )v +

 

p + φ = 0,

 

∂t

ρ

где φ – гравитационный потенциал; v – скорость потока вещества; ρ – его плотность; p – давление; G – гравитационная постоянная.

Важная особенность уравнений (3.2)–(3.3) заключается в том, что они не допускают однородного стационарного решения c ненулевой средней плотностью. Действительно, приравнивая к нулю значения скорости и производных по времени и координатам, мы получим из (3.3) φ = 0. Подставляя в (3.2), делаем вывод, что плотность равна нулю.

21

Таким образом, стационарного решения с ненулевой плотностью не существует: малейшая неоднородность плотности может привести к Джинсовской неустойчивости. Выведем для нее дисперсионное соотношение из системы уравнений гидродинамики, добавив к уравнениям (3.2) и (3.3) уравнение

неразрывности, а также предположив постоянство энтропии S:

 

 

∂ρ

+ (ρ · v) = 0;

(3.4)

 

 

 

 

∂t

 

∂S

+ (v · )S = 0.

(3.5)

 

 

 

∂t

Далее будем искать решение в виде плоских волн:

ρ = ρ0 + δei(kr−ωt); v = wei(kr−ωt);

φ = φ0 + fei(kr−ωt);

S = S0 + σei(kr−ωt).

(3.6)

(3.7)

(3.8)

(3.9)

Возмущение давления можно выразить через возмущения плотности

и энтропии:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p = p

 

+

 

∂p

ρ

) +

∂p

(S

S

)

p

 

+ c2

δei(kr−ωt) + h2σei(kr−ωt),

(3.10)

 

∂ρ

∂S

 

 

0

 

 

0

 

 

0

 

 

0

s

 

где cs – скорость звука.

Линеаризуем уравнения (3.2)–(3.5), подставляя (3.6)–(3.10) и выбрасывая члены, квадратичные по амплитудам волн:

k2f = −4πGδ;

 

 

 

−iωw + ikcs2

δ

+ ikh2

σ

+ ikf = 0;

ρ0

ρ0

−iωδ + iρ0k · w = 0;

ωσ = 0.

(3.11)

(3.12)

(3.13)

(3.14)

Согласно (3.11)–(3.14), возмущения энтропии отсутствуют, а w k. Остальные уравнения сводятся к дисперсионному соотношению

ω2 = c2sk2 − 4πGρ0.

22

При k < kJ 1 4πGρ0 частота мнимая, а значит, присутствует экспо-

cs

ненциально растущее решение. Таким образом, джинсовская неустойчивость развивается только для достаточно длинноволновых возмущений.

Формирование крупномасштабной структуры Вселенной – филаментов и войдов – произошло именно вследствие гравитационной неустойчивости однородного вещества. Аккреция вещества на первичные неоднородности плотности привела к их дальнейшему уплотнению и появлению областей звездообразования. О первичных неоднородностях плотности ясно свидетельствует неоднородность карты температуры реликтового излучения, построенной при помощи спутника Planck. Эти данные относятся к эпохе первичной рекомбинации водорода (примерно 380 000 лет с момента возникновения Вселенной), когда реликтовое излучение перестало взаимодействовать с веществом. Формирование крупномасштабной структуры Вселенной из первичных неоднородностей плотности – одна из важных задач, решаемых при помощи компьютерного моделирования.

Следует отметить, что в бесконечной квазиоднородной Вселенной с ненулевой средней плотностью уравнение Пуассона (3.2) применять некорректно: прямое интегрирование приводит к появлению потенциала, квадратично растущего с расстоянием. Однако в одномерной Вселенной гравитационный потенциал должен быть в среднем постоянным, иначе существовала бы выделенная точка, где он минимален. Поэтому при моделировании бесконечной Вселенной в уравнение (3.2) подставляется не плотность, а ее отклонение от среднего значения (overdensity).

3.2. Моделирование гравитирующих систем: метод прямой суммы, метод деревьев, метод частиц в ячейках

Прежде чем перейти к методам моделирования гравитирующих систем, целесообразно ввести термин «макрочастица» – объект, который в программе рассматривается как точечный, при этом может включать в себя большое количество элементарных частиц, движущихся как целое. Например, в глобальной модели Вселенной макрочастица может соответствовать скоплению галактик. Далее будем иногда опускать приставку макро-.

23

Самым очевидным методом моделирования системы из N гравитирующих частиц является метод прямой суммы, в котором в каждый момент времени находится сила взаимного притяжения каждой пары частиц по формуле (3.1). Для каждой частицы находится суперпозиция всех сил, вычисляется ускорение и происходит перемещение частиц. Поскольку магнитное поле в рассмотрение не включается, перемещение можно осуществлять методом перешагивания или методом Рунге–Кутты. Нетрудно понять, что трудоемкость метода пропорциональна O(N2), поскольку на каждом шаге требуется вычислить N(N − 1)/2 пар сил. Этот метод практически не применяется из-за колоссальной ресурсоемкости.

Усовершенствованием метода прямой суммы является метод деревьев, предложенный в статье [6]. Он заключается в сортировке частиц по их положению в пространстве и объединению сил от близко расположенных частиц. При этом формируется дерево частиц, состоящее из ячеек, каждая из которых содержит одну частицу и ссылки на дочерние ячейки.

Количество дочерних ячеек зависит от размерности задачи: в одномерном случае их две (левая и правая половина отрезка, в который вырождается ячейка). В трехмерном пространстве дочерних ячеек восемь. Рассмотрим алгоритм построения и обхода дерева на одномерном примере, который легко можно обобщить на двумерный или трехмерный случай.

Для построения дерева удобно создать специальный объект «ячейка», содержащий следующие данные: координату геометрического центра xc, координату центра масс xm, размер и массу ячейки lc и M, ссылки на дочерние ячейки (если дочерние ячейки еще не созданы, ссылка возвращает

NULL), а также информацию о содержащейся в ячейке частице (если масса всех частиц одинакова, то достаточно хранить информацию о положении частицы xp).

Схема формирования дерева частиц в одномерном случае показана на рис. 3.1. Пусть координаты всех частиц хранятся в массиве, и имеется основная ячейка дерева, занимающая все пространство. Масса ячейки равна нулю, поэтому первая частица из массива автоматически попадает в основную ячейку, масса и координата центра масс которой приравниваются к массе и координате частицы. Вторая частица в массиве не может быть

24

 

Начало

 

 

Да

cell->M == 0?

Нет

 

 

 

 

Помещаем частицу в ячейку

cell->M += particle->M;

 

cell->M = particle->M;

cell->xm = ...

 

cell->xm = particle->x;

 

 

 

Конец

Да

Созданы ли

Нет

 

дочерние ячейки?

 

 

 

 

 

 

Создаем дочерние ячейки

 

 

Да

particle->x < cell->xc?

Нет

 

 

 

 

Повторяем алгоритм

Повторяем алгоритм

 

 

для левой

для правой

 

 

дочерней ячейки

дочерней ячейки

Рис. 3.1. Схема формирования дерева частиц в одномерном случае

 

помещена непосредственно в основную ячейку, поскольку та занята (масса ячейки ненулевая). Тем не менее, в какую бы дочернюю ячейку она ни попала, масса основной все равно удвоится, а координата центра масс будет соответствовать полусумме координат частиц. Поэтому можно изменить значения M и xm.

25

Далее программа производит проверку наличия дочерних ячеек. Если их нет, она создает две ячейки половинного размера с нулевой массой. Частица, в зависимости от своего положения относительно центра ячейки, попадет в левую или правую дочернюю ячейку. Затем рекурсивный алгоритм повторяется с выбранной ячейкой, начиная с проверки равенства нулю ее массы.

В итоге получаем дерево, в котором на одной ветви находятся близко расположенные частицы, при этом расстояние между ними не превышает размер содержащей их ячейки. Трудоемкость построения такого дерева пропорциональна O(N), так как каждая частица обрабатывается однократно. Такое же дерево может быть построено в двумерном и трехмерном случае (рис. 3.2).

Далее при вычислении силы, действующей на каждую частицу, можно рекурсивно обходить дерево, начиная с основной ячейки, и в каждой ячейке добавлять силу притяжения находящейся там частицы. Если обойти дерево полностью, то трудоемкость будет по-прежнему пропорциональна O(N2), просто сумма сил от всех частиц будет вычислена в другом порядке.

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

Рис. 3.2. Двумерное и трехмерное дерево (из статьи [6])

26

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

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

θ = lc/|rp − rc|, где и rp и rc – координаты частицы и ячейки соответственно. Если θ меньше или порядка единицы, то сила от ячейки считается как от точечного объекта, и обход данной ветви дерева на этом заканчивается. Если больше, то учитывается сила от находящейся в ячейке частицы, затем обходятся дочерние ячейки и для них также проверяется критерий. При достаточно равномерном расположении частиц в пространстве метод деревьев позволяет сократить трудоемкость до O(N · log(N)).

Метод частиц в ячейках, хотя и несколько менее точный, позволяет сократить трудоемкость до O(N). Этот класс методов применяется для целого ряда астрофизических задач. В главе 5 будет разобрано, как он применяется для астрофизической плазмы. Основной принцип метода – разбиение пространства на ячейки, внутри которых считаются постоянными макроскопические параметры (в данном случае – плотность и гравитационный потенциал). На получившейся сетке решается дискретное уравнение Пуассона, которое в одномерном случае выглядит следующим образом:

φj+1 j + φj−1

= 4πGρj,

(3.15)

h2

 

 

где j – номер ячейки; h – длина ячейки.

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

Метод частиц в ячейках для любой задачи включает в себя три шага.

1.Charge/mass deposit – вычисление массовой или зарядовой плотности

вячейках, исходя из положения частиц.

2.Field solver – нахождение потенциалов и/или полей в ячейках с учетом вычисленной ранее плотности.

27

3. Particle mover – ускорение и перемещение частиц с учетом найденных

ранее полей.

Эти три шага выполняются циклически в течение заданного времени,

ипри завершении каждого цикла текущее время увеличивается на k.

3.3.Интерполирующие функции

Метод частиц в ячейках является быстрым и эффективным, однако, вследствие того, что число частиц в ячейках ограничено доступной оперативной памятью, может быть подвержен численным шумам. Если плотность в ячейке вычисляется как сумма масс всех находящихся там частиц, деленная на объем, то при переходе частицы в соседнюю ячейку плотность меняется скачком. Такой метод вычисления плотности называется методом ближайшей точки (Nearest Grid Point, NGP).

Чаще всего для сглаживания численного шума при вычислении плотностей используют специальные интерполирующие функции (их можно также интерпретировать как частицы конечного размера). Первый порядок точности по координате достигается при помощи метода облака в ячейке (Cloud- In-Cell, CIC), когда частица по размеру совпадает с ячейкой, а ее плотность считается равномерно распределенной. Второй порядок точности по координате достигается при помощи метода треугольных облаков (Triangular Shaped Cloud, TSC), когда плотность частицы линейно спадает от центра к краям. В этом случае размер частицы вдвое больше размера ячейки и она вносит вклад в три соседние ячейки (в одномерном случае).

На рис. 3.3 схематично показано, в какие ячейки вносит вклад частица на двумерной сетке при применении различных методов интерполяции. В двумерном и трехмерном случае интерполяция осуществляется независимо по всем направлениям.

Приведем пример распределения плотности частицы по ячейкам в методе CIC: если по оси x 60 % частицы находится в ячейке i и 40 % частицы – в ячейке (i + 1), по оси y 70 % частицы – в ячейке j и 30 % частицы –

вячейке (j − 1).

1.Ячейка (i, j): (0, 6 · 0, 7) · 100 % = 42 %.

2.Ячейка (i + 1, j): (0, 4 · 0, 7) · 100 % = 28 %.

28

а)

б )

в)

Рис. 3.3. Схемы различных методов интерполяции частиц на сетку: a – NGP (Nearest Grid Point); б – CIC (Cloud-In-Cell); в – TSC (Triangular Shaped Cloud)

3.Ячейка (i, j + 1): (0, 6 · 0, 3) · 100 % = 18 %.

4.Ячейка (i + 1, j + 1): (0, 4 · 0, 3) · 100 % = 12 %.

Математически интерполяция плотности записывается следующим образом:

Xp

y S(x

xp)S(y

yp)S(z

zp)dx dy dz,

ρ(x, y, z) =

 

 

 

где xp, yp, zp – координаты частицы; S(x−xp) = (1/h)b (x−xp)/h – весовая функция. Суммирование производится по всем частицам.

Для метода NGP:

 

b(ξ) = δ(ξ).

 

Для CIC:

 

 

 

 

 

 

 

 

b(ξ) = 1,

|ξ| < 0, 5,

(3.16)

 

0,

 

ξ

 

 

0, 5.

 

Для TSC:

 

 

|

| ≥

 

 

b(ξ) =

1 − |ξ|, |ξ| < 1,

(3.17)

 

0,

 

ξ

| ≥

1.

 

 

 

|

 

 

 

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

29

первая и последняя ячейки считаются соседними, а частица, покидающая область через одну из границ, немедленно возвращается через противоположную. В этом случае при интерполяции крайние ячейки также считаются соседними, т. е. находящаяся на границе частица вносит вклад в первую и последнюю ячейку.

Также часто ставятся открытые или отражающие граничные условия. В первом случае частица, пересекающая открытую границу, исчезает. Также через открытую границу может осуществляться приток частиц. Вблизи открытой границы вводят дополнительные неактивные ячейки (ghost cells), которые считаются соседними с приграничными. Часто плотность в этих ячейках фиксируют, чтобы сгладить резкие градиенты на границе. Тогда приграничные частицы вносят вклад только в плотность активных ячеек, а их часть, находящаяся за открытой границей, игнорируется.

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

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

3.4. Методы решения уравнения Пуассона на сетке

После вычисления плотности во всех ячейках можно приступать к решению уравнения Пуассона. В одномерном случае проще всего воспользоваться методом прогонки. Выпишем в явном виде (3.15) в случае периодических граничных условий, считая для краткости шаг сетки h = 1:

φn−1 − 2φ0 + φ1 = 4πGρ0;

(3.18)

φ0 − 2φ1 + φ2

= 4πGρ1;

(3.19)

φ1 − 2φ2 + φ3

= 4πGρ2;

(3.20)

...

 

 

30

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