2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу 1, 2, 3, 4, 5 ... 7  След.
 
 Трехмерная гравитация и двухмерный мир
Сообщение29.02.2016, 08:53 


03/02/12

530
Новочеркасск
По следам похожей темы в этом разделе..
Зять программит в делфях, недавно осваивал многопотоковость. Разработал довольно интересную прогу, имитирующую гравитацию (чем меня, признаться, удивил - не ожидал от делфей того, что получилось в итоге). А получилось решение "задачи многих тел" :-) , правда, в плоскости, хотя применяются классические формулы для гравитации при расчетах. Все основные постоянные можно задавать, такие как гравитационная и "коэффициент упругости" тел - (энергия как бы поглощается именно при столкновениях).
Задавать можно и массу тел, добавлять тела, останавливать пересчет в онлайне, задавать векторы скорости тел и проч..
Расчеты ведутся поочередно для каждого тела - вычисляется влияние всех остальных тел по классическому закону тяготения - прямо пропорционально произведению масс, обратно пропорционально квадрату расстояния, за один "такт", который определяется заданным "шагом по времени" (по умолчанию - 25 мс) просчитывается вектор скорости для всех тел, координаты всех тел, соответственно изменяются, и происходит перерисовка экрана..
Довольно интересные наблюдения можно делать, в том числе, влияя на ситуацию "извне"..
Вопрос - соответствует ли такая модель принципиально основным физическим проявлениям гравитации?
Далее - наглядные пояснения.
Для начала - самое простейшее по умолчанию:
- 3 основных потока (лучше сразу поменять на реальное кол-во камней в компе);
- 150 тел;
- шаг времени - 25 мс;
- масса одного тела - 10 усл.ед.;
- тела случайным образом распределены по видимой области экрана со случайными векторами скоростей..
После начала генерации получается примерно следующее:
Изображение
Затем начинается явное "кучкование" (градации цвета обозначают "давление, испытываемое каждым телом"):
Изображение
Окончание процесса формирования структуры:
Изображение
Структура сформирована - вокруг на своих орбитах движутся "спутники":
Изображение

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

Интересно, что после "кучкования" и образования основной структуры, она всегда вращается.

То что выше - это, так сказать, простейшее.
Далее - будет гораздо интереснее - "спиральные галактики" и "распределение планет по закономерным орбитам вокруг солнца"... :lol:

 Профиль  
                  
 
 Posted automatically
Сообщение29.02.2016, 09:33 
Модератор
Аватара пользователя


16/02/11
3788
Бурашево
 i  Тема перемещена из форума «Физика» в форум «Карантин»
Причина переноса:
Не сформулирован предмет обсуждения.

(Подробно)

Forum Administration в сообщении #27358 писал(а):
Начальные сообщения любой темы должны четко и внятно формулировать предмет или вопрос, который предполагается обсудить. В противном случае тема будет закрыта или перемещена в карантин до уточнения предмета.
Оформите тему в соответствии с правилами форума и сообщите об этом в теме Сообщение в карантине исправлено. Настоятельно рекомендуется ознакомиться с темами Что такое карантин и что нужно делать, чтобы там оказаться и Правила научного форума

 Профиль  
                  
 
 Posted automatically
Сообщение29.02.2016, 10:13 
Модератор
Аватара пользователя


16/02/11
3788
Бурашево
 i  Тема перемещена из форума «Карантин» в форум «Физика»
Причина переноса: вернул.

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


03/02/12

530
Новочеркасск
Сближение "двух галактик" - как и положено, скорость вращения вокруг общего центра масс возрастает:
Изображение
Возрастает настолько, что начинают образовываться "хвосты" из "оторвавшихся" тел (менее массивных и находящихся на периферии):
Изображение
Слияние ядер:
Изображение

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


06/07/11
5650
кран.набрать.грамота
alexo2 в сообщении #1103002 писал(а):
Вопрос - соответствует ли такая модель принципиально основным физическим проявлениям гравитации?
Для обсуждения этого вопроса нужно код показывать, а не картинки. При желании не проблема найти такую неправильную модель, которая при некоторых условиях будет давать картинку, похожую на правильную. Не говоря уже о том, что заложенная в программу модель может давать, например, картину "образования галактик" для таких начальных условий, при которых галактики образовываться на самом деле не должны.

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


