Моделирование физических процессов
Вложений: 4
Добрый вечер! Я занимался разработкой компьютерных моделей физических процессов на языке программирования С++. Хочу создать Компьютерную модель катода (Н-р газоразрядной, люминесцентной или натриевой лампы). Предыдущие модели разрабатывал в MS VS2008 Express. Уровень программирования невысокий, опыта программирования мало. Так же по возможности хотелось бы провести параллельное программирование модели и для Unix подобных ОС (Linux в частности).
Может быть есть у кого опыт разработки подобных моделей? Буду рад выслушать ваши предложения. Заранее Спасибо!
|
Цитата:
Цитата nix_c
Буду рад выслушать ваши предложения. »
|
Я бы простолте душевной на FORTRAN делал...
Главное --- Физику Всего ентова дела понимать. А кодирование --- последний этап *енря.
ЗЫ Я Физик, но таких спецкурсов не слушал...
|
Цитата:
Цитата Tau_0
Главное --- Физику Всего ентова дела понимать. А кодирование --- последний этап *енря. »
|
Физика процессов пока изучена мало. В предыдущих моделях возникали сложности (н-р при портации кода с True Basic на С++). Также часто и в физике используется метод Монте Карло требующий достаточное большое число итераций. Поэтому хочется бы чтобы модель работала относительно быстро.
|
nix_c, ой, слушай, найди меня как нить через день два. Я тебе под рюмку чая расскажу что да как :)
|
Цитата:
Цитата lxa85
nix_c, ой, слушай, найди меня как нить через день два. Я тебе под рюмку чая расскажу что да как »
|
ок)
|
Подскажите какая реализация С++ подойдет для этой цели лучше всего?
|
Вы поймите, конкретный язык программирования (или его реализация) - это вещи глубоко второстепенные. Главное - это понять суть физических процессов и суметь их описать на некотором языке программирования, адекватно отражающем протекающие физические процессы. Боюсь показаться профаном, но тут главное - не как программировать (и на чем), а что программировать. Если Вы понимаете суть процессов, то сможете адекватно их промоделировать на чем угодно. Фортран тут в теме всплывал не зря - это давний язык научных расчетов. На самом деле, он по сути не имеет особых преимуществ перед другими языками. Все то же самое можно записать на любом другом языке программирования. Любая реализация языка С++ годится, лишь бы Вы могли на этом варианте языка написать адекватную программу. Удобство написания программы в данное время (при достигнутом быстродействии компьютеров) играет гораздо большую роль, чем время ее фактического выполнения. Ибо писать ее вы в любом случае будете большее время, чем то, за которое она будет выполняться. Пишите на чем Вам удобно, это точно окупится.
|
Цитата:
Цитата XPEHOMETP
На самом деле, он по сути не имеет особых преимуществ перед другими языками. »
|
Именно особые — имеет.
|
Iska, XPEHOMETP, Кто имеет? Фортран? Фортран имеет особые преимущества. Но в целом я согласен с
Цитата:
Цитата XPEHOMETP
Вы поймите, конкретный язык программирования (или его реализация) - это вещи глубоко второстепенные. Главное - это понять суть физических процессов и суметь их описать на некотором языке программирования, адекватно отражающем протекающие физические процессы. »
|
Лишь поправлю: на языке математики, с вероятностным учетом физических событий. (Тут недавно был пример про принадлежность точки к окружности тут)
Это раз.
Затем ищется язык программирования, достаточно удобный для описания найденной математики. Например готовые инструменты для расчетов потоков частиц.
|
Цитата:
Цитата XPEHOMETP
Пишите на чем Вам удобно, это точно окупится. »
|
Спасибо за совет. Буду писать на С++ , постараюсь каждый отдельный процесс запрограммировать в отдельном приложении. Буду делать множество приложений (скорее всего консольных). Один процесс одно приложение. А потом соединю все приложения в одно Windows form, установлю взаимосвязи между ними.
Для начала промоделирую процессы диффузии и адсорбции (с применением метода Монте-Карло).
|
Цитата:
Цитата lxa85
Iska, XPEHOMETP, Кто имеет? … »
|
lxa85, всё верно.
Цитата:
Цитата nix_c
постараюсь каждый отдельный процесс запрограммировать в отдельном приложении. Буду делать множество приложений (скорее всего консольных). Один процесс одно приложение. А потом соединю все приложения в одно Windows form, установлю взаимосвязи между ними. »
|
nix_c, напрасно.
|
Цитата:
Цитата lxa85
Фортран? Фортран имеет особые преимущества. »
|
Я согласен (я сам как бы на Фортране программы пишу для обработки данных эксперимента). В данном случае фортран ровно в том же положении, что и другие языки. Ибо конкретно тут важнее всего алгоритм, который нужно написать на некотором языке программирования, а на каком - это уже глубоко вторичный вопрос.
Может быть. Но - что именно напрасно? Консольные приложения для решения конкретных научных задач - это стандарт, можно сказать. Напрасно объединять их некой GUI-оболочкой? А почему бы и не сделать такое? Внешняя оболочка вряд ли затормозит реальные вычисления.
|
Тут наверно надо рассмотреть архитектуру предлагаемой системы. Т.к. много-много консольных программ меня тоже смущают. Как отработка небольшого алгоритма - вполне. Каждый раз запускать ".exe" для выполнения маленькой задачи при большом расчете - вряд ли. Полезнее было бы их объединить в нечто среднего уровня. ИМХО
|
Цитата:
Цитата lxa85
Тут наверно надо рассмотреть архитектуру предлагаемой системы. Т.к. много-много консольных программ меня тоже смущают. Как отработка небольшого алгоритма - вполне. Каждый раз запускать ".exe" для выполнения маленькой задачи при большом расчете - вряд ли. Полезнее было бы их объединить в нечто среднего уровня. ИМХО »
|
Для отладки процесса моделирования будет создано "много .exe" файлов лишь для того чтобы было проще адаптировать каждый процесс, т.е каждую закономерность и не лазать по всему коду дабы не повредит что либо. Далее отладить их и уже потом обьеденить в один .EXE файл. ИМХО так будет лучше, но у меня нет подобного опыта программирования.
|
Цитата:
Цитата XPEHOMETP
Но - что именно напрасно? »
|
Разбивать одну задачу моделирования на кучу процессов. Затем пытаться сводить их вместе.
|
Цитата:
Цитата Iska
Разбивать одну задачу моделирования на кучу процессов. Затем пытаться сводить их вместе. »
|
Чем это чревато?
|
nix_c, все зависит от уровня абстракции. Дополнительными накладными расходами на создание процессов.
Пример:
Сервер Apache. В Windows он работает как один процесс и множество нитей. Т.к. на платформе Windows создавать процесс -- "дорого".
В Linux Apache работает множеством процессов. Т.к. в Linux создание процесса -- "дешевая" операция.
|
Цитата:
Цитата Iska
Разбивать одну задачу моделирования на кучу процессов. Затем пытаться сводить их вместе. »
|
Согласен. Разбивать полезно для отлаживания каждого процесса по отдельности, чтобы не влияли возможные ошибки в других процессах. Но: когда все окончательно доведено до ума, почему бы и не объединить в едином GUI? Чисто для удобства юзера. Лишний фантик, я понимаю, но, когда все уже заработало, почему бы и не навести красивостей?
|
Скажите пожалуйста, может быть кто слышал от таких программах: MARLOWE, CRISTAL-TRIM, TRIM, TRIM.SP, TRIDYN, DYTRIRS, ACAT-DIFFUSE? Может есть у кого?
С помощью эти программ промоделированы процессы соударения частиц на мишени при ионном облучении.
Хотелось бы посмотреть исходный код. Есть описание на английском для некоторых из них, но где скачать так и не нашел...
|
nix_c, это крайне специфическое ПО, широко известное в узких кругах. К сожалению ничем не могу помочь, кроме как советом найти эти самые узкие круги.
Подключайте научного руководителя и его связи. Это действительно узкая специальность и тут надо знать ключевых людей и ключевые слова. Первый, кто в этом может помочь -- науч.рук. + институты и кафедры профильного направления. Это, к сожалению, ищется даже не за неделю человеком со стороны, например меня.
|
Цитата:
Цитата lxa85
nix_c, это крайне специфическое ПО, широко известное в узких кругах. К сожалению ничем не могу помочь, кроме как советом найти эти самые узкие круги. »
|
Да. я понимаю это. Просто нет людей хорошо разбирающихся в этом.
|
Цитата:
Цитата nix_c
Просто нет людей хорошо разбирающихся в этом. »
|
Кто знает...???...
Ступайте со своей проблемой на Научный форум dxdy в раздел Физика
http://dxdy.ru/fizika-f2.html
|
SRIM(The Stopping and Range of Ions in Matter), на основе TRIM(Transport of ions in matter) оказывается используется при вычислении радиационного поражения материалов. Возможно будет полезен и в данной задаче.
ПО бесплатное, моделирует процесс разлета частиц на основе метода Монте-Карло.
C marlovare сложно. Больно старая разработка, сайт разработчика не доступен.
Собственно все остальное ПО будет носить схожий характер, за некоторой спецификацией.
Везде (ну или почти везде) использован метод Монте-Карло.
|
Время: 19:26.
© OSzone.net 2001-