Обсуждение:Соколов Алексей. "Динамика несферических частиц"

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск

Я бы немного изменил обозначения.

Пусть [math] {\bf r}_i, {\bf r}_j[/math] - радиус-векторы частиц в неподвижной системе отсчета. Пусть с каждой частицей связано по два ортогональных вектора [math] {\bf m}_i, {\bf n}_i, {\bf m}_j, {\bf n}_j[/math] (извини, е мне не очень нравится, хотя это дело вкуса :)). Будем считать, что частицы могут контактировать только углами, т.е. в случае если угол одной частицы находится внутри другой. Для детектирования контактов будем использовать следующий алгоритм. Запишем координаты углов частицы [math] j [/math] в системе координат (x,y), связанной с частицей i. При этом оси x и y направим таким образом, чтобы векторы [math] {\bf n}_i, {\bf m}_i[/math] совпадали с ортами данных осей. Тогда координаты углов частицы [math] j [/math] определяются соотношениями:

[math]\left\{ \begin{array}{rcl} x = ({\bf r}_{ij} \pm {\bf n}_j \pm {\bf m}_j) \cdot {\bf n}_i \\ &\\ y = ({\bf r}_{ij} \pm {\bf n}_j \pm {\bf m}_j) \cdot {\bf m}_i \\ \end{array} \right. [/math]

где [math] {\bf r}_{ij} = {\bf r}_j - {\bf r}_i. [/math] Тогда частицы находятся в контакте, если для одного из углов частицы j выполняется условие

[math] \begin{array}{l} (y\gt |x|~{\rm OR}~y \lt -|x|) \quad {\rm AND} \quad |y| \lt a/2 \\ {\rm OR} \\ (x\gt |y|~{\rm OR}~x \lt -|y|) \quad {\rm AND} \quad |x| \lt a/2. \end{array} [/math]

Таким образом, для на каждом шаге интегрирования для каждой частицы [math] i [/math] проверяется, находится ли она в контакте с соседними частицами. При этом, в принципе, должны перебираются все частицы [math] j \neq i [/math]. Однако перебор можно существенно ускорить, если ввести радиус обрезания.... Продолжение в том же духе за тобой :)

Kuzkin 11:42, 24 июля 2011 (MSD)