2. Субиерархический параллельный алгоритм решения уравнения

реклама
_________________________________________________________________________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Федеральное агентство по образованию
____0_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Государственное образовательное учреждение
высшего профессионального образования
«Пензенский государственный университет»
УДК 517.6
ВГК ОКП
№ госрегистрации
Инв. №
«Утверждаю»
Ректор Пензенского государственного
университета д.т.н., профессор
Волчихин В.И.
______________________________
10 ноября 2008г.
ОТЧЕТ О НАУЧНО-ИССЛЕДОВАТЕЛЬСКОЙ РАБОТЕ
«Web-ориентированный вычислительный комплекс для решения
трехмерных векторных задач дифракции электромагнитных волн на
основе субиерархических параллельных алгоритмов и GRID
технологий»
по
теме
"Развитие,
исследование
и
внедрение
средств
высокопроизводительных вычислений на основе технологий Грид с
поддержкой
гетерогенных,
территориально-распределенных
вычислительных комплексов" шифр 2007-СГ-01
ПО ГОСУДАРСТВЕННОМУ КОНТРАКТУ
от 16 июля 2007 г. № СГ-2/07
в рамках научно-технической программы Союзного государства
«Разработка и использование программно-аппаратных средств Гридтехнологий
перспективных
высокопроизводительных
(суперкомпьютерных) вычислительных систем семейства «СКИФ»
(шифр «СКИФ-ГРИД»).
вид отчета: итоговый
этап: 5
Научный руководитель: ____________д.ф.-м.н., профессор Ю.Г. Смирнов
Пенза 2008
СПИСОК ОСНОВНЫХ ИСПОЛНИТЕЛЕЙ
Научный руководитель,
зав.каф. МиММ ПГУ
д.ф.-м.н., профессор
Смирнов Ю.Г.
Исполнители темы
доц. каф. МиММ ПГУ, к.ф.-м.н.
Цупак А.А.
доц. каф. МиММ ПГУ, к.ф.-м.н.
Медведик М.Ю.
доц. каф. МиММ ПГУ, к.ф.-м.н.
Куприянова С.Н.
асс. каф. МиММ ПГУ
Родионова И.А.
доц. каф. ВТ ПГУ, к.т.н.
Антонов А.В.
асп. каф. МиММ ПГУ
Миронов Д.А.
асс. каф. МиММ ПГУ, к.ф.-м.н.
Долгарев И.А.
асп. каф. МиММ ПГУ
Валовик Д.В.
доц. каф. ВТ ПГУ, к.т.н.
Федюнин Р.Н.
Нормоконтролер
Документовед каф. МиММ
Петросян О.В.
2
РЕФЕРАТ
Отчет содержит 173 страниц, 47 рисунков, 6 таблиц, 43 использованных источника,
0 приложений.
КЛЮЧЕВЫЕ
СЛОВА:
ИНТЕГРАЛЬНЫЕ
АЛГОРИТМЫ
КРАЕВЫЕ
УРАВНЕНИЯ,
И
ЗАДАЧИ
ЧИСЛЕННЫЕ
ПАРАЛЛЕЛЬНЫЕ
ЭЛЕКТРОДИНАМИКИ,
МЕТОДЫ,
ВЫЧИСЛЕНИЯ,
ПАРАЛЛЕЛЬНЫЕ
ВЫЧИСЛИТЕЛЬНЫЙ
КЛАСТЕР
Целью проекта является создание web-ориентированного вычислительного комплекса
для решения трехмерных векторных задач дифракции электромагнитных волн на
магнитодиэлектрических телах и проводящих экранах произвольной формы на основе
подхода,
объединяющего кластерные и GRID-технологии. Реализация кластерной
составляющей комплекса на суперкомпьютерах семейства СКИФ, а метакомпьютерной
на вычислительных ресурсах СКИФ-ГРИД полигона.
В том числе, цель и задачи проекта для 5 этапа:
1. Обобщение результатов предыдущих этапов работ. Оценка полноты решения задач и
эффективности полученных результатов в сравнении с современным научно-техническим
уровнем.
2. Проведение дополнительных исследований, в том числе патентных.
3. Оценка возможности создания конкурентоспособной продукции и услуг и разработка
рекомендаций по использованию результатов.
4. Составление итогового отчета и его рассмотрение.
Метод исследования – решение сложных задач математической физики с
использованием параллельных алгоритмов на суперкомпьютерах семейства СКИФ, а
также с использованием вычислительных ресурсов СКИФ-ГРИД полигона.
Результаты работы:
-
разработаны,
программно
реализованы
и
тестированы
параллельные
субиерархические алгоритмы для решения задач дифракции электромагнитных волн на
3
неоднородных анизотропных магнитодиэлектрических телах и проводящих экранах
произвольной формы;
- разработаны, программно реализованы и тестированы параллельные вычислительные
алгоритмы для решения систем линейных алгебраических уравнений специального
типа (блочно-теплицевых систем уравнений);
- созданы базы данных матричных элементов для задач дифракции;
- разработаны, программно реализованы и тестированы программы-оболочки для
пользователей с целью выбора геометрии задачи, электродинамических параметров;
- разработаны, программно реализованы и тестированы программы для формирования
системы линейных алгебраических уравнений (для конкретной задачи) из базы данных
матричных элементов (канонической задачи);
- разработаны, программно реализованы и тестированы параллельные вычислительные
алгоритмы для решения систем линейных алгебраических уравнений с большими
плотными матрицами специального типа;
- созданы справочные базы данных.
В том числе, полученные результаты на 5 этапе:
- проведены масштабные вычислительные эксперименты на суперкомпьютере Т-60 в
НИВЦ МГУ;
- обобщены результаты предыдущих этапов работ; оценена полнота решения задач и
эффективность полученных результатов в сравнении с современным научнотехническим уровнем;
- проведены дополнительные патентные исследования (имеется 1 патент);
- оценена
возможность
создания
конкурентоспособной
продукции
и
услуг
и
разработаны рекомендации по использованию результатов работ.
При этом обеспечены следующие технико-эксплуатационные характеристики:
- телекоммуникационный доступ на сервер Регионального центра суперкомпьютерных
вычислений и телекоммуникационных баз данных коллективного пользования
Пензенского
государственного
университета
для
удаленного
пользователя
с
возможностью решать задачу в режиме on-line;
- телекоммуникационная связь сервера Регионального центра ПГУ с вычислительным
кластером НИВЦ МГУ для подключения его к решению задачи в режиме
метакомпьютинга (используя свободные процессоры);
4
- открытость системы к расширению круга решаемых задач, допускающую
возможность дополнений и модификаций.
Индикаторы (в соответствии с ТЗ).
Перечень разработанных и тестированных программных средств:
- базы данных матричных элементов для задач дифракции;
- программы-оболочки и интерфейсные программы для пользователей с целью выбора
геометрии задачи, электродинамических параметров;
- программы для формирования системы линейных алгебраических уравнений (для
конкретной задачи) из базы данных матричных элементов (канонической задачи);
- программы для решения систем линейных алгебраических уравнений с большими
плотными матрицами специального типа.
Степень внедрения. Программно реализованы и тестированы параллельные
субиерархические вычислительные алгоритмы для решения численными методами
задач дифракции электромагнитных волн на
идеально проводящих экранах и
неоднородных анизотропных диэлектрических (или магнитных) телах.
Область применения. Разработанные алгоритмы и программы могут быть
использованы при решении векторных задач электродинамики и при математическом
моделировании сложных электродинамических процессов и объектов.
Экономическая эффективность или значимость работы. Решение сложных
векторных задач электродинамики на вычислительном кластере с помощью
параллельных алгоритмов является наиболее эффективным и дешевым способом
решения таких задач. Значение работы состоит в том, что векторные задачи
электродинамики могут быть решены без привлечения дорогостоящей вычислительной
техники (например, суперкомпьютеров типа CRAY).
Прогнозные
предположения
о
развитии
объекта
исследования.
Разработанный Web-ориентированный вычислительный комплекс для решения
трехмерных
векторных
задач дифракции
электромагнитных
волн
на основе
субиерархических параллельных алгоритмов и GRID-технологий может служить
прототипом для создания других аналогичных вычислительных систем в различных
областях науки и техники.
5
СОДЕРЖАНИЕ
Введение
7
1. Решение уравнения электрического поля
12
1.1.
Постановка задачи
12
1.2. Свойства решений уравнений электрического поля
14
2. Субиерархический параллельный алгоритм решения уравнения
электрического поля
17
2.1. Метод Галеркина
17
2.2
Субиерархический параллельный вычислительный алгоритм
22
3. Метод объемного сингулярного интегрального уравнения для исследования
электромагнитной задачи дифракции на диэлектрическом теле
33
3.1. Метод объемных интегральных уравнений для решения задачи дифракции 33
3.2. Постановка задачи для системы уравнений Максвелла
34
3.3. Объемное сингулярное интегральное уравнение
35
3.4. Метод Галеркина
37
3.5. Вычисление интегралов
41
3.6. Параллельный алгоритм формирования канонической матрицы
44
4. Реализация численного метода решения задач дифракции
45
4.1. Особенности реализации метода решения систем линейных
алгебраических уравнений с блочно-теплицевыми матрицами
45
4.2. Параллельный алгоритм решения систем линейных
алгебраических уравнений с блочно-теплицевыми матрицами
49
4.3. Нормировка электродинамических параметров, падающее
поле и поляризация
53
5. Численные результаты решения уравнения электрического поля
55
6. Описание Web-ориентированного вычислительного комплекса
69
6.1. Выбор электродинамических параметров и геометрии задачи
69
6.2. Получение результатов расчетов. Примеры расчетов
73
6.3. Справочные базы данных
78
7. Схема работы на СКИФ-ГРИД полигоне
82
8. Статистика решения задачи на кластере
86
9. Программные модули
88
Заключение
166
Список использованных источников
169
6
ВВЕДЕНИЕ
Дадим краткую характеристику современного состояния решаемой научнотехнической проблемы и исследований в данной области в Российской Федерации и
за рубежом.
Современное состояние электроники СВЧ (сверхвысоких частот) характеризуется
продолжающейся микроминиатюризацией устройств СВЧ и переходом ко все более
высоким частотам (1-10 Ггц и выше) и, соответственно, коротким волнам, на которых
работают эти устройства. Соотношение характерных размеров этих устройств и
«рабочей» длины электромагнитной волны в них – сопоставимые по порядку
величины, то есть устройства работают в резонансном диапазоне частот. Это и чипы
компьютеров и иной электронной техники, и печатные антенны, и бытовые и
промышленные печи СВЧ, и многочисленные другие устройства. Конструирование и
расчет таких устройств уже не может быть выполнен традиционными методами (на
основе решения задач электродинамики в длинноволновом или коротковолновом
приближении), и приводит к необходимости решать задачи на электродинамическом
уровне строгости, по-существу, решать краевую задачу для системы уравнений
Максвелла. Однако на сегодняшний день это практически невозможно даже на самых
быстродействующих компьютерах. Единственную возможность для решения этой
сложнейшей задачи с приемлемой на практике точностью открывает использование
новейших математических методов решения векторных задач электродинамики и
решение задачи на вычислительных кластерах (или суперкомпьютерах) на основе
кластерных
технологий
(параллельных
вычислений).
Многочисленные
пакеты
прикладных программ для решения задач электродинамики (Ansis, Quikwave, и т.д.),
имеющиеся на рынке программных продуктов, не используют кластерных технологий,
решают задачу традиционными конечно-разностными методами или методами
конечных элементов и не дают удовлетворительных по точности результатов
(например, не позволяют рассчитать токи в проводниках многослойных плат,
используемых в чипах).
Основанием для проведения данной НИР, выполняемой в рамках научнотехнической программы Союзного государства «Разработка и использование
программно-аппаратных
средств
Грид-технологий
перспективных
высокопроизводительных (суперкомпьютерных) вычислительных систем семейства
«СКИФ»
(шифр
«СКИФ-ГРИД»),
является
7
Государственный
контракт
от
16 июля 2007 г. № СГ-2/07.
Необходимость
факторами.
проведения
данной
НИР
обосновывается
следующими
Решение трехмерных векторных задач дифракции является в настоящее
время одной из самых актуальных проблем в электродинамике. Решение этих задач с
приемлемой для практики точностью на электродинамическом уровне строгости
математическими методами требует очень большого объема вычислений и часто
невозможно даже на самых современных компьютерах. Особенно остро стоит
проблема решения задач дифракции на сложной системе поверхностей и тел в
резонансном диапазоне частот. При решении краевых задач в неограниченных
областях конечно-разностные методы и методы конечных элементов встречают
принципиальные трудности: область, в которой решается задача, должна быть сделана
конечной. Такая редукция области приводит к появлению неконтролируемой ошибки,
причем размеры области для ее уменьшения должны быть достаточно велики.
Конечно-разностные методы и методы конечных элементов в такой ситуации обычно
приводят к очень большим, но разреженным матрицам (порядка 10 9 и более). В
качестве альтернативного метода решения задач в неограниченных областях
применяется метод интегральных или интегродифференциальных уравнений. В этом
случае задача сводится к интегральному или интегродифференциальному уравнению в
области неоднородности, которая по размерам существенно (на порядки) меньше
области решения задачи, в случае применения конечно-разностных методов и методов
конечных элементов. После дискретизации получается конечномерная система
уравнений с плотной (заполненной) матрицей. Таким образом, второй путь приводит к
необходимости решать системы уравнений с плотными матрицами, но существенно
меньших порядков (103-104).
Существует много алгоритмов и пакетов прикладных программ, реализующих
процедуру
численного
решения
интегральных
или
интегродифференциальных
уравнений. Однако, при этом, во-первых, не учитываются последние достижения в
области исследования таких классов уравнений и численных методов их решения, и, вовторых, не учитывается специфика решения таких задач методами параллельных
вычислений на кластере. Точнее, матрицы систем линейных алгебраических уравнений,
возникающие при применении численных методов типа метода Галеркина, имеют
специальную
блочно-теплице-ганкелевую
структуру,
а
элементы
матрицы
формируются в результате счета интегралов, вычисление которых может быть
осуществлено независимо и параллельно. Учет этих факторов делает возможным и
8
актуальным применение методов параллельных вычислений для решения трехмерных
векторных задач электродинамики на вычислительном кластере.
Предлагаемые подходы к решению задач дифракции соответствуют мировому
научно-техническому уровню. В нашей стране и за рубежом ведутся разработки
новых, более эффективных математических методов и параллельных алгоритмов для
решения задач дифракции на вычислительных кластерах. Коллектив авторов проекта
под руководством Смирнова Ю.Г. на протяжении последних 5 лет разрабатывает
оригинальную технологию решения задач электродинамики параллельными методами
на кластерах на основе предложенного субиерархического подхода. Предложенный
подход
показал
высокую
эффективность
и
возможность
решать
указанные
электродинамические задачи с приемлемой точностью. Результаты исследований
опубликованы в центральных российских и зарубежных журналах, докладывались на
международных конференциях и симпозиумах (Warsaw, Poland, 2004; Karlstad, Sweden,
2005; Moscow, Russia, 2005; Progress in Electromagnetics Research Symposium:
Hangzhou, China, 2005; Cambridge, USA, 2006; Tokyo, Japan, 2006). Авторам проекта не
известны какие-либо аналогичные результаты в России и за рубежом по решению
указанного круга задач.
В соответствии с п.4 Технического Задания проведены патентные исследования в
рамках данного проекта.
Решение трехмерных векторных задач является в настоящее время одной из самых
актуальных проблем в электродинамике. Решение этих задач с приемлемой для
практики точностью математическими методами требует очень большого объема
вычислений и часто невозможно даже на самых современных компьютерах. Особенно
остро стоит проблема решения задач дифракции на сложной системе поверхностей и
тел в резонансном диапазоне частот. В этом случае приходится решать (часто
плохообусловленные) комплексные системы линейных алгебраических уравнений
порядка от 10000 до 100000 с заполненными матрицами. Существует ряд алгоритмов и
пакетов прикладных программ, реализующих процедуру численного решения этих
задач. Однако при этом не в полной мере учитываются последние достижения в
области исследования таких классов задач и численных методов их решения и не
учитывается специфика решения таких задач методами параллельных кластерных
вычислений.
9
Точнее, матрицы систем линейных алгебраических уравнений, возникающие при
применении численных методов типа метода Галеркина или коллокации, имеют
специальную структуру:
-
они
не
являются
симметричными
или
самосопряженными,
но
имеют
комплексносимметричные (несамосопряженные) блоки, соответствующие объемным
или граничным уравнениям, входящим в состав системы операторных уравнений;
- имеют определенную симметрию, отвечающую трехмерному векторному характеру
задачи;
- элементы матрицы формируются в результате счета некоторых интегралов,
вычисление которых может быть осуществлено независимо и параллельно;
- допускают выделение сравнительно простой "главной части" матрицы, отвечающей
главной части оператора задачи, и позволяют на этой основе осуществить
предобуславливание системы линейных алгебраических уравнений.
Новизна темы проекта заключается в совместном применении субиерархического
подхода и параллельных алгоритмов к решению задач электродинамики, а также
кластерных и Web-ориентированных технологий. Свойства интегродифференциальных
операторов в уравнениях позволяют применять субиерархические методы для
численного решения уравнений. Суть субиерархических методов состоит в следующем.
Первоначально
решается
задача
для
некоторой
канонической
геометрии
(прямоугольник, параллелепипед). При этом основное время счета (до 90-98%)
приходится на вычисление интегралов в методе Галеркина, то есть на формирование
(канонической) матрицы системы линейных алгебраических уравнений (и лишь 2-10%
времени счета – на решение этой системы). Затем для решения задачи с другой
(произвольной) геометрической фигурой, целиком содержащейся в канонической,
матрица системы линейных
алгебраических
уравнений формируется выбором
соответствующих элементов из канонической матрицы без повторного счета этих
элементов. Таким образом, время счета задачи сокращается на 1-2 порядка. Применение
субиерархических методов позволяет создать «полуфабрикат» - базу данных
матричных элементов – для решения серии задач дифракции на поверхностях и телах
различной формы, и затем построить на основе этой базы данных пакет прикладных
программ для пользователей. Сочетание субиерархических методов и параллельных
вычислительных алгоритмов приводит к возможности эффективного решения
указанного круга задач электродинамики.
10
Для
осуществления
такой
возможности
необходимо
создать
Web-
ориентированный вычислительный комплекс для решения трехмерных векторных
задач
дифракции
электромагнитных
волн
на
основе
субиерархических
параллельных алгоритмов и GRID технологий, позволяющий решать задачи
дифракции в режиме on-line на суперкомпьютерах семейства «СКИФ», используя уже
созданные базы данных матричных элементов.
Имеется
работами,
связь
данной
выполняемыми
работы
авторским
с
другими
коллективом.
научно-исследовательскими
Фундаментальные
основы
построения субиерархических параллельных вычислительных алгоритмов для решения
широкого круга задач электродинамики исследуются коллективом авторов в рамках
проекта РФФИ №06-07-89063.
На 4 этапе «Корректировка
исследований» в
моделей и опытных образцов по результатам
ходе выполнения проекта были программно реализованы и
тестированы параллельные вычислительные алгоритмы решения задач дифракции на
неоднородных анизотропных диэлектрических (или магнитных) телах. Одним из
наиболее эффективных методов решения задач дифракции является метод, основанный
на сведении задачи к системе интегродифференциальных (объемных сингулярных
интегральных) уравнений. Метод использован совместно с методами параллельных
вычислений для решения трехмерных векторных задач электродинамики на
вычислительном кластере.
Для решения систем линейных алгебраических уравнений, возникающих в задачах
дифракции используются методы решения теплицевых систем. Наиболее эффективным
для данного класса задач является параллельный алгоритм метода сопряженных
градиентов
для
систем
линейных
алгебраических
уравнений
с
матрицами,
представленными суммой двухуровневых и трехуровневых матриц, одна из которых
имеет блочно-теплицеву структуру, а другая легко вычисляется и не требует хранения в
памяти компьютера.
Разработаны схемы решения задач с помощью ГРИД-технологий на СКИФ-ГРИД
полигоне.
11
1. РЕШЕНИЕ УРАВНЕНИЯ ЭЛЕКТРИЧЕСКОГО ПОЛЯ
1.1. Постановка задачи
Пусть
  R 2  x3  0  R3 -
