Member
Статус: Не в сети Регистрация: 27.08.2008 Откуда: из Бобруйска!!!
Добрый день. Понимаю, что вопрос очень специфичный, но может люди с опытом подскажут чем лучше будет воспользоваться? Просто ради интереса хочу попробывать написать свою програмку для расчета квантовых состояний. Для начала это будет будет атом водорода. Не программировал со времен 2 курса института и то там был старый добрый basic. Так что скорее всего придется все осваивать сначала. В этой связи прошу подсказать какой язык программирования будет оптимальным. Предполагаю, что не только буду расчитывать уровни энергии, но и визуализировать результаты расчетов.
Последний раз редактировалось Latency 05.04.2010 11:01, всего редактировалось 2 раз(а).
Member
Статус: Не в сети Регистрация: 20.05.2007 Откуда: Россия
Latency C++ и OpenCL вам в помощь. Для таких вычислений это самая оптимальная связка, так как изначально OpenCL разрабатывался под многоядерные системы, то написав программу один раз, её можно будет использовать на сколь угодно ядерном процессоре, задействовав при этом все 100% его вычислительной мощности. Аналогично и для видеокарт... Короче для научных расчётов это самое оптимальное и перспективное из всего что есть на данный момент.
Member
Статус: Не в сети Регистрация: 01.04.2005 Откуда: Москва
Latency писал(а):
Получается все-равно на чем программировать?
Программируйте на том, на чем можете. Постепенно выяснится, что именно надо и можно будет подбирать более эффективную среду. Я полагаю, Вы не первый. Не мешает попробовать поиск в старых "новостях", авось всплывет информация, чем и на чем такие задачи пытались решить.
Си или один из функциональных языков программирования таких как Haskell или Erlang. Ну и конечно OpenCL, CUDA диалекты. Почему функциональные ЯП? Ответ прост - лучше параллелятся и ближе к чистой математике.
Member
Статус: Не в сети Регистрация: 30.09.2006 Откуда: Ростов-на-Дону
Может, стоит использовать Matlab/Mapple или другое инженерное ПО? Там и математических функций много, и поверхности любые нарисует. Правда, я сам подобное ПО почему-то терпеть не могу. Я давно кванты учил... Я так понимаю, что ты хочешь построить орбитали? (сфера/гонтелька и т. д.)
_________________ Я знаю, что ничего не знаю. Но некоторые не знают даже этого!
Member
Статус: Не в сети Регистрация: 20.05.2007 Откуда: Россия
vo1 писал(а):
Может, стоит использовать Matlab/Mapple или другое инженерное ПО? Там и математических функций много, и поверхности любые нарисует. Правда, я сам подобное ПО почему-то терпеть не могу. Я давно кванты учил... Я так понимаю, что ты хочешь построить орбитали? (сфера/гонтелька и т. д.)
Матлаб хорош, но параллелится там всё отвратно. Лучше изначально использовать OpenCL + C++ правда при условии, что это что-то серьёзное. Для побаловаться matlaba-а хватит. Тем более там алгоритмы прогаются просто моментально.
Member
Статус: Не в сети Регистрация: 27.08.2008 Откуда: из Бобруйска!!!
начать можно и с несерьезного. Однако даже задача нахождения собственных функций атома водорода не решается аналитически. Как думаете это серьезно или нет? Учесть множественные взаимодействия между двумя электронами и двумя атомами при наличии свободных энергетических уровней. Эх был бы программистом - не спрашивал.
vo1 Для начала да орбитали. Просто хочу разобраться в математической стороне вопроса и пройти все шаги самостоятельно. От постановки задачи до ее практической реализации на ЭВМ.
yorka
Чет я видел, используют Matlab для этих целей, но почему то серьезные расчеты делают в виде отдельных модулей.
Advanced member
Статус: Не в сети Регистрация: 27.02.2007
Latency писал(а):
Добрый день. Понимаю, что вопрос очень специфичный, но может люди с опытом подскажут чем лучше будет воспользоваться? Просто ради интереса хочу попробывать написать свою програмку для расчета квантовых состояний. Для начала это будет будет атом водорода. Не программировал со времен 2 курса института и то там был старый добрый basic. Так что скорее всего придется все осваивать сначала. В этой связи прошу подсказать какой язык программирования будет оптимальным. Предполагаю, что не только буду расчитывать уровни энергии, но и визуализировать результаты расчетов.
Писать абсолютно все равно, на чем, тут главное алгоритм. Если будете визуализировать, то желательно использовать язык, для которого есть биндинги к графическим библиотекам...
Начать можно с матлаба.
Добавлено спустя 1 минуту 32 секунды:
Latency писал(а):
Чет я видел, используют Matlab для этих целей, но почему то серьезные расчеты делают в виде отдельных модулей.
Я бы не сказал, что расчет квантовых состояний на примере атома водорода уж больно серьезная задача... Вот если молекула, то да, уже ппц и ахтунг
_________________ Да не з0банят меня за это.. (С) Ребята, давайте жить дружно, иначе получите в морду. (С)
Member
Статус: Не в сети Регистрация: 21.05.2006 Откуда: Msk.Ru
Latency
короче слушайте и вникайте, повторять не буду. Лучшего, чем gamess/firefly/gaussian вы не выдумаете. В этой области все уже было придумано сорок лет назад. Хотите начинать, тогда начинайте на C++ в связке с opencl (поддерживается и куда, и ати, плюс кросплатформенность). Не хотите Opencl, берите просто куду, под нее примеров море. Будущее реально за многопоточными GPU ускоренными вычислениями.
вопросы жду.
_________________ Обсуждение моих материалов тут: http://forums.overclockers.ru/viewtopic.php?f=58&t=361985
Последний раз редактировалось iliapan 04.09.2010 20:33, всего редактировалось 1 раз.
только сначала моделирование в матлабе, потом уже с++/куда со сравнением полученных результатов с матлабом. отслеживать ошибки, которые могут быть как в формулах, так и в коде - крайне сомнительное удовольствие
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения