2014 dxdy logo

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

Математика, Физика, Computer Science, 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
3256
Бурашево
 i  Тема перемещена из форума «Физика» в форум «Карантин»
Причина переноса:
Не сформулирован предмет обсуждения.

(Подробно)

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

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


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

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


03/02/12

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

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


06/07/11
2864
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
14101
Новомосковск
alexo2 в сообщении #1103002 писал(а):
правда, в плоскости, хотя применяются классические формулы для гравитации при расчетах
Это правильно. Просто рассматривается частный случай, так называемая "плоская задача $n$ тел".

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

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

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


06/07/11
2864
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
61331
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
566
Прошу извинить меня за недогадливость, но вот какой вопрос возник. Задал я всего два тела, чтобы проверить, будут ли они вращаться вокруг общего центра масс. И не понял, как задать им начальные скорости и положения? Прога пока показывает, что они летят навстречу друг другу и слипаются. Как в этой проге задать произвольные начальные условия - векторы скорости и координаты тел?

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


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

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

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

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

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

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



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

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


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

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