Дополнительный рекомендованный курс по выбору "Численные методы в физике космической плазмы" от Факультета космических исследований МГУ (весенний семестр 2023).
Закон Кулона описывает взаимодействие между двумя неподвижными точечными зарядами в вакууме и записывается в виде:
где
В системе СИ величина ампера определена таким образом, что коэффициент
где
Скорость света в вакууме по СИ определяется как константа и равна
В векторном виде сила, с которой заряд
где
Масса частицы не учитывается в законе Кулона, так как он описывает только электрические свойства зарядов. Ускорение частицы можно вычислить с помощью второго закона Ньютона:
где
Таким образом, ускорение частицы зависит от величины и знака взаимодействующих зарядов, расстояния между ними (по закону Кулона) и от массы частицы (по второму закону Ньютона). Отсюда, динамика двух заряженных частиц в вакууме определяется системой уравнений движения для каждой из частиц:
где
model.py – модель кулоновского взаимодействия двух заряженных частиц (электронов) в вакууме. Переменные и константы заданы стандартными типами данных Python и массивами NumPy array. Для решения системы уравнений движения определена функция CoulombsEquations
. Численное интегрирование осуществляется с помощью integrate.odeint
из библиотеки SciPy, которая в свою очередь использует lsoda из FORTRAN library odepack. По документации это метод Адамса. График с траекториями частиц выводится с помощью pyplot
из библиотеки Matplotlib:
Модель позволяет определить траектории пролёта двух заряженных частиц в вакууме в соответсвии с действием закона Кулона. По умолчанию в качестве частиц используются два электрона. Все единицы измерения и константы соотвутсвуют СИ.
model_box.py – модель кулоновского взаимодействия двух заряженных частиц в контейнере с заряженными стенками. Добавлено интегрирование взаимодействия частиц с заряженными стенками, величина заряда которых равна заряду частиц.
model_box_gui – модель кулоновского взаимодействия двух заряженных частиц в контейнере с заряженными стенками. Добавлен графический пользовательский интерфейс из стандартного пакета Tkinter. Через поля ввода можно менять координаты, скорости, заряды и массы частиц, а также параметры контейнера и время интегрирования траекторий.