2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
 
 Re: Трехмерная гравитация и двухмерный мир
Сообщение29.02.2016, 15:32 
Заслуженный участник


28/12/12
7946
Dmitriy40 в сообщении #1103120 писал(а):
Ещё идея для возможной реализации: добавить "скорость звука", распространения изменений давления, не мгновенно для всех тел, а с какой-то скоростью. Возможно добавятся красивые эффекты в виде волн по поверхности или отрывание "капель" при ударе не только в месте удара.

Проще, кмк, ввести в духе DPP (dissipative particle dynamics) помимо диссипативной силы еще силу отталкивания, например, линейную по степени перекрытия.

 Профиль  
                  
 
 Re: Трехмерная гравитация и двухмерный мир
Сообщение29.02.2016, 15:35 


03/02/12

530
Новочеркасск
DimaM в сообщении #1103125 писал(а):
Проще, кмк, ввести в духе DPP (dissipative particle dynamics) помимо диссипативной силы еще силу отталкивания, например, линейную по степени перекрытия.


Вот-вот, возможно, получится "приблизить" к реальности?..

 Профиль  
                  
 
 Re: Трехмерная гравитация и двухмерный мир
Сообщение29.02.2016, 15:38 
Заслуженный участник


09/05/12
25179
Dmitriy40 в сообщении #1103120 писал(а):
Ещё идея для возможной реализации: добавить "скорость звука", распространения изменений давления, не мгновенно для всех тел, а с какой-то скоростью. Возможно добавятся красивые эффекты в виде волн по поверхности или отрывание "капель" при ударе не только в месте удара.
Такими темпами это превратится в SPH. :-)

 Профиль  
                  
 
 Re: Трехмерная гравитация и двухмерный мир
Сообщение29.02.2016, 15:46 
Заслуженный участник


20/08/14
11867
Россия, Москва

((Ненужное) улучшение программы)

alexo2
Сейчас в программе квадратичная зависимость времени от количества тел, для сотен тел ещё незаметно, а вот для десятков тысяч будут тормоза. Могу предложить уменьшить её до линейной: для каждого тела считать не все силы от всех остальных тел, а лишь силу к общему центру масс (разумеется смещенному для вычитания вклада текущего тела). Для ухода от квадратичной зависимости с упругостью разбить всё поле на квадраты и проверять на столкновения лишь тела в одном или соседних квадратах (это самое простое, лучше конечно вообще какое-нибудь дерево использовать). Не знаю насколько это надо, но тогда к примеру можно будет резко уменьшить шаг по времени и получить существенно лучшую точность даже для малого количества тел.

DimaM в сообщении #1103125 писал(а):
Проще, кмк, ввести в духе DPP (dissipative particle dynamics) помимо диссипативной силы еще силу отталкивания, например, линейную по степени перекрытия.
Дык это уже есть, только не линейная, а квадратичная (и вот не пойму с чего вдруг?!).

 Профиль  
                  
 
 Re: Трехмерная гравитация и двухмерный мир
Сообщение29.02.2016, 15:49 


03/02/12

530
Новочеркасск
Dmitriy40 в сообщении #1103132 писал(а):

((Ненужное) улучшение программы)

alexo2
Сейчас в программе квадратичная зависимость времени от количества тел, для сотен тел ещё незаметно, а вот для десятков тысяч будут тормоза. Могу предложить уменьшить её до линейной: для каждого тела считать не все силы от всех остальных тел, а лишь силу к общему центру масс (разумеется смещенному для вычитания вклада текущего тела). Для ухода от квадратичной зависимости с упругостью разбить всё поле на квадраты и проверять на столкновения лишь тела в одном или соседних квадратах (это самое простое, лучше конечно вообще какое-нибудь дерево использовать). Не знаю насколько это надо, но тогда к примеру можно будет резко уменьшить шаг по времени и получить существенно лучшую точность даже для малого количества тел.



Да, думаю автор вечером и сам подключится, - выскажет свои мысли, возможно, на что-то точнее чем я ответит..

 Профиль  
                  
 
 Re: Трехмерная гравитация и двухмерный мир
Сообщение29.02.2016, 15:51 
Заслуженный участник


28/12/12
7946
Dmitriy40 в сообщении #1103132 писал(а):
Дык это уже есть, только не линейная, а квадратичная (и вот не пойму с чего вдруг?!).

Не, там еще пропорционально скорости сближения.