ограниченная
область
с
кусочно-гладкой
границей Г , состоящей из конечного числа простых дуг класса С  , сходящихся под
углами, отличными от нулевого. Задача дифракции стороннего монохроматического
электромагнитного поля E 0 , H 0 на бесконечно тонком идеально проводящем экране
,
расположенном
в
свободном
k , k 2  2(  i1), Im k  0 (k  0) ,
пространстве
состоит
в
с
волновым
определении
числом
рассеянного
электромагнитного поля
E , H  C 2 ( R 3 \  )  C ( R3 \ Г  )  C ( R3 \ Г  )
0
(1.1)
 0
удовлетворяющего однородным уравнениям Максвелла
RotH  ikE,
(1.2)
RotE  ikH , x  R3 \ 
краевым
условиям
для
касательных
составляющих
электрического
поля
на
поверхности экрана
E |   E0 |
(1.3)
условиям конечности энергии в любом ограниченном объеме пространства
E , H  L2loc ( R3 )
(1.4)
и условиями на бесконечности
E, H  o(r 1 ), r :| x |  при Im k  0
(1.5)
H  er  E  o(r 1), E  er  H  o(r 1),
E, H  O(r 1), r   при Im k  0
(условия Сильвера - Мюллера [3]). Здесь
произведение;
Г  : x :| x  y | , y  Г .
(1.6)
er  x / | x |,  - означает векторное
Электромагнитные
поля
гармонически
зависят от времени (множитель exp( it ) опущен),   0 - круговая частота,
  0,   0 - диэлектрическая и магнитная проницаемости,   0 проводимость среды.
Для полного поля E полн.  E 0  E, H полн.  H 0  H .
Будем предполагать, что все источники падающего поля находятся вне экрана
 так, что для некоторого   0
