20011223 Алгоритм работы программы моделирования физического взаимодействия элементарных частиц (научн).
 
Аннотация.
           Программа Phis_modl предназначена для моделирования физического взаимодействия частиц. В данной статье рассмотрен математический аппарат, использующийся для расчетов, для понимания физических основ процесса смотри статью  20010905 Программа моделирования полиформных электронов(научн.) .
             Входными параметрами являются: число частиц, их массы и заряды, начальные положения и скорости. Также программа предлагает ввести время моделирования, измеряемое количеством кадров (от 100 до 1000), относительную скорость анимации (от 10 до 100) и степень точности (от 1 до 10). С увеличением каждого из этих параметров возрастает машинное время, необходимое для моделирования.
           В результате расчета генерируется файл скрипта для 3D-Studio "Script.ms". Запустив его можно увидеть в реальном времени весь процесс сборки атомов и молекул из описанных частиц, посмотреть образуется устойчивая система или нет и т.д.
Основные расчетные формулы.
          В соответствии с введенной точностью каждый кадр разбивается на несколько периодов дискретизации (от 1до 15). По окончанию каждого периода проводятся следующие вычисления:
          Берем для расчета i-ую частицу и последовательно перебираем все оставшиеся частицы (j-ые).
           Находим расстояние (r) между i-ой и j-ой частицами по формуле:

        r:=sqrt(sqr(Data[i].x-Data[j].x)+sqr(Data[i].y-Data[j].y)+sqr(Data[i].z-Data[j].z));
 
           На данный момент физическая модель существенно упрощена. Если i-ая частица электрон, а j-ая  протон или наоборот, то вводится поправка r:=r/sin(arctan(r/90)), которая приближенно учитывает то, что в электроне заряд распределен по тору, а не сосредоточен в центре ("90" -диаметр электрона). То есть, если расстояние между протоном и электроном существенно больше размеров самого электрона, то sin(arctan(r/90)) приближенно равняется 1, но по мере сближения частиц этот множитель уменьшается, что приводит к мнимому возрастанию расстояния и как следствие, сила взаимодействия уменьшается, достигая нуля, когда протон находится в центре кольца электрона.
         Теперь находим кулоновскую силу F, действующую на i-ую частицу со стороны j-ой:

F:=Data[i].zariad*Data[j].zariad/(sqr(r)*4*3.14*8.85*exp(-12*ln(10)));

         Если i-ая и j-ая  частицы одинаковые, то добавляется силы упругого взаимодействия:

F:=F+exp(-26*ln(10))/(r*r*r);

        Они  пропорциональны расстоянию в степени -3, поэтому оказывают заметное влияние только на очень близких  дистанциях между частицами и становятся пренебрежительно малыми на расстояниях больше электронного радиуса.
         Затем вычисляем проекции силы на координатные оси  и прибавляем к проекциям суммарной силы (F_x,F_yF,_z), действующей на i-ую частицу со стороны частиц от 1-ой до (j-1)-ой:
 
         F_x:=F_x+F*(Data[i].x-Data[j].x)/r;
         F_y:=F_y+F*(Data[i].y-Data[j].y)/r;
         F_z:=F_z+F*(Data[i].z-Data[j].z)/r;

После перебора всех j-ых частиц вычисляем проекции ускорения i-ой частицы:
 
        a_x:=F_x/Data[i].m;
        a_y:=F_y/Data[i].m;
        a_z:=F_z/Data[i].m;

        Находим прирост скорости  i-ой частицы за период дискретизации и прибавляем его к скорости i-ой частицы, полученной за прошедшее время. Т.к. физическая модель пока упрощена, потеря кинетической энергии (скорости) за счет излучения при движении с ускорением учитывается  множителем exp((-1)*k*abs(a_x)):
       
        Data1[i].V_x:=exp((-1)*k*abs(a_x))*(Data1[i].V_x+a_x*period);
        Data1[i].V_y:=exp((-1)*k*abs(a_y))*(Data1[i].V_y+a_y*period);
        Data1[i].V_z:=exp((-1)*k*abs(a_z))*(Data1[i].V_z+a_z*period);

        Вычисляем изменение координат i-ой частицы за период дискретизации и находим ее новое местоположение в пространстве:
 
        Data1[i].x:=(Data1[i].x+Data1[i].V_x*period);
        Data1[i].y:=(Data1[i].y+Data1[i].V_y*period);
        Data1[i].z:=(Data1[i].z+Data1[i].V_z*period);

Берем для расчета (i+1)-ую частицу и проводим аналогичные вычисления.

Комментарии:

с=exp(a*ln(b)) -равносильно с=b^a;

k -коэффициент потери энергии на излучение;

Data[i].zariad -заряд i-ой частицы в Кл;

Data1[i].x -текущая координата i-ой частицы по оси х;
Data1[i].y -текущая координата i-ой частицы по оси y;
Data1[i].z -текущая координата i-ой частицы по оси z;

Data1[i].V_x -текущая  скорость i-ой частицы вдоль оси х;
Data1[i].V_y -текущая  скорость i-ой частицы вдоль оси y;
Data1[i].V_z -текущая  скорость i-ой частицы вдоль оси z;

Особо дотошные читатели могут просмотреть полный исходник процедуры моделирования (Delphi 4.0)!
 

 Описание формата исходного файла.
       Этот файл должен быть текстового формата, с расширением "mod".
       Первая строка содержит единственную цифру, которая отображает количество частиц (максимум тысяча), которые будет далее описаны (если указать меньше, чем описано, то программа возьмет для расчета число частиц равное указанному значению; если это число больше количества реально описанных частиц, то программа корректно работать не будет!).
       Далее следуют строки с описанием частиц: одна строка - одна частица. Вот пример описания электрона:
 -4 -10 15 -1 9.10E-31 1 2 3
"  -4" -начальная координата по оси x (в пикометрах)
"-10" -начальная координата по оси y (в пикометрах)
" 15" -начальная координата по оси z (в пикометрах)
" -1" -заряд частицы (в абсолютных зарядах электрона)
"9.10E-31"-масса частицы (в кг)
"1" -начальная скорость по оси x
"2" -начальная скорость по оси y
"3" -начальная скорость по оси z
        Пример файла, описывающего покоящиеся в начальный момент времени протон и  электрон:
2
1 -2  0 -1 9.10E-31 0 0 0
2 -4 -9  1 1.67E-27 0 0 0
Заключение.
        Программа Phis_Modl в данный момент находиться на стадии разработки. В качестве промежуточных результатов можно привести анимацию сборки атома гелия:
 Анимировать(Mpeg4, 130 Kb)
Исходный файл имел следующий вид (ядро представлено одной частицей):
3
30 -30  390 -1 9.10E-31 0 0 0
30 -30  000  2 6.68E-27 0 0 0
30 -30  -70 -1 9.10E-31 0 0 0
        Этот пример по сути одномерный, т.к. пока не учитывается направление действия сил (т.е. в математической модели частицы представлены как материальные точки и возможность поворота не предусмотрена). В дальнейшем планируется устранить этот недостаток, а также существенно уточнить физические законы взаимодействия, что в целом позволит повысить точность моделирования на несколько порядков, до уровня, пригодного для решения практических задач.
Захаров Сергей, 2002 год.