вторник, 12 марта 2013 г.

cmspectra - Science program for Messbauer spectroscopy. - Google Project Hosting

cmspectra - Science program for Messbauer spectroscopy. - Google Project Hosting:
"Calculating(fitting) of a Messbauer spectra. Plotting probability distributions of messbauer subspectra."

Исходники выложены моим товарищем и коллегой (непосредственным разработчиком программы), чтобы не пропало. Для всех желающих попробовать обработать мёссбауэровские спектры, сделать свои замечания, улучшить. Бинарники, исходники и документацию можно скачать здесь.


Описание программы CMspectra Probability Distribution (консольная версия)

возможности программы

Программа предназначена для обработки Мессбаэуровских спектров методом восстановления модельно-независимого распределения функции плотности вероятности. На данный момент программа умеет восстанавливать и генерировать распределения P(H), где H — сверхтонкое поле на ядре атома. Восстановление распределения по нескольким Мессбауэровским параметрам реализовано не полностью. Доступен только интерактивный просмотрщик трёхмерных поверхностей, а также просмотр трёхмерной поверхности в виде контурной карты. Пока что CMspectra работает в консольном режиме, а визуализация происходит в графическом OpenGL окне или отключается вовсе(смотрите ниже ключи командной строки). Для удобства работы с программой вычислительная часть работает в отдельном потоке, поэтому после запуска программы можно интерактивно взаимодействовать с окном визуализации или с консолью. В окно визуализации встроена справка(HELP). Для вызова справки нужно активировать окно визуализации и нажать клавишу H (латинскую). При повторном нажатии клавиши справка исчезает. В режиме просмотра трёхмерной поверхности можно вращать поверхность мышью. 

установка программы

Программа не требует специальной установки. Она запускается из той директории в которой находится. Доступны сборки программы для 32-х разрядных версий операционных систем Linux, и Windows. Так как программа консольная, то запускать её нужно из консоли. В операционной системе Linux консоль иногда называется терминалом. Запуск консоли в Linux Ubuntu : Приложения - >Стандартные->Терминал. В Windows: Пуск->Выполнить. В появившемся окне набираете cmd.exe, появляется консоль. Теперь нужно перейти в директорию, где находиться программа. Набираете в консоли команду cd .путь к папке с программой. Можно не набирать путь в ручную, а скопировать и вставить его мышью.

запуск программы

Для запуска CMspectra нужно передать ей параметры из консоли. Порядок параметров имеет значение. Первый параметр — это полный путь и имя спектра для обработки, или имя генерируемого спектра. Второй параметр это полный путь и имя файла с моделью обработки. Этот файл чаще всего называется model.ini. Следующий параметр — тип распределения. Ключ -d. На данный момент доступно только распределение P(H), поэтому набирать нужно -d=PH. Четвёртый параметр это тип формы линии подспектра. Сейчас реализована поддержка лоренцевой формы линии, как самой часто используемой, хотя добавить поддержку других форм линии не составляет особого труда. Ключ формы линии -l=Lorentz. Пятый параметр может различаться в зависимости от того, что вы хотите делать - обрабатывать спектр или генерировать спектр и распределение. Обработка спектра ключ -f, после которого нужно указать метод подгонки(метод минимизации). В CMspectra реализовано 4 метода минимизации: Direct (прямой пошаговый метод), Gradient (градиентный метод), LevenbergMarquardt (метод Левенберга-Маркардта), GaussNewton (метод Гаусса-Нютона). Градиентный метод и метод Левенберга-Маркардта в большинстве случаев не подходят для восстановления распределения. Первый из-за малого значения градиента по точкам распределения, что приводит к очень медленный сходимости. Второй требует задания довольно хорошего начального приближения, что чаще всего невозможно Тем не менее оба метода оставлены, потому что возможны случаи, когда и они могут быть полезны. Программа CMspectra оптимизирована по скорости. Иногда даже прямой метод минимизации считает достаточно быстро. Но как показывают испытания на сгенерированных спектрах, он не всегда находит решения лучше, чем метод Гаусса-Ньютона. В большинстве случаев метод Гаусса-Ньютона находит решения точнее. Для выбора метода минимизации Гаусса-Ньютона задаётся ключ -f=GaussNewton. Чтобы задать генерацию спектра и распределения задаётся ключ -g без параметров. При этом модель для генерации спектра задаётся из файла с моделью, а сгенерированный спектр и распределения отображаются в окне визуализации. Для отключения окна визуализации к строке параметров нужно добавить ключ -c . Программа сообщит, что запущена в консольном режиме. Для остановки программы, запущенной в консольном режиме, нужно нажать клавишу Enter в консоли. После запуска вычислений программа автоматически создаёт файл с расширением .save, который перезаписывается после каждой итерации. Этот файл содержит всё необходимое для возобновления приостановленных/прерванных вычислений. Что очень полезно при внезапном выключении компьютера(например при отключении электроэнергии). Для возобновления прерванных вычислений необходимо самым последним параметром указать ключ -b=имяфайла.save, где имяфайла — это имя файла обрабатываемого спектра. Если вы забыли какие параметры нужно передавать программе, то запустите CMspectra без параметров или с ключом -h.
Прерываем работу CMspectra и возобновляем её снова В случае передачи неправильных параметров программе или неправильного конфигурирования модели обработки программа выдаст в консоль сообщение об ошибке и тип ошибки. Если всё сделано правильно, то программа начнёт вычисления и в консоли появится «START FITTING». При этом в консоль выводятся некоторые характеристики подгонки. Это номер текущей итерации подгонки, нормированный «хи квадрат» спектра, ненормированный «хи квадрат» спектра, не нормированный «хи квадраты» каждого из распределений. По завершении каждой итерации результаты обработки сохраняются в файлы (запустите программу и посмотрите что это за файлы и какое у них содержимое). По завершению вычислений программа выдаст в консоли сообщение «FITTING FINISHED!!!».

'via Blog this'

Комментариев нет:

Отправить комментарий