Телескопы покупают здесь


A A A A Автор Тема: Моделирование скопления  (Прочитано 3206 раз)

0 Пользователей и 1 Гость просматривают эту тему.

psyberia

  • Гость
Моделирование скопления
« : 22 Апр 2004 [22:35:07] »
     Доброе время суток всем посетителям данного форума! :)

     Астрономия и программирование - одни из моих любимых хобби, и я иногда объединяю их для получения более высоких результатов :). В этот раз проект был посвящен  моделированию эволюции рассеянного скопления. Теория предсказывает распад такой конфигурации за не очень большое по астрономическим меркам время (те же Гиады практически распались), а также увеличение стабильности при увеличении количества звезд. Очевидно, скопление размером с шаровое полностью стабильно. :) Собственно, оценка этой границы и было целью эксперимента. Однако на пути встретилась такая не очень приятная проблема – недостаток вычислительной мощности.. Пока программа осуществляет расчет без какой-либо оптимизации – нахождение всех растояний, сил, действующих на каждую звезду, коррекция скорости и положения и т.д. через dT. Опытным путем было получено, что увеличение этого dT (для ускорения просчета) влечет за собой появление быстро накапливающейся ошибки, в результате чего в реальном времени на вполне современном компьютере возможно моделирование в реальном времени всего лишь нескольких десятков звезд! (Хотя и это выглядит очень красиво :) Данный параметр особенно сильно проявляет себя при тесных сближениях, непредсказуемо изменяя орбиты. Приходится вести многодневную запись промежуточных результатов и т.д. Ясно, что необходимо менять алгоритм.
     Если кто-то интересуется подобными исследованиями и может что-нибудь предложить по данному вопросу, очень прошу высказаться! Если у Вас есть какая-либо информация, касающаяся данной проблемы, тоже прошу не оставаться в стороне! :) Наверняка вмешательство человека, разбирающегося, например, в математическом моделировании, поможет вывести дело на новый уровень. Интересны абсолютно все идеи – от небольших изменений в схему расчета или включения факторов собственной эволюции звезд до возможности просчета на нескольких машинах (хотя, как мне кажется, алгоритм этот распараллеливается не очень хорошо). Хотелось бы узнать, занимается ли еще кто-нибудь моделированием для объединения усилий в данном направлении. Заранее всем спасибо! :)

Kuanysh

  • Гость
Re:Моделирование скопления
« Ответ #1 : 23 Апр 2004 [06:58:35] »
Я писал програмки моделирования движения двух математических точек в двумерном пространстве под действием гравитационных сил на C++. Так, для души.
А на какой платформе вы ведете расчеты? У вас есть опыт ведения расчетов в реальном времени?
Поделитесь пожалуйста.

psyberia

  • Гость
Re:Моделирование скопления
« Ответ #2 : 23 Апр 2004 [13:36:27] »
     Приветствую Вас, Kuanysh! :)

     По поводу
Цитата
..програмки моделирования движения двух математических точек в двумерном пространстве..
Чтож, и у меня когда-то была такая.. :)
    А насчет платформы - в начале все строилось на CBuilder, но позже решено было перейти не Delphi, в основном из-за более скростной отладки, и более прозрачной работе с большим количеством динамических массивов (например, звезда, покинувшая скопление, естественно исключается из рассчета), тем более что скорость исполнения кода практически идентична.
     
Цитата
У вас есть опыт ведения расчетов в реальном времени?
   Скорее не в расчетах в реальном времени, а в моделировании. Второе направление, в котором я занимаюсь исследованиями - системы ИИ на нейронных сетях, в принципе, тут есть кое-какие результаты.. :) Был разработан собственный алгоритм функционирования нейросети для распознавания графической информации, и  во многих случаях программе удавалось идентифицировать искаженный объект даже тогда, когда человек уже был не в состоянии это сделать. :) Планируется подключить данную работу в систему преодоления т.н. "систем защиты от автоматических регистраций" (это когда на сайте для завершения регистрации нужно ввести цифры или буквы, которые присылаются в искаженном виде картинкой). Но это уже совсем другая история.. :)
     Ну так вот, возвращаясь к теме.. Очень хочется надеяться, что что тут найдется человек, серьезно занимающийся астрономическим моделированием и готовый сотрудничать в данном направлении! В частности, знакомясь с работами зарубежных исследователей, был найден способ повышения эффективности данных алгоритмов, известный как "кластерный анализ". Суть его заключается в том, что для каждой звезды просчет взаимодействий ведется только для ближайших "соседей", а гравитационное поле окружающих звезд (в большинстве случаев сильно  компенсирующее друг друга) накладывается как одна отдельная составляющая, перерасчитываемая намного реже, чем каждый такт. Если Вы имеете какую-либо информацию по этой теме - ссылки, литературу и т.д. - сообщайте! Еще раз спасибо всем! :)

