Моделирование электростатики в дискретных временных шагах

Я пытаюсь смоделировать движение нескольких заряженных частиц, которые могут свободно перемещаться, но имеют силы отталкивания друг от друга. Это могут быть 10 движущихся электронов, вызывающих мгновенную ньютоновскую силу на все другие частицы (без учета релятивистских эффектов).

Я хочу запускать симуляцию с дискретными временными шагами (т.е. каждые 10 мс). Есть ли способ найти положение и скорость каждой частицы после каждого временного шага?

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

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

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

Если вы не нашли ответ здесь, вы можете попробовать спросить по адресу: scicomp.stackexchange.com

Ответы (1)

Это звучит правильно.

В численном интегрировании по времени всегда есть ошибки. То, что вы описываете, является явной схемой интеграции времени, где количества вычисляются в текущем временном шаге из величин предыдущего временного шага. В зависимости от используемой вами схемы интегрирования по времени погрешность может быть уменьшена. Например, Рунге Кутта 4-го порядка имеет ошибку четвертого порядка, что означает, что решение является точным до четвертой степени разложения Тейлора дифференциального уравнения. Как вы сказали, часть ошибок возникает из-за использования предыдущего временного шага для вычисления текущего.

Существуют неявные методы, использующие «текущий» временной шаг, такие как обратный Эйлер, однако они часто менее точны, чем явные методы, и их сложнее реализовать, поэтому, если ваше решение кажется стабильным, я рекомендую не использовать неявные схемы.