03/02/12

530
Новочеркасск
rockclimber в сообщении #1103019 писал(а):
Для обсуждения этого вопроса нужно код показывать, а не картинки.


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

Вот ссылка на видео:
Тут:
- начало генерации
- образование массивной структуры
- создание дополнительных тел с различными массами и векторами, "бомбардировка" ими основного тела..
https://yadi.sk/d/zsxk-tOdphuUA

-- 29.02.2016, 12:44 --

Вот сам ехе-шник:

https://yadi.sk/d/0gJT4nvgpi2md

Ещё раз вопрос: вроде, все основное по гравитации учтено в одной только формуле, а применение коэффициента упругости делает модель и вовсе правдоподобной?..

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


21/09/15
98
В каком стиле Вы хотите увидеть ответ: строгий и чёткий «да» — «нет»? Такого ответа никто из людей, имевших хотя бы малейшее касательство к численному моделированию (ЧМ), Вам не даст. Потому, что ЧМ — это всегда приближение. Насколько хорошее — тут вопрос упирается в заложенные в модель параметры и принятые критерии точности. Даже если ожидаемые на выходе решения описываются достаточно гладкими функциями. А уж если в модель заложены какие-то сильные нелинейности …
По всему этому кругу вопросов написаны достаточно серьёзные толстенные книженции. В коих рассматриваются, в частности, методы прохождения "тонких мест".
А так, на мой беглый непрофессиональный взгляд — какие-то характерные (разумеется, основные) физические проявления гравитации модель Вашего зятя, конечно, отражает.

alexo2 в сообщении #1103020 писал(а):
Ещё раз вопрос: вроде, все основное по гравитации учтено в одной только формуле, а применение коэффициента упругости делает модель и вовсе правдоподобной?..
"Всё учтено" — это как? Тела считаются точечными или же имеют предельно-малый размер (не понимайте термин «размер» буквально: имеется ввиду, что начиная с некоторого расстояния сила отталкивания начинает превосходить гравитацию).

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


03/02/12

530
Новочеркасск
AL Malino в сообщении #1103032 писал(а):
"Всё учтено" — это как? Тела считаются точечными или же имеют предельно-малый размер (не понимайте термин «размер» буквально: имеется ввиду, что начиная с некоторого расстояния сила отталкивания начинает превосходить гравитацию).


Я не думал, что все настолько просто - использование всего одной известной формулы - и все!..

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


23/07/05
18039
Москва
alexo2 в сообщении #1103002 писал(а):
правда, в плоскости, хотя применяются классические формулы для гравитации при расчетах
Это правильно. Просто рассматривается частный случай, так называемая "плоская задача $n$ тел".

alexo2 в сообщении #1103020 писал(а):
А зачем код? В правильности кода я не сомневаюсь.
Я думаю, что желающего посмотреть код интересует не столько правильность кода с точки зрения программирования (хотя и это тоже), сколько используемый метод расчёта.

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

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


06/07/11
5650
кран.набрать.грамота
alexo2 в сообщении #1103020 писал(а):
rockclimber в сообщении #1103019 писал(а):
Для обсуждения этого вопроса нужно код показывать, а не картинки.
А зачем код?
Код нужен для ответа на ваш вопрос о правильности модели. Я не знаю, что вы называете моделью, но обычно моделью называют, грубо говоря, некий набор формул, по которым можно сделать расчет. А фраза "я сообщил, как делается расчет", соответственно, означает "я написал формулы и привел исходные данные". Пока вы не привели ничего, кроме картинок с разноцветными кружочками. Что это за кружочки? Частицы вещества? Вещество только обычное или темная материя тоже есть? Что означает цвет: массу, температуру, скорость, энергию, еще что-то? Что означает размер кружочка: массу, объем? Непонятно же ничего вообще.

