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

2.4. Текущие возможности МДД для очень больших частиц*

В этом разделе продемонстрированы возможности МДД для моделирования светорассеяния частицами много бóльшими чем длина волны падающего света, и представлена общедоступная компьютерная программа для проведения этого моделирования. Приведены результаты моделирования для шаров с размерными параметрами x до 160 и 40 для показателя преломления m = 1.05 и 2 соответственно и сравнены с точными результатами теории Ми. Ошибки и интегральных, и разрешённых по углу измеряемых характеристик в целом увеличиваются с m, но не имеют систематической зависимости от x. Время вычисления резко увеличивается и с x, и m, достигая величины более двух недель на кластере из 64 процессоров. Основной отличительной чертой этой программы является возможность параллелизовать одиночное вычисление, разделяя его между многими процессорами, что и позволяет моделировать светорассеяния настолько большими частицами. Мы также обсуждаем текущие ограничения и пути улучшения.

2.4.1. Введение

Существует несколько программ на основе МДД, а в этом разделе мы представляем новую программу, Amsterdam DDA (ADDA), которая недавно была размещена в свободном доступе [181]. Её отличительной чертой является возможность параллелизовать одиночное МДД моделирование, используя несколько процессоров, что позволяет моделировать очень большие частицы, как показано для нескольких тестовых задач в этом разделе. Проверка ADDA для рассеивателей порядка длины волны и сравнения с другими программами МДД приведено в разделе 2.5.

В подразделе 2.4.2 подробно описана компьютерная программа ADDA, и показаны её преимущества по сравнению с аналогами. Несколько тестовых задач рассмотрены в подразделе 2.4.3, результаты этого моделирования обсуждаются в подразделе 2.4.4, а ошибки сравниваются с известными результатами для меньших частиц. В подразделе 2.4.5 приведено заключение, и обсуждается дальнейшая работа.

2.4.2. Компьютерная программа ADDA

ADDA разрабатывалась в течение более 10 лет в Университете Амстердама [34,35,69]. При этом её основной характеристикой всегда была параллельность с

* Результаты данного раздела опубликованны в Yurkin M.A., Maltsev V.P., Hoekstra A.G. The discrete dipole approximation for simulation of light scattering by particles much larger than the wavelength. // J. Quant. Spectrosc. Radiat. Transf. – 2007. – V.106. – P.546-557.

99

разделением одной задачи на несколько процессоров в отличие, например, от программы DDSCAT (см. параграф 2.5.2.2), которая позволяет параллельное вычисление нескольких задач (например, разных ориентаций одной частицы), но ровно по одной на каждом процессоре. Поэтому ADDA не ограничена объёмом памяти одного компьютера, что позволяет использовать очень большое количество диполей. Автор данной диссертации существенно улучшил имеющуюся на тот момент программу, полностью переписав некоторые части и оптимизировав остальные. В результате скорость увеличилась в разы (данные не приведены), также кардинально улушились надёжность и удобство работы. Начиная с мая 2006 г., исходный код ADDA и документация свободно доступны [181].

Бóльшая часть ADDA соответствует стандарту ANSI C, что гарантирует переносимость на уровне исходного кода, в частности, программа полностью работает под Linux и любыми вариантами Windows. Параллелизация на несколько процессоров основана на геометрическом разделении рассеивателя и парадигме «одна программа – разные данные» (single-program-multiple-data), при этом для общения между процессорами используется стандарт MPI (message passing interface).* Используя MPI, ADDA также может работать на компьютерах с общей памятью, например, на многоядерных процессорах. Для вычисления БПФ, используемых при умножении матрицы на вектор в итерационном методе, используется либо подпрограмма Темпертона (Temperton) [182] либо более совершенный пакет программ FFTW 3 («Fastest Fourier transform in the West») [183]. Последний обычно значительно быстрее,

но его использования требует отдельной установки.

ADDA позволяет использовать одно из четырёх выражений для поляризуемости: KM, РИ, ДСР и ИДСР, и один из четырёх итерационных методов: СГНH, Би-СГСтаб, Би-СГ(КС) и КМН(КС). Критерий остановки итераций формулируется в терминах относительной L2-нормы невязки, которая должна быть меньше чем уровень εit,

величина которого по умолчанию εit = 105.

Обычно МДД формулируется в виде уравнения (22). Если тензор поляризуемости диагонален для всех диполей, то существует βi , такой что βi βi = αi , т.е. βi = αi .

Более того тогда βi комплексно симметричный, как и матрица с элементами

* http://www.mpi-forum.org

100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I,

 

 

 

 

 

 

i = j,

 

Aij

=

 

 

 

 

 

 

 

 

(171)

β

G

 

β

 

, i

j,

 

 

ij

j

 

 

 

 

 

i

 

 

 

 

 

где A это как раз матрица взаимодействия, используемая в ADDA, т.е. решается следующая система линейных уравнений:

 

ij x j = xi

 

i

 

ij

 

j x j =

 

i Eiinc ,

 

A

β

G

β

β

(172)

j

 

ji

 

где xi = βi1Pi это новый вектор неизвестных. Уравнение (172) можно также получить предобусловливанием Якоби с сохранением комплексной симметричности матрицы. Однако мы не исследовали насколько это предобусловливание влияет на сходимость итерационного метода. Важно отметить, что МДД не ограничен диагональной или симметричной поляризуемостью – можно использовать любой тензор, но при этом матрица может быть не комплексно симметричной, следовательно КМН и Би-СГ будут менее эффективны.

С помощью ADDA можно усреднять любую измеряемую характеристику по трём углам Эйлера (α, β, γ), описывающим ориентацию частицы. Усреднение по углу α производится путём единственного вычисления внутреннего поля и дальнейшего вычисления индикатрисы рассеяния в различных плоскостях, что относительно быстро. Усреднение по остальным двум углам производится независимым моделированием для каждой ориентации. Само усреднение проводится с помощью метода интегрирования Ромберга [184], который может использоваться адаптивно (т.е. автоматически моделировать необходимое количество ориентаций до достижения заданной точности), но ограничивает возможное количество значений для каждого угла Эйлера числами вида 2p + 1, где p целое. Интервалы углов Эйлера можно сократить при наличии определённых симметрий рассеивателя, что ускоряет вычисления.

Другие возможности ADDA включают: моделирование рассеяния сфокусированного гауссова пучка [69], система контрольных точек для разделения длинных вычислений на несколько частей, вычисление силы излучения, действующей на каждый диполь [36], использование вращательной симметрии для сокращения вычислений вдвое и богатый интерфейс командной строки. Также в ближайшем будущем планируется добавить некоторые другие возможности, такие как большой набор готовых форм частиц.

Есть несколько факторов, почему вычислительная эффективность ADDA превосходит все аналоги. Во-первых, используемый пакет программ FFTW 3 автоматически приспосабливается к конкретным аппаратным средствам, и поэтому

быстрее большинства аналогов. Более того ADDA выполняет трёхмерное БПФ не за

101

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