12
E 0  C  ( ),   x :| x  y | , y  
(1.7)
откуда следует, что
E0 |C  ( )
(1.8)
Обычно падающее поле - это либо плоская волна, либо электрический или
магнитный диполь [2], расположенный вне  . В этих случаях условия (1.7), (1.8)
выполнены. Поле E 0 , H 0 является решением системы уравнений Максвелла в
свободном пространстве без экрана.
Определение 1 Решение E, H задачи (1.2)-(1.6), удовлетворяющее условию (1.1), будем
называть квазиклассическим.
Такое название обусловлено тем, что, во первых, как и в классической
постановке, разыскивается гладкое, непрерывное вплоть до  (с каждой стороны)
решение, а, во-вторых, в (1.1)-(1.6) не конкретизируется поведение решения в
окрестности Г , ставится общее условие (1.4) (решение не будет непрерывным вплоть
до  ; в окрестности Г функции E, H имеют особенность). Часто условие (1.4)
заменяется более жестким условием Мейкснера [7], указывая порядок особенности
компонент поля в окрестности «ребра». Но в окрестности угловых точек границы Г
такие условия неизвестны (они будут обсуждаться далее).
Условия (1.6) на бесконечности эквивалентны условиям Зоммерфельда ( Im k  0, k  0 )
E
 E
   ik    o(r 1 ),
r  H 
H 
E
   O(r 1 ), r  ,
H
которые иногда легче проверить. Доказательство этого утверждения имеется в [3].
Условия (1.5), (1.6) выполняются равномерно по всем направлениям er .
Имеет место [1] утверждение о единственности для поставленной задачи.
Утверждение 1
Задача (1.1) – (1.6) при Im k  0, k  0 имеет не более одного решения.
Заметим, что утверждение сохраняет силу и для системы из конечного числа
непересекающихся экранов.
13
1.2. Свойства решений уравнений электрического поля
В дальнейшем нам понадобятся результаты из [1] о свойствах решений
уравнения электрического поля. Ниже кратко приведем основные результаты о
разрешимости задачи (1.1) – (1.6). Для изучения задачи дифракции на экране  введем
векторное пространство распределений W . Положим для любого вещественного s [8]

 
H s  : u | :u  H s R 2 ,

 

~
H s   : u  H s R 2 : supp u   .
 
Скалярное произведение и норма в H s R 2 определяется обычным образом
u, v s  
2
u
s

2s
_____
uˆ   vˆ  d ,

 u, u s ;
 : 1  

2 1/ 2
.
Здесь и всюду ниже, где не указанна область интегрирования, подразумевается
~
интеграл по R 2 . H s   является (замкнутым) подпространством H s R 2 с
 
~
индуцированными скалярным произведением и нормой. Далее, H s    H s R 2  / H   ;
в
H s  
вводится
скалярное
произведение
и
норма
факторпространства.
~
~
Пространства H s  и H s   антидвойственны друг к другу при всех s  R ; H s  
 
можно получить замыканием C0   в пространстве H s R 2 [8].
В дальнейшем нас будут интересовать главным образом пространства вектор-функций,
поэтому через u, v будем обозначать векторы u  u1 , u2  , v  v1 , v2  и т.д. При этом в
T
записи
T
u  H s , H s уже понимается как декартово произведение двух экземпляров
пространства H s со скалярным произведением и нормой
u, v s  u1 , v1 s  u 2 , v2 s  
u
2
s
 u1
2
s
 u2
2
s
 
2s

2s
_____
uˆ    vˆ  d ,
uˆ   d .
2
Сохраним те же обозначения для пространств в векторном случае, так как во всех
ситуациях из контекста ясно о каком пространстве идет речь.
Определим гильбертово пространство W  W   как пополнение C0   по норме
u
2
W

1

2
uˆ   d  
со скалярным произведением
14
1

2
  uˆ   d
u, v W  
1

_____
uˆ    vˆ d  
1 
 _____  
   uˆ     vˆ  d ,
 


где û обозначает преобразование Фурье распределения u .
Наиболее естественным и эффективным способом решения задач (1.1) – (1.6)
является представление полей E, H с помощью векторного потенциала


E  ik 1 Grad div A1u   k 2 A1u ,
(1.9)
H  Rot  A1u  ;
A1u 

Вектор u  u1, u 2

T
(1.10)
ik x  y
1 e
 x  y u y dy;
4 
x  x1, x2 , x3   R3 \  .
(1.11)
имеет смысл плотности тока на поверхности экрана  .
Будем предполагать, что
u W  
(1.12)
и u, div u  C1
(1.13)
Поскольку считаем, что выполнено условие (1.8), вектор u , как будет показано
ниже, является гладким (и даже - бесконечно дифференцируемым) во внутренних
точках  , поэтому сразу можно ввести некоторое дополнительное условие гладкости
для u во внутренних точках  ; (1.13) является наиболее простым, достаточным для
наших целей, условием такого рода. Отметим, что только условие (1.12) накладывает
ограничения на поведение u в окрестности границы Г .
Краевое условие (1.1.3) приводит к интегродифференциальному уравнению для
u . Опуская точку x на  получаем
Lu= grad A(div u)  k 2 Au  f ;
x  x1, x2  ,
(1.14)
ik x  y
e
Au  
u  y dy
x

y

f  4ik E0 | ;
f  C   
(1.15)
(1.16)
Здесь операция grad рассматривается в R 2 . Из непрерывности E вплоть до 
следует, что если u является решением (1.14) и удовлетворяет условиям (1.12), (1.13),
то формулы (1.9) – (1.11) дают квазиклассическое решение задачи (1.1) – (1.6). Кроме
того, если u - нетривиальное решение, то E, H также нетривиальное решение (1.1) –
(1.6). Тогда из Утверждения 1 следует
15
Утверждение 2 [1]
Уравнение (1.14) имеет не более одного решения, удовлетворяющего условиям (1.12),
(1.13).
Вопрос о представимости всякого решения задачи (1.1) – (1.6) в виде векторного
потенциала (1.9) – (1.11) с некоторой функцией u тесно связан с вопросом о
существовании решения уравнения (1.14), удовлетворяющего условиям (1.12), (1.13).
Действительно, если будет доказано существование такого решения, то (1.9) – (1.11)
всегда дают единственное решение задачи (1.1) – (1.6), и тогда всякое решение задачи
(1.1) – (1.6) представимо в виде векторного потенциала.
Отметим, что в случае экрана нельзя воспользоваться теорией потенциала простого
и двойного слоя для получения уравнения Фредгольма 2-го рода, как это сделано в [3]
для замкнутых поверхностей. Теоремы о «скачке» для потенциалов приводят к тому,
что поле E должно иметь разные значения с разных сторон  , что, в свою очередь,
ведет к противоречию с краевыми условиями (1.3) и непрерывностью падающего поля
E 0 (1.7):
E 
0
 
0
(1.17)
Утверждение 3 [1]
При Im k  0, k  0 обобщенное решение u W уравнения (1.14) существует и
единственно при любой правой части f  W ' (в частности, для f C   ).
Имеет место
Утверждение 4 [1]
Задача (1.1) – (1.6) при Im k  0, k  0 имеет единственное решение при любых E 0 , H 0 ,
удовлетворяющих условию (1.7).
Выбирая f согласно (1.16), получаем решение задачи (1.1) - (1.6) по формулам
(1.9) – (1.11).
Утверждение 5 [1]
Любое решение задачи (1.1) - (1.6) при Im k  0, k  0 представимо в виде векторного
потенциала (1.9) – (1.11) с функцией u , удовлетворяющей условиям (1.12), (1.13).
16
2.
СУБИЕРАРХИЧЕСКИЙ ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ РЕШЕНИЯ
УРАВНЕНИЯ ЭЛЕКТРИЧЕСКОГО ПОЛЯ
2.1. Метод Галеркина
Рассмотрим уравнение (1.14) и n-мерное подпространство Vn  W . Отношение
антидвойственности между W и W ' будем обозначать через (.,.). Будем проводить
аппроксимации u элементами u n Vn . Методом Галеркина находим u n из системы
уравнений
( Lu n , v)  ( f , v)
v Vn
(2.1)
Эти уравнения определяют конечномерный оператор Ln : Vn  Vn' , где V n' есть
антидвойственное пространство к Vn .
Основная трудность для уравнений электрического поля (1.14) состоит в том,
что оператор L не является сильно эллиптическим и традиционные теоремы о
сходимости метода Галеркина не применимы. Однако мы преодолеваем эту трудность,
так как оператор L является эллиптическим на подпространствах W1 и W2 .
Предложение 1. [1]
Пусть n  мерное подпространство V n обладают аппроксимационными свойствами
в W . Тогда метод Галеркина (2.1) на подпространстве V n сходится для уравнения
(1.14).
Рассмотрим вопрос об аппроксимации непрерывно – дифференцируемой
(векторной) функции f x, y    f1x, y , f 2 x, y  , f  C 01    f 1  C 01  , f 2  C 01   в
прямоугольнике   0, a 0, b базисными функциями  j  x, y  по методу RWG.
Рассмотрим в  равномерную прямоугольную сетку с шагами h1 и h2 по осям x и y с


узлами M ij  xi , y j ,
xi  ih1 , y j  jh2 ( i  0,..., N1, j  0,..., N2 ), h1 
a
b
, h2 
, а
N1
N2
также середины всех внутренних ребер. Базисную функцию  j  x, y  , отвечающую
ребру j , определим по правилу (см. рис. 1)
17
x
( j) ( j)
2 , y2
T
x
( j) ( j)
1 , y1

TCj
(x,y)
+
(x,y)

Рис. 1


 j
 j
 x  x1 , y  y1

 j  x, y   
 x  j   x, y  j   y
2
 2


 2lS
j


j
в T j
(2.2)
lj
в T j

2S j
и  j  0 вне треугольников T j , T j . Здесь l j длина j - го ребра, S j - площадь
треугольников T  , C j - середина ребра с номером j . Нормирование функций  j  x, y 
выполнено так, что нормальная составляющая (к ребру) этих функций в середине ребра
 n C j   1 .
равна 1, т.е.  j
Отметим важное свойство функций  j : их нормальные
 n T  0 .
составляющие на границе T j носителя T j  T j  T j равны нулю,  j
j
Пусть  x, y     j  j x, y ,  x, y   1 x, y ,  2 x, y  . Тогда коэффициент  j
j
равен нормальной составляющей функции  в середине ребра:  j   n C j . Будем
аппроксимировать функцию f x, y  функцией  x, y  , выбирая коэффициенты  j из
условия
f n C j    n C j  ,
т.е.
 x, y    f n C j  j x, y  .
Оценим
разность
j
f i x, y   i x, y  в прямоугольнике  ; i  1,2 . Рассмотрим разность f1 x, y   1 x, y 
для первых компонент (для вторых компонент разность оценивается аналогично).
Пусть Ck середина вертикального ребра с номером k ближайшая к точке x, y   .
Если точка Ck не единственная ближайшая, то можно взять любую из них.
Обозначим
через
 g, , 
модуль
непрерывности
функции
прямоугольнике  [4]:
 g , ,  : sup g x' , y'  g x' ' , y' ' : x' x' '   , y' y' '  
18
g
в
Рассмотрим один из треугольников T сетки, например PQR , где Px1 , y1  ,
Qx2 , y2  , Rx3 , y3  , причем x3  x1 , y3  y2 , x2  x1  h1 , y2  y1  h2 . Пусть ребра PR ,
PQ , RQ имеют номера i , j , k , соответственно, а точки Ai , B j , Ck - середины этих
y
y1  h2
Ck
R
Q
Ai
Bj
y1
P
x
0
x1  h1
x1
Рис. 2
ребер.
Нормали в этих точках имеют координаты:




h2
 h1
n  Ai   1,0 , n Ck   0,1 , n B j   
,
 h2  h2 h2  h2