Arkady Vodyanik

  • Гость
Re:Моделирование скопления
« Ответ #3 : 23 Апр 2004 [20:19:16] »
Очень занятная тема для моделиpования. Пpизнаюсь, немного увлекался подобными штучками, пpавда, лет 20 назад :)

Какой метод интегpиpования используете? Если Рунге-Кутта, то имеете еще весьма значительный pезеpв по скоpости - пеpеходите на более подходящее для этих "гpавитационных уpавнений".
A eще можно pаза в два ускоpиться за счет дpугих компилятоpов.

В свое вpемя я увидел много интеpесного на этот счет в книге "Астpодинамика" С.Хеppикa, (это я не поленился сейчас сходить в чулан и посмотpеть :)). В частности, там говоpилось, что метод Гаусса pаз в 50 эффективнее метода Рунге-Кутта 4-го поpядка - это "пpи pасчетах оpбит с умеpенным эксцентpиситетом".

Деpжите нас в куpсе своих опытов!

Оффлайн Дмитрий Вибе

  • Обозреватель
  • *****
  • Сообщений: 17 928
  • Благодарностей: 465
  • Дети любят бутерброд с маргарином!
    • Сообщения от Дмитрий Вибе
    • Персональная страница
Re:Моделирование скопления
« Ответ #4 : 23 Апр 2004 [20:51:37] »

The art of N-body building


Там нужно кликать ссылку Full Refereed Journal Article. Винда может тип открываемого файла не распознать, придется ей вручную указать, что это PDF. Вообще, литературы немеряно.

Вот про проект GRAPE (комп, специально заточенный под эту задачу)

http://adsabs.harvard.edu/cgi-bin/nph-bib_query?bibcode=2000PASJ...52..659K

http://grape.astron.s.u-tokyo.ac.jp/grape/

http://grape.astron.s.u-tokyo.ac.jp/~makino/grape6.html

Вот про похожие расчеты

http://www.astronet.ru/db/msg/1178673

Про методы

http://www.epcc.ed.ac.uk/~mario/nbody.html
Было бы ошибкой думать.

Arkady Vodyanik

  • Гость
Re:Моделирование скопления
« Ответ #5 : 23 Апр 2004 [21:05:20] »
Да, Дмитpий, ссылки хоpошие, нечего сказать :)
Пpавда, не секpет, что излишняя осведомленность о подходах к pешению пpоблемы зачастую мешает возникновению оpигинальных pешений этой пpоблемы :)

Оффлайн licantrop

  • ***
  • Сообщений: 248
  • Благодарностей: 1
  • нас много, и мы на каждом километре
    • Сообщения от licantrop
    • Мой ЖЖ
Re: Моделирование скопления
« Ответ #6 : 19 Окт 2005 [13:15:04] »
Интересное дело! А чего тема-то заглохла? Хоть какие-нибудь результаты есть?
... когда пойду я долиной смертной тени, да не убоюсь я зла ...

Оффлайн xd

  • *****
  • Сообщений: 17 973
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Моделирование скопления
« Ответ #7 : 19 Окт 2005 [14:20:38] »
Меня тоже интересовал данный вопрос, однако недостаток времени, а в свободное и недостаток желания :(, привёл к тому, что желанию реализовать данный проект. В принципе, если бы у меня были бы исходники проги, я мог бы основательно заоптимизировать их, отпрофилировать, да и вообще пошаманить немного над ней ;)
psyberia, если будет желание, можешь выслать исходник на alex_tk@tut.by
Я уж над ним пошаманю по полной программе ;)
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн licantrop

  • ***
  • Сообщений: 248
  • Благодарностей: 1
  • нас много, и мы на каждом километре
    • Сообщения от licantrop
    • Мой ЖЖ
