ВВЕДЕНИЕ 3
1 Двумерный случай 5
1.1 Постановка задачи двумерного случая 5
1.2 Вывод БСЛАУ 5
1.3 Результаты тестов 7
2 Трехмерный случай 14
2.1 Постановка задачи трехмерного случая 14
2.2 Решение задачи без учета TE-волн 16
2.2.1 Вывод БСЛАУ 16
2.2.2 Результаты тестов для задач типа SIN, COS, SINCOS, COSSIN 19
2.2.3 Результаты тестов для задачи объединенного типа 27
2.3 Оценка быстродействия программы 31
3 Две поляризации поля 33
3.1 Вывод БСЛАУ 33
3.2 Результаты тестов 34
ЗАКЛЮЧЕНИЕ 42
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 43
ПРИЛОЖЕНИЕ А. Листинг программы
Цель данной работы заключалась в разработке параллельной программы на языке C++ с использованием технологии CUDA для эффективного решения задачи дифракции электромагнитной волны на металлической перегородке внутри волновода. Методом интегрально сумматорных тождеств (далее ИСТ) [1] эта задача сводится к решению бесконечной системы линейных алгебраических уравнений (далее БСЛАУ), которая, в свою очередь, приближенно решается методом усечения.
В данной работе первостепенное внимание уделяется проверке корректности разработанной программы. С этой целью проводятся тесты, которые можно разделить на три вида.
1) Внутренняя сходимость. Так как БСЛАУ решается методом усечения, решение находится приближенно. Поэтому надо проверить, стремятся ли полученные коэффициенты к определенным значениям при увеличении порядка матрицы решаемой СЛАУ и количества слагаемых в усеченной сумме. Следует заметить, что этот тест гарантирует лишь то, что решение куда-то сходится, но не гарантирует, что оно сходится к истинному решению задачи.
2) Закон сохранения энергии. Когда исходная волна взаимодействует с металлической перегородкой, в результате дифракции возникают две волны: отраженная и прошедшая дальше. Сумма потоков энергий этих волн должна быть равна потоку энергии исходной волны. Именно это и проверяет данный тест.
3) Равенство нулю касательной составляющей вектора напряженности на перегородке. Для проверки этого закона теории электромагнитных волн производится визуализация нормы касательной составляющей вектора E. Если задача решена правильно, то на месте перегородки должно быть темное пятно, а в областях с большими значениями касательной составляющей - светлые пятна.
В данной работе задача решается в два этапа. Сначала решается двумерный случай, который получается в результате предельного перехода, когда одна из сторон поперечного сечения волновода равна бесконечности. В этом случае задача решается без особых требований на вычислительные мощности техники, и как будет показано в дальнейшем, программа успешно проходит все тесты. На втором этапе решается трехмерный случай, который, хоть и является продолжением двумерного случая на идейном уровне, является гораздо более сложной задачей для решения на ЭВМ. Дело в том, что здесь сложность задачи и требуемый объем памяти зависят от параметров усечения БСЛАУ как 0(п4), тогда как в двумерном случае этот показатель имел вид О(п2). Таким образом, для нахождения решения с приемлемой точностью приходится вовлекать большие вычислительные ресурсы или запускать компьютер на долгое время. Для данной работы программа разрабатывалась и тестировалась на ноутбуке ASER ASPIRE 5742G со встроенной видеокартой NVIDIA GEFORCE 610M.
При решении задачи в трехмерном случае, кроме проблем вычислительного характера, обнаружились также проблемы методологического плана. А именно, БСЛАУ можно получить разными способами, и, что самое интересное, результаты тестов для каждого способа получаются разными. В данной работе описаны и приведены результаты вычислений для всех обнаруженных способов.
Была разработана программа, решающая задачу дифракции электромагнитной волны. Как следует из результатов работы, в двумерном случае данная программа успешно проходит все тесты и не требует больших ресурсов для приемлемой точности. В трехмерном случае помимо вычислительной сложности программы на первый план выходит проблема вывода БСЛАУ. В этом случае БСЛАУ можно получить разными способами. Были приведены результаты тестов для разных версий БСЛАУ, но по этим результатам не удается сделать выбор в пользу одного конкретного метода. Это объясняется, во-первых, тем, что результаты значительно разнятся при разных входных данных. Т.е. если при одной конфигурации перегородки оказывается лучше один метод, то при других значениях параметров а1,а2,ф1,ф2 предпочтение отдается другому методу. Во-вторых, сказывается недостаточная вычислительная мощность компьютера, на котором проводились вычисления, так как может оказаться, что все различия в результатах тестов происходят из-за малых значений параметров усечения. Таким образом, имеет смысл повторить все вычисления на более мощном компьютере.
1. Плещинский Н.Б. Модели и методы волновой электродинамики: Учебное пособие / Н.Б. Плещинский. - Казанский государственный университет, 2008. - 104 с.
2. Документация CUDA [Электронный ресурс] - URL: https://docs.nvidia.com/cuda/(дата обращения 15.03.2017).