2
1
2
 1

.


Оценим разность функций f и  в точке x, y  при условии, что она принадлежит
треугольнику PQR ; x, y  PQR . Тогда
f  x, y    x, y   f  x, y    f1  Ai  i  x, y   f 2 C k  k x, y   f n B j  j  x, y   f x, y  
h



f  Ai  x2  x, y 2  y   h21 f 2 C k x  x1 , y  y1   h11 f1 B j   h21 f 2 B j   x  x3 , y  y3  ,
1
1
1
T
T
T
откуда покоординатно имеем
f1 x, y   1 x, y    f1 x, y   1 f1  Ai   1  1  f1 B j   h21 x1  x f 2 Ck   f 2 B j  ,
f 2 x, y    2 x, y    f 2 x, y    2 f 2 B j   1   2  f 2 Ck   h11  y  y 2  f1  Ai   f1 B j  ,
где
1 :
x2  x
y y
,  2 : 2
, 0  1  1 , 0  2  1 .
h1
h2
19
Учитывая, что непрерывная в T функция достигает любого своего промежуточного
значения в некоторой точке из T , получаем, что
h 
 h h  h 
f1 x, y   1 x, y     f1 ; 1 , 2   1   f 2 ;0, 2 
2 2  h2 
2

 h h  h  h 
f 2 x, y   2 x, y     f 2 ; 1 , 2   2   f1 ; 1 ,0 
2 2  h1 
2 

Если
h1
h
M и 2 M
h2
h1
M  1 , то легко получить более грубую оценку:
  h h 
 h h 
f m x, y    m x, y   M   f1 , 1 , 2     f 2 ; 1 , 2  , m  1,2
2 2
2 2 

 
Заметим, что в силу условия f1 x0  f1 xa  0 , f 2
y 0
 f2
y b
(2.3)
 0 , граничные
ребра в вышеприведенных оценках фигурируют лишь формально с коэффициентом 0
перед соответствующей базисной функцией.
Случай принадлежности точки x, y  одному из ребер PR , PQ , RQ также не
исключается.
Аналогично
рассматривается
вторая
возможная
конфигурация,
y
Q
P
0
изображенная на рис. 3.
x, y  
R
x
Рис. 3
Таким образом, в силу произвольности выбора точки
и равномерности оценки (2.3), оценка (2.3) имеет место для всех точек
x, y   .
Пусть снова x, y  PQR . Оценим разность функций div f и div  , пользуясь
полученными результатами. Имеем


div f  div   div f  2  h11 f1  Ai   h21 f 2 C k   h11 f1 B j   h21 f 2 B j  
f 2 f 2 C k   f 2 B j  f1 f1



y
h2 / 2
x x

Bj
f1
x

Bj
f1 B j   f1  Ai 
h1 / 2
20

f 2 f 2

y y
f1 f1 B j   f1  Ai 


x
h1 / 2

Bj
f 2
y

Bj
f 2 C k   f 2 B j 
h2 / 2
,
Ai B j  h1 / 2 ,
причем
B j Ck  h2 / 2 .
Далее
находим,
учитывая
непрерывную
дифференцируемость функций f1 и f 2 в  :
 f h h 
 f
h 
 f h h 
 f h 
div f  div     1 ; 1 , 2     1 ; 1 ,0     2 ; 1 , 2     2 ;0, 2  .
2
 x 2 2 
 x 2 
 y 2 2 
 y
Отсюда легко получить более грубую оценку
  f h h 
 f h h  
div f  div   2  1 ; 1 , 2     2 ; 1 , 2  ,
 y 2 2  
  x 2 2 
(2.4)
которая равномерна и имеет место для всех x, y    .
Оценки (2.3) и (2.4) позволяют доказать теорему об аппроксимации элементов
  W базисными функциями  j . Пусть в прямоугольнике  выбрана равномерная
прямоугольная сетка с шагом h1 по переменной x , и шагом h2 по переменной y .
Рассмотрим
конечномерное
подпространство
X N  span1 ,...,  N ,
являющееся
линейной оболочкой базисных функций  j , 1,..., N , где N - количество внутренних
ребер сетки. Нетрудно проверить, что  j W   , X N  W . Имеет место следующий
результат.
Предложение 2
Пусть
h1
h
 M , 2  M для некоторого M. Тогда для любого   W верна оценка
h2
h1
inf   
 X N
W
 C 0 h1  h2  ,
(2.5)
где C0 не зависит от h1 и h2 .
Из Предложений 1 и 2 и Утверждения 3 получаем сходимость метода Галеркина
(2.1) с базисными функциями RWG с квазиоптимальной оценкой скорости
сходимости. Точнее, верно
Предложение 3
Пусть h1  M , h2  M . Тогда метод Галеркина (2.1) для уравнения электрического поля
h2
h1
(1.14) сходится с выбором базисных функций RWG и справедлива оценка скорости
сходимости
u  uN
W
 C0 h1  h2  ,
(2.6)
где u, u N - точное и приближенные решения, а константа C0 не зависит от h1 и h2 .
Предложение 3 полностью теоретически обосновывает применимость метода RWG для
решения задачи дифракции на экране.
21
2.2
Субиерархический параллельный вычислительный алгоритм
Разработанный метод позволяет рассчитывать поверхностные токи на плоском
ограниченном, бесконечно тонком и идеально проводящем экране. Форма экрана
может быть произвольной.
Рассмотрим построение сетки на экране прямоугольной формы. На экране
выберем равномерную прямоугольную сетку. Всем узлам в прямоугольной области
будет присвоен свой индивидуальный номер. Опишем алгоритм нумерации узлов.
Пусть область состоит из n узлов по оси Ox и m по оси Oy . Узлу расположенному в
левом нижнем углу будет присвоен номер «1». Далее номера идут в порядке
возрастания по строке (по оси Ox ). Номер n  1 присваивается узлу, расположенному
во втором ряду сетки в самой крайней левой позиции. Дальнейшие номера до узла 2n
включительно расставляются в порядке возрастания по ходу передвижения в правую
сторону по оси Ox . Описанный алгоритм нумерации узлов повторяется для каждого
горизонтального слоя сетки. На рис. 4 представлен пример сетки 8х8 с
пронумерованными узлами.
57
58
59
60
61
62
63
64
49
50
51
52
53
54
55
56
41
42
43
44
45
46
47
48
33
34
35
36
37
38
39
40
25
26
27
28
29
30
31
32
17
18
19
20
21
22
23
24
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
Рис. 4
Отрезок, соединяющие между собой соседние узлы на горизонтальной линии
сетки, называется горизонтальным ребром. Отрезок, соединяющий между собой
соседние узлы на вертикальной линии сетки, называется вертикальным ребром. В
сетке, представленной на рис. 1, возможны только два вида ребер. Однако для
повышения точности расчета потребуется ввести дополнительные диагональные ребра.
Дадим определение диагонального ребра. Для этого рассмотрим ячейку сетки,
изображенную на рис. 5. Отрезок, соединяющий узел с номером n с узлом с номером
p , будем называть диагональным ребром.
22
k
p
n
m
Рис. 5
Опишем условия, при которых не будут рассматриваться ребра. Горизонтальное
ребро не существует, если оба узла, соединяющие ребро, принадлежат границе сетки.
Вертикальное ребро не существует, если оба узла принадлежат границе сетки.
Диагональное ребро не существуют, если узел с меньшим номером принадлежит
правой или верхней границе прямоугольной области. Рассмотрим диагональное ребро,
представленное на рис. 5. Пусть количество узлов, расположенных по оси Ox , равно
q , а номер нижнего узла равен n и при этом диагональное ребро может существовать,
тогда p  n  q  1 .
Пусть прямоугольная область содержит n узлов по оси Ox и m узлов по оси
Oy , таким образом, общее количество узлов равно n m . Нетрудно вычислить общее
количество ребер каждого типа. Количество диагональных ребер будет определяться
по формуле: (m - 1)  (n - 1) , количество вертикальных ребер по формуле: (m - 1)  (n - 2) ,
количество горизонтальных ребер по формуле: (m - 2)  (n - 1) . Нетрудно подсчитать
общее количество ребер в прямоугольной области. Для этого просуммируем
количество диагональных, вертикальных и горизонтальных ребер. Таким образом,
общее число ребер равно
num = (m - 1)  (n - 1) + (m - 1)  (n - 2) + (m - 2)  (n - 1) .
Для
дальнейшего рассмотрения метода нам потребуется ввести два понятия: уровня и ряда.
Под уровнем будем понимать совокупность узлов, расположенных по оси Ox на одной
из линий сетки, вместе с горизонтальными ребрами, их соединяющими, и вместе с
вертикальными
и
диагональными
ребрами,
выходящими
из
этих
узлов
и
расположенных выше данной линии сетки. Рядом будем называть совокупность узлов,
расположенных по оси Oy на одной из линий сетки, вместе с вертикальными ребрами,
их соединяющими и вместе с горизонтальными и диагональными ребрами,
выходящими из этих узлов и расположенными правее данной линии сетки.
Опишем алгоритм нумерации ребер в сетке. Ребра нумеруются в следующей
очередности. Первыми нумеруются диагональные ребра, затем вертикальные и
последними нумеруются горизонтальные ребра. Алгоритм нумерации ребер опирается
на номер узла, из которой выходит ребро. Диагональные ребра нумеруются, начиная с
нуля. Ребро с нулевым номером расположено на пересечении первого ряда и первого
23
уровня. Нумерация последующих ребер аналогична нумерации узлов, т.е. следом за
нулевым на том же уровне, но во втором ряду, располагается первое ребро. Первое
ребро выходит из второго узла, расположенного правее по оси Ox , и так далее. Данная
процедура продолжается до тех пор, пока не встречается узел, для которой
диагональное ребро построить нельзя, тогда этот узел пропускается и алгоритм
начинает построение с самого левого узла, расположенного на уровень выше данного.
Описанная процедура повторяется для всех узлов. Вертикальные ребра нумеруются
аналогично. Ребро с
номером, на единицу большим, чем максимальное из уже
пронумерованных, выходит из узла, располагающегося во втором ряду на первом
уровне. Следующее по номеру ребро должно выходить из узла, находящегося правее по
оси Ox , т.е. в третьем ряду первого ряда, и так далее. Исключение составляет случай,
когда узел является крайним. Для исключительного случая приходится пропускать два
узла - крайний правый на текущем уровне и крайний левый узел, расположенный на
уровень выше. Новое ребро располагается на уровень выше во втором ряду.
Аналогично нумеруются все вертикальные ребра. Горизонтальные ребра нумеруются с
узла, расположенного на пересечении второго уровня и первого ряда. Номер первого
горизонтального узла на единицу больше, чем номер последнего вертикального узла.
Оставаясь на том же уровне, сдвигаемся по оси
Ox правее во второй ряд. Узел,
расположенный на пересечении третьего ряда и второго уровня, является следующим
горизонтальным узлом. Описанная процедура нумерации горизонтальных ребер
повторяется до тех пор, пока не встречается узел, для которого построить ребро нельзя.
В этом случае мы пропускаем один узел, и тем самым переходим на уровень выше в
первый ряд. Оставшиеся горизонтальные ребра нумеруются аналогично. Заметим, что
следуя
указанному
алгоритму,
мы
пронумеруем
только
внутренние
ребра
прямоугольный области. Все вертикальные или горизонтальные ребра, принадлежащие
границе, не будут занумерованы. В свою очередь диагональные ребра всегда являются
чисто внутренними. Нетрудно сформулировать критерий принадлежности ребра
области. Для этого рассмотрим рис. 6.
24
Т+
Т+
Т-
Т-
Т+
Т-
Рис. 6
Ребро принадлежит области, если оно принадлежит области вместе с двумя
окаймляющими его треугольниками. Треугольники, окаймляющие ребро, будем
называть носителями. Носители условно разделим на два вида: T  и T  . Носитель T 
будем называть положительным носителем, а носитель T  - отрицательным носителем.
Из примера, приведенного на рис. 6, наглядно видно, как располагаются носители для
каждого из видов ребер: вертикального, горизонтального и диагонального.
Для
горизонтального ребра положительным является верхний носитель, а отрицательным
является нижний носитель. Для вертикального ребра положительным является левый
носитель, а отрицательным является правый носитель. Для диагонального ребра
положительным является верхний правый, а отрицательным нижний левый носитель.
На этом процесс построения сетки можно считать законченным. На рис. 7 приведем
пример полностью построенной сетки 9х8 элементов. Здесь n  9 , m  8 . Общее
количество узлов равно n  m  72 , общее количество ребер равно 153 из них
диагональных (m - 1)  (n - 1)  56 , вертикальных (m - 1)  (n - 2)  49 и горизонтальных
(m - 2)  (n - 1)  48 .
25
Рис. 7
Рассмотрим расчет интегралов в схеме метода Галеркина. Следуя алгоритму,
предложенному в схеме, мы должны сформировать матрицу на базе построенной сетки.
Поскольку ключевыми элементами в сетке являются ребра, то в матрице номер ребра
соответствует номеру строки или номеру столбца. Размер создаваемой матрицы равен
num  num , где num - количество ребер в сетке. Матрица заполняется элементами из
матричного уравнения ( L i , j )  ( f , j ) . Каждый элемент матрицы получается путем
вычисления
четырехкратного
lij   G( x, y)div i ( x)  div  j ( y)ds  k 2  G( x, y) i ( x)  j ( y)ds,
интеграла
имеющего
слабую
особенность в области интегрирования. Здесь x  ( x1 , x2 ), y  ( y1 , y2 ) , а
G ( x, y ) -