Re: Моделирование скопления
« Ответ #8 : 19 Окт 2005 [15:54:43] »
Алексей, а в общих чертах, как считать собираешься? И при каком наборе начальных данных? На мой взгляд, начальные условия существенно влияют на результат. Если просто взять случайный набор масс и скоростей, то сначала получится несколько объктов похожих на шаровые скопления, а потом они слипнутся в один ком. Я программировать не умею, поэтому не могу прикинуть, сколько точек в скоплении способна обсчитать обычная офисная персоналка (типа Pentium-1800 МГц, 256 МБайт) И какие способы распараллеливания расчетов здесь можно применить?
... когда пойду я долиной смертной тени, да не убоюсь я зла ...

Оффлайн xd

  • *****
  • Сообщений: 17 973
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Моделирование скопления
« Ответ #9 : 21 Окт 2005 [01:33:31] »
На самом деле всё не так тяжело. Количество точек может быть не слишком большим: порядка десятков тысяч вполне достаточно. Начальные положения и начальные скорости выбираются в соответствие с гауссовским распределением.
На хранение данных по одной звезде необходимо 56 байт памяти, поэтому для хранения даже 100 000 звёзд потребуется всего 5,3 мегабайта памяти, что не особо много. А вот время просчёта будет прямо пропорционально квадрату количества звёзд и обратно пропорционально шагу интегрирования. На расчёт одного слагаемого в векторе ускорения требуется около 300 тактов процессора (это при средненькой оптимизации).
Количество тактов на расчёт 1 шага при интегрировании для n звёзд составит примерно
T = 300 * n2 тактов.
Если считать, что программа выполняется на "обычной офисной персоналке", то прога будет отхватывать примерно 80-90% процессорного времени. Таким образом, выполение одного шага при интегрировании для 10 000 звёзд будет выполняться за.... 20 секунд... Слабовато, конечно... Хотя в качестве альтернативы можно рассматривать не суммирование всех вносимых ускорений, а определённый отбор звёзд и предположение, что скопление является более-менее сферически симметричным. Это, конечно, скажется на точности расчёта, но зато скорость вычислений можно повысить порядка на 2, если не на 3....
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн licantrop

  • ***
  • Сообщений: 248
  • Благодарностей: 1
  • нас много, и мы на каждом километре
    • Сообщения от licantrop
    • Мой ЖЖ
Re: Моделирование скопления
« Ответ #10 : 21 Окт 2005 [10:52:41] »
Мда-а-а... сферический конь в вакууме.... Галактика-то (наша) сферически весьма несимметрична. Я согласен, что влияние центральной части можно учитывать как притяжение сферы, а вот с остальной частью звезд придется что-то другое придумывать. Нашел тут небольшую книжку "Динамика звездных систем" Там есть несколько интересных идей. Если хочешь, кину на почту. Она в pdf-e весит 385 кило. А по части объема вычислений, спасибо! Ты меня немного успокоил. Твое оценка объема ~N^2 совпала с моей, что внушает некоторый оптимизм. Теперь осталось только выучить С++ и придумать меры против накопления ошибок округления :)
Вот пара ссылок на форум, где обсуждаются похожие темы:

https://astronomy.ru/forum/index.php/topic,10679.20.html

https://astronomy.ru/forum/index.php/topic,9796.0.html
... когда пойду я долиной смертной тени, да не убоюсь я зла ...

Оффлайн xd

  • *****
  • Сообщений: 17 973
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Моделирование скопления
« Ответ #11 : 21 Окт 2005 [11:06:38] »
Книжу на мыло получить я бы не отказался ;). Интересно будет почитать
mailto:alex_tk@tut.by
Учи пока Си, напишешь прогу, которую я затем переведу на более шустрый язык (assembler)
Вот только самая большая проблема - это нехватка времени... :'(
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн licantrop

  • ***
  • Сообщений: 248
  • Благодарностей: 1
  • нас много, и мы на каждом километре
    • Сообщения от licantrop
    • Мой ЖЖ
Re: Моделирование скопления
« Ответ #12 : 21 Окт 2005 [13:28:26] »
Деймос, проверь почту, я тебе книжку выслал. А до написания программы пока еще далеко. Надо сначала математическую модель придумать, а потом подобрать хорошие численные методы к ней. И только потом уже писать программу. Над математической моделью я сейчас и думаю. По ходу дела ищу книгу Айвена Кинга "Введение в классическую звездную динамику" Хочу ее прочитать, прежде чем за дело браться
... когда пойду я долиной смертной тени, да не убоюсь я зла ...