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
7932
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
11786
Россия, Москва

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

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
7932
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
7932
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
11786
Россия, Москва
... Бред удалён, извините ...

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, Супермодераторы



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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