известная функция G( x, y) 

exp( ik x  y )
x y
. В качестве базисных функций (x) и
тестовых u ( y ) выберем функции RWG, предложенные в статье [10]. Базисные
функции имеют вид (2.2.1) (см. также рис. 1) .
26
Рассмотрим алгоритм вычисления произвольного элемента матрицы. Для этого
выберем произвольный элемент l ij , построенный по ребрам i и j . Первым рассмотрим
случай, когда
Ti  и Ti  ,
i  j . Каждое ребро имеет свои носители. Для ребра i - это носители
для ребра j -
это носители T j и T j . Проведем интегрирование
подынтегральной функции G ( x, y ) i ( x)  j ( y ) по четырем областям, определяемым
носителями каждого из ребер. Для этого каждую сторону носителей разобьем на n
равных частей. Проведем линии, соединяющие соответствующие узлы разбиения.
Таким образом, мы получаем четыре треугольника, разбитые на одинаковые по
площади и форме треугольники (рис. 8, левый треугольник).
Внутри каждого маленького треугольника выбираем точку пересечения медиан (рис. 8,
средний треугольник). Далее производим интегрирование методом прямоугольников,
суммируя значения функции во всех таких точках, умноженное на площадь
Рис. 8
треугольника. Количество узлов в квадратурной формуле при этом рассчитывается по
формуле (n  1)  (n  1) . Теперь рассмотрим второй случай, когда матричный элемент
построен на базе совпадающих ребер i  j . В этом случае в связи с особенностью в
функции G( x, y) 
exp( ik x  y )
x y
, при интегрировании по квадратурной формуле,
предложенной выше, возможно возникновение ситуации, приводящей к делению на
ноль. Чтобы избежать этого, мы предлагаем разнести внутренние узлы в квадратурной
(формуле рис. 8, средний треугольник и правый треугольник). Например, для
носителей ребра i в качестве узлов в маленьких треугольниках можно брать точку
пересечения медиан, а для ребра j внутреннюю точку можно рассчитывать как
середину средней линии параллельной диагональному ребру треугольника (рис. 8,
правый треугольник). Таким образом, деления на нуль не возникает. Однако есть еще
случай, когда ребра i и j являются соседними. Тогда возможно пересечение только
одного из носителей. В этом случае мы можем также воспользоваться методом,
описанным выше. Итак, мы завершили описание алгоритма для построения одного
27
элемента матрицы. Для построения всей матрицы потребуется произвести перебор по
всем ребрам i и j , рассчитав при этом все элементы l ij . Правая часть матричного
уравнения рассчитывается путем численного интегрирования базисных функций
умноженных на правую часть уравнения f j   f   j ds, j 1 ,..., num . Интегрирование

производится по носителям, соответствующим ребру с номером, равным номеру
строки в матрице. На этом этап формирования матрицы можно считать завершенным.
Для нахождения токов осталось только решить систему линейных уравнений.
Полученная система линейных уравнений решается методом минимальных невязок
или сопряженных градиентов. В рассматриваемых задачах возникают специальные
блочно-теплицевы системы с дополнительной симметрией элементов матрицы.
Применение этих методов наряду с параллельной версией быстрого преобразования
Фурье является наиболее эффективным.
Для расчета токов на экране произвольной формы нам потребуется результаты
ранее решенной задачи для экрана прямоугольной формы. Рассчитываемая фигура
сложной формы должна целиком принадлежать поверхности экрана. Пусть для
прямоугольного экрана уже имеется составленная ранее матрица с помощью
описанного выше метода. Предлагаемый метод позволяет получить матрицу для новой
фигуры, пользуясь уже готовой матрицей для прямоугольного экрана. Процедуру
построения новой матрицы из элементов старой
мы будем называть процедурой
вырезания элементов.
Составим сетку для фигуры произвольной формы. Фигура произвольной формы,
которую мы будем вырезать из прямоугольного экрана, должна как можно более точно
описываться линиями сетки. Линии сетки, описывающие фигуру, должны целиком
находиться в самой фигуре. Поэтому так же, как и для произвольной пластины, будем
считать, что ребро принадлежит фигуре, тогда и только тогда, когда оно принадлежат
фигуре вместе со всеми носителями, образованными данным ребром. При этом
необходимо учесть, что чем точнее повторяют линии сетки саму фигуру, тем точнее
будет расчет токов. Также следует отметить, что в том случае, когда мы рассчитываем
одну единственную фигуру размер прямоугольной пластины, покрывающий фигуру
произвольной формы,
должен быть как можно меньшего размера. Скорость
построения новой матрицы будет напрямую зависеть от размера пластины и
количества ребер в сетке. На рис. 9, приведенном ниже, мы видим это на примере
одной и той же фигуры, описываемой двумя разными сетками. Слева находится
28
фигура, в центре приведен пример неудачной сетки, справа построена более
оптимальная сетка. С точки зрения скорости счета правая сетка предпочтительней.
Рис. 9
Используя горизонтальные и вертикальные ребра, очертим контуры фигуры сложной
формы рис 10. В построенной фигуре введем новую нумерацию ребер. Для введения
новой нумерации ребер нам потребуется перебрать поочередно все ребра в
прямоугольной сетке и проверить принадлежит ли ребро сетке построенной для
фигуры сложной формы. Если ребро принадлежит, присвоим ему новый номер.
Первому ребру, которое будет принадлежать обеим областям, присваивается
порядковый номер «0». Номер каждого последующего ребра увеличивается на единицу.
Произведя, полный перебор ребер мы получим новую сетку. Эту сетку мы будем
использовать для расчета токов в фигуре сложной формы.
Рис. 10
В предложенной выше схеме остается открытым вопрос о том, как описать
фигуру сложной формы. Если фигура отлична от тривиальной, то остается открытым
вопрос о принадлежности точки этой фигуре. Под фигурой тривиальной формы мы
будем понимать квадрат или прямоугольник. Ясно, что для фигуры являющейся
тривиальной вопрос о принадлежности точки фигуре решается элементарно. Для
решения вопроса о принадлежности точки нетривиальной фигуры была разработана
следующая схема. Сетку которую мы создали для фигуры сложной формы мы
разбиваем на минимальное количество простых прямоугольников. Тем самым мы
29
делаем фигуру сложной формы составной фигурой. Под «простым» прямоугольником
будем понимать такой прямоугольник, для которого любая из его сторон не содержит в
себе, в качестве подмножества, ни одной стороны любого другого простого
прямоугольника. Заметим, что два простых прямоугольника могут иметь общие
стороны. Это условие не противоречит определению простого прямоугольника,
поскольку ни одна из сторон одного из простых прямоугольников не является частью
стороны другого простого прямоугольника. Например, на рис. 9 верхняя часть фигуры
сложной формы является «простым» прямоугольником, а основание не является
«простым» прямоугольником. Второй пример простого и составного прямоугольника
можно увидеть на рис. 10. Каждая из «лопастей» креста является простым
прямоугольником, а прямоугольник, содержащий две противолежащих лопасти и
среднюю часть, не является простым прямоугольником.
Критерий
принадлежности
ребра
области
рассмотрим
отдельно.
Для
вертикальных и горизонтальных ребер он остается прежним. Однако далеко не все
диагональные ребра будут всегда внутренними. Критерий, при котором ребро
принадлежит области, если принадлежат области два узла его окаймляющих, может не
сработать. Это хорошо видно из рисунка 11. Ребра, которые не являются внутренними,
но у которых принадлежат оба узла, выделены курсивом. Поэтому при рассмотрении
ребер диагонального типа необходимо проверять принадлежность средней точки
ребра.
Рис. 11
Пусть количество ребер, принадлежащих фигуре, равно m , тогда размер новой
матрицы будет равен m m . Перейдем к рассмотрению процедуры вырезания
элементов матрицы. Для создания новой матрицы
из старой будем производить
последовательный перебор всех пар ребер, принадлежащих прямоугольной области.
Если пара ребер принадлежит области, то соответствующий ему элемент матрицы под
новыми номерами переписывается в новую матрицу. Таким образом, мы заполняем
30
всю матрицу. Проводя аналогичную процедуру, мы заполняем
и правую часть
матричного уравнения. Таким образом, новое матричное уравнение получено, и можно
переходить к его решению.
Опишем параллельный алгоритм для решения задачи дифракции. Расчет задач
дифракции подобных этой связан с большим объемом вычислительных работ.
Получение удовлетворительных численных результатов занимает очень много
времени. Поэтому часто приходится сталкиваться со следующей ситуацией, когда
поставленную задачу невозможно решить с требуемой точностью на обычном
персональном компьютере. Самым сложным вычислительным процессом при решении
данной задачи является составление матрицы для системы линейных уравнений. Для
сходства математических моделей с реальными физическими задачами необходимо
использовать матрицы как можно больших размеров. Поэтому при получении
результатов с требуемой точностью эффективно используются методы параллельных
вычислений на многопроцессорных кластерах и распределенных вычислительных
системах.
Например,
для
решения
задачи
приведенной
в
[11]
потребовалось
использование матрицы размером 3299x3299 элементов. Время счета матрицы на
персональном компьютере Pentium 4, 2400 MHz составляло 25 часов. Отметим, что
данная матрица является сравнительно небольшой, однако даже расчет подобных задач
требует много времени. Матрица, которая использовалась для расчета поверхностных
токов на пластине со стороной равной длине волны, имеет размер
6673х6673
элементов.
В связи с этим в нашей задаче постараемся максимально упростить процессы,
связанные с составлением матричного уравнения. Наиболее естественным подходом,
упрощающим решение задач, является использование матричной симметрии. За счет
этого время, потраченное на составление матрицы можно сократить в два раза.
Учитывая, что основное время потраченное на решение задачи уходит на составление
матрицы, это существенно упрощает расчет всей задачи. Второй подход связан с
использование параллельных вычислений. Поясним суть алгоритма параллельных
вычислений. Каждый элемент матрицы формируется независимо друг от друга. За счет
этого можно рассчитать матрицу на нескольких персональных компьютерах.
Предположим,
в
нашем
расположении
имеется
десять
однопроцессорных
компьютеров, в этом случае время, затраченное на составление всей матрицы,
сократится примерно в десять раз.
31
Предположим, что расширенная матрица СЛАУ состоит из n строк и в нашем
распоряжении p процессоров Рис.12. Распределим задание на заполнение матрицы
следующим образом:

