Создание модели возникновения Солнечной системы из межзвездного газа на базе численного моделирования с учетом гравитационного взаимодействия частиц

Курсовой проект - Авиация, Астрономия, Космонавтика

Другие курсовые по предмету Авиация, Астрономия, Космонавтика

?ижение которых ограничено отрезком прямой длиной L. Концы отрезка прямой играют роль стенок. Использование периодических краевых условий эквивалентно сворачиванию этого отрезка в кольцо (рис. 6.2). Заметим, что, поскольку расстоянию между частицами соответствует отрезок дуги, максимальное расстояние равно L/2.

В двумерном случае мы можем представить себе ящик, у которого противоположные ребра соединены так, что ящик превращается в поверхность тора (форма тороидальной камеры). Поэтому, если частица пересекает ребро ящика, она входит заново в противолежащее ребро. Заметим, что максимальное расстояние между частицами в х- и у-направлениях равно L/2, а не L.

 

Рис. 5.2

 

а - две частицы в точках х = О и х = З на отрезке длиной L = 4; расстояние между частицами равно З; б-отрезок преобразован в окружность; кратчайшее расстояние между обеими частицами на окружности равно 1.

То же самое можно представлять и по-другому, как проиллюстрировано на рис. 5.3. Предположим, что частицы 1 и 2 находятся в центральной клетке. Клетка окружена периодически повторяющимися собственными копиями.

 

Рис. 5.3 Пример периодических краевых условий в двумерном случае

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

Каждая копия клетки содержит обе частицы в тех же относительных положениях. Когда частица влетает в центральную клетку или вылетает из нее с одной стороны, это перемещение сопровождается одновременным вылетом или влетом копии этой частицы в соседнюю клетку с противоположной стороны. Вследствие использования периодических краевых условий частица 1 взаимодействует с частицей 2 в центральной клетке и со всеми периодическими копиями частицы 2. Однако для короткодействующих взаимодействий мы можем принять правило ближайшей частицы. Это правило означает, что частица 1 из центральной клетки взаимодействует только с ближайшим экземпляром частицы 2; взаимодействие полагается равным нулю, если расстояние до копии больше L/2 (см. рис. 5.3). Поскольку из данного правила следует, что мы можем визуально представлять себе центральную клетку в виде тора, это использование периодических краевых условий вместе с правилом ближайшей частицы было бы точнее назвать тороидальными краевыми условиями. Однако мы верны принятым традициям и называем эти условия периодическими краевыми условиями. Отметим, что использование периодических краевых условий означает, что все узлы ящика эквивалентны.

 

5.3 Программа молекулярной динамики

 

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

md(input,output);

Begin;(x,y,vx,vy,N,nave,nset,Lx,Ly,dt,dt2);

pe:=0.0;(x,y,ax,ay,N,Lx,Ly,pe);

time:=0.0;:=0.0;:=0.0;:=0.0;:=0.0;:=0.0;iset:=1 to nset doiave:=1 to nave do(x,y,vx,vy,ax,ay,N,Lx,Ly,dt,dt2,virial,xflux,yflux,pe,ke);(N,nave,Lx,Ly,dt,virial,ke,pe,xflux,yflux,time);;_conf(x,y,vx,vy,N,Lx,Ly);

End.

 

Заметим, что х- и у-компоненты координат, скоростей и ускорений представлены массивами. Lх и Lу равны горизонтальной и вертикальной длинам прямоугольного резервуара. В переменных kе и ре накапливаются суммы для кинетической и потенциальной энергии; величины хflux, уflux и viriаl понадобятся для вычисления давления. Характер этих величин будет рассмотрен позднее.

Поскольку наша система является детерминированной, характер движения определяется начальными условиями. Правильно выбрать начальные условия труднее, чем могло бы показаться на первый взгляд. Как, например, выбрать начальную конфигурацию (совокупность координат и скоростей), чтобы она отвечала жидкости с искомой температурой? Мы откладываем обсуждение таких вопросов до разд. 6.6 и рассмотрим сначала характер эволюции системы из произвольных начальных состояний.

Один из возможных вариантов начальных условий выглядит так: частицы помещают в узлах прямоугольной сетки и выбирают х- и у-компоненты скоростей случайным образом. В большинстве языков программирования имеется функция, которая генерирует последовательность случайных чисел на отрезке [0, 1]. Поскольку ЭВМ детерминирована, она не может вычислять последовательности действительно случайных чисел. Тем не менее компьютер может генерировать числа в совершенно неочевидном порядке, и, что касается нашей задачи, это различие не имеет значения. Разговор о последовательностях случайных чисел пойдет в гл. 11. В языке Тrue ВАSIС мы имеем возможность использовать функцию rnd, которая генерирует случайные числа в диапазоне 0? rnd<1. Случайные значения Vx на отрезке [-Vmax,-Vmin] формируются с помощью инструкции vx[i]:=random*vmax;

Количество частиц, линейные размеры системы и начальные координаты и скорости частиц задаются в подпрограмме initiаl. Заметим, что Lх и Lу измеряются в единицах ? - параметра потенциала Леннарда - Джонса. Поскольку скорости выбираются случайно, их следует подправить, имея в виду, что начальный полный импульс в х- и у-направлении может просто не получиться равным нулю. Сетка в подпрограмме initiаl выбирается так, чтобы в начальный момент N = 12 частиц находились в левой половине ящика.

 

procedure initial(var x,y,vx,vy:component;N,nave,nset:integer;Lx,Ly,dt,dt2:real);

irow,icol,nrow,ncol,i:integer;,ay,xscale,yscale,Mx,My,vscale,vmax,