Dmitriy40 в сообщении #1103132 писал(а):
Сейчас в программе квадратичная зависимость времени от количества тел, для сотен тел ещё незаметно, а вот для десятков тысяч будут тормоза. Могу предложить уменьшить её до линейной: для каждого тела считать не все силы от всех остальных тел, а лишь силу к общему центру масс (разумеется смещенному для вычитания вклада текущего тела).

Дальнейшее развитие этой идеи даст Fast Multipole Method :-).

Цитата:
Для ухода от квадратичной зависимости с упругостью разбить всё поле на квадраты и проверять на столкновения лишь тела в одном или соседних квадратах (это самое простое, лучше конечно вообще какое-нибудь дерево использовать). Не знаю насколько это надо, но тогда к примеру можно будет резко уменьшить шаг по времени и получить существенно лучшую точность даже для малого количества тел.

Это очень разумно, причем упаковывается достаточно компактно. Еще можно делать списки Верле (на основе текущих положений и максимальной скорости предсказывается, какие тела могут столкнуться на ближайших нескольких шагах по времени).

 Профиль  
                  
 
 Re: Трехмерная гравитация и двухмерный мир
Сообщение29.02.2016, 15:55 
Заслуженный участник
Аватара пользователя


30/01/06
72407
alexo2 в сообщении #1103081 писал(а):
Попросил изучить OpenGL - для "чистой трехмерной гравитации"..

Это нужно только для визуализации :-)

Внутри модели трёхмерный мир можно сделать безо всяких OpenGL. Да и изобразить его можно "по-простому": например, в трёх проекциях или в аксонометрической проекции.

DimaM в сообщении #1103082 писал(а):
Прямо таки до нулевого? :-)

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

DimaM в сообщении #1103082 писал(а):
По описанию мне видится, что применяется что-нибудь типа коэффициента восстановления, используемого в моделировании сыпучих сред.

Ага, вот только нулевого, как я понял.

"Пластилин".

DimaM в сообщении #1103082 писал(а):
Хотя, по-моему, для ОДУ не применяются неявные схемы

А ошибки не полезут вразнос? Понятно, что ОДУ ведут себя лучше, чем ДУЧП, но уменьшив шаг моделирования, и добившись потери точности, можно сделать всё, что угодно, мне кажется...

Dmitriy40 в сообщении #1103083 писал(а):
alexo2, а подобрав аккуратно коэффициент упругости можно наверное и "чёрные дыры" получить. :-)

Боюсь, для этого его придётся сделать отрицательным :-)

Dmitriy40 в сообщении #1103083 писал(а):
Физике (в части гравитации) вроде как отвечает, но абсолютно нереальна - не бывает такого точного совпадения для более чем трёх тел.

Вот я предлагаю в этой теме зафиксировать такое словоупотребление: "физике отвечает" - это значит, что бывают такие реальные системы. А если всего лишь "отвечает базовым (фундаментальным) формулам физики" - это звучит немножко иначе. Это не говорит о физике системы $n$ тел. К тому же, добиться того, чтобы модель отвечала закону $1/r^2,$ слишком банально, чтобы за это хвалить.

Cos(x-pi/2)
Я думаю, тут вообще многие (если не все) участники разговора проходили через такую стадию :-) Меня тоже как-то отсутствие расходимости насторожило, хотя видимо, поглощение энергии играет достаточную роль при заданных параметрах.

Но "сначала погонять" - это же убивает весь энтузиазм! :-) Разумеется, хочется сразу чудес, а возиться с отладкой и приближением к реальности - занудно и скучно.

-- 29.02.2016 15:56:45 --

Pphantom в сообщении #1103102 писал(а):
Если все сделано правильно, то источником ошибок при подобных расчетах будут тесные сближения тел. Обычно проблемы такого рода решают какой-то регуляризацией уравнений (использовать переменный шаг тоже можно, но это обходится намного "дороже"), но в обсуждаемом случае это не требуется - введенная "упругость" убивает проблему наповал.

А можно сразу использовать решение задачи Кеплера, пренебрегая нафиг поправками от далёких тел? ;-)

 Профиль  
                  
 
 Re: Трехмерная гравитация и двухмерный мир
Сообщение29.02.2016, 15:58 
Заслуженный участник


28/12/12
7946
Munin в сообщении #1103136 писал(а):
А ошибки не полезут вразнос? Понятно, что ОДУ ведут себя лучше, чем ДУЧП, но уменьшив шаг моделирования, и добившись потери точности, можно сделать всё, что угодно, мне кажется...

