Я предполагаю, что первое выражение должно быть потенциальным. Тогда отрицательным градиентом (производным по r) является сила. Этот градиент - это вектор, всегда указывающий в сторону или от центра. Это выглядит правильно для второго выражения.
r_vec, согласно сказанному вами, вектор, указывающий от начала координат до точки на некотором расстоянии от нее. (r_vec/r) - это единичный вектор для указания направления. Это работает в каждой точке, кроме самого начала, где ее можно объявить неопределенной или объявить равной нулю. Ноль - среднее значение (r_vec/r) по всем «близлежащим» точкам. Это означает нулевую силу.
Обычно в моделировании частиц с помощью парных сил мы игнорируем силы частицы на себе и двух частиц в одном и том же точном положении. Что относительно двух частиц очень близко, и у вас есть закон силы, который идет как 1/r, 1/(r^2) или аналогичный? Никто не хочет разрыва по нулевой ошибке. Обычно имеется небольшой радиус, ниже которого потенциал постоянным согласуется с данной потенциальной формулой на границе этого радиуса. Частицы слишком близко друг к другу имеют нулевую силу, просто так, что симуляция не потерпит крах. Может показаться нефизическим, что сила внезапно прекратится прямо внутри этой границы, когда она будет сильной силой вне ее. Но мы стараемся избегать таких ситуаций. Держите подсчет таких случаев, и если их слишком много, симуляция ухудшилась. Возможно, потребуется небольшой шаг времени.
К счастью, у вас нет силы 1/r, но все же у вас есть этот неприятный r_vec/r, направление которого может качаться дико. Та же самая техника приведения силы в нуль ниже некоторого небольшого радиуса поможет.
Но это третье выражение меня беспокоит. Если это сила при r = 0, то, начиная с закона силы во втором выражении, я не уверен, как возникает третье выражение. Проблема того, что он выглядит скалярным, а если он предполагается силой, ожидающий вектор можно решить, понимая, что он должен быть радиальной составляющей вектора силы. Просто умножьте выражение на (r_vec/r), знакомый единичный вектор. OTOH, у него нет определенного направления, так что это вздор.
Лучшее общее решение: начните с новой потенциальной функции, которая плавно выравнивается и плоская справа при r = 0, например, exp (-r^2) или 1/(1 + r^2). Данные потенциальные пики резко.Вы хотите что-то более похожее Вместо того, чтобы объявить силу нулевой в какой-либо небольшой зоне, сила просто естественно равна нулю при r = 0. Найдите потенциал плоского происхождения, который аппроксимирует данную ячейку за пределами небольшого радиуса.
Отличный ответ, очень тщательный. Спасибо за вашу помощь. –