2013-04-23 1 views
1

При выполнении SPH в статье Келагара рекомендуется использовать определенное ядро ​​для сил, создающих давление между частицами. Ядро рекомендует состоит в следующем, когда радиус находится в пределах радиуса ядра:Какое направление отталкивания мы используем для гидродинамики сглаженных частиц при радиусе 0?

(15/(pi*h^9)) * (h - r)^3 

где Н радиус ядра, и г-радиус мы заинтересованы в вычислении значения функции в.

Далее в документе говорится, что градиент этой функции

(-45/(pi*h^9))*((r_vec)/r)*(h-r)^2 

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

(-45/(pi*h^6)) 

Но это скаляр, а не вектор. Для того, чтобы быть отталкиванием между двумя пунктами, которые нас интересуют, должно быть направление для отражения.

В каком направлении мы должны использовать, когда две частицы находятся рядом друг с другом?

ответ

0

Я предполагаю, что первое выражение должно быть потенциальным. Тогда отрицательным градиентом (производным по 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. Найдите потенциал плоского происхождения, который аппроксимирует данную ячейку за пределами небольшого радиуса.

+0

Отличный ответ, очень тщательный. Спасибо за вашу помощь. –

 Смежные вопросы

  • Нет связанных вопросов^_^