Есть схемы Рунге-Кутты с контролем точности (мне попадалась шестого/пятого порядка, наверняка и другие имеются).

 Профиль  
                  
 
 Re: Трехмерная гравитация и двухмерный мир
Сообщение29.02.2016, 15:59 


03/02/12

530
Новочеркасск
Munin в сообщении #1103136 писал(а):
Но "сначала погонять" - это же убивает весь энтузиазм! :-) Разумеется, хочется сразу чудес, а возиться с отладкой и приближением к реальности - занудно и скучно.


Не-не.., автор проги точно человек усидчивый.. :-)

 Профиль  
                  
 
 Re: Трехмерная гравитация и двухмерный мир
Сообщение29.02.2016, 16:00 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Dmitriy40 в сообщении #1103106 писал(а):
Упс, какая у вас однако интересная "сила упругости", квадратичная по расстоянию сжатия ... Какой собственно физической силе это соответствует хоть примерно? Обычная упругость если не ошибаюсь линейна по расстоянию.

А вот посчитайте (в отдельной теме, наверное) силу упругости для двух резиновых шаров, площадка между которыми растёт по мере сжатия, и для двух мячей (в которых адиабатически сжимается воздух - или изотермически, как будет проще). Там будут другие степени (по крайней мере, степенные разложения около нуля). Хотя, кажется, ни там ни там не квадрат.

 Профиль  
                  
 
 Re: Трехмерная гравитация и двухмерный мир
Сообщение29.02.2016, 16:00 
Заслуженный участник


09/05/12
25179
Munin в сообщении #1103136 писал(а):
А можно сразу использовать решение задачи Кеплера, пренебрегая нафиг поправками от далёких тел? ;-)
Можно, но опять-таки дорого.

 Профиль  
                  
 
 Re: Трехмерная гравитация и двухмерный мир
Сообщение29.02.2016, 16:03 
Заслуженный участник
Аватара пользователя


30/01/06
72407
alexo2 в сообщении #1103124 писал(а):
как-то все очень "похоже" на правду получилось...

Только на глаз неспециалиста.

-- 29.02.2016 16:06:11 --

Dmitriy40 в сообщении #1103132 писал(а):
Могу предложить уменьшить её до линейной: для каждого тела считать не все силы от всех остальных тел, а лишь силу к общему центру масс (разумеется смещенному для вычитания вклада текущего тела).

А это, извините, совершенно не то же самое. На пальцах: в этом случае у вас Луна не будет крутиться вокруг Земли, а они обе будут крутиться вокруг Солнца совершенно параллельно.

-- 29.02.2016 16:09:03 --

DimaM в сообщении #1103135 писал(а):
Дальнейшее развитие этой идеи даст Fast Multipole Method :-).

Дайте ссылку.

Я вот хотел предложить адаптацию этой идеи, без потери реалистичности. Но может быть, изобретаю велосипед.

Адаптация такая: бьём поле на большие квадраты, и в каждом квадрате заменяем поле (потенциал) удалённых масс на несколько первых членов Тейлора. А "неудалённые" массы (попавшие в один квадрат, или в соседние, например) - считать честно.

-- 29.02.2016 16:10:14 --

Pphantom в сообщении #1103141 писал(а):
Можно, но опять-таки дорого.

Нет, вы не поняли. Одним решением задачи Кеплера (просто алгебраическая формула) заменяется только один шаг по времени, содержащий "близкое прохождение". Ну максимум несколько.

 Профиль  
                  
 
 Re: Трехмерная гравитация и двухмерный мир
Сообщение29.02.2016, 16:11 
Заслуженный участник


20/08/14
11867
Россия, Москва
... Бред удалён, извините ...

Munin в сообщении #1103136 писал(а):
А если всего лишь "отвечает базовым (фундаментальным) формулам физики" - это звучит немножко иначе.
Согласен, так точнее. Сейчас именно что весьма приблизительно отвечает базовым формулам физики.

Munin в сообщении #1103142 писал(а):
А это, извините, совершенно не то же самое.
Да, Вы правы, уже сам подумал что надо делить минимум на две кучи тел: с большими и с меньшими (относительно текущего) радиусами тел до общего центра масс. И первая к одной силе так просто похоже не сводится, жаль. Погорячился. :oops:

(Оффтоп)