alexo2 в сообщении #1103020 писал(а):
Ещё раз вопрос: вроде, все основное по гравитации учтено в одной только формуле, а применение коэффициента упругости делает модель и вовсе правдоподобной?..
О какой "одной формуле" вы говорите? Силу гравитационного взаимодействия двух тел в простейшем случае можно определить по формуле $F = G \frac{m_1 m_2}{r^2}$, где $G$ - гравитационная постоянная, $m_1$ и $m_2$ - массы тел, $r$ - расстояние между ними. Для простенькой модели этого, действительно, достаточно. Но как вы в эту "одну формулу" коэффициент упругости впихнули, я не знаю. Может, все-таки, там чуть больше, чем одна формула?

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


03/02/12

530
Новочеркасск
rockclimber в сообщении #1103046 писал(а):
О какой "одной формуле" вы говорите? Силу гравитационного взаимодействия двух тел в простейшем случае можно определить по формуле $F = G \frac{m_1 m_2}{r^2}$, где $G$ - гравитационная постоянная, $m_1$ и $m_2$ - массы тел, $r$ - расстояние между ними. Для простенькой модели этого, действительно, достаточно. Но как вы в эту "одну формулу" коэффициент упругости впихнули, я не знаю. Может, все-таки, там чуть больше, чем одна формула?


Да, формула такая:
$F = G \frac{m_1 m_2}{r^2}$

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

Цвет означает как бы "давление", которое испытывает конкретное тело. Рассчитывается как суммарное от всех остальных тел. Кружочки - одинакового размера, единственное - чем больше "давление", - тем больше "входят" в друг друга с той стороны, где оно значительно...

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


03/02/12

530
Новочеркасск
Кстати, если кто-то скачал прогу, то лучше устанавливать кол-во потоков столько, сколько ядер у компа. Если не знаете, - лучше ставьте 1.
Ещё из возможно непонятного - Rcm - "граница", попав на которую, скорости тел обнуляются (после чего, они, понятно, летят прямо к общему центру масс всей системы)..

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

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


30/01/06
72407
alexo2 в сообщении #1103002 писал(а):
Вопрос - соответствует ли такая модель принципиально основным физическим проявлениям гравитации?

Вроде как нет :-)

Дело в том, что наш мир трёхмерный, и частицы в нём имеют обычно значительные компоненты скорости и координаты по $z.$ Это приводит к другим статистическим и коллективным явлениям.

Если бы мир был двумерный, то и гравитация была бы другой: не $1/r^2,$ а $1/r.$ То же самое, если бы мы рассматривали наш мир, но какие-нибудь параллельные струны или цилиндры.

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

Но как "игрушечная теоретическая модель" - всё это имеет право на существование. Физики такие вещи изучают тоннами.

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

Можно поиграть с другими законами взаимодействия: например, ввести отталкивание (всех ото всех), притяжение и отталкивание (и поровну "+" и "−" зарядов), или какие-нибудь юкавские силы $e^{-r/r_0}/r^2$ (упрощённый вариант ядерных сил), леннард-джонсовские $1/r^{13}-1/r^7$ (упрощённый вариант межмолекулярных сил). Впрочем, ваш вариант тоже демонстрирует "короткодействие", поскольку отличается от "истинно двумерной гравитации" $1/r.$

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


29/09/14
1285
Прошу извинить меня за недогадливость, но вот какой вопрос возник. Задал я всего два тела, чтобы проверить, будут ли они вращаться вокруг общего центра масс. И не понял, как задать им начальные скорости и положения? Прога пока показывает, что они летят навстречу друг другу и слипаются. Как в этой проге задать произвольные начальные условия - векторы скорости и координаты тел?

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


30/01/06
72407
alexo2 в сообщении #1103054 писал(а):
Но, если бы не использовался коэффициент "упругости", тела бы бесконечно отскакивали друг от друга. Поэтому, при сближении тел до 0-го расстояния, вступает в действие "упругость", которая частично гасит энергию...

Вы, видимо, не в курсе, но в физике слово "упругость" означает именно отскакивание. А у вас добавлена не упругость, а диссипация ("рассеивание" энергии). В механике диссипация проявляется в виде трения, неупругого удара, вязкого трения в среде, и т. п.

И вот моделей диссипации - бывает как раз очень много. Так что тут желательно, чтобы вы привели формулы.

Кроме того, могут быть интересны формулы вашего численного моделирования - вы решаете дифференциальные уравнения, видимо, 2 порядка (законы Ньютона). Каким образом? Явная схема, неявная схема?

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

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



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

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


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

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