Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
YurkinPhD.pdf
Скачиваний:
67
Добавлен:
28.03.2016
Размер:
4.03 Mб
Скачать

В подразделе 2.5.2 описаны четыре компьютерные программы на основе МДД, а в подразделе 2.5.3 обсуждаются детали и результаты сравнения. В подразделе 2.5.4 приводятся выводы об эффективности и особенностях программ.

2.5.2. Программы МДД

Несколько исследователей (или групп) реализовали МДД в виде программ для собственного использования. В дальнейшем некоторые из них стали доступны для других, либо свободно, либо на коммерческой основе. В данном разделе сравниваются четыре реализации МДД: коммерчески доступная SIRRI, общедоступные DDSCAT и ADDA, а также ZDD, который пока не доступен для широкой публики. Эти программы детально описаны в следующих параграфах.

2.5.2.1. SIRRI

Программа SIRRI основана на подходе эквивалентном ЛАК, разрабатывается компанией «Simulintu Oy» в Финляндии и написана на Фортране 90. Морфология рассеивателя считывается из файла, а все параметры вычислений считываются из специального файла, имеющего гибкий синтаксис на основе ключевых слов. Программа выделяет необходимую память динамически, поэтому не требуется компилировать её заново при изменении размера задачи. Система уравнений для изотропных частиц является комплексно симметричной, поэтому для её решения используется КМН(КС). Для умножения матрицы на вектор используются подпрограммы БПФ из математической библиотеки IMSL.* В текущей версии индикатриса вычисляется только в одной плоскости для каждой частицы, однако, как обсуждается для программы ZDD (см. параграф 2.5.2.3), вычисление в нескольких плоскостях увеличило бы эффективность усреднения по ориентации.

2.5.2.2. DDSCAT

Программа DDSCAT написана Дрейном и Флато [47] на Фортране 77 и полностью переносима (машинонезависима). Текущая версия 6.1 [142], исходный код и подробная документация общедоступны.Программа может автоматически создавать дискретизацию определённых стандартных форм: шаров, сфероидов, эллипсоидов, параллелепипедов, тетраэдров, цилиндров, гексагональных призм и др. В дополнение к этому пользователь может задать любую форму во входной файле. DDSCAT может

* http://www.absoft.com/Products/Libraries/imsl.html

http://www.astro.princeton.edu/~draine/

114

работать с анизотропным диэлектрическим тензором и рассеивателями из нескольких материалов.

Параметры задачи светорассеяния (форма, размер, и ориентация частицы и набор характеристик, которые требуется вычислить) считываются из файла, а в другом файле задаётся таблица диэлектрической проницаемости или показателя преломления как функция длины волны – DDSCAT автоматически интерполирует значение для конкретной длины волны, указанной в файле с параметрами.

В DDSCAT имеется два варианта БПФ: GPFA [182,188] или FFTW 2.1 [183], и два варианта итерационного метода: предобусловленный по Якоби Би-СГСтаб из пакета параллельных итерационных методов (PIM), созданного да Кунхой (da Cunha) и Хопкинсом (Hopkins), и реализация СГНО Петравича (Petravic) и Куо-Петравич (KuoPetravic) [189]. Все необходимые подпрограммы входят в распространяемый пакет DDSCAT. Версия 6.1 поддерживает MPI и может одновременно решать несколько задач (например, различные ориентации частицы или длины волн) на нескольких процессорах.

2.5.2.3. ZDD

Программа ZDD разрабатывается в Астрономическом институте Харьковского национального университета [119,190,191] Зубко и Шкуратовым с 1999 г. Она написана на C++ и легко переносима. Для поляризуемости диполей используется ДСР, а для умножения матрицы на вектор с 2001 г. используется БПФ. В качестве итерационного метода возможно использование Би-СГСтаб или метода эквивалентного Би-СГ(КС), последний использовался в данном разделе.

Аналогично DDSCAT и ADDA, ZDD вычисляет индикатрису в нескольких плоскостях для каждой ориентации частицы – эти вычисления относительно быстры и улучшают точность итоговых результатов. В приведённых вычислениях использовалось по четыре равномерно расположенные плоскости рассеяния. Большинство переменных представлены в одиночной точности, однако промежуточные коэффициенты в итерационном методе вычисляются в двойной точности, что частично исправляет замедление сходимости из-за накопления ошибок округления без существенного увеличения требований к памяти.

ZDD может работать на кластере персональных компьютеров, распределяя отдельные задачи аналогично DDSCAT. При этом параллелизация производится на уровне скриптов – каждый процессор работает независимо, а после обрабатываются результаты из всех выходных файлов. Все выходные данные сохраняются в бинарном

115

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]