n
1 - ый процессор заполняет строки с номерами 1 ...  
 p

n
n
2 – ой процессор заполняет строки с номерами    1 ... 2   
 p
 p

………………………………………………………………………………...

n
n
p  1 - ый процессор заполняет строки  p  2     1 ...  p  1   
 p
 p

n
p - ый процессор заполняет строки  p  1     1 ... n
 p
После того как заполнение матрицы завершено, всеми процессорами, запускаем
процедуру собирания матрицы на одном из процессоров. На этом же процессоре
производим
решение
a1,1
системы
линейных
уравнений.
.. ..... a1, n
1- ый процессор
a n 

 ,1
 p
a n 

 1,1
 p
a
a
n 
2 
 1,1
 p
... a n 

,n
 p
... a
2 - ой процессор
... a


 1,1
 p
 p  2  n
a
n
2 
,n
 p


 p 1  n  1,1
 p
n 
3 
,n
 p
...a


,n
 p
 p 1 n
... an , n
p - ый процессор
Матрица к задаче рассчитывалась на кластерах НИВЦ МГУ («sky»). Узлы на
основе Pentium 3, 850MHz, коммутатор Fast Ethernet. При участии 130 компьютеров.
Размер матрицы составляет 6673*6674 элементов. Скорость расчета составляет 69
часов.
32
3.
МЕТОД
ОБЪЕМНОГО
СИНГУЛЯРНОГО
ИНТЕГРАЛЬНОГО
УРАВНЕНИЯ ДЛЯ ИССЛЕДОВАНИЯ ЭЛЕКТРОМАГНИТНОЙ ЗАДАЧИ
ДИФРАКЦИИ НА ДИЭЛЕКТРИЧЕСКОМ ТЕЛЕ
3.1. О методе объемных интегральных уравнений для решения задачи дифракции
Исследуется задача дифракции стороннего электромагнитного поля на локально
неоднородном теле, помещенном в свободном пространстве. Актуальность работы
определяется применением результатов исследования, например, при решении задач
дифракции в СВЧ диапазоне. Для численного решения задачи возможно использование
метода конечных элементов. Однако прямое применение метода конечных элементов
встречает ряд трудностей. Во-первых, краевая задача для системы уравнений
Максвелла не является эллиптической, поэтому "не работают" стандартные схемы
доказательства сходимости проекционных методов. Во-вторых, для получения
приемлемой точности расчета поля в теле с диэлектрической проницаемостью
  10  20 0 (тело, в основном, состоит из воды) необходимо выбирать достаточно
мелкую сетку, что влечет также выбор мелкой сетки и в объеме вне тела (выбор же
сетки разного масштаба внутри и вне тела ведет к неверным результатам). А это, в
свою очередь, учитывая трехмерный векторный характер задачи, приводит к
разреженным матрицам очень больших порядков в методе конечных элементов.
От этих недостатков свободен метод объемных сингулярных интегральных
уравнений. Здесь оператор получается эллиптическим, а интегральное уравнение
решается только внутри тела (в области неоднородности).
Мы изучаем интегральное уравнение опираясь, в основном, на теорему
эквивалентности краевой задачи и интегрального уравнения, а также на результаты
исследования свойств объемного сингулярного интегрального уравнения [15]. На этом
пути удается доказать теорему о существовании и единственности решений в L2
интегрального уравнения, сходимость численного метода Галеркина, получить
некоторые результаты о гладкости решений.
33
3.2. Постановка задачи для системы уравнений Максвелла
Рассмотpим следующую задачу дифpакции. Пусть в свободном пространстве
расположено
объемное
пpоницаемостью
0
тело
и
Q,
хаpактеpизующееся
положительной
постоянной
магнитной
3 3 -матрицей-функцией
(тензором)
диэлектрической проницаемости ˆ( x ) . Компоненты ˆ( x ) являются ограниченными
функциями в области Q , ˆ  L (Q) , а также ˆ 1  L (Q ) .
Граница Q области Q кусочно-гладкая. Точнее, предположим, что для каждой точки
границы x0  Q существует окрестность  (в R 3 ) и C 2 -диффеоморфизм этой
окрестности на R 3 , при котором точка x 0 переходит в точку 0 , а образом множества
  Q является множество одного из следующих типов (ниже ( x1 , x 2 , x3 ) – декартовы;
( r, ), r  0,   S 2 – сферические координаты в R 3 ). Либо x1  0 ( x 0
гладкости границы); либо x1  0, x2  0 ( x 0
– точка
– точка на "выходящем" ребре); либо
R 3 \ {x1  0, x2  0} ( x 0 – точка на "входящем" ребре); либо r  0,  Q ' , где Q'  S 2 –
односвязная область с кусочно-гладкой границей Q ' ( x 0
ребрами”). В частности, если Q '
– гладкая, то x 0
– вершина "конуса с
– коническая точка; если Q '
образована дугами больших окружностей, то x 0 – вершина многогранного угла. Пусть
Q – ограниченная область и каждая точка x  Q принадлежит одному из этих типов.
Тогда будем говорить, что Q – область с кусочно-гладкой границей.
 
Требуется определить электромагнитное поле E , H  L2 (Q) , возбуждаемое сторонним
полем с временной зависимостью вида e  it . Источник стороннего поля
–

электрический ток j 0 или падающая плоская волна.
 
Будем искать электромагнитное поле E , H , удовлетваряющее уравнениям Максвела,
условиям непрерывности касательных компонент поля при переходе через границу
тела и условиям излучения на бесконечности

 
rotH  iˆE  j E0


rotE  i 0 H


[E]
 [H ]
0
Q
(3.1)
(3.2)
Q
E
 E
   ik    o(r 1 ),
r  H 
H 
34
E
   O(r 1 ), r  ,
H 
(3.3)
3.3. Объемное сингулярное интегральное уравнение
Сведем краевую задачу к объемному сингулярному интегральному уравнению.
Перепишем (3.1) в эквивалентной форме:

 
rotH  i 0 E  j E


rotE  i 0 H
(3.4)
где



jE  jE0  jEp


В последнем равенстве jEp  i ˆ( x)   0 Iˆ E


(3.5)
– электрический ток поляризации.
Нетрудно проверить, что решение последней краевой задачи имеет вид



1
E  i 0 AE 
grad div AE
i 0


H  rotAE
(3.6)


AE   G(r ) j E ( y)dy
(3.7)
где
P

– векторный потенциал электрического тока. Потенциал AE удовлетворяет уравнению



(3.8)
AE  k02 AE   jE .

Таким образом, потенциал AE представляет собой свертку с функцией Грина
свободного пространства для уравнения Гельмгольца, обеспечивающей выполнение
требуемых условий для полей. Функция Грина имеет вид
G ( x, y ) 
1 e ik 0 | x  y |
.
4 | x  y |
(3.9)

Однако формулы (3.6) не дают явного решения задачи дифракции, так как ток j E


зависит от E . Из полученных соотношений для поля E следует интегро-
дифференциальное уравнение:


 ˆ( y ) ˆ 
 ˆ( y ) ˆ 
E ( x)  E 0 ( x)  k 02  G ( x, y ) 
 I E ( y )dy  graddiv  G ( x, y )( r ) 
 I E ( y )dy, x  Q
 0

 0

Q
Q
(3.10)
Кроме того,
35


 ˆ( y ) ˆ 
 ˆ( y ) ˆ 
E ( x)  E 0 ( x)  k 02  Gˆ E (r ) 
 I E ( y )dy  graddiv  Gˆ E (r ) 
 I E ( y )dy, x  R 3 \ Q
 0

 0

Q
Q

Последняя формула дает представление решения E ( x ) в области R 3 \ Q , если


E ( y ), y  Q – решение уравнения (3.10). Поле H выражается через решение (3.10) в
виде


 ˆ( y ) ˆ 
H ( x)  H 0 ( x)  i 0 rot  G (r ) 
 I E ( y )dy, x  Q .
0


Q
Сведем полученное выше интегро-дифференциальное уравнение к объемному
векторному сингулярному интегральному уравнению.
Представим функцию Грина в виде
G (r )  G0 (r )  G1 (r ), r | x  y |,
G 0 (r ) 
e ik0r  1
1
, G1 ( r ) 
.
4r
4r
Пусть x1 , x 2 , x3 и y1 , y 2 , y3 – координаты точек x, y . Рассмотрим второй интеграл в
уравнении (3.10) для электрического поля и исследуем вопрос о возможности внесения

операции grad div под интегралы  G(r )U ( y)dy ( p  0,1,2).
Q
В декартовой системе координат






grad
div
G
(
r
)
U
(
y
)
dy


  x
l
Q

l
 3

   G (r )U n ( y )dy , l  1,2,3
n1 x n 

Q


Для функции G 0 внесение второй производной под знак интеграла возможно, так
как функция и ее первая производная имеют слабую особенность.
Пусть   ( y  x ) / r . Сформулируем важное утверждение о дифференцировании
интегральных операторов, ядро которых имеет особенность порядка 1 / r 2 .
Лемма 1. [15]
Пусть функция  ( x, ) имеет в Q
непрерывные первые производные по
декартовым координатам точек x и  , а u  L2 (Q) . Тогда интеграл
 ( x)  
Q
 ( x, )
r2
36
u( y )dy
имеет
обобщенные
производные
 / xk  L2 (Q), k  1,2,3.
Эти
производные
определяются из формул
где  k

  ( x, ) 
 v. p.
u( y )dy  u( x )  ( x, ) cos( k )dS ,
x k
x k  r 2 
Q
S

– угол между вектором r направленным от точки x к y , и ортом, который
соответствует координате x k .
Применяя данную лемму к сингулярному интегралу с ядром
 1
, придем к
x n 4r
известному представлению:

xl
 1
2
1
1
U
(
y
)
dy

v
.
p
.
Q xn 4r n
Q xl xn 4r U n ( y )dy  3  lnU n ( x)
 ln – символ Кронекера.
Используя полученные соотношения, переходим от интегро-дифференциального
уравнения (3.2.7) к векторному сингулярному интегральному уравнению:


 ˆ( y ) ˆ 
 ˆ( y ) ˆ 