DimaM в сообщении #1103135 писал(а):
Еще можно делать списки Верле (на основе текущих положений и максимальной скорости предсказывается, какие тела могут столкнуться на ближайших нескольких шагах по времени).
А вот спасибо. И сам почитаю, не помню таких. А вообще, просто не стал сильно уж грузить разными методами, ведь программист не сам тут.

(Оффтоп)

Munin в сообщении #1103140 писал(а):
А вот посчитайте (в отдельной теме, наверное) силу упругости для двух резиновых шаров, площадка между которыми растёт по мере сжатия, и для двух мячей (в которых адиабатически сжимается воздух - или изотермически, как будет проще). Там будут другие степени (по крайней мере, степенные разложения около нуля). Хотя, кажется, ни там ни там не квадрат.
Не-не, простите, не буду пожалуй, кажется сложновато для меня. Да и интересовала аргументация автора, почему именно квадрат. Смахивает на эмпирическую подборку степени чтобы "расталкивались" поактивнее/покрасивее. ;-)
Added. Вместо аккуратного самостоятельного вывода нашёл готовую формулу, там степень $\frac{3}{2}$.

 Профиль  
                  
 
 Re: Трехмерная гравитация и двухмерный мир
Сообщение29.02.2016, 16:18 


03/02/12

530
Новочеркасск
Насколько я понял, задача изначально и не ставилась полностью соответствовать по основным константам , а сделать так, чтобы их было можно менять в широком диапазоне. В конце -концов, - все величины у нас все равно условные. А вот основные формулы - должны, по идее, соответствовать реальным физическим процессам...

 Профиль  
                  
 
 Re: Трехмерная гравитация и двухмерный мир
Сообщение29.02.2016, 16:25 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Dmitriy40 в сообщении #1103148 писал(а):
Не-не, простите, не буду пожалуй, кажется сложновато для меня.

Ну уж хотя бы степенные разложения около нуля - милое дело. Хорошее упражнение в вычислениях с малым параметром. И  недорогое  несложное. Ещё бы arseniiv на него позвать... а он что-то в этой теме совсем не засветился. rockclimber-а позовём :-)

-- 29.02.2016 16:37:22 --

alexo2 в сообщении #1103150 писал(а):
Насколько я понял, задача изначально и не ставилась полностью соответствовать по основным константам

Дело не в константах, дело в формулах (функциональных зависимостях). И в итоговом поведении.

alexo2 в сообщении #1103150 писал(а):
А вот основные формулы - должны, по идее, соответствовать реальным физическим процессам...

Ну во-первых, как выяснилось, они у вас соответствуют не все. Некоторые - просто из пальца вымышлены. И играющие довольно большую роль.

Во-вторых, даже если взять реальные формулы - это ещё не значит, что не получится бессмыслица. Формулы должны быть из одного места, соответствующие одним и тем же явлениям. А если вы берёте одну формулу от табуретки, другую от лягушки... ерунда будет.

И в-третьих, самое главное. Даже если вы взяли все правильные формулы. Вам ещё надо добиться, чтобы статистические и коллективные явления тоже были похожи на правду. А это далеко не всегда получается: формулы - не единственный "входной параметр" модели. Вам уже говорили, что есть такие параметры, как массы, положения, скорости. Если генерировать случайно - то надо задавать разные случайные распределения.

И даже если у вас что-то получается "на глаз" похожим на реальность - это может быть тоже неправдой. Надо анализировать всерьёз. Получилось "скопление" или "галактика" - нужно сравнивать функциональные зависимости, а не только внешний вид. Получился "кристалл" или "фазовый переход" - нужно понять, а правильно ли он отвечает соответствующим явлениям реальности. А вдруг у вас так получится, что при больших "температурах" будет "кристалл", а при малых - наоборот, "газ"? Это же абсурд. Короче, нужно серьёзное обстоятельное исследование модели.

Как я уже сказал, такие модели изучаются тоннами. В основном теоретически, хотя частенько исследователи балуются численными модельками (например, так была открыта модель Ферми-Паста-Улама, до сих пор не поддающаяся полному теоретическому анализу). Ваша модель - уже в коренных элементах слишком непохожа на реальность, чтобы ожидать, что возникающие в ней эффекты и явления будут реальными - скорее, только "отдалённо смахивающими", как бумажный самолётик на авиалайнер (или на птицу).

Впрочем, отличное развлечение после работы, если не придавать ему слишком большого значения.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 96 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.

Модераторы: photon, whiterussian, profrotter, Jnrty, Aer, Парджеттер, Eule_A, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Someone


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group