1  ˆ( x) ˆ 
E ( x)  
 I  E ( x)  v. p.  1 ( x, y ) 
 I  E ( y )dy   ( x, y ) 
 I  E ( y )dy  E 0 ( x)
3  0

 0

 0

Q
Q
(3.11)
Здесь функции ,1 имеют вид:
( x, y )  k 02 G (r )  (  , grad ) gradG0 (r ),
1 ( x, y )  (  , grad ) gradG1 (r ).
Вопрос о разрешимости уравнения (3.11) и об эквивалентности краевой задачи
дифракции и сингулярного интегрального уравнения подробно изучен в [13].
3.4. Метод Галеркина
Одним из наиболее эффективных методов численного решения интегральных
уравнений
является
метод
Галеркина.
Для
уравнения
A  f , ( , f  X )
пространстве X метод формулируется следующим образом. Приближенное решение
 n  X n определяется из уравнения Pn A n  Pn f . Здесь  n  X n ( X n есть n -мерное
подпространство пространства
X ),
Pn : X  X n
– оператор ортогонального
проектирования на конечномерное подпространство. Пусть подпространства X n
37
являются линейными оболочками базисных функций: X n  span{vl ,, vn } . Потребуем,
чтобы для выбранных базисных функций выполнялось условие аппроксимации
x  X
lim inf | x  x | 0.
(3.12)
n xX n
Уравнение Pn A n  Pn f эквивалентно следующему:
( A n , vl ) X  ( f , vl ) X , l  1,, n.
где (  ,  ) X – скалярное произведение в X . Представим приближенное решение в виде
n
линейной комбинации базисных функций:  n   c k v k . Подставив это представление в
k 1
(3.4.1), получим систему линейных алгебраических уравнений для отыскания
неизвестных коэффициентов ck :
n
c
k
( Avk , v l ) X  ( f , v l ) X , l  1,, n.
k 1
Определение 1.
Метод Галеркина будем называть сходящимся для оператора A , если существует
число
N такое,
что
для
каждого
f  Im A
Pn A n  Pn f имеет единственное решение  n  X n
приближенное
уравнение
для всех n  N , и если эти
решения сходятся  n   при n   к единственному решению  уравнения
A  f . В этом случае имеет место квазиоптимальная оценка скорости сходимости:
 n    C inf    .
 X n
Рассмотрим вопрос о сходимости метода Галеркина для векторного интегрального
уравнения электрического поля (3.11). Сформулируем важное утверждение о
сходимости проекционного метода.
Лемма 2.
Предположим, что A : X  X есть ограниченный оператор, имеющий ограниченный
обратный, и что проекционный метод сходится для A . Пусть B – линейный
ограниченный оператор, A  B инъективен. Оператор B удовлетворяет любому из
двух условий:
a) sup An1 Pn B  q  1
nN
или
b) B компактен.
Тогда проекционный метод также сходится для оператора A  B .
38
Перепишем интегральное уравнение (3.11) для электрического поля в виде
 
(3.13)
(I  S )E  E 0
где оператор S определяются в соответствии с (3.11),

 ˆ( y ) ˆ 
1  ˆ( x) ˆ 
( SE )( x)  
 I  E ( x)  v. p.  ˆ1 ( x, y ) 
 I  E ( y )dy
3  0
0



Q
(3.14)
Предложение 1.
Пусть тензор диэлектрической проницаемости таков, что
2 1/ 2
 3  ( x)
ess sup   ln
  ln
xQ
l ,n 1  0



1
17 

  
6 
3
1
и выполнено условие аппроксимации. Тогда уравнение (3.11) однозначно разрешимо для

любой правой части E 0  L2 (Q ) и метод Галеркина сходится для уравнения (3.11).
Рассмотрим теперь вопрос о построении схемы Галеркина для рассматриваемой
задачи дифракции. Будем формулировать метод не для сингулярного интегрального
уравнения (3.11), а для интегро-дифференциального уравнения (3.10). Этот подход
оказывается эффективным в силу более удобного представления интегралов. Будем
1
предполагать, что матрица
 ˆ( x ) ˆ 
 ˆ( x ) ˆ 

 I   L (Q ), Iˆ –
 I  обратима в Q , 


 0

 0

единичная матрица.
Введя обозначения:
1
  ˆ( x )
 ˆ( x ) ˆ 

  
 I  , J : 
 Iˆ  E ,
 0

 0

перейдем от (3.10) к следующему уравнению:





AJ  J ( x)  k 02  G ( x, y ) J ( y )dy  grad div  G ( x, y ) J ( y )dy  E 0 ( x)
Q
(3.15)
Q
Представим это уравнение в виде системы трех скалярных уравнений:
3
 li J i ( x)  k02  G( x, y) J l ( y)dy 
i 1
Q


div x  G( x, y) J ( y)dy  E 0l ( x), l  1,2,3.
xl
Q
(3.16)

Определим компоненты приближенного решения J обpазом:
N
N
N
k 1
k 1
k 1
J 1   a k f k1 ( x ), J 2   bk f k2 ( x ), J 3   ck f k3 ( x ),
39
где f ki – базисные функции-"кpышки", существенно зависящие лишь от переменной
xi .
Ниже проводится построение функций f k1 . Будем считать, что Q – параллелепипед:
Q  {x : a1  x1  a 2 , b1  x2  b2 , c1  x3  c2 } . Разобьем Q параллелепипедами
 1klm  {x : x1,k 1  x1  x1,k 1 , x 2,l  x l  x 2,l 1 , x 3,m  x 3  x 3,m 1 }
x1,k  a1 
a 2  a1
b b
c c
k , x 2,l  b1  2 2 1 l , x 3,k  c1  2 2 1 m,
n
n
n
где k  1,, n  1; l , m  1,, n / 2  1 .
1
Обозначив h1 :| x1,k  x1,k 1 | , получим формулы для f klm
:
1

 1  | x  x |, x   1klm
1
f klm
  h1 1 1,k
.
1
0,
x   klm
2
3
Функции f klm
, f klm
, зависящие от переменных x 2 и x 3 соответственно, определяются
аналогичными соотношениями. Из определения базисных функций следует: что то
каждая компонента вектора приближенного решения обращается в нуль на одной из
граней Q . Тем не менее, построенное множество базисных функций удовлетворяет
требуемому условию аппроксимации в L2 .
Перенумеруем базисные функции:
f k1 , f k2 , f k3 , k  1,, N ,
1
где N  ( n 3  n 2 ) .
4
Расширенную матрицу для нахождения неизвестных коэффициентов a k , bk , ck
удобно представить в блочной форме:
 A11

 A21
A
 31
A12
A22
A32
A13 B1 

A23 B2 
A33 B3 
элементы колонок Bk и матриц Akl определяются из соотношений:
Bki  ( E 0k , f i k )

 



  
ij
l
k
Akl
 ( kl f jl , f ik )   kl k 02   G( x, y) f jl ( y)dy, f ik   
G
(
x
,
y
)
f
(
y
)
dy
,
f
j
i ,

Q
  xk Q xl


 

k , l  1,2,3; i, j  1,, N .
40
(3.17)
Преобразуем второе скалярное произведение в (3.2.11). Применяя к внешнему
интегралу формулу интегрирования по частям, получим:
 

 x k


  k
 k
 k 
l
k 
l

G
(
x
,
y
)
f
(
y
)
dy
,
f


G
(
x
,
y
)
f
(
y
)
dy
,
fi .
E
j
i
E
j
Q xl

  xl


x
k

Q

(3.18)
Поверхностные интегралы отсутствуют в силу условия исчезновения базисных
функций на двух гранях их носителей. Применяя теперь ко внутреннему интегралу
формулу интегрирования по частям, получим:


ij
Akl
 ( kl f jl , f ik )   kl k 02  G( x, y ) f jl ( y )dy, f ik
Q


 

 l

 
k
    G( x, y ) x f j ( y )dy, x f i  .
k
k
 Q

Предложенный метод Галеркина реализован для решения ряда задач дифракции.
Важно отметить, что часто интерес представляют задачи рассеяния в среде,
характеризующейся
постоянной
во
всем
объеме
резонатора
диэлектрической
проницаемостью ( ˆ   0 Iˆ ) и тензорной магнитной проницаемостью ̂ в Q (вне Q
ˆ  ˆ 0 Iˆ ). В этом случае краевая задача сводится к объемному сингулярному
интегральному уравнению (такого же типа) для магнитного поля и выражению для
электрического поля через решение этого уравнения


 ˆ ( y ) ˆ 
 ˆ ( y ) ˆ 
H ( x)  H 0 ( x)  k 02  G (r ) 
 I H ( y )dy  graddiv  G (r ) 
 I H ( y )dy, x  Q


 0

 0

Q
Q


 ˆ ( y ) ˆ 
E ( x)  E 0 ( x)  i 0 rot  G (r ) 
 I H ( y )dy, x  P .
0


Q
(3.19)
3.5. Вычисление интегралов
Следуя схеме предложенной в методе Галеркина, каждый элемент матрицы
получается путем вычисления следующих интегралов (рис. 12):
Aklij 
l
k
2
l
k
  kl f j x  f i x dx   kl k0   Gx, y  f j  y  f i x dydx 
 lj  ik
 ik  lj
 l
 k




G
x
,
y
f
y
f i  x dydx.
j
k l

y

x
l
k
 
i
j
41
(3.20)
Z
Y
4
4
3
3
2
2
1
1
1
2
4
3
X
Рис. 12
Будем предполагать сетку равномерной с шагом h по всем трем направлениям. Будем
также предполагать, что a1  b1  c1  0, a2  b2  c2  1 . Тогда носитель базисной
функции состоит из двух примыкающих друг к другу кубиков  i . Индекс k k
определяет направление, в котором располагаются примыкающие кубики. При k  1
направление вдоль оси 0 x , при k  2 направление вдоль оси 0 y , при k  3
направление вдоль оси
0z .
Индекс
i является тройным мультииндексом
i  i1, i2 , i3  , он определяет положение первого из двух кубиков i1 , i2 , i3 - номера
кубиков по направлению осей 0 x , 0 y , 0 z соответственно (рис. 12). Индексы l и j
вводятся аналогично. Число k 0 - является волновым числом, символ
 kl определяет
 kl -символ Кронекера равный нулю при
диэлектрическую проницаемость среды, а
k  l . Если вместо параллелепипедов рассматривать кубики, то построенная сетка
примет следующий вид. Вся матрица заполняется путем вычисления интегралов на
всевозможных парах носителей  i и  j . Первый интеграл в (3.20) вычисляются
k
аналитически. Для него параметр
l
 kl является постоянным в пределах носителя,
поэтому его можно вынести за знак интеграла. Значение оставшееся под интегралом
вычисляется аналитически и зависит от вида пересечения носителей. Рассмотрим три
случая (рис. 13): пусть пересечение происходит по паре носителей, изображенных в
42
2h 3
левой части рисунка, тогда интеграл равен
, если интеграл вычисляется для
3
h3
h3
средней или правой частей рисунка, то значения первого интеграла равны
и
4
6
соответственно. Здесь h длина грани куба. Значение третьего интеграла, так же
вычисляется
аналитически.
Интегрирование
второго
интеграла
производится
численным методом по квадратурной формуле прямоугольников Интеграл по паре
некоторых кубиков  , 
(1)
( 2)
от функции f 0 ( x, y ) вычисляется по формуле:
n , n 1
  f0 ( x, y)dxdy  k, m

(1)

f ( x ( k ) , y ( m) )3132 ,
(3.21)
( 2)
здесь x  ( x1 , x2 , x3 ), y  ( y1 , y 2 , y3 ),
h
h
1  ,  2 
,
n
n 1
h

h

 k  1  1 , y1( m )  y1( c )   m   2  2 ,
2
2
2
2
h

h

 x2( c )   k  1  1 , y2( m )  y2( c )   m   2  2 ,
2
2
2
2
h

h

 x3( c )   k  1  1 , y3( m )  y3( c )   m   2  2 .
2
2
2
2
x1( k )  x1( c ) 
x2( k )
x3( k )
Здесь
( x1( c ) , x2( c ) , x3( c ) ), ( y1( c ) , y2( c ) , y3( c ) ) центры кубиков
 (1) ,  ( 2) . В случае
совпадения носителей при интегрировании второго интеграла в (3.20) возникает слабая
особенность, поэтому при численном интегрировании в одном из носителей
выбирается n точек интегрирования, а во втором n  1 по каждому из направлений.
Это
приводит
к
избавлению
от
особенности
за
счет
несовпадения
узлов
интегрирования.
Рис. 13
Для заполнения всей матрицы нас будут интересовать элементы вычисляемые по двум
комбинациям носителей: первый - оба носителя ориентированны по оси 0 x ; второй
43
один ориентирован по оси 0 x , а второй по оси 0 y . Остальные элементы матрицы
вычисляются на основе этих за счет внутренней симметрии матрицы.
3.6. Параллельный алгоритм формирования матрицы
Для получения численных результатов решения задачи дифракции использовался
параллельный алгоритм для многопроцессорных кластеров и распределенных
вычислительных систем. Неизбежность использования подобных алгоритмов вызвана
большим объемом вычислительной работы. Последнее обусловлено прежде всего
объемным и векторным характером задачи, численное решение которой приводит к
матрицам большой размерности (порядка тысяч и даже десятков тысяч), при решении
которых (за приемлемое время) эффективно применение параллельных версий
решения
систем
линейных
алгебраических
уравнений
методом
сопряженных
градиентов. Однако при решении нашей задачи большую трудность представляет не
решение системы, а ее заполнение: элементы матрицы представляются через
шестимерные интегралы. Кроме того, в выражениях для этих интегралов присутствуют
компоненты функции Грина, которые представляются в виде двойных рядов (в случае
свободного пространства, когда функция Грина имеет простой вид, интегралы
вычисляются на порядок быстрее).
Поясним кратко суть алгоритма параллельных вычислений. Предположим, что
расширенная матрица систем линейных алгебраических уравнений состоит из n строк
и в нашем распоряжении p процессоров. Распределим задание на заполнение матрицы
n
следующим образом: первые p  1 процессора заполняют по   строк, а последний –
 p
n
n    строк.
 p
Предложенный
алгоритм
распараллеливания
был
алгоритма
запрограммирован
использовалась
на
языке
система
Си++,
для
параллельного
программирования Message Passing Interface [14] в реализации MPI Chameleon для
операционной системы Linux.
44
4.
РЕАЛИЗАЦИЯ
ЧИСЛЕННОГО
МЕТОДА
РЕШЕНИЯ
ЗАДАЧ
ДИФРАКЦИИ
4.1.
Особенности
реализации
метода
решения
систем
линейных
алгебраических уравнений с блочно-теплицевыми матрицами
Матрицы, возникающие при реализации метода Галеркина при решении задач
дифракции, обладают определенной спецификой, которую необходимо учитывать
при
построении
эффективных
алгоритмов
решения
систем
линейных
алгебраических уравнений с такими матрицами. Прежде всего, матрицы являются
плотными (не разреженными).
Действия с плотной матрицей требуют основных затрат для вычисления элементов
и проведения операции умножения матрицы на вектор. Поэтому вопрос о ее
эффективном
хранении
и
умножении
на
вектор
представляет
наибольший
практический интерес. Интегральные уравнения, также обладают определенной
спецификой, учитывая которую, мы можем значительно снизить затраты на
вычисление, хранение и умножение матрицы при решении систем линейных
алгебраических уравнений.
Отметим, что функция Грина G(x,y) = G(\x — у \ ) зависит только от
расстояния между точками x и у. Поскольку сетки, на которых введены
базисные функции, равномерны по всем направлениям, аналогичное свойство
распространяется и на матрицу задачи.
Матрица, элементы которой зависят только от разности номера строки и
столбца,
называется
теплицевой.
В
нашем
случае
матрица
задачи
представляется в виде суммы двух блочных 3 x 3 матриц, каждый блок которых
обладает следующими свойствами:
• имеет трехуровневую структуру;
• на верхнем уровне в обоих случаях блоки являются блочно-теплицевыми;
• на втором уровне блоки блочно-теплицевы;
• на нижнем уровне блоки являются теплицевыми матрицами.
45
Как известно, для хранения теплицевой матрицы размера п необходимо О(п) ячеек
памяти, а умножение на нее можно произвести за О(п log(n)) арифметических действий
[16]. То же самое справедливо и для ганкелевой матрицы, так как перестановкой строк и
столбцов ее можно привести к теплицевой. Таким образом, матрицу нашей задачи можно
хранить в О(п) ячейках памяти и умножать на вектор за О(п log(n)) арифметических
операций, пользуясь процедурами быстрого умножения Фурье (см. [16]).
Имея оптимизированную процедуру умножения на матрицу, мы можем найти решение
линейной системы с помощью какого-нибудь итерационного метода (в нашей работе
применяется методсопряженных градиентов).
Основой алгоритма численного решения систем линейных алгебраических
уравнений
с
использованием
итерационной
процедуры
метода
градиентов является вычисление итераций, т.е. выражений вида
сопряженных
ÂV pl . При этом
основные вычислительные затраты связанны с нахождением сумм вида
3
U pm    B pqmnVqn
(4.1)
n 1 qQ
Для вычисления U pm ,


p  Q, m  1,2,3 , требуется выполнить ~ 9 N1 N 2 N 3 2
арифметических операций. Однако, ка было отмечено выше, матрица имеет блочнотеплицеву структуру. Поэтому с целью сокращения требуемого числа арифметических
операций, применим технику умножения блочно-теплицевых матриц на вектор,
которая основывается на дискретном преобразовании Фурье.
Доопределим величины
Vqn нулем в узловых точках  , не принадлежащих
Q . Тогда можно записать
3 N1 1 N 2 1 N 3 1
U m ( p1 , p2 , p3 )      Bmn ( p1  q1 , p2  q2 , p3  q3 )  Vn (q1 , q2 , q3 )
n 1q1 0 q2 0 q3 0
Здесь функции дискретного аргумента
Bmn ( p1, p2 , p3 )
определены при значениях




 N1  1  p1  N1  1;  N 2  1  p2  N 2  1;  N3  1  p3  N3  1 .
Отсюда следуют соотношения


Bmn ( p1, p2 , p3 )   2, m, n B p1, p2 , p3 
Bmn ( p1, p2 , p3 )   3, m, n B p1, p2 , p3 
Bmn ( p1, p2 , p3 )   1, m, n B p1, p2 , p3
m, n  1,2,3; p  .
Здесь функции дискретного аргумента
 l , m, n  определяется формулой
 l , m, n  1  2 lm 1  2ln 
Обозначим через
2 N3h3 ,
 2 параллелепипед со сторонами со сторонами 2 N1h1 , 2 N 2 h2 ,
причем
Продолжим
0  p1  2 N1  1; 0  p2  2 N 2  1; 0  p3  2 N3  1.
функцию
дискретного
целочисленные значения
аргумента
p1, p2 , p3 ,
переменной с периодами соответственно
функцию
полагая
Bmn ( p1, p2 , p3 )
на
все
ее периодической по каждой
2N1 , 2N 2 и 2N3 . При этом доопределим
нулем
в
Bmn ( N1, p2 , p3 )  0, Bmn ( p1, N 2 , p3 )  0, Bmn ( p1, p2 , N3 )  0 ,
точках
где
p1, p2 , p3 - любые целые числа. Далее доопределим функцию дискретного аргумента
Vn ( p1, p2 , p3 )
нулем во всех узловых точках
 2 , не принадлежащих  . Запишем
выражение
3 2 N1 1 2 N 2 1 2 N 3 1
U m ( p1 , p2 , p3 )   

 Bmn ( p1  q1, p2  q2 , p3  q3 )  Vn (q1, q2 , q3 )
n 1 q1 0 q2 0 q3 0
( p1, p2 , p3 ) при p  
Учитывая вышеизложенное, ясно что функция U
m
совпадает со соответствующими значениями U
( p1, p2 , p3 ) .
Пусть в узлах
m
 2 определена функция дискретного аргумента f ( p1, p2 , p3 )
и ее дискретное преобразование Фурье
~
f ( p1, p2 , p3 ) , q   2 . Тогда эти функции
связанны формулами


2 N 1 2 N 2 1 2 N 3 1
1
~
f q1 , q2 , q3  

p q
pq
p q
 f  p1, p2 , p3 w1 1 1 w2 2 2 w3 3 3 ,
~
p1  0 p 2  0 p3  0
47

2 N 1 2 N 2 1 2 N 3 1

1
~
f p1 , p2 , p3  
Здесь

p q
p q p q
 f q1, q2 , q3 w1 1 1 w2 2 2 w3 3 3 .
~
q1  0 q 2  0 q3  0


w1  exp 2i / 2 N1 , w2  exp 2i / 2 N 2 , w3  exp 2i / 2 N3 .
Теперь проводя дискретное преобразование Фурье, получим



 

3 ~
~
~
U q1, q2 , q3   Bmn q1, q2 , q3 Vn q1, q2 , q3 , q   2
n 1
Элементы
массива
B~mn q1, q2 , q3 , q   2
удовлетворяют,
в
силу
периодичности функций, следующим соотношениям:
2 N1  q1, q2 , q3    1, m, nB~mn q1, q2 , q3 ,
q1,2 N 2  q2 , q3    2, m, nB~mn q1, q2 , q3 ,
q1, q2 ,2 N3  q3    3, m, nB~mn q1, q2 , q3 .
~
~
Таким образом, учитывая, что Bmn q1 , q2 , q3   Bnm q1 , q2 , q3 , ясно, что
~
количество элементов массива Bmn q , q   2 , m, n  1,2,3 , которое надлежит
~
Bmn
~
Bmn
~
Bmn
вычислить хранится в памяти компьютера, определяется формулой


M F  6N1  1N 2  1 N3  1
При вычислении
нахождения
um  p , p  
B~mn q ,
(4.2)
основные вычислительные затраты, без учета
связанны с прямым и обратным преобразованием Фурье
функций дискретного аргумента. При прямом преобразовании Фурье функция
отличается от нуля только при
p   . С другой стороны, при обратном
преобразовании Фурье значение функции
узловых точках
операций,
U m  p
требуется определить только в
 . Принимая это во внимание, получим, что число арифметических
требуемое
формулой
для
вычисления
U m  p , p  , ь  1,2,3 ,

TF ~ 6 N 1 N 2 N 3 N 1  2 N 2  4 N 3
Здесь
Vm  p 
N 1 , N 2  , N 3

расположенные в порядке убывания числа
Действительно при проведении преобразования Фурье вычисление может
48
оценивается
(4.3)
N1 , N 2 , N 3 .
49
Скачать