Титульный лист
Аннотация
ОГЛАВЛЕНИЕ
Глава 1. РАЗНОСТНЫЕ МЕТОДЫ РАСЧЕТА ЭЛЕКТРОСТАТИЧЕСКИХ ПОЛЕЙ
§ 1.2. Способы построения разностных аппроксимаций.
§ 1.3. Свойства разностных операторов и оценки точности разностных решений.
§ 1.4. Прямые методы решения разностных уравнений.
§ 1.5. Итерационные методы решения разностных уравнений.
§ 1.6. Комбинированные методы решения разностных уравнений
§ 1.7. Некоторые вопросы расчета характеристик электростатических полей.
Глава 2. РЕШЕНИЕ ЗАДАЧ МАГНИТОСТАТИКИ МЕТОДАМИ  КОНЕЧНЫХ ЭЛЕМЕНТОВ.
§ 2.2. Аппроксимация решений в методах конечных элементов.
§ 2.3. Построение конечно-элементных уравнений.
§ 2.4. Методы решения систем нелинейных уравнений.
§ 2.5. Примеры расчетов магнитостатических полей.
Глава 3. МЕТОДЫ ИНТЕГРАЛЬНЫХ УРАВНЕНИЙ ДЛЯ ЗАДАЧ  ТЕОРИИ ПОТЕНЦИАЛА.
§ 3.2. Численное решение интегральных уравнений для потенциала простого слоя.
§ 3.3. Примеры решения методических задач.
§ 3.4. О сравнительной эффективности методов решения интегральных и дифференциальных уравнений.
§ 3.5. Краткий обзор других методов решения интегральных уравнений.
Глава 4. МЕТОДЫ РАСЧЕТА СОБСТВЕННЫХ ЧАСТОТ И  ГАРМОНИК ЭЛЕКТРОДИНАМИЧЕСКИХ СИСТЕМ.
§ 4.2. Разностные аппроксимации проблемы собственных значений для  краевых задач.
§ 4.3. Итерационные методы решения алгебраической проблемы собственных значений.
§ 4.4. Примеры расчета характеристик электродинамических систем.
Глава 5. МОДЕЛИРОВАНИЕ СИЛЬНОТОЧНЫХ ПУЧКОВ.
§ 5.2. Определение напряженностей электрического и магнитного полей.
§ 5.3. Методы интегрирования уравнений движения заряженных частиц.
§ 5.4. Вычисление плотности тока и объемных зарядов.
§ 5.5. Итерационные процессы решения стационарных самосогласованных задач.
§ 5.6. Примеры расчетов сильноточных пучков.
Глава 6. ЧИСЛЕННЫЕ МЕТОДЫ РАСЧЕТА ПОЛУПРОВОДНИКОВЫХ ПРИБОРОВ.
§ 6.2. Разностные методы решения уравнений переноса зарядов в полупроводниках.
Глава.7. МЕТОДОЛОГИЯ ПАКЕТОВ ПРОГРАММ ДЛЯ  ПРОЕКТИРОВАНИЯ ЭЛЕКТРОФИЗИЧЕСКИХ УСТРОЙСТВ.
§ 7.2. Технология пакетов прикладных программ.
§ 7.3. Проблемы автоматизации построения алгоритмов в задачах  электрофизики.
Приложение. РАСПАРАЛЛЕЛИВАНИЕ АЛГОРИТМОВ В ЗАДАЧАХ ЭЛЕКТРОФИЗИКИ.
Список литературы
Выходные данные
Обложка
Текст
                    в. п. ильин
ЧИСЛЕННЫЕ МЕТОДЫ
РЕШЕНИЯ ЗАДАЧ
ЭЛЕКТРОФИЗИКИ
МОСКВА «НАУКА»
ГЛАВНАЯ РЕДАКЦИЯ
ФИЗИКО-МАТЕМАТИЧЕСКОЙ ЛИТЕРАТУРЫ
1985


ББК 22.19 И 46 УДК 519.6 Ильин В. П. Численные методы решения задач электрофизики.— М.: Наука. Главная редакция физико-математической литературы, 1985—336 с. Книга посвящена методам расчета электрических и магнитных полей в различных электрофизических устройствах. В ней содержится описание математических постановок и алгоритмов для задач электро- и магнитостатики, формирования плотных пучков заряженных частиц, СВЧ-электроники. Для различного типа задач применяются методы конечных разностей, конечных элементов и интегральных уравнений. Даются примеры решения типовых задач. Рассматриваются вопросы автоматизации расчетов широкого класса приборов и технологии пакетов прикладных программ. Для специалистов в области прикладной математики и инженеров. Рецензент доктор физико-математических наук Ю. А. Березин (g) Издательство «Наука» 1702070000—139 Главная редакция И m е КБ-29-17-85 физико-математической UOO(U2)-OO литературы, 1985
ОГЛАВЛЕНИЕ Предисловие Глава 1. РАЗНОСТНЫЕ МЕТОДЫ РАСЧЕТА ЭЛЕКТРОСТАТИЧЕСКИХ ПОЛЕЙ И § 1.1. Основные понятия и вспомогательные сведения 13 § 1.2. Способы построения разностных апроксимаций 16 § 1.3. Свойства разностных операторов и оценки точности разностных решений 26 § 1.4. Прямые методы решения разностных уравнений 41 § 1.5. Итерационные методы решения разностных уравнений 49 § 1.6. Комбинированные методы решения разностных уравнений .... 73 § 1.7. Некоторые вопросы расчета характеристик электростатических полей 83 Глава 2. РЕШЕНИЕ ЗАДАЧ МАГНИТОСТАТИКИ МЕТОДАМИ КОНЕЧНЫХ ЭЛЕМЕНТОВ 93 § 2.1. Математические постановки задач магнитостатики 94 § 2.2. Аппроксимация решений в методах конечных элементов 97 § 2.3. Построение конечно-элементных уравнений 108 § 2.4. Методы решения систем нелинейных уравнений 113 § 2.5. Примеры расчетов магнитостатических полей 118 Глава 3. МЕТОДЫ ИНТЕГРАЛЬНЫХ УРАВНЕНИЙ ДЛЯ ЗАДАЧ ТЕОРИИ ПОТЕНЦИАЛА 121 § 3.1. Интегральные постановки краевых задач 121 § 3.2. Численное решение интегральных уравнений для потенциала простого слоя 130 § 3.3. Примеры решения методических задач 146 § 3.4. О сравнительной эффективности методов решения интегральных и дифференциальных уравнений 152 § 3.5. Краткий обзор других методов решения интегральных уравнений . . 155 Глава 4. МЕТОДЫ РАСЧЕТА СОБСТВЕННЫХ ЧАСТОТ И ГАРМОНИК ЭЛЕКТРОДИНАМИЧЕСКИХ СИСТЕМ 162 § 4.1. О постановках задач электродинамики 162 § 4.2. Разностные аппроксимации проблемы собственных значений для краевых задач 167 § 4.3. Итерационные методы решения алгебраической проблемы собственных значений 178 § 4.4. Примеры расчета характеристик электродинамических систем . . . 188 Глава 5. МОДЕЛИРОВАНИЕ СИЛЬНОТОЧНЫХ ПУЧКОВ 191 § 5.1. Описание математической модели 192 § 5.2. Определение напряженностей электрического и магнитного полей . 201 § 5.3. Методы интегрирования уравнений движения заряженных частиц . 213 § 5.4. Вычисление плотности тока и объемных зарядов 226 § 5.5. Итерационные процессы решения стационарных самосогласованных задач 233 § 5.6. Примеры расчетов сильноточных пучков 242
Глава 6. ЧИСЛЕННЫЕ МЕТОДЫ РАСЧЕТА ПОЛУПРОВОДНИКОВЫХ ПРИБОРОВ 247 § 6.1. Математическая постановка процессов переноса заряда в полупроводниковых приборах 247 § 6.2. Разностные методы решения уравнений переноса зарядов в полупроводниках 254 Глава.7. МЕТОДОЛОГИЯ ПАКЕТОВ ПРОГРАММ ДЛЯ ПРОЕКТИРОВАНИЯ ЭЛЕКТРОФИЗИЧЕСКИХ УСТРОЙСТВ 268 § 7.1. Функциональные требования к программному обеспечению САПР . 269 § 7.2. Технология пакетов прикладных программ 273 § 7.3. Проблемы автоматизации построения алгоритмов в задачах электрофизики 288 Приложение. РАСПАРАЛЛЕЛИВАНИЕ АЛГОРИТМОВ В ЗАДАЧАХ ЭЛЕКТРОФИЗИКИ 312 Список литературы 325
ПРЕДИСЛОВИЕ К электрофизике традиционно относят задачи, связанные с определением электромагнитных полей, плотностей токов и распределения зарядов. Сюда включаются приложения из самых различных областей науки и техники: высоковольтные конструкции, электрические машины, трансформаторы, ускорители заряженных частиц, спектроаналитические приборы, электронно-оптические преобразователи, приборы СВЧ электроники, устройства формирования сильноточных пучков, различного типа полупроводниковые приборы (транзисторы, структуры металл-диэлектрик-полупроводник), многочисленные плазменные задачи. Это многообразие постановок мы существенно сузим, исключив из рассмотрения задачи, сводящиеся к решению уравнений Максвелла, а также те, для которых существенны столкновительные процессы, описываемые уравнением Больцмана или его магнитогидродинамическим приближением. Однако и при таких ограничениях мы имеем дело с широким и содержательным классом математических проблем. Одна из них заключается в эффективном численном решении линейных и нелинейных эллиптических уравнений в двумерных и трехмерных областях, как'ограниченных, так и неограниченных, со сложной конфигурацией границ, в том числе многосвязных, и различными типами граничных условий. К этому сводятся задачи электростатики и магнитостатики. Конечной же целью является оптимизация краевых задач, которая формулируется как минимизация некоторого функционала от решения при заданных ограничениях на варьируемые параметры и на какие-либо функциональные характеристики. Исследования волновых процессов электродинамических систем приводят к частичной проблеме собственных значений для краевых задач. Вычислительная работа здесь особенно велика, если требуется находить большое количество (до нескольких десятков) собственных частот и гармоник. Принципиальным моментом является тот факт, что основная цель исследования численных методов заключается в обеспечении автоматического построения алгоритмов на ЭВМ для решения широкого класса задач. Этот подход определяет свои требования к подбору методов, к самой оценке их трудоемкости и эффективности. Одной из наиболее сложных является проблема формирования сильноточных пучков заряженных частиц, которая в общем случае включает все рассмотренные выше постановки. Моделирование
электронных и ионных потоков, как правило, проводится с помощью методов больших частиц или трубок тока, которые позволяют дискретизировать функции распределения частиц по энергиям и углам. Задачи с сильными нелинейными эффектами могут иметь неустойчивые режимы, в силу чего сами математические постановки трудно исследовать в отношении существования и единственности решения. Зачастую численные алгоритмы приходится применять без их строгого обоснования; основным критерием достоверности расчетов является сравнительный анализ численных экспериментов с натурными или же правдоподобность получаемых результатов с точки зрения качественных оценок физических эффектов. Вычислительные трудности возрастают при наличии следующих факторов: сильные токи, приводящие к частичному «запиранию» пучков полем объемного заряда и появлению режима виртуального катода с высокой чувствительностью решения исходных данных; большие скорости частиц, требующие учета релятивистских явлений; сильные магнитные поля, когда ларморовский радиус намного меньше характерных размеров области и необходимо переходить к дрейфовой теории движения. Самостоятельную содержательную задачу представляет собой расчет собственных и внешних магнитных полей. Например, типичная постановка состоит в нахождении поля по измеренному с неизбежными экспериментными ошибками полю на оси, в этом случае приходим к классической некорректной задаче Коши для уравнения Лапласа. Интересные и мало исследованные математические постановки возникают при моделировании процессов переноса зарядов в полупроводниковых приборах. Основная задача заключается в расчете характеристик нестационарных процессов, но самостоятельное значение имеют и стационарные задачи. При различных физических допущениях возникают задачи со свободной границей, дифференциальные уравнения с сильными нелинейностями и одна из трудоемких вычислительных задач — системы уравнений с малыми параметрами при старших производных. Для таких случаев типичными особенностями решений является наличие подобластей с очень большими градиентами, что значительно усложняет проблему построения хороших аппроксимаций. Большое внимание в книге уделяется методам расчета полей, сводящимся к решению краевых задач для уравнений эллиптического типа. Первая глава посвящена конечно-разностным методам для уравнения Пуассона в двумерных и трехмерных областях с различными типами граничных условий. Рассматриваются способы аппроксимации дифференциальных уравнений, в том числе повышенной точности, свойства получаемых разностных систем и методы их решения. Помимо ставших уже классическими итерационных процессов верхней релаксации, переменных направлений или неполной факторизации с различными способами ускорения сходимости, описываются современные комбинированные методы последовательности сеток и итераций по подобластям с использованием
экономичных прямых алгоритмов типа циклической редукции. Изложение теоретических результатов по обоснованию или оценкам ' эффективности алгоритмов сопровождается значительным количеством методических численных экспериментов. В первой главе значительное место уделяется также общим вопросам методов дискретизации, аппроксимации уравнений и матричного анализа, используемым в последующих разделах. С практической точки зрения рассматриваемые задачи имеют большое самостоятельное значение, например, при проектировании высоковольтных конструкций. Основной целью здесь является нахождение конфигурации электродов и изоляционных материалов, обеспечивающих наименьшие габариты при необходимой электрической прочности. Приводятся примеры расчетов характеристик изолирующих конструкций высоковольтной подстанции и линии электропередачи. Вторая глава содержит изложение основ методов конечных элементов (или же вариационно-разностных схем) на примере решения двумерных нелинейных задач магнитостатики. Здесь не ставится цель, конечно, охватить весь круг теоретических и практических вопросов методов конечных элементов, по которым к настоящему времени уже имеется большое число прекрасных монографий советских и зарубежных авторов. Задача заключалась в наглядном, по возможности, представлении аппроксимационных качеств и технологических аспектов данного класса алгоритмов, эффективность которых особенно проявляется при расчетах полей сложных магнитных линз и других устройств. Описанные же в отдельном параграфе методы решения систем нелинейных уравнений могут применяться и для других типов прикладных задач. В качестве примера достаточно сложной практической задачи приводятся ре- зультатьграсчетов полей магнитостатическои линзы при различных токах в катушках, соответствующих случаям слабого, среднего и сильного насыщения ферромагнитных материалов. Для расчета полей без нелинейных эффектов во многих случаях рекордно высокую точность потенциалов и их производных можно получить сведением дифференциальной задачи к интегральным уравнениям теории потенциала. Численным методам решения таких уравнений посвящена третья глава. Эти алгоритмы имеют пока что меньшее распространение по сравнению с сеточными, но в последние годы интерес к ним со стороны специалистов по вычислительной и прикладной математике значительно возрос. Основное внимание уделено решению двумерных задач с помощью принципа коллокации и аппроксимации потенциала простого слоя В-сплайнами. В четвертой главе рассматривается самостоятельная физическая задача о расчете свободных колебаний электродинамических систем. Математически она формулируется как проблема собственных значений для краевых задач, являющаяся актуальной для многих других прикладных областей. В методологическом плане Данная глава является продолжением первой, поскольку в ней ис-
пользуются конечно-разностные методы. Исследуемые здесь способы построения аппроксимаций с учетом асимптотического поведения решения в окрестности особых граничных точек представляют интерес и для расчетов электростатических полей. Рассматриваются эффективные итерационные методы решения алгебраической частичной проблемы собственных значений. Для иллюстрации расчетов характеристик электродинамических систем приводятся результаты численного моделирования регулярной структуры волновода и замедляющей системы ускорителя. Пятая глава посвящена численному решению одной из наиболее сложных задач о формировании плотных пучков заряженных частиц. В полной постановке здесь требуются расчеты и электростатических и магнитостатических полей, и собственных частот и гармоник резонаторов. Основное внимание в главе уделяется алгог ритмам интегрирования уравнений движения для разных постановок (с магнитным полем и без него, релятивистских и н€реляти- вистских, двумерных и трехмерных), аналитического продолжения магнитного поля по его компонентам на линии симметрии, вычисления плотности тока и объемных зарядов, организации итерационного процесса для решения всей самосогласованной задачи. Приводятся примеры решения методических задач, а также результаты расчетов достаточно сложных реальных устройств. Одно из них — это высоковольтный источник релятивистского электронного пучка, а второе — электронно-ионная оптическая система для тлеющего разряда с заранее неизвестной конфигурацией поверхности плазменного эмиттера. В шестой главе рассматриваются математические постановки и численные методы расчета полупроводниковых приборов. Описываются различные физические модели процессов переноса основных и неосновных носителей зарядов в полупроводниковых материалах. Отсюда следуют разной степени адекватности и разного уровня сложности математические формулировки. Поскольку наиболее полные и точные постановки являются чрезвычайно трудоемкими, представляется целесообразным использовать иерархию моделей таким образом, чтобы решение относительно простой задачи использовать в качестве начального приближения для более сложной. Среди исследуемых в главе численных алгоритмов можно отметить следующие: итерационный процесс для решения задачи о нахождении свободной границы; построенная на основе интегрального тождества Марчука разностная схема для одномерного параболического уравнения с преобладающим конвективным членом; разностное решение системы уравнений переноса электронов и дырок в квазистационарном электрическом поле. Для иллюстрации решения практической задачи приводятся результаты расчетов установившегося режима для униполярного транзистора. Современный уровень развития численных методов и средств вычислительной техники позволяет осуществлять переход от решения отдельных задач к разработке пакетов прикладных программ,
обеспечивающих эффективное решение на ЭВМ целых классов задач, с высоким уровнем автоматизации всего вычислительного процесса. С инженерной точки зрения это означает подход к построению системы автоматизированного проектирования различного типа устройств. Реализация такой системы позволяет в значительной степени заменить физические эксперименты (что зачастую связано с созданием дорогостоящих макетов) на оперативное численное моделирование и, в итоге, сократить сроки и повысить качество проектирования новых устройств. Переход от программ исследовательского характера к разработке производственного программного продукта налагает жесткие требования на весь технологический процесс программирования и его конечный результат: гарантирование необходимой точности, экономичность расчетов, безотказность работы, удобство в эксплуатации для пользователя без высокой программистской квалификации, качественное документирование, приспособленность к расширению программного комплекса и адаптации на новые технические средства. Методологическим вопросам всего этого круга проблем посвящена последняя глава. В ней рассмотрены структура, с^ема развития и функционирования прикладного программного обеспечения системы автоматизированного проектирования, модульный анализ и технология пакетов программ для задач математической физики, приведены описания ряда пакетов для расчетов электрофизических устройств. Вопросы пакетов прикладных программ являются важной составной частью вычислительной математики. Само современное понятие эффективности алгоритма неразрывно связано с особенностями его программной реализации и конфигурации вычислительных средств: точности машинного слова, объема оперативной и внешней памяти, характеристик трансляторов, диалоговых и сервисных средств. В конечном счете хороший алгоритм — это «дешевый», т.е. позволяющий экономично решать задачи данного класса на определенном типе ЭВМ. Рассматриваемые задачи являются одними из трудоемких в математической физике. Поэтому для проблем автоматизированного проектирования электрофизических устройств, связанных с многовариантными расчетами при различных данных, чрезвычайно актуален вопрос о повышении быстродействия используемых ЭВМ. В настоящее время однопроцессорные вычислительные системы близки к предельно возможному быстродействию, определяемому конечной скоростью распространения электрического сигнала. Главным резервом повышения скорости вычислений является распараллеливание алгоритмов на многопроцессорных вычислительных системах. Эта проблема заставляет или разрабатывать новые численные методы, или по-новому рассматривать старые с точки зрения эффективности их реализации. Этим вопросам посвящено приложение в книге, в котором исследуются критерии эффективности распараллеливания основ-
ных характерных вычислительных фрагментов: сеточные (конечно- разностные или конечно-элементные) методы решения краевых задач, методы решения параболических уравнений в частных производных, методы решения интегральных уравнений и уравнений в частных производных. Даются оценки производительности параллельных вычислительных систем для рассматриваемых нами задач электрофизики. В книге сделана попытка, с одной стороны, осветить основные теоретические проблемы рассматриваемых численных методов, но без доказательства сложных теорем, а с другой — дать практические рекомендации по их реализации. Некоторые из обсуждаемых вопросов содержались в книге автора «Численные методы решения задач электрооптики», издававшейся в 1974 году. Излагаемый материал в значительной степени основан на многолетнем опыте работ лаборатории автоматизации построения алгоритмов Вычислительного центра Сибирского Отделения АН СССР. Автор искренне признателен за сотрудничество А. В. Гаврилину, С. П. Гололобовой, Б. И. Голубцову, Н. И. Горбенко, Е. А. Ицкович, В. А. Катешову, Г. Я. Куклиной, С. Б. Кузнецову, Г. С. Поповой, С. А. Сандеру, В. М. Свешникову, А. Л. Урван- цеву, М. В. Уреву, а также глубоко благодарен Г. И. Нариньяни и Ф. В. Сартисон, оказавших неоценимую помощь в подготовке рукописи. В. П. Ильин
Глава! РАЗНОСТНЫЕ МЕТОДЫ РАСЧЕТА ЭЛЕКТРОСТАТИЧЕСКИХ ПОЛЕЙ В этой главе мы будем рассматривать методы конечных разностей решения внутренних краевых задач для электростатических задач (или магнитостатических задач в линейном приближении). Постановка формулируется как нахождение функции и (х, у> z), удовлетворяющей уравнению Пуассона Да—LJL (^^.)+Л+рЛ ef( } (1Л) ха dx V °х / ду2 dz2 в ограниченной области G. Здесь (3 = 1 соответствует трехмерным задачам (при этом а = 0), а |3 = 0 —двумерным; в последнем случае а = 0 соответствует плоским задачам, а а = 1 — осесим- метричным. Физический смысл имеет также уравнение с |3 = 0, а = —1, тогда (1.1) описывает распределение осесимметрично- го магнитного потока в цилиндрической системе координат. _ Через Г будем обозначать границу области G, а через G = = G + Г — ее замыкание. Границу области считаем состоящей из частей Гь Г2, Г3, на каждой из которых заданы граничные условия 1-го, 2-го или 3-го рода: и I г, = g\(x, У, А (х, у, z) ge Гь ди I дТГ\ г2 = £2 (х, у, z\ (x, у, z) e Г2, (1.2) + У{Х У2) Кроме того, при наличии сред с различными физическими свойствами на границах их раздела (внутренние границы Г4) ставятся условия сопряжения — непрерывность решения и скачок его нормальных производных,— называемые иногда граничными условиями 4-го рода: I л- ди \ — ди \ /1 о\ = u\rr, е+_|г<+=е — |гг. (1.3) Типичный пример условий' 1-го рода в электростатике — это постоянные заданные значения потенциалов на электродах. К границе Г2 могут относиться линии или плоскости симметрии, на которых g2 = 0. Условия 3-го рода могут задаваться, например, в частях области G с известным характером поведения решения. 11
Решение задачи (1.1) — (1.3) мы считаем единственным и, за исключением отдельно оговоренных случаев, обладающим достаточной гладкостью (т. е. ограничены производные до тех порядков, которые необходимы для обеспечения аппроксимационных свойств рассматриваемых алгоритмов). Разностные методы определяются, в первую очередь, способом дискретизации исходной задачи. Расчетной области G ставится в соответствие множество дискретных точек (узлов) — сетка Q, а функциям непрерывного аргумента — определенные на Q сеточные функции. Дифференциальное уравнение и граничные условия заменяются алгебраической системой конечно-разностных уравнений, решение которой дает приближенные значения решения исходной краевой задачи в узлах сетки. В теории разностных методов можно выделить следующие основные проблемы. а) Каков лучший выбор сетки? Сетка может отличаться частотой расположения узлов, регулярностью, ориентацией (прямоугольная, треугольная, шестиугольная и т. д.). Специальным вопросом является способ выбора сеточного аналога границы области. Под оптимальной сеткой при некоторых допущениях можно понимать такую, которая обеспечивает заданную точность решения при минимальном числе узлов. Ясно, что оптимальная сетка зависит от решения самой задачи. Например, в области, где решение меняется слабо, можно брать сетку более редкую. В общем случае нахождение оптимальной сетки представляет собой нерешенную теоретическую проблему. Вопросом выбора сеток мы заниматься не будем и остановимся на использовании самых распространенных прямоугольных сеток. б) Какое разностное выражение лучше использовать в качестве аналога дифференциального уравнения и граничных условий? Имеется очевидный антагонизм: увеличение числа узлов в разностном выражении может повысить точность решения, но в то же время ведет к усложнению метода. в) Существует ли решение системы разностных уравнений? г) Сходится ли решение системы разностных уравнений к решению дифференциальной задачи при сгущении сетки? д) Какова погрешность разностного решения, т. е. насколько точное решение системы разностных уравнений отличается от точного решения дифференциальной задачи? е) Каков лучший способ решения системы разностных уравнений? Конечной целью теории можно считать построение оптимального метода для данной задачи или для класса задач, т. е. метода, обеспечивающего получение решения с заданной точностью при минимальных вычислительных затратах. С этой точки зрения вопросы выбора сеток, способов построения аппроксимирующих разностных уравнений и методов их решения оказываются неразрывно связанными между собой, а также с конфигурацией ЭВМ, на которой реализуются алгоритмы. 12
Разностные методы за последние двадцать лет стали предметом самых интенсивных исследований. Основные результаты теории и обширная библиография приводится в монографиях В. Вазова и Дж. Форсайта [26], Р. Варги [28], Г. И. Марчука [119], А. А. Самарского [164, 165, 166], Н. Н. Яненко [204], автора [69, 70] и др. Основное внимание в настоящей книге обращено на алгоритмические аспекты методов: вопросы построения разностных уравнений и способы их решения. Теоретические результаты, необходимые для обоснования методов и оценок их эффективности, приводятся, как правило, без громоздких доказательств, с указанием необходимых ссылок. Исследование разностных уравнений представляет собой в значительной степени алгебраическую проблему, и мы будем широко использовать аппарат вычислительных методов линейной алгебры, см. [38, 151, 188]. Такие сложившиеся понятия, как разностные решения, погрешности разностных уравнений, разностные операторы, интерпретируются только как алгебраические объекты, т. е. как векторы и матрицы. § 1.1. Основные понятия и вспомогательные сведения Рассмотрим сетку, покрывающую область G и образованную координатными линиями (или плоскостями), параллельными осям: x=jXi,y = yh z = zkJ = 0f I, ..., /,/==0, 1, ..., m, & = 0, 1, ..., п (для двумерного случая третья координата отсутствует). Обозначим Рис. 1. через (/, /, k) узел с координатами (х/, у/, Zk) и через M/2 = Af-i = А$ А? h(f hf А$ А? / $ hk-i=Zk — zk-\; ft$ = Aj[ = 2*+i —z* — расстояния от (/, /, k) до соседних узлов (рис. 1). Введем обозначение А = 13
= max {sup h% \ Узел (/, /, k) будем называть внутренним по i,],k отношению к области G, если (#,-, г/у, Zk) ^ G, и внешним — в противном случае. Обозначим через Йо множество всех внутренних узлов, через Qi — множество внешних узлов, а через ЙГ — множество граничных точек сетки, т. е. точек пересечения координатных линий сетки с границей Г области G. Пусть и = {й (Xi, у\, Zk)} = {uijk} — сеточная функция, определенная в узлах сетки. Тогда множество ее значений может рассматриваться как М-мерный вектор, где N — общее число рассматриваемых узлов. Если номер узла (/, /, k) при каком-либо упорядочивании равен L, то Щ\к = uL. Например, при естественной нумерации узлов L = / + jl + klm, / = 0,1,..., /; / = 0, 1,..., m; * 0 l , ,, В вещественном пространстве сеточных функций, определенных на множестве узлов Q, будем рассматривать скалярные произведения и нормы: ijk\ (1.4) ")1/2; (1.5) ,=тах \tiijk I. (1.6) Векторным нормам (1.5) и (1.6) соответствуют следующие, подчиненные им, матричные нормы: /^ /= 1,2, ..., N; (1.7) =тах S k /=i где Я,ул1 — собственное число матрицы АА' ; А ={а*/} — квадратная матрица, Л/ = {а«}; /г, ^ = 1,2, ..., ЛЛ Собственные числа мы предполагаем пронумерованными в порядке их убывания (если А — симметричная матрица, т. е. ani = aik для всех ky l, то )$А, = (А$})2). Дифференциальные уравнения, определяющие краевую задачу, запишем в операторной форме: Lv = g. (1.9) Дифференциальной задаче (1.9) ставим в соответствие систему алгебраических конечно-разностных уравнений Lhu = 1 (1.10) где и, f — УУ-мерные векторы, компоненты которых определяются как значения сеточной функции в узлах сетки Q; Lh — квадратная матрица. Определение 1.1. Пусть w (ху у, г) — достаточно гладкая функция, определенная для (х, у, z) e G, a (w)h — сеточная функция, определенная на сетке Q и принимающая значения, совпадающие со значениями w (jc, у, г) в узлах сетки. Пусть L — дифференциальный оператор, определенный на функции w (x, у, z)> а Lh — конечно-разностный оператор, определенный на (ш)л. Будем 14
говорить, что разностный оператор Lh аппроксимирует в области G дифференциальный оператор L на функции w(x, у, г) с погрешностью hy, если при /i-й) для (х, у, z) e G ^ = {Lw)h-Lh (w)h = O(W). (1.11) Сеточная функция if» называется погрешностью, а у — порядком аппроксимации. Обозначив узлы сетки через Qk, систему (1.10) можно записать в виде Po(Qk)u (Q0- 2 pi(Qk)u(Qd = KQk\ (1.12) где D (Qk) — совокупность узлов, используемых в уравнениях для точки Qk (эти узлы будем называть соседними для Q&), a s(Qk) — число таких узлов. Далее, разностное уравнение вида (1.12) для узла Qk будем называть (s(Qk) + \)-точечным, где s(Q*)+l —число ненулевых членов в левой части уравнения и, очевидно, число ненулевых коэффициентов в соответствующей строке матрицы системы разностных уравнений. Характерным признаком разностных методов является то, что max s(Qk)<t:N, т. е. плотность матрицы систе- ~ k мы разностных уравнений (отношение числа ненулевых элементов к общему числу элементов матрицы) очень мала. Матрицы с малой плотностью называется редкими. Матрица системы разностных уравнений будет симметричной при условии pi(Qk) = Pr(Qk')y если узлы k и Г, W и /совпадают попарно друг с другом. Необходимым и достаточным условием существования единственного решения (1.10) является невырожденность матрицы Lh. Введем теперь ряд необходимых нам определений. Определение 1.2. Матрицу А будем называть положительно определенной, если для любого ифО (Аи, и)^Ь{и, и\ 6>0. (1.13) Определение 1.3. Матрица A— {a*/}, fe, /= 1, 2, ..., N называется матрицей с положительными (неотрицательными) элементами, если аы>0 (я^/^0) для всех ky l. Соответственно обозначим Л0 >0или Л>0. Определение 1.4. Матрица А ={а^} обладает свойством диагонального преобладания, если \акк\> 2 \akl\, k = l,2,...,N, - ИЛИ S 1ал/|, 1=1,2,..., N, /5=1 15
причем хотя бы для одного k (или I) выполняется строгое неравенство. В первом случае мы говорим о диагональном преобладании по строкам, во втором — по столбцам. Определение 1.5.-Матрица А называется матрицей положительного типа, если она обладает свойством диагонального преобладания и а^>0, а*/<0 для всех k, / при (k=£l). Аналогично, если для всех узлов Q^Q имеем pi(Qk)>0, Po(Qk) ^ 2p/(Q), причем хотя бы один раз выполняется строгое HepaBQelc?BO, то соответствующая система разностных уравнений типа (1.12) называется системой положительного типа. Определение 1.6. Матрица А называется монотонной, если для нее существует обратная матрица и А~1^0. Определение 1.7. Матрица А называется разложимой, если перестановкой строк и столбцов она может быть приведена к виду II Л- DlM где D\ и D2 — квадратные, М — любая, а 0 — нулевая матрицы. В противном случае она называется неразложимой. Приведем без доказательств несколько теорем линейной алгебры. Теорема 1.1. (Тауски). Если матрица обладает свойством диагонального преобладания и неразложима, то она невырождена. Теорема 1.2. Если А — матрица положительного типа и неразложима, то она невырождена и А~~1*^0. Теорема 1.3. Если матрица симметрична, имеет диагональные положительные элементы и обладает свойством диагонального преобладания, то она положительно определена. § 1.2. Способы построения разностных аппроксимаций 1.2.1. Разностные аппроксимации для уравнения Пуассона. Построение конечно-разностных аппроксимаций для функций, обладающих ограниченными производными достаточного порядка, основывается на применении ряда Тейлора = и(хи ..., xR) * i= 1 При использовании достаточно большого числа узлов уравнение Пуассона можно аппроксимировать до любой заданной погрешности с помощью конечно-разностных выражений. Мы приведем простые, но наиболее часто встречающиеся примеры. Простейший («одномерный») разностный оператор Лапласа имеет вид 16
(индексы /, k для краткости опускаем) 2щ-х 2и/ 2ц<+| (Л*И)/ — hf_ i(/rjL t + ^ л*_ |W "I- вд_ i + hf) В частности, для равномерной сетки (hf=hx) имеем Аналогично для цилиндрической системы координат получаем ч 2{Xi-i/2/Xi)Ui-i 2Щ 2 u)i = hf—hf-i если Xi=^0. В противном случае имеем Л1 = 2Лх, так как (х—— )->2—— при л:->0. Здесь и далее обозначается х д* \ дх ) дх* Погрешность аппроксимации этих выражений на функциях иу обладающих ограниченными производными до третьего порядка включительно, есть O(h). Если-же сетка равномерная и функция имеет четвертую производную, то погрешность имеет второй порядок. Простейшими аппроксимациями для уравнения Пуассона являются: для плоской задачи (A5u)lf=((Ах + Ау)и)и = fa (1.17а) для осесимметричной задачи (А1и)ц = ((Ai + Ау)и)ц = fli; (1.176) для трех переменных (А7и)цк = ((Л, + Ау + \2)и)цк = fa* (1.17b) где Ау и Az определяются аналогично Л* из (1.14). Для двумерных задач формулы (1.17а) и (1.176) выпишем подробней, используя обозначения в соответствии с рис. 1 и опуская индексы /, /: % 2 , 2(xi+]/2/Xi)a п+ Л3(Л,+Лз) Здесь а = 0 соответствует плоской задаче, а a=l —осесиммет- 2 В П Ильин 17
ричной, причем в последней при Xi = 0 вместо (1.18). получаем /ц/Ь,+л,)ц'+ hth*+b) U2+ h3(h*+h3) и*+~й 2 " Очевидно, все разностные уравнения (1.17) — (1.18) аппроксимируют уравнение Пуассона с погрешностью первого порядка на неравномерной сетке, и второго — на равномерной. Точнее говоря, |г|э|^А1зЛ/3 — для первого случая, I гр | ^Л14Л2/12 — для второго, где Mk= max sup —д uh , / stl dxldyk~l Мы приведем ряд аппроксимаций повышенной точности на равномерных сетках. Для декартовой системы координат несложно проверить справедливость следующих соотношений: для двумерной задачи (A9u)iik = [(Ах + Ау) Н—х-^~ АхАу]ц = = \ д2и , д2и .ft д2 / д2и , д2и \ , t дх2 ду2 I2 дх2 \ дх2 ду2 ) для трехмерной = [(Ax+Ay + Az-\—х-рг-?-АхАу- (|20) Отсюда следует, что соответствующие разностные уравнения Пуассона с погрешностью четвертого порядка могут быть записаны в виде (Al9u)ijk = fak + T5\-|pr)y* + ~к\^)чк + ~u\jrf)iiv (' *22) Очевидно, порядок погрешности уравнений останется тем же, если вместо производных от f брать их конечно-разностные аппроксимации, т. е. (d2f/dx2) ц заменить на (Л /);/ и т. д. Эта постановка неизбежна, если значения f известны только в узлах сетки. 18
В покомпонентной записи уравнение (1.21) для/ = 0 и квадратной сетки имеет вид (девятиточечная схема ящик): r[i\tji + i+\tj + i + i\tj + \ + i+\,j\ + on + 4(ui-4 + Uitj-x + Ui+4 + Uiti+l) — 20uii\ = 0. (1.23) Разностный оператор Лд на квадратной сетке обладает тем замечательным свойством, что для него погрешность аппроксимации дифференциального оператора Лапласа А = д2/ дх2-{- + д2/ ду имеет специальный вид, т. е. если и — достаточно гладкая функция, то я|>|7 = (А9и)ц — (Аи)И = j^ . (1.24) Отсюда следует, что если и — гармоническая функция, то уравнение (1.23) имеет погрешность не четвертого, а шестого порядка. Аналогично, мы можем на квадратной сетке получить разностный аналог уравнения Пуассона с погрешностью O(h6): (1-25) В правой части этого уравнения можно без понижения порядка погрешности производные заменить соответствующими конечно-разностными выражениями, причем необходимо аппроксимировать предпоследний член с погрешностью О (/г4), а последний — с погрешностью О (А2). Для уравнения Пуассона в цилиндрической системе координат (Д=—— (г—\ -f-^на квадратной сетке г/ = /А, Zj = zoztjh, /, / = 0, 1, ...) аналогичная аппроксимация с погрешностью четвертого порядка может быть представлена в виде Ь + (2+4 W+ *">1. (1-26) «IJ+l) + + uo,j _, + uo.j +1 — 1 Зыо/]=hj+-j^i A/)o;- В последнем равенстве использовано условие симметрии и_(/=^ы,;. 2* 49'
Мы рассматриваем только один из возможных путей построения разностных уравнений, основанный на непосредственной аппроксимации дифференциальных операторов. Он сравнительно простой, позволяет получать достаточно высокую точность и вполне достаточен для эффективного решения рассматриваемого нами класса краевых задач. Другой широко распространенный подход заключается в построении консервативных, или балансных, разностных схем на основе интегро-интерполяционного метода, последовательно изложенного в книгах А. А. Самарского [164, 165]. Существует и другой универсальный подход к построению разностных аппроксимаций для уравнений Лапласа и Пуассона. Именно, искомое решение ищется в виде разложения по системе линейно независимых гармонических функций или просто алгебраических полиномов. Коэффициенты разностного уравнения при каком-то фиксированном разложении точек шаблона находятся из условия, чтобы этому уравнению удовлетворяло как можно больше членов выбранного разложения. Такой подход позволяет строить аппроксимации, во-первых, различных порядков и, во-вторых, для различных типов сеток и сеточных шаблонов. Останавливаться на них мы не будем ввиду громоздкости получаемых выражений (см. [50, 69] и цитируемые там работы). В заключение укажем еще на один метод построения разностных уравнений, основанный на аппроксимации искомого решения в виде сплайнов. Коэффициенты алгебраической системы при этом определяются из условий разрешимости дифференциальных уравнений (принцип коллокаций) и непрерывности решения и его производных во вспомогательных точках. Такой подход позволяет вычислять с высокой, точностью в произвольной точке области не только само решение, но и его производные, притом без применения численного дифференцирования, которое сопровождается накоплением погрешностей. Метод сплайн-коллокаций интенсивно исследовался для одномерных задач, но применяется также и для уравнений в частных производных (см., например, [51, 65, 85]). 1.2.2. Аппроксимация граничных условий. Приведенные выше конечно-разностные выражения, аппроксимирующие дифференциальные уравнения, определены, если используемые точки принадлежат множеству узлов Qo, внутренних по отношению к области G. Однако для узлов вблизи границы в разностных уравнениях могут использоваться точки, лежащие на границе Г области G или вне области. В этом случае при аппроксимации дифференциального уравнения предполагаем, что решение его гладким образом распространяется вне области на расстояние h. Внешние узлы сетки, входящие в разностные уравнения, называются иногда" фиктивными. Внутренние узлы, для которых разностные уравнения содержат точки на границе или вне области, будем называть околограничными, а остальные внутренние узлы — регулярными. 20
Для того чтобы система разностных уравнений была определена т. е. число уравнений равнялось числу входящих в систему узлов сетки, необходимо использовать конечно-разностные аппроксимации граничных условий. Методы аппроксимации граничных условий могут быть различными в зависимости от характера расположения околограничных узлов относительно границы, используемых сеточных шаблонов и порядка погрешности аппроксимации. При этом значительно отличаются задачи, в которых граничные условия содержат производные, от задач, в которых это не так. А. Граничные условия первого рода. Мы проведем рассмотрение для двух независимых переменных (и\г = = g(*> У) )• Обобщение методов на трехмерные задачи очевидно. Интерполяция первого порядка (аппроксимация Коллатца). В примере на рис. 2 могут быть использованы следующие соотношения: U\ = /01' = Us'-} -f-Ub-j—^, (1-Z/) Здесь lpq — расстояние между точками p и q, причем (как и всюду далее) предполагается, что при измельчении сетки расстояния между соседними точками будут оставаться величинами одного порядка. При этом экстраполяция производится в узлы, ближайшие к граничным точкам сетки, т. е. /oi'^ у'01' А^'^у/ог и т. д. Погрешность аппроксимации, очевидно, равна Интерполяция полиномами второго и более высокого поряоков. Логическим развитием является применение экстраполяции высшего порядка с помощью нескольких внутренних узлов, лежащих на одной координатной линии. В том же примере может быть использовано уравнение, имеющее погрешность аппроксимации О (/г3): (1.28) Аналогичные соотношения могут быть выписаны для узлов 5, 2 и т. д. Очевидно, что такие формулы целесообразно употреблять, если во внутренних узлах сетки используются разностные уравнения повышенной точности. 21
При использовании формул (1.27), (1.28) предполагается, что для околограничного узла разностный аналог дифференциального оператора строится с привлечением соседних узлов сетки, в том числе и находящихся вне области. Например, пятиточечное разностное уравнение Лапласа для точки 0 на рис. 2 может быть представлено в виде Т7-ч/|+-П-И2+ТТ-аз + 7Т-"4" (тТ~+ТТ-) ио = 0' 4)1 МЗ *02*24 *03ЧЗ '04*24 \ *01 *03 *02*04 / /1 OQ^ Другой подход к аппроксимации граничных условий первого рода состоит в том, что в околограничных узлах для построения разностного аналога дифференциального оператора вместо внешних соседних узлов используются ближайшие точки из Йг, лежащие на пересечении координатных линий сетки с границей. Например, пятиточечная аппроксимация Канторовича—Шортли—Уэл- лера для уравнения Лапласа в точке 0 будет иметь вид (см. рис. 2) 2i* , 2ц2, , 2и3 _|_ 2и4 / 2 _^_ _2 \Uq = Q П 30) lo2Ub kzku /04/42 V /oiЛоЗ /02'/04/ /О1'/31/ lo2'Ub kzku /04/42/ В этом случае система разностных уравнений содержит значения и во всех внутренних узлах и в граничных точках сетки, причем в последних граничное условие можно аппроксимировать точно (uy = g\>, Ur = g2' и т. д.). Однако при этом погрешность уравнения в околограничном узле имеет только первый порядок. Для построения разностных аппроксимаций более высокого порядка с помощью такого подхода в околограничных узлах требуется использовать на неравномерных шаблонах разностные многоточечные уравнения. Б. Граничные условия, содержащие производные. В данном пункте речь идет о третьем уравнении из (1.2), причем для определенности направление нормали п выбираем внутрь области G. Рассмотрим сначала граничные условия с нормальными производными, заданными на прямолинейных границах, параллельных координатным линиям. Простейший способ аппроксимации состоит в замене нормальной производной разностью первого порядка и в линейной интерполяции значений и на границе через два ближайших узла сетки. В примере на рис. 3,а /ll'ttO + Zpi'tti ^_ Up-Ui _ (1.31) /111 /о 1 Значения у, g берутся в точке на границе. Погрешность аппроксимации такого двухточечного выражения, как легко проверить, имеет второй порядок, если граница проходит через середину шага сетки (/ц' = /ог)> и первый порядок — в остальных случаях. При произвольном положении точек сетки относительно границы уменьшить погрешность аппроксимации можно за счет привлечения дополнительных узлов. Например, для условия Неймана 22
ди/дп = О при /oi = /оз = /i, /ц> = / на рис. 3, а трехточечное соотношение имеет погрешность O(h3), если / = (1 —>/3/ 3)Л, и равно O(h2) для любого другого положения точки Г в отрезке [лс0, *i]. В частности, при /ц' = /ог аппроксимация (1.32) принимает вид ио = ии Г 4 „к S Г 4 г 0 2 3 / 6 0 2 J 7 Рис. 3. б) а если граница проходит по координатной линии, то мы получаем другое двухточечное выражение: u$ = U\ (см. рис. 3, б). Мы выделим особо те задачи, в которых условие Неймана ставится на плоскостях или линиях, относительно которых решение обладает симметрией и при этом является достаточно гладким. Тогда, если линия симметрии проходит через середины шагов или через узлы сетки (в последнем случае требуется равенство шагов по обе стороны), равенство нулю центральной разности на линии симметрии (#о — wi=0 при /и, =/01,) на рис. 3, а является точной аппроксимацией. Если граница с условием ди/дп = 0 проходит по координатной линии и в разностных уравнениях (1.21), (1.22) граничное условие учитывается с помощью центральной разности вида ui-i,i — &/+!,/ = 0, то погрешность аппроксимации оказывается также четвертого порядка (при этом видоизменяется правая часть в уравнении Пуассона [165]). В примере на рис. 3, б для квадратной сетки 1 ГЛ/ ' ч " " ~ ' )-2Оио] = Проведем теперь построение аппроксимаций для общего случая, ^когда направление нормали к границе не параллельно ни одной координатной линии. Во-первых, в околограничном узле разностный аналог дифференциального уравнения строим с использованием граничных 23
точек сетки из Йг аналогично методу аппроксимации (1.30) для граничных условий Дирихле. Затем в граничных точках сетки выписываем разностные уравнения, аппроксимирующие граничное условие. Для этого из точки на границе проводим вектор п до ближайшего пересечения с каким-либо отрезком, соединяющим два внутренних узла. (Заметим, что для применимости метода должно обязательно найтись такое пересечение.) Далее, производную на границе по направлению п аппроксимируем односторонней разностью, причем значение и в точке пересечения п с линией сетки выражаем (с помощью интерполяционного полинома) через значения функции во внутренних узлах. Для примера на рис. 4 получим (значения у, g берутся в точке Г): /51' J-U2 + 7— /23 /23 откуда имеем (1 — Для трех независимых переменных алгоритм построения разностного уравнения остается тем же. Вектор п продолжается \ \ \ 0 J 2 Рис. 4. до ближайшего пересечения с плоскостью, проходящей через внутренние узлы. Член ди/ дп аппроксимируется разностью пеового порядка, а значение во вспомогательной точке с помощью двумерной интерполяции заменяется через значения во внутренних узлах сетки. В примере на рис. 5 имеем их+у{иХ'-иху lUf + g = b (1-35) U\' = k2ll2 + k3U3 + &5И5. (1.36) Для подсчета коэффициентов ki, &з, k$ используем формулы интерполяции двух переменных в плоскости треугольника 2— 3—5: /,2 _fa—л 1')П5—(hzibW £ __Ei"n5 —TJi'fs й5==Д11 (1.37) / 24
где fi'= л//?'3 — 111% tii' = 2S2//32, 1б = У/з5 — Л I, T]5 = 2Si//32, Si и S2 — площади треугольников 2—3—5 и 1—2—3, которые легко вычисляются по формуле Герона. После подстановки (1.37) и (1.35) в (1.36) получаем разностное уравнение с погрешностью первого порядка, аналогичное (1.34) для двумерного случая. Различные алгоритмы аппроксимации граничных условий с производными, в том числе с погрешностью высшего порядка, описаны в статьях многих авторов (см. библиографию в [69, 70]). Мы на них останавливаться не будем, поскольку в рассматриваемых нами задачах обычно условия Неймана ставятся только на прямолинейных участках границы. В. Аппроксимация условий сопряжения на внутренней границе. Мы проведем построение разностных уравнений, основанных на непосредственной аппроксимации условий сопряжения (1.3). Рассмотрим сразу общий случай, когда нормаль к Г4 не параллельна координатным линиям. В точке пересечения линии сетки с внутренней границей, ближайшей к рассматриваемому узлу, производные ди/ дп аппроксимируются разностью первого порядка с использованием точек пересечения нормали с отрезками, соединяющими внутренние узлы. В полученном соотношении значения и в точках, не являющихся узлами, с помощью интерполяционных соотношений заменйются через значения и в узлах сетки. В итоге для узлов, в окрестности которых проходит внутренняя граница, получаем разностные уравнения, аппроксимирующие условия сопряжения (1.3) с погрешностью О(А). Например, для рис. 6 имеем е_ (1.38) (1.39) 1 0 / * 1 I 2 n /|4 з Рис. 6. После подстановки (1.40) и (1.38) в (1.39) в общем случае придем к пятиточечному разностному уравнению (если нормаль перпендикулярна к линии сетки, то уравнение может выродиться в трехточечное): U\ l 53 7 ./йз'-т-^-Из + -А-иА — и0 = 0. М4 / (1.41) Такой же подход применим и для трех независимых переменных. При этом используются аппроксимация нормальной производной и двумерная интерполяция, аналогично тому, как это делалось для условия Неймана. 25
§ 1.3. Свойства разностных операторов и оценки точности разностных решений 1.3.1. Примеры разностных операторов и их основные характеристики. Резюмируем процесс построения разностного аналога краевой задачи. Во внутренних точках сетки из Qo аппроксимируем исходное дифференциальное уравнение (за исключением узлов вблизи внутренней границы, где берется аналог уравнения сопряжения). При этом для околограничных узлов в полученные уравнения будут входить члены, относящиеся к внешним узлам Qi или к граничным точкам сетки пг. Используя граничные условия, для этих точек строим дополнительные конечно-разностные соотношения таким образом, чтобы в получаемой алгебраической системе число уравнений равнялось числу неизвестных (т. е. числу используемых узлов). Из этой системы мы сразу исключим неизвестные, соответствующие узлам из Qi и Qr, и будем рассматривать уравнения только для внутренних узлов сетки. В качестве простейшего примера рассмотрим одномерное уравнение Пуассона 52и/3х2 = /(*), *€=(а, Ь\ (1.42) при трехточечной аппроксимации на равномерной сетке с узлами Xi = a-\-iht %/ = 0, 1, ..., W+l, h = (b — a)/(N-\-l). Если, например, на концах отрезка заданы условия Дирихле и\х=а = иа; u\x==b = ubi (1.43) то получим систему уравнений )=/,, /=2, 3 Г—1,(1.44) или, где в векторном Q(а) _ виде, == 1/1 — 1 —2 1 С - иа 1 —2 1 j\a\ i /А2,...,/ 1 2 • — 1 h-,f • 2 — —2 1 «б/А2} 0 1 —2 1 1 —2 (1.45) (1.46) 26
Рассмотрим смешанную краевую задачу, отличающуюся граничным условием на правом конце, где предполагаем заданным условие 2-го или 3-го рода u-{-ydu/dx = g, аппроксимацию которого можно записать в виде uN+{ cos ф — uNsm ср = 6 (|tgcp|<l; ф и б выражаются через у, g). При этом система разностных уравнений для внутренних узлов Qo имеет вид (Abu)i=Gf\ /=1,2,..., Л/, (1.47) где № = coscp ! -2 1 1 —2 1 0 0 1 —2 1 1 tg <p - 2 (1.48) Опишем свойства трехточечной аппроксимации осесиммет- ричной задачи (Х) ^ l0 "! « (149) Если взять равномерную сетку */ = (/—l/2)ft, h = b/(N-\- 1/2), / = 0, 1,..., N-\- 1, то матрица ЛЛ-го порядка системы разностных уравнений имеет вид (см. (1.18)) —2 2 • 2/3 —2 3/4 О 2/-1 —2 2/-1 О 2N—1 - —2 .(1.50) Как легко видеть, в рассмотренных задачах матрицы разностных систем симметричны (кроме (1.50)), трехдиагональны и обладают свойством диагонального преобладания. Из последнего свойства с учетом неразложимости матриц следует их невырожденность, что обеспечивает существование единственных решений Для систем уравнений (1.45), (1.47), (1.49). Отметим, что матрицы ( — Та), ( — Ть), ( — То) — положительного типа, и обратные к ним матрицы имеют неотрицательные элементы ( — Г"1 > 0, — 7Т1>0, — Т^~1^0). Кроме того, они 27
положительно определены, т. е. для всех и ( — Таи, и) > О, ( — Тьи, и) >0, и их собственные числа положительны. Свойство симметричности обеспечивает наличие базиса собственных векторов матрицы, что, как мы увидим, дает аппарат для обоснования, а иногда и для построения методов решения систем разностных уравнений. Однако матрица конечно-разностного оператора, соответствующая неравномерной сетке, вообще говоря, не симметричная. Например, систему трехточечных уравнений, определяемую аппроксимацией (1.14) для уравнения (1.42), с учетом граничных условий можно записать так: aiUi-i — biUi + CiUi+i = fi9 /=1,2,..., N, a\ = cN = 0, (1.51) или , где F={fii /=1,2, ...,N; а2 — £ О Лха = F, (Г — bN-\ -bh . (1.52) Отметим, что трехдиагональные матрицы вида (1.52) называются якобиевыми матрицами, если C/a/+i>0. Якобиевы матрицы симметризуются, т. е. с помощью умножения слева или справа на диагональную матрицу приводятся к симметричному виду. Например, DAX = AX, Ах = Ах (1.53) где D = {di}—диагональная матрица с элементами Таким образом, систему уравнений (1.51) легко свести к системе с симметричной матрицей: Axu = DF. (1.54) Охарактеризуем на нескольких примерах свойства матриц для двумерных краевых задач. Начнем с простейшего случая — уравнения Пуассона в прямоугольной области, на каждой из сторон которой задано одно из приведенных выше граничных условий: 2 = f(x1 y\ 0<x<a, 0<y<b. (1.55) Тогда пятиточечная аппроксимация вида (1.17а) на прямоугольной неравномерной сетке может быть записана в форме (Д5и)<7 = Uiti+\--poiiUij==<I)ij (1.56) =p3l = p2l='p4m = 0y / 1,2, /=1,2, ..., /П, 28
где Oij = f(xi> yj) Для регулярных внутренних узлов, а в околограничных Ф/у изменяется за счет исключения граничных условий, аналогично одномерной задаче. Значения коэффициентов определяются с помощью выражений „ 2 „ 2 (1.57) рои = ^= р 1 = Р2/ где величины pi/, рз/ равны а,-, с, из (1.51); рй~&/. В околограничных узлах коэффициенты подправляются с учетом граничных условий. При естественной нумерации узлов (слева направо по каждой строке, перебирая их снизу вверх) матрица системы (1.56) представляется в виде Д5 = Л,+Л2, Л2 = о Р22Е1 — О p4,m-lEt p2mEt — (1.58) где Ei — единичная квадратная матрица /-го порядка, Ai — блочно-диагональная матрица порядка 1т с блоками Ах порядка / на диагонали. Очевидно, А5 — пятидиагональная матрица порядка 1т. Матрица ( — Д5) — положительного типа, на равномерной сетке симметрична и положительно определена. Более того, свойства симметричности и положительной определенности сохраняются для равномерной по х и у сетки в областях, составленных из прямоугольников (со сторонами, проходящими по координатным линиям) . При этом матрицы Ал и А2 сохраняют тот же блочный вид, однако порядок каждого блока изменяется и равен числу внутренних узлов сетки в соответствующей строке. Если же* в прямоугольной области (или составленной из прямоугольников) задана неравномерная прямоугольная сетка, то разностный оператор Лапласа Д5 не симметричен. Однако для указанных областей матрица системы симметризуется, если каждое из уравнений (1.56) умножить на (lu + ki)> (/2/ +/4/)/4. Если же граница области криволинейна, то симметризовать матрицу пятиточечных разностных уравнений (1.17а) не удается. Однако для задачи Дирихле с криволинейной границей можно построить симметризуемую аппроксимацию, если учет граничных 29
условий проводить с помощью «экстраполяции по Коллатцу». В примере на рис. 2 для околограничного узла 0 можно выписать уравнение вида (1.29) с привлечением внешних узлов 1 и 2, которые затем исключаются с помощью соотношений (1.27). В итоге получаем Л1+Л3 . Л2 + Л4 . Л1+Л3 ++ + 2/г3 , = 0. (1.59) О/ ' 9/ ' 9/?о 9/ь 01' ^02' ^'*3 z-ii-4 Симметричность разностного оператора А5 не нарушится и тогда, когда на прямолинейных участках границы области задано условие Неймана, которое аппроксимируется с помощью разности первого порядка, как это было рассмотрено выше. Выражение (1.59), кстати, можно считать аппроксимацией уравнения Лапласа, погрешность которой, что легко проверить, есть 0(1), т. е. остается по крайней мере ограниченной при А->0. Отметим еще одно свойство разностного оператора для уравнения Лапласа. А именно, в задаче Дирихле для прямоугольника (и прямоугольной сетки, не обязательно равномерной) полная матрица системы может быть представлена в виде суммы двух перестановочных трехдиагональных матриц размерности 1т, соответствующих «одномерным» операторам: A5 = Ai+A2; AiA2 = A2Ai; А\~ д2/дх2\ А2~ д2/ду2. , Свойство перестановочности «одномерных» операторов сохраняется и тогда, когда на сторонах прямоугольника заданы условия второго или третьего рода (с постоянными коэффициентами в граничных условиях). В общем случае можно утверждать, что разностный оператор представим в виде суммы перестановочных операторов, если исходная дифференциальная задача допускает применение метода разделения переменных. Отмеченные нами свойства двумерных задач выполняются и для трех независимых переменных, т. е. свойства прямоугольной области аналогичны параллелепипедоидальной. 1.3.2. Собственные числа и собственные векторы матриц в разностных уравнениях. Основным инструментом исследования задач линейной алгебры является спектральный анализ. Напомним, что вектор Zi называется собственным для матрицы Л, если Azi — hzu где ki — число, называемое -собственным числом, соответствующим Zi. Наиболее поддаются анализу системы линейных уравнений, которые имеют так называемые нормальные матрицы с базисом из N линейно независимых собственных векторов (N—порядок матрицы). Теоретические исследования эффективности методов решения разностных уравнений практически именно такими задачами и ограничиваются. К этому классу задач относятся системы уравнений с симметричными матрицами. 30
Самый благоприятный случай — тот, в котором для матрицы имеются явные выражения собственных векторов и собственных чисел. В некоторых простейших разностных задачах это действительно имеет место, однако чаще всего определение A,/, zi гораздо сложнее, чем решение самой системы уравнений. При этом для наших исследований существенны такие свойства: во-первых, сам факт существования базиса из собственных векторов, во-вторых, нижняя оценка для минимального модуля собственного числа, в-третьих, оценка числа обусловленности матрицы, определяемого как Р= ||Л || • ЦЛ"1!! (для симметричной матрицы можно положить Р = max |A,/|/ min |А*|). Мы начнем рассмотрение с одномерных задач предыдущего пункта. Матрица Та системы уравнений (1.44) для первой краевой задачи имеет собственные числа , (1.60) которым соответствуют собственные векторы ^ /,p=l,2,...,/V, (1.61) где константа С из условия нормировки 2 u2p{i)=\ равна i=\ /() Аналогично, для матрицы Tbi соответствующей системе уравнений (1.47) в смешанной краевой задаче, известны следующие собственные числа и векторы (предполагаем tg <р = 1, что соответствует условию Неймана при х = Ь): ^^ (1.62) Для матрицы Го, соответствующей осесимметричной задаче, имеем А,, = 2(1 -хр\ u{i) = Pp-X(x>), U р= 1, 2,..., N. (1.63) Здесь Рр^\(х) — полином Лежандра степени р—1, а хр — корни полинома Лежандра степени N. Явные выражения для них имеют сложный вид, но нам будет достаточна оценка ^>-4. (1.64) Общим для всех рассмотренных матриц является то, что все собственные числа отрицательны. Если трехдиагональная матрица имеет переменные коэффициенты a/, bi, Ci, то в общем случае получить выражения для собст- 31
венных чисел и векторов трудно. Для систем уравнений, аппроксимирующих на неравномерной сетке одномерное уравнение Пуассона с условием Дирихле хотя бы на одном конце, собственные числа удовлетворяют неравенству \к\^ С (max hi/min hi)2, n -^ где С не зависит от А, т. е. если при N-^oo шаги сетки А/ — величины одного порядка, то оценка для |A,|min не зависит от А. При аппроксимации же задачи Неймана (условие du/dx — g на обоих концах отрезка) матрица системы оказывается вырожденной, так как при этом &,- = а,- + С/ для всех /, и вектор со всеми единичными компонентами является собственным, а соответствующее ему собственное число равно нулю. Для вычисления обусловленности матрицы необходимо найти верхнюю оценку для модулей собственных чисел. В качестве оценки для |А,|тах можно взять норму матрицы, например ЦЛЦ^, которая легко вычисляется. Для матрицы Л* из (1.52) при этом имеем Ш<тах(|а,| + |&,| + к,|). (1.66) Как правило, для разностных уравнений такие оценки вполне удовлетворительны, а для рассмотренных нами матриц Та, Ть, То при УУ-> оо они вообще точные. Рассмотрим спектральные свойства для двумерных разностных задач на примере оператора A5 = Ai +Л2. Начнем с прямоугольной области, когда Ai и Л2 перестановочны. Как следует из предыдущего, матрица Ai порядка lm имеет блочно-диагональный вид, причем на диагоналях стоят матрицы Ах порядка /, соответствующие аппроксимации одномерной задачи по х\ количество таких блоков равно т. Следовательно, собственными числами Ai являются собственные числа \хр матрицы Ах (р= 1,2,...,/; каждое из них имеет кратность т). Перейдем к матрице А2. Очевидно, если компоненты сеточной функции переобозначить так, чтобы они соответствовали нумерации узлов по столбцам, а не по строкам, Л2 приводится к блочно- диагональному виду, в котором на диагонали стоят / матриц Л^, каждая из которых имеет порядок т и соответствует одномерной аппроксимации задачи по у. Алгебраически это означает преобразование подобия с помощью матрицы перестановок Л2 = = РА2Р~\ которое не меняет собственных чисел. Следовательно, собственными числами Л2 являются собственные числа v^ матрицы Ау (q= 1,2,..., m; каждое из них имеет кратность /). Отсюда получаем, что собственные числа А5 можно записать в виде A™ = |i, + v,, р=1,2 /, <7=1,2,...,т. (1.67) 32
Несложно проверить, что соответствующие собственные векторы Аб представляются как Zpq = (pp^q, р= 1,2,...,/, #=1,2, ...,га, (1.68) где фр и tyq — собственные векторы матриц Ах и Л^, соответствующие \хр и v^. Например, для задачи Дирихле и квадратной сетки имеем (матричные блоки АХу Ау, из которых составлены А\ и Лг, представляют собой матрицы вида Та с порядками / и га соответственно): л 4 APQ— TV zpq(i, /) = sin iph sin jqh, i,p= 1,2,..., /, /,<7= 1, 2,..., m. Если же область не прямоугольная, то матрица Л} имеет на диагонали разные блоки Л*,, /=1, 2,..., га, каждый из которых соответствует аппроксимации одномерной задачи на /-Й строке и имеет порядок, совпадающий с количеством внутренних узлов // на этой строке. Собственные числа Ai можно выразить через собственные числа \xpj всех блоков Axj (py-=l, 2, ..., /у, /=1, 2, ..., га). Аналогично, собственные числа матрицы Л2 можно выразить через собственные числа v^ матриц Ayit каждая из которых соответствует аппроксимации д2и/ ду на i-м столбце (^•=1, 2, ..., ти /=1, 2, ..., /). Явные выражения для собственных чисел матрицы А5 при некоммутирующих Ль Лг получить очень сложно. Однако, если Ai и Л2 симметричны, то из минимаксного свойства собственных чисел можно получить оценку minimi +min|v^| < |A,Kmax|(jip/| +max|v^| (1.70) P' / <7' i p, j q, i для собственных чисел к матрицы Аб через собственные числа одномерных операторов. Из этой оценки, например, следует, что для задачи Дирихле в некоторой области G спектр оператора А5 (если он симметричен) лежит между нижней и верхней границами спектра матрицы аналогичного пятиточечного разностного операторадля прямоугольника, описанного вокруг G. Если матрица А5~не симметрична (например, неравномерная сетка), но симметризуется с помощью умножения на диагональную матрицу, то оценка (1.70) остается в силе. Отметим ряд свойств разностной аппроксимации (1.21) четвертого порядка на прямоугольной сетке. У матрицы Л9 все внедиагональные ненулевые элементы отрицательны и имеется диагональное преобладание, если сетка не очень отличается от квадратной, а именно, при условии 1/ 5^.hi/ h2y^5. Для прямоугольной области ее собственные числа выражаются формулой 3 В П Ильин 33
Мы рассмотрели разностные операторы для двумерных плоских задач, однако аналогичные свойства характерны и для системы разностных уравнений в цилиндрической системе координат. Наконец, перейдем к семиточечной разностной аппроксимации (1.17в) трехмерного уравнения Пуассона. Перечислим свойства матрицы А7 для трех характерных типов областей, не зависящие от вида граничных условий (аналогично двумерной задаче можно написать Д7 = Л1+Л2 + Лз): а) общий случай (криволинейная граница) — принадлежность к отрицательному типу и невырожденность (за исключением задачи Неймана); б) области, составленные из параллелепипедов — симметри- зуемость (умножением каждого уравнения на (/if_i + hf) (ftf_i + -\-hf)(hk-\-{-hk)) и симметричность на равномерной сетке; в) параллелепипед — перестановочность матриц Ль Л2, Л3; собственные числа выражаются аналогично двумерной задаче через сумму собственных чисел одномерных операторов Ах, Ау, Л2. Если же Ль Лг, Л3 не перестановочны, но симметризуются при умножении на одну и ту же матрицу, то справедлив результат, аналогичный предыдущему, т. е. собственные числа А, матрицы А7 оцениваются через собственные числа ji/ь r\ik, Vij матриц Axjk, Ayiki A2ij: Ш >mini у,/,*I +min|r]^| +min|v/7|, (1-71) /, k i,k i, j где AXjk — разностный оператор, аппроксимирующий д2и/ дх2 на k-м слое по z и на /-й строке по у. 1.3.3. Оценки точности решения линейных разностных уравнений. Пусть краевая задача описывается уравнением Lv = g, (1.72) где L — линейный дифференциальный оператор, включающий граничные условия и определенный в замкнутой области G = G+I\ и пусть система разностных уравнений Lhu = f (1.73) аппроксимирует задачу (1.72) на функции со с погрешностью 4>ь> = (— L<* + g)h + Lh((o)h — /. Определение 1.8. Пусть v — точное решение дифференциальной краевой задачи (1.72). Будем говорить, что решение системы разностных уравнений (1.73) сходится в норме || • \\р со скоростью hy, если при Л->0 \\z\\p=\\vh-u\\p = O(W), (1.74) где z называется погрешностью разностного решения, а 7 — порядком скорости сходимости, или порядком погрешности решения. 34
Вектор ошибки z = Vh — и, очевидно, удовлетворяет уравнению Lhz = % ' (1.75) где ф — погрешность аппроксимации системы разностных уравнений (1.73) на решении (1.72). Мы всюду предполагаем, что матрица Lh не вырождена, и, следовательно, система разностных уравнений имеет единственное решение, Это условие в наших задачах, как правило, легко проверяется, поскольку мы не рассматриваем задачи Неймана (условие 2-го рода задано на всей границе) и наши разностные уравнения — положительного типа или монотонные. А. Сходимость в евклидовой норме. Если Lh имеет ограниченный в какой-либо норме обратный оператор, т. е. ||L/T1 II ^А< сю, то ошибка разностного решения удовлетворяет неравенству ЦгЦр^ДЦ-фЦр. Из этого непосредственно следует, что порядок точности будет тот же, что и порядок погрешности аппроксимации, если А не зависит от h. Для симметричных разностных операторов естественно брать евклидову норму 1Mb, а величину Л положить равной минимальному модулю собственного числа Lh (если Lh положительно или отрицательно определен). Таким образом, для рассмотренных нами одномерных задач (за исключением задачи Неймана) с равномерной сеткой непосредственно следует сходимость второго порядка, поскольку для всех собственных чисел Ла, Л*,, Ло справедлива оценка 1М^8, где б не зависит от h. Аналогичный результат мы имеем для двумерных и трехмерных областей прямоугольной или параллелепипедоидальной формы, если используются соответственно аппроксимации А5 и А7 на равномерных сетках и если хотя бы на одной из сторон области задано условие Дирихле, что легко проверить по формулам для собственных чисел. При этих условиях разностные операторы А9 и Aig также имеют ограниченные обратные при любых hx, hy, hz, что легко проверяется по оценкам собственных чисел, которые выражаются через собственные числа Л*, Л^, Л2 в силу их перестановочности. Отсюда, например, следует, что погрешность решения системы (1.21), (1.22) есть 0(/г4), если граничные условия заданы только 1-го рода и граница области проходит через узлы сетки. В остальных краевых задачах погрешность лимитируется ошибкой аппроксимации граничных условий. Далее, для областей, составленных из прямоугольников или параллелепипедов со смешанными граничными условиями, на равномерных сетках сходимость разностных решений в евклидовой норме для аппроксимации второго порядка (пятиточечные и семиточечные уравнения) устанавливается аналогично. Для этого достаточно применить оценки собственных чисел операторов As и Д7 через собственные числа Л*, Л^, А2 соответственно для 3* 35
прямоугольников и параллелепипедов, описывающих расчетную область (см. (1.70), (1.71)). Если же сетка неравномерная, т. е. As и А7 не симметричны, то можно использовать следующий результат. Лемма 1.1. Пусть матрица Lh симметризуется умножением на невырожденную матрицу D, причем (DLhu, w)>6(w, и), 6>0 (1.76) для всех и. Тогда решение уравнения (1.75) удовлетворяет оценке ^ (1.77) . Доказательство следует из цепочки неравенств 82(z, z)2^(DLhz, z)2=(D^ 2)2<(Di|), D4>)(2, z). (1.78) R Очевидно, если L/j= 2 ^ и DAk— симметричные положи- тельно определенные матрицы, т. е. (DAku, u)^8k(u, u\ 6*>0, k=l, ..., /?, (1.79) R то имеет место неравенство 8^ 2 ^. Таким образом, на неравномер*ных сетках сходимость разностного решения может быть установлена, если одномерные операторы Ak симметризуются и если имеются оценки для ||D||2 и минимальных собственных чисел матриц DAk. Отсюда непосредственно, с помощью оценки (1.65), следует сходимость со скоростью O(h) для аппроксимаций (1.17а) — (1.17в) на неравномерных сетках и областей, составленных из прямоугольников или параллелепипедов. Необходимо уточнить, что под скалярным произведением здесь вместо (1.4) понимается выражение вида (R—размерность области) 2Л$* uukWUjk- Если же в /?-мерной области погрешность аппроксимации на подмножестве размерности (/?—1) есть величина порядка O(hy), а в остальных узлах — О(/гб), то, очевидно, евклидова норма погрешности равна O(h6-\-hy+0'5). Например, на прямоугольной сетке с кусочно-постоянными шагами, когда число линий, на которых меняется шаг, конечно при /i-М), оценка (1.77) для пятиточечной аппроксимации (1.17а) дает сходимость () Б. Равномерные оценки погрешности разностных решений. Мы будем использовать так называемый мажорантный метод, основанный на принципе максимума для конечно-разностных уравнений. В основе его лежат свойства разностных решений, которые можно резюмировать следующим образом. 36
Лемма 1.2. Пусть Л — неразложимая квадратная матрица системы разностных уравнений Au(Q)=p(Q,QHQ)- 2 P(Q,Q'HQ') = F(Q), QeQ. (1.80) Пусть также выполняются следующие условия: а) на множестве Qi^Q разностные уравнения — неотрицательного типа, т. е. q(Q)=p(Q,Q)- 2 p(Q, Q')>0, p(Q, Q0>0 (1.81) всех Q'f=D(Q), QgQ; б) существует такая неотрицательная в Q функция u(Q), что a(Q)<Af, Лп(<Э)>Л>0, Q^Qb причем <; () q, A«(Q) Л в) яа множестве Й2 = й— f2i разностные уравнения обладают свойством строгого диагонального преобладания: жо) 2 (1.83) P(Q, Q)>0, QgS2; г) правая часть разностного уравнения на множестве Йг удовлетворяет оценке \F(Q)\/P(Q>QX*u Q^S2. (1.84) Тогда решение системы разностных уравнений (1.80) удовлетворяет неравенству |«(Q)K ' (4-Al + ei), QeQ. (1.85) О \ A. ' Хотя для многих задач можно явным образом построить мажорирующую функцию u(Q), мы ограничимся следующим допущением. Пусть нам требуется решить уравнение Пуассона в области G с граничными условиями 1-го рода на участке границы 1\, 2-го или 3-го рода — на Г2 и условиями сопряжения — на внутренней границе Г3. Тогда мы предполагаем, что существует ограниченное решение соответствующей краевой задачи (с теми же значениями а, р, у, е+, е_): ,(1-86) Поскольку Lh(u) — (Lu)h -► 0 при h -*■ 0, то при достаточно малых h мы можем в (1.82) принять u(Q) = (u)h, Л = 1/2 и считать, что существует константа В = М/ А, не зависящая от h. 37
Перейдем непосредственно к оценкам точности наших разностных уравнений. Рассмотрим отдельно несколько разностных задач, отличающихся граничными условиями или способом аппроксимации. Подчеркнем, что везде предполагается существование достаточно гладкого решения дифференциальной задачи. Задача I. Область G — двумерная или трехмерная, с криволинейными границами. Допускаемые граничные условия: 1-го, 2-го, 3-го рода и условия сопряжения на внутренней границе. Сетка — неравномерная, прямоугольная или параллелепипедои- дальная. Разностные уравнения — пятиточечные или семиточечные типа (1.17а) — (1.17в), с аппроксимацией условий по формулам вида (1.30), (1.34), (1.35), (1.41). Теорема 1.4. Погрешность решения разностной задачи I есть величина 0(h). Доказательство проводится на основе свойств рассматриваемых разностных схем и леммы 1.2. Во-первых, погрешность аппроксимации для всех узлов есть 0(А). Во-вторых, все разностные уравнения — отрицательного типа (в приведенных формулах они, наоборот, положительного типа, но перемена знака в уравнениях роли не играет). За множество Q2 берем совокупность околограничных узлов, примыкающих к границе Гь с условием 1-го рода и имеющих величину диагонального преобладания б, как легко проверить, при любых А больше нуля (мы предполагаем, что при измельчении сетки величины всех 1Г остаются одного порядка). Полагая теперь в оценке (1.85) решения системы (1.80) е = О(А) и 8i = 0(A) при А —►- 0, получаем необходимый результат. Задача II. Область G — двумерная или трехмерная, но без внутренних границ с условиями сопряжения. Граница области может быть криволинейной, но на таких участках задаются только условия Дирихле. На прямолинейных участках границы допускаются условия Неймана. Сетка — равномерная прямоугольная (параллелепипедоидальная—для трехмерной задачи). Разностные уравнения — пятиточечные или семиточечные типа (1.17а) — (1.17в); условия Неймана аппроксимируются трехточечными выражениями вида (1.32) с погрешностью О(А2), переходящими в центральные разности, если граница проходит через узлы или середины интервалов сетки. Теорема 1.5. Решение разностной задачи II имеет погрешность порядка О(А2). Поскольку в узлах вблизи криволинейной границы с условиями Дирихле, множество которых мы по-прежнему обозначаем через ^2, погрешность аппроксимации разностных уравнений удовлетворяет оценке ЦгрЦ^ ^УИ3А/ 3!, а разностные коэффициенты p(Q, Q) имеют порядок О(А~2), то в (1.85) мы можем считать si=£iA3, где В{ не зависит от А. Так как для остальных узлов имеем е = #2А2 (В2 — некоторая не зависящая от А константа), то решение (1.75) удовлет- 38
воряет оценке 3 + B2h2). (1.87) Для двумерной задачи, например, можно положить 6 = 0,5(1 + max{h2x/ h% h2y/ /г?})"1, а значение В2 уточнить, если взять в (1.85) ^за мажорирующую функцию u = R— (х — хо)2 — (у — у о)2, где R — радиус круга с центром (*о, уо), описанного вокруг области G. Задача III. Рассматривается та же дифференциальная задача и те же се*гки. Единственное отличие состоит в том, что для околограничных узлов с условиями Дирихле используется вместо (1.30) пятиточечная симметричная аппроксимация вида (1.29) с погрешностью 0(1). Очевидно, разница здесь будет в том, что надо принять e\ = B\h2, после чего для ошибки разностного решения получаем оценку /6/, (1.88) где 6', В\ — некоторые константы, не зависящие от h (в частности, 6^6'). Задача IV. Геометрия области и допустимые граничные условия такие же как в задаче II. Равномерную сетку выбираем так, чтобы прямолинейные границы с условиями Неймана проходили на расстоянии (1 — УЗ/3) h от узла; тогда трехточечная аппроксимация нормальной производной вида (1.32) имеет погрешность |г|)| ^М4Л3/ 4!. Для внутренних регулярных узлов сетки строим девятиточечную аппроксимацию типа «ящик» (1.21) (и (1.22) —для трехмерных задач) с погрешностью O(h4) (при этом мы требуем выполнения условия 1/5<А?/Ау<5, чтобы разностные уравнения были положительного типа). В узлах-вблизи криволинейной границы с условием Дирихле, где такая аппроксимация не может быть построена, используем пятиточечные уравнения вида (1.17а) (для трехмерной задачи (1.17в) с погрешностью O(h)). Теорема 1.6. Погрешность решения задачи IV удовлетворяет при h -> 0 оценке \\г\\ ос <-l(Boh4 + Blh3 + B2h% (1.89) где константы Во, В2 не зависят отк,аЬиВ\ — те же, что и в (1.87). Здесь слагаемые в правой чаоти характеризуют вклад в ошибку погрешностей'аппроксимации соответственно в регулярных узлах, околограничных с условием Дирихле, и в узлах вблизи границы с условием Неймана. Доказательство проводится аналогично. Задача V. Расчетная область — двумерная или трехмерная, с границей, пересекающей координатные линии только в узлах. Допускаются граничные условия Дирихле или Неймана. Разностная сетка и аппроксимация те же, что и в задаче IV, за 39
исключением того, что на Г2 используется аппроксимация типа (1.33) с погрешностью O(h4). Теорема 1.7. Погрешность решения разностной задачи V удовлетворяет оценке (1.90) Улучшение результатов здесь обязано тому, что мы улучшили аппроксимацию условия Неймана и что пятиточечные уравнения для околограничных узлов имеют погрешность 0{h2). Отметим, что вблизи прямолинейных участков границ, являющихся линиями или плоскостями симметрии для решения, во всех рассмотренных задачах целесообразно использовать центральные разности, которые точно аппроксимируют условие симметрии. Кроме того, очевидно, что если в какой-то части расчетной подобласти из априорных оценок можно судить об однородности решения (т. е. малости его производных), то в этой окрестности целесообразно строить грубые аппроксимации (например, с использованием более редкой сетки), так как их вклад в ошибку по абсолютному значению будет мал. Рассмотрим теперь на примере двумерной задачи Дирихле разностные аппроксимации II и III с тем отличием, что вместо равномерных используем сетки с кусочно-постоянными шагами, имеющие при А ->- 0 конечное число координатных линий, на которых меняются величины шагов. Пусть в расчетной области, заключенной в прямоугольнике b ^ построена сетка: /= 1, 2 /ь hXi= (xlx — a)/lu l,...,/, + /2, hXf = (b-xtl)/l2, (1.91) /=1,2,..., mi, hUx={ymx — c)/mu , а + /ЛХ1, /= 1, Xi-\Xll+ihXt, * = Z Погрешность пятиточечной аппроксимации такой задачи представим в виде <ф = 'ф + 'ф1, где г|) = 0 и |\|?i | ^ipi = C max {IA2 — — Af|, \hy2 — hyx\} для x = xlx, y = ymi (см. (1.14)), а при хфх1х, У Ф Упц> ^i — 0; С не зависит от А. Соответственно ошибка разностного решения имеет вид z = z + z\, где z = О (А2) (см. теорему 1.5), Аб^1 = i|)i, Z\\r — 0. Для zi, представляющей ошибку решения, обусловленную погрешностью аппроксимации на линиях неравномерности сетки, с помощью принципа максимума можно получить оценку , (1.92) *Ь-х\ x>xit9 поскольку подбором значений Ck = O(h2) мы можем определить 40
Z\, удовлетворяющую условиям: Отсюда следует, что Zi = O(h2). Если сетка имеет линии неравномерности xlx, xlt, ..., xlp, утх, ут2, ..., ущ, то, очевидно, по принципу суперпозиции ошибку решения можно представить как z = + = 2 Zk + z, где каждое из слагаемых есть величина порядка O(h2). Отметим, что мы рассматриваем только те разностные аппроксимации, которые представляются удобными в программной реализации для областей сложной конфигурации. Для задачи Дирихле с криволинейными границами известны схемы с погрешностью четвертого порядка и выше. Можно предложить такого типа аппроксимацию: девятиточечные уравнения (1.21) для регулярных узлов и аппроксимацию на многоточечном нерегулярном шаблоне — для околограничных. Однако на неравномерных сетках трудно что-либо сказать о существовании необходимых свойств этих уравнений или даже о возможности их построения. Помимо этого, программная реализация многоточечных разностных уравнений для узлов вблизи криволинейной границы требует преодоления значительных технических трудностей. § 1.4. Прямые методы решения разностных уравнений Прямыми методами называются такие, которые дают точное решение за конечное число арифметических операций (в предположении, что сами вычисления выполняются без погрешностей). Мы будем рассматривать специальные алгоритмы решения систем алгебраических линейных разностных уравнений, основанные на их специфичной форме и зачастую использующие явные представления собственных чисел и соответствующих собственных векторов. Отметим, что непосредственное применение классических методов исключения Гаусса и других для решения системы N-ro порядка требует выполнения количества операций Q — O(N3) и хранения числовой информации объемом P^=O(N2). В этой главе мы остановимся.только на некоторых характерных методах; более полный обзор можно найти в [60, 70, 166] и цитируемых там работах. 1.4.1. Методы факторизации (прогонки). Так называемые методы прогонки, или факторизации, являются модификациями метода исключения Гаусса для решения систем уравнений с матрицами специального вида, а именно, ленточными матрицами. Напомним, что ленточной матрицей называется такая матрица, у которой все ненулевые элементы лежат в полосе вблизи главной Диагонали. При этом предполагается, что ширина ленты, т. е. число элементов строки, принадлежащих этой полосе, значительно меньше порядка матрицы. 41
В методе исключения Гаусса исходная матрица представляется в форме произведения нижней и верхней треугольных матриц. Таким образом, система уравнений Au = f (1.93) приводится к виду LUu = f, (1.94) где L, U — соответственно нижняя и верхняя треугольные матрицы. Решение системы (1.94) сводится к легко реализуемому алгоритму Lz = f, Uu = z. (1.95) Для ленточных матриц нижняя и верхняя треугольные матрицы L, U также являются ленточными, с той же шириной полосы. Поэтому для семейства матриц различных порядков с шириной полосы, не зависящей от порядка, возможно строить методы, требующие количества арифметических операций и объема запоминаемой информации, значительно меньших по сравнению с общим случаем. Рассмотрим систему разностных трехточечных уравнений Мы не будем связывать систему (1.96) с тем, какую исходную задачу она аппроксимирует. Предполагаем, что значения функции ио и uN+x с помощью граничных условий уже исключены из системы. Тогда решение может быть найдено по единообразным для всех узлов формулам ., 1. (1.97) Здесь poZo, uN+l не определены, однако умножакгГся на нулевые коэффициенты аь cN и не влияют на вычисления в остальных узлах. Реализация метода для общего вида значений a*, bk, ck требует проведения 8N арифметических операций и запоминания 2N вспомогательных величин. Достаточными условиями устойчивости прогонки по отношению к накоплению ошибок являются [45] (1.98) которые всегда выполняются для приведенных ранее краевых задач. Рассмотрим так называемый метод матричной прогонки для систем пятиточечных разностных уравнений, аппроксимирующих краевую задачу для уравнения второго порядка в прямоугольнике ацщ-х^ + Ьцпц -1 + Сцщ+ i,y + dijUitj +1 — ециц = ///, (1.99) 1=1,2,...,/, /=l,2,...,m, 42
где /, т — соответственно число внутренних узлов в строке и столбце. Аналогично предыдущему мы предполагаем, что значения функции, соответствующие граничным узлам с / = 0, /+ 1 или / = 0, ш+1, с помощью граничных условий исключены из (1.99), т. е. a{j=ibiX = Cij = dim = O. Введя векторы щ = {щ^ /=1,2,...,/, состоящие из значений функций на одной строке, систему (1.99) можно записать в виде Lkuk-X-Bkuk+Ukuk + i=f9 fe=l,2,...,m, (1.100) где L*, Bk, Uk — квадратные матрицы порядка /; Lkn Uk — диагональные матрицы, состоящие соответственно из элементов bjk и djk\ Bk — трехдиагональная матрица с элементами на строках a,jk, —e-jk, C\k- Систему (1.100) можно решать по формулам, являющимся формальным обобщением метода прогонки (1.97): Mk= (Bk-LkMk-X)-xUk, zk= (Bk-LkMk-,)-x(Lkzk-X-fk\ *=l,2,...,m, (1.101) k = my m— 1,..., 1, где Mk — матрица порядка /. Реализация формул (1.101) требует обращения т матриц порядка / и запоминания их элементов. Таким образом, число арифметических операций в методе матричной прогонки пропорционально /Зт. При этом требуется вспомогательная память объемом порядка 12т ячеек. Эти требования, особенно последние, делают метод малоэффективным при больших значениях I и т. Если требуется решать систему при разных правых частях /, то за счет запоминания матриц Mk число арифметических действий можно сократить до величины порядка О(12т) (столько операций требует т умножений матрицы на вектор размерности /). Положительным качеством метода матричной факторизации является применимость при переменных разностных коэффициентах, т. е., например, для неравномерной сетки. Для устойчивости матричной прогонки, как и для скалярной, необходимо условие диагонального преобладания. Вопросы устойчивости методов матричной прогонки и их модификаций для различных задач исследовались в работах многих авторов (см. [45, 69, 166] и цитируемую там литературу). 1.4.2. Метод циклической редукции. Как видно из предыдущего, пятиточечная аппроксимация для уравнения Пуассона в прямоугольной области с граничными условиями первого рода на равномерной сетке размерности IXт может быть описана системой векторных уравнений i uj+i=fh /= 2,3, ... , т — 1, (1.102) Eum-\+Aum = fmj 43
где Е — единичная матрица порядка /; вектору // определяются с учетом граничных условий; квадратная матрица А порядка / может быть представлена в виде A = h2yh.x — 2E, «/ = {«//}, / = = 1,2,...,/. Мы будем предполагать, что m = 2k+l— 1, k — целое число. Выпишем три уравнения из системы (1.102) для соседних значений /: Euj-2+Auj-\+Euj = fj-\J (1.103) Умножая второе уравнение на —А и складывая затем все три, получаем -Afi. (1.104) Аналогичные уравнения можно записать для четных /, меняющихся от 2 до т — 2, полагая ио = ит + \=О. Такой процесс понижения порядка системы уравнений называется циклической редукцией. Заметим, что правая часть уравнения (1.104)* может быть записана в виде ifj + fi-l+fi+i-2A-lfh (1.105) где А(1)=2Е — А2. Если мы положим (1Л06) то /0) = л('М') + ^1). (1.107) Если в системе уравнений опять исключить половину неизвестных, т. е. второй раз применить редукцию, то Аналогично, после r-кратного применения редукции имеем /5'+') = fW2, + PjrU' -A^ff\ Л^ = 2£-(Л(Г-")2 (1.109) Выражение для fp можно представить в форме, аналогичной (1.107): № = АЩ) + ф'\ (1.110) Подставляя (1.110) в (1.109), получаем следующие соотношения: р('+ ■) = р(') _ (А«)-' {pf(lv + р]%г - <?«), (1.111) Для вычисления выражения (Лм)~' {р((12' + P{{+v ~ i\r)) необходимо решить систему уравнений A(rW - pY+iy) = pV-v + Р%- - tf. (1.112) 44
Из определения матрицы А^ следует, что она представима в виде произведения трехдиагональных матриц Л<'> = - ПИ + 2cos-££#-£], (1.113) y-i легко обращаемых с помощью прогонок. После проведения k редукций мы имеем A^u2k = A^pP^-q^\ откуда u2k = p$ + zky А™гк = ($> (1.114) Здесь Zk легко вычисляется с помощью 2£-кратного применения метода прогонок (после представления А^ в виде (1.112)). Для реализации обратного хода решения используем соотношение Решая систему уравнений ««^ 2,), (1.116) находим Uj = p^ + z\r\ (1.117) Таким образом, метод циклической редукции состоит в следующем: а) вычисляется по формулам (1.111) последовательность векторов p<f\ q\r\ r=l Л, при/7$0) = 0 для/ = 0, ...,2*+I и ^О = / 122*+1 1 б) по формулам (1.114) с помощью прогонок вычисляется w2*; в) проводится «обратный ход» с нахождением Uj по формулам (1.116), (1.117) (каждое z^ вычисляется с помощью 2г прогонок, г = *— 1, ife — 2 1). Рассмотренный алгоритм был предложен О. Бунеманом. В применении к уравнению Пуассона он устойчив по отношению к накоплению ошибок. Имеется ряд модификаций, в том числе для различных типов граничных условий. Оценки, приведенные в [60], показывают, что общее количество арифметических операций для решения разностной задачи в прямоугольнике на сетке / = т равно (9/2) /2 Iog2 /. Объем вычислений в расчете на один узел можно еще сократить, если решается несколько однотипных краевых задач, отличающихся только правыми частями. Имеются модификации циклической редукции для произвольного числа m [167, 171]. Метод также разрабатывался и для непрямоугольных областей, но при этом его реализация сильно усложняется. 1.4.3. Методы преобразования Фурье. Решение системы уравнений (1.102) можно вычислить, используя явное представление базиса матрицы Л*. А именно, разложим каждый из векторов 45
и;, /; в дискретный ряд Фурье по собственным векторам Л*: V (1.118) p=l,2,...,/. (1.119) Очевидно, t;p/ для всех р удовлетворяют системе уравнений — (2 — Xp)v p x + vP2 = h2yfp i, i=h2yfph / = 2,3,...,m-1,(1.120) где A,p = -4-(cos w^Ti — 1) собственные числа матрицы /ф\*. Отсюда, реш'ив / таких систем с помощью прогонок, по формулам (1.118) вычисляем искомое решение. Такой метод обладает счетной устойчивостью, поскольку все уравнения (1.120) имеют диагональное преобладание (в силу отрицательности кр), а преобразование Фурье (1.118), (1.119) эквивалентно умножению векторов уу, // на симметричную матрицу Q = |-w sin ^ k евклидова норма которой равна единице (fP=Qfj, uf = Qvh vj = {vlh...yVph...,vij}1 fP={fPu...,fPh...,fPi}). Объем вычислений в данном методе определяется по порядку для больших /, т выражением 0(1т)-\-0(1т2). Первый член характеризует трудоемкость решения / систем m-го порядка методом прогонки, а второй (имеющий преобладающую величину) — прямое и обратное преобразование Фурье! Алгоритм, как видно, будет наиболее экономичным при т<^1. Методы такого типа рассматривались для разного типа краевых задач, допускающих разделение переменных, и для различных видов разностных аппроксимаций. Для других Ах требуется также явное выражение базиса; при этом меняются только формулы (1.118), (1М20). Оператор Ау может быть более сложным, в том числе с переменными коэффициентами, поскольку его базис не используется (это приведет только к изменению системы (1.120), которая все равно решается прогонками). К этому классу относятся методы прямых и методы суммарных представлений. Отличие для последних заключается в том, что решение систем вида (1.120) проводится не с помощью прогонки, а путем явного представления через одномерные фундаментальные решения краевых задач (это позволяет существенно экономить объем запоминаемой промежуточной информации при отыскании решения в малом числе точек, но усложняет сам алгоритм). 06- 46
ширная библиография по этим методам имеется в работах [156, 69]. Методы с разложением по базису разностного оператора получили наибольшее развитие при использовании быстрого преобразования Фурье. Идея этого алгоритма основана на том, что при реализации формул вида (1.118), (1.119), если /+1 не является простым числом, можно существенно уменьшить объем вычислений за счет многократно повторяющихся значений sin £^ Мы поясним такой подход на примере вычисления N = 1 сумм (1.118) при N = 2S с целым s, когда быстрое преобразование Фурье наиболее экономично и наглядно. Пусть требуется вычислить sin иг- р==0' '' -' N~ 1; ^ = 2s-(1-121) Представляя синусы через экспоненты, запишем 2 где / — мнимая единица. Введя далее обозначения k = li+2ku /, = 0,1; Л51 —0, 1 ^Vi — 1; N^ p = m\N\+p\, mi = 0, 1; pi == 0, 1,..., N\ — будем иметь k,P) = 2(il,p) exp {ikip{ JL}^=z^p)Zl(kuP^ Отсюда выражение для v(p) можно представить в виде двойной суммы: v(p) = v{mupx)= S ["я* x{luk{)z\k^}z^\ (1.123) /,=0 L^,=0 J Используя теперь обозначения Pi)= V x{lukx)z\k^\ (1.124) V Л0 можем записать Ф)=/20 vx{luP\)#x*\ (1.125) Заметим, что последняя сумма включает только 2 слагаемых, а предпоследняя N\=2S~\ т. е. вдвое меньше, чем исходное выражение для v(p). При этом Vi(lupi) имеет аналогичную структуру (Л является просто параметром), и для него можно провести те же 47
преобразования: , /2 = 0, 1; *2 = 0, 1, ...,ЛГ2—1; N2 = 2 m2 = 0, 1; p2 = 0, I,..., N2— 1, .126) 1 = vi(lum2,p2) = 2 v2{h,l2,p2)z{h-p0, /2=0 JVa— 1 luh,p2) = 2 x(h,l2,k2)z2k^\ *2 = 0 Продолжая этот процесс, получим r, /, = 0,1; fer = 0, I,..., Nr-\; Nr = 2s~r, O,-l(/,, ...,^-1,^,-0= 2 W,(Z|,...,/,_.,/r,Pr)Z^rl), Л^г—1 Vr(ll, ..., Ir-U lr, Pr) = 2 *(/|, .... /г-1, /г, Л,)^'». В частности, при r = s — 1 получаем Vs-\=(lu..., 4-2, 4-1, Ps-l)W/l,..., /s-2, /s-1, 0)zf-Prl) + + x(/b..., /s_2, /s_b l)^-0], (1-128) где /s_! = 0,1; ps-\ = 0,1; zi^i"p—} = exp{^s_ips_^/2}. После вычисления us_i находятся последовательно vs~2, ys_3,'..., Ui, у. Для каждого значения г необходимо вычислять N величин vr при различных значенияхпараметров /i,..., Zr_i, /r, /7r. Аналогично находится величина v(p) в формулах (1.123) — (1.128), надо только заменить 2(ДРг)на z[krPr) и иг на уг. Поскольку 5 = log2A^, то общий объем вычислений оказывается равным O(N\og2N). Так как все величины vr, vr, zr, zr — комплексные, то при реализации рассмотренных формул можно выделять и отдельно вычислять их действительные и мнимые части. Можно также непосредственно выписать рекуррентные формулы для вещественных членов. Это подробно проделано в [166] для разложений по различным видам тригонометрических функций, соответствующим собственным векторам Л* для различных краевых задач. Метод быстрого преобразования Фурье требует примерно такого же объема вычислений (при детальном подсчете арифметических действий, но в предположении, что все тригонометрические функции вычислены заранее), что и метод циклической редукции. Последний является более устойчивым к накоплению погрешностей, i Эффективным приемом является комбинирование редукции и быстрого преобразования Фурье. А именно, если сделать предва- 48
рительно один или два этапа редукции (больше уже оказывается нецелесообразным), то в соответствующем измерении порядки векторов уменьшаются в два или четыре раза, и последующее преобразование Фурье делается существенно экономичней. Общий объем вычислений по порядку остается, естественно, O(/mlog2/). Описание таких алгоритмов подробно изложено в [161, 166]. § 1.5. Итерационные методы решения разностных уравнений Теория итерационных методов решения разностных уравнений за последние десятилетия получила значительное развитие как специальная область линейной алгебры. По этим вопросам накоплено огромное количество литературы, и наиболее полное отражение современного состояния имеется в книгах Г. И. Марчука [119], А. А. Самарского и Е. С. Николаева [166], Р. Варги [28] (см. также [69] и цитируемую там литературу). Целью данного параграфа является обзор основных эффективных алгоритмов со сравнительным анализом их экономичности. Мы рассмотрим кратко теоретические оценки скорости сходимости итерационных методов и условия их применимости, а также результаты некоторых численных экспериментов для модельных задач, иллюстрирующих соотношения по количеству итераций, затрачиваемых разными алгоритмами при различных счетных параметрах. 1.5.1. Основные свойства итерационных процессов. Общий вид рассматриваемых нами итерационных процессов для решения системы уравнений Au — f {и, f — векторы, А — квадратная матрица N-ro порядка) определяется формулой l — Aun-1), /i=l,2,..., (1.129) где ип — вектор я-го приближения'(я-й итерации). Нп — некоторые невырожденные матрицы, определяющие конкретные итерационные алгоритмы. Соотношение (1.129) можно переписать в эквивалентной форме: l (1.130) где gn = Hnf, а Вп = Е — НпА называется матрицей перехода, или итерационного шага. Для характеристики отклонения я-го приближения от точного решения вводятся вектор ошибки у* = и-ип (1.131) и вектор невязки rn = f — Au\ (1.132) связанные очевидным равенством гп = Ауп Вектор ошибки удовлетворяет соотношению у«+^у«-НпАуп = (Е-НпА)уп=:Впуп=Тпу\ (1.133) 4 В П Ильин 49
где Тп= ft (£ - HkA) = П Bk. (1.134) Для того чтобы итерационный процесс сходился, т. е. уп-*0 при любой начальной ошибке у°\ необходимо и достаточно выполнения условия Гл->0. Достаточным i ювием сходимости метода (1.130) является выполнение для вал п неравенств ||5п||<р<1. (1.135) В силу неравенства величина р называется коэффициентом подавления ошибки за одну итерацию. При проведении итерационного процесса необходимо знать, насколько полученное приближение отличается от точного решения. Мы приведем два неравенства, позволяющих оценивать достигнутую точность по величине отклонения двух соседних итераций или по значению вектора невязки. А. Пусть для итерационного процесса выполняется условие (1.135) и \\ип-ип~1\\^г. (1.136) Тогда справедлива оценка 11^11 <т=78- (1Л37) Для доказательства достаточно рассмотреть соотношения откуда непосредственно следует (1.137). - Б. Пусть матрица А положительно определена, т. е. (Аи, и)^ ^8(ик и), 6;>0, для любого ифО, и для невязки выполняется соотношение (1.138) Тогда справедлива оценка ||(/12<е/8. (1.139) Этот результат выводится из цепочки неравенств А Ауп)(уп, y")=\\rnh\\ynh. Из равенства (1.129), которое можно переписать в виде ип — ип~1 = Нпгп1 и из (1.139) следует также, что при выполнении неравенства (1.136) справедлива оценка Н#12< IIЯ^Г11|2е/8. (1.140) 50
Эффективность различных итерационных методов оценивается, во-первых, по скорости убывания ошибки при проведении итераций и, во-вторых, по количеству арифметических действий, необходимых для расчета одной итерации. Основной характеристикой скорости сходимости итерационного метода является число итераций п(е), необходимое для того, чтобы начальная ошибка уменьшилась в г~1 раз: п(г) = тт{п: \\уп\\/\\у°\\ <е}. (1.141) С этой величиной связана так называемая средняя скорость сходимости, определяемая количеством верных знаков (по основанию е), получаемых в среднем за одну итерацию: /?я=|1п е|/л(е). • (1.142) Если при п-^оо существует предел /?д, то он называется асимптотической скоростью сходимости итераций R. Если реализация одной итерации в каком-то методе требует выполнения Qo арифметических операций, то общий объем вычислений для получения заданной точности 8 (в предположении °|О(1)) равен величине Очевидно, для итерационного процесса, удовлетворяющего условию (1.135), R>— In p. (1.143) Если итерационный процесс плохо сходится, т. е. р=1—-6, б <С 1, то /?«6. (1.144) Рассмотрим теперь стационарный итерационный процесс, определяемый постоянным оператором перехода Вп = В, и предположим, что матрица В имеет базис из собственных векторов Zi, 22,..., zn, которым соответствуют собственные числа 1 >> I X\ \ > > |Я2| ^ |А,3| ^ ...^ \Хп\ (максимальное по модулю собственное число Х\ считаем простым, при этом вектор Z\ будет ортогонален всем остальным собственным векторам г2, ...,zN). Разлагая вектор начальной ошибки по базису ° Ni ck = (y°, zk\ (1.145) для ошибки az-го приближения получим уп = \lcxz{ + Мс2г2 + ... + bnNcNzN. ■ (1.146) Отсюда для п-+оо следует выражение yn = WciZi[l+O№/W)], . (1.147) т- е- для такого итерационного поцесса асимптотическая скорость сходимости равна R= — 1п\Х\\у а величина |A,i| является асимп- 4.* 4 51
тотическим коэффициентом подавления ошибки. Если |A,il = l—б и б<1, то R&8, Для систем разностных уравнений с малым шагом h обычно скорость сходимости итераций мала и стремится к нулю при А->"0. Для ускорения сходимости произвольного стационарного линейного итерационного процесса, у которого матрица перехода В имеет простое максимальное по модулю собственное число А.1, можно применить метод, предложенный Л. А. Люстерником. Так как уп+{ ж\\С\2\ при достаточно больших значениях я, то j/n+1«A,i«/n. (1.148) Далее, и = ия + уп, u = un+l+kiyn + en. (1.149) Исключая из (1.149) уп, получаем Un+[-hun , U== 1 5 1 1-Я,, ' 1-Я,,* Так как по предположению гп мало, то вектор u = (un+l-Xlun)/(l-h) (1.150) будет незначительно отличаться от точного решения и. Итак, метод ускорения заключается в следующем. Сначала делаются итерации по формуле (1.130) для стационарного процесса. При этом определяется величина tffi=\\un--un-l\\/\\un-l--un-2\\9 (1.151) которая, очевидно, стремится к К\ при я->оо. Когда величина Мя) меняется от итерации к итерации незначительно, то она принимается за приближенное значение Х\. После этого рассчитывается величина un+l и за следующее приближение принимается и по формуле (1.150). Затем итерации ведутся по обычным формулам, а через несколько шагов может быть ©пять сделано ускорение. В частном случае нестационарный итерационный процесс (1. 129) можно представить формулой и" = и '+t,,A \i — Aull-x\ м=1,2,..., (1.152) где К — некоторая невырожденная матрица (будем называть ее предобуславливающей), а тп — итерационные параметры. Векторы ошибки при этом, очевидно, удовлетворяют соотношению уп= (Е - тпК~1А)уп-1 = П (Е - TiK-xA)y\ Выбор оптимальных параметров тл необходимо проводить из того условия, чтобы для уменьшения нормы ошибки в заданное число г~1 раз требовалось минимальное число итераций п(г). Предположим, что матрица К"1 А имеет базис из собственных векторов Zk, а ее собственные числа вещественны и удовлетворяют условию 0<m<A*<Af, £ = 1,2,...,АЛ 52
Тогда мы можем записать !,«= 2 ckPn(kk)zk> Ря(к) = П (1 - тД), где Ck даны в (1.145), а многочлен /г-го порядка РП(А,) целиком определяется совокупностью значений т/. Выбирая их равными обратным значениям корней многочлена Чебышева 1-го рода, наименее уклоняющегося от нуля на отрезке [m, M] и нормированного условием равенства единице при Х = 0, получим так называемый итерационный процесс с чебышевским ускорением. При этом тп можно определять циклически с некоторым периодом s: \ п=1,2,..., (1.153) и подавление ошибки за 5 итераций оценивается величиной |ВД|<2Т7(725+1), Y-(1-VP)/(1+VP), P = m/M. Отсюда легко находится минимальное число итераций s(e), необходимое для подавления ошибки в е"1 раз: 5(8) = 1П ! /1 — 8 Из последнего выражения при e<Cl, р^>\ получаем следующую оценку для средней скорости сходимости итераций: Если величина периода s большая (например, s;>40), то актуальным становится выбор устойчивой упорядоченности тл, при которой погрешности округлений в процессе итераций не накапливаются. Эти вопросы рассмотрены подробно в [119, 166], а для случая s — 2r алгоритм коротко описывается следующим рекуррентным образом. Пусть {о\, 02, •••, os/2\ — «устойчивая» последовательность номеров для s = 2r~l. Тогда для s = 2r соответствующий порядок устанавливается в виде [О\, 5+1—01, 02, S+ 1—02,...,0s/2, S+l—0s/2}. 1.5.2. Обзор итерационных алгоритмов. Мы остановимся на тех методах, которые, во-первых, применимы для основных типов рассматриваемых нами разностных задач, во-вторых, имеют высокую скорость сходимости и, наконец, достаточно просты при реализации в универсальных программах, рассчитанных на разные конфигурации границ и типы граничных условий. Мы опишем по возможности кратко их основные алгоритмические особенности и области применимости. Несколько большее внимание будет уделено представляющимся перспективными методам неполной факторизации, поскольку они недостаточно освещены в литературе. Мы будем описывать методы в векторной форме, а также иллюстрировать их реализацию на примере системы пятиточечных 53
разностных уравнений вида (1.56), которую запишем в виде (Аи)ц= —aiii-\ti — Ьиц-1 — cui+{tj — dui,j+ \+еиц = !г, (1.154) (здесь для краткости опущены индексы /, / при коэффициентах а, Ь, с, d, е). А. Метод Зейделя и метод последовательной верхней релаксации. Пусть матрица А представима в виде A = D-\-M-\- N, где D — диагональная, М, N—соответственно нижняя и верхняя треугольные матрицы. Тогда метод последовательной релаксации определяется следующим образом: u{(*)un, (1.155) где число-параметр со называется параметром релаксации. Для пятиточечных уравнений это сводится к простым формулам: u +x)/^ (1Л 56) в которых предполагается, что счет ведется последовательно для /=1,2,...,/, /=1,2, ...,т (порядок циклов по / и / безразличен) . Если параметр релаксации со равен 1, то мы приходим к методу Зейделя, для которого сформулируем следующий известный результат. Теорема 1.8 Если матрица А положительного (или отрицательного) типа, то метод Зейделя сходится. Эта теорема, как нетрудно видеть, устанавливает сходимость процесса Зейделя для большинства рассматриваемых нами краевых задач, например, пятиточечных (семиточечных — в трехмерной задаче) разностных уравнений отриш! ьного типа при различных граничных условиях, в том числе на внутренних границах, и при произвольных соотношениях шагов сетки. Область применимости метода верхней релаксации характеризует Теорема 1.9. Если матрица А — симметричная и положительно определенная, то метод последовательной верхней релаксации сходится при 0<<(о<;2. Для большинства рассматриваемых нами систем уравнений, именно тех, у которых матрица перестановкой строк и столбцов сводится к блочно-трехдиагональному виду, удается решить вопрос об оптимизации выбора релаксационного параметра со. Собственные числа г); оператора перехода метода верхней релаксации оказываются связанными с собственными числами h оператора перехода метода Зейделя соотношением ' (ть- + ©-1)7л/ = А (1.157) Коэффициент подавления ошибки р = тах{|г|Л} достигает миниму- i ма при (0 = 0)0 = 2/(1 -УГ=10 (1.158) 54
i = max 1^-1.(1.159) i Практически важным свойством процесса последовательной верхней релаксации является то, что он позволяет автоматически в процессе вычислений находить оптимальное значение параметра релаксации. Проводя сначала итерации по формулам (1.155) при со = 1, мы можем приближенно определить А,ь равное значению МП|), где п\ — минимальное число, для которого |Mni)/M/Zl"1)-l|<ei. (1.160) Здесь 8i — достаточно малая величина, a МП|) определяется на каждой* итерации по формуле Г) ||Ц ~U И2 -1\2/ Y/,,n-l /#п-2\2\!/2 2\!/2 (л \ ) .(1. / / Принимая теперь A,i«A,V4 находим из (1.158) приближенно оптимальное значение со0, которое и используется в дальнейших итерациях. Б. Прогонка по линиям с верхней релаксаци- е й. Процесс верхней релаксации с прогонками по строкам можно записать в векторной форме, если совокупность uijf /,•/ в узлах на /-й строке обозначим через щ, // и проведем разбиение исходной матрицы на соответствующие блоки: f+i + Niuf+^fj, / = 2,...,m-l; (1.162) Мтипт+-\ +Dmunm+l = fm; и/л+1 = (ой}1+1+(1—©К, /=1,2, ..., m. Для пятиточечных уравнений (1.154) D} — квадратная трех- диагональная матрица с элементами — а, е, ~с, порядок которой равен числу узлов в /-й строке. Матрицы М; и Nf имеют не более одного элемента на строке, соответственно —Ь и — d. В покомпонентной записи метод имеет вид ?j — сй?+и 1 = Ь, + Ьи?,}-1 + с1иГ,-[1и (1.163) } — ы)и?,~1 /=1,..., /, /=1 т. Вычисление и!) на каждой /-й строке проводится с помощью прогонки, чем и объясняется название алгоритма (он называется также блочным методом верхней релаксации). Сходимость этого метода для симметричных систем исследуется аналогично поточечной верхней релаксации. При этом справедливы такие же оценки оптимального параметра релаксации и скорости сходимости, как (1.158), (1.159), только Х\ есть спектральный радиус матрицы блочного метода Зейделя (со=1). Реализация данного алгоритма требует несколько большего количества арифметических операций при расчете одной итерации, 55
чем в поточечном методе верхней релаксации (в зависимости от вида коэффициентов разностных уравнений и способов их вычисления и запоминания). Помимо массива пц при расчетах требуется хранить дополнительную информацию объемом порядка количества узлов в двух строках. В. Неявные методы переменных направлений. Из большого разнообразия исследований по этому классу алгоритмов мы приведем только некоторые основные результаты. Прежде всего рассмотрим схему продольно-поперечных прогонок Писмана—Ракфорда решения пятиточечных уравнений для двумерной задачи. В покомпонентной записи для системы (1.154) этот алгоритм имеет вид (1.164) где ei~\-e2 = e, причем е\ соответствует диагональному члену, получаемому из аппроксимации д2и/дх2, а е2 — д2и/ду2. Первый этар (дробный шаг) итерации (1.164) реализуется прогонками по / для /==1,2, ..., т, а второй — прогонками по / для **= 1, 2, ..., /. Методы такого типа получили также названия «продольно- поперечных прогонок», «дробных шагов» и др. В операторном виде эта итерационная схема имеет форму -f), (1.165) которая после исключения промежуточной величины ип+1/2 принимает вид: un-f), (1.166) где Tin, x2rt — итерационные параметры; Ai и Л2 определяются из (1.159). Если Ль Л2 — симметричные перестановочные матрицы, имеющие границы спектра соответственно 0 <Cai<;Pi < оо, 0<Сос2<С <р2<;оо, то алгоритм расчета последовательности параметров, основанный на минимизации дробно-линейной функции, характеризующей подавление ошибки, и оценки скорости сходимости определяются выражениями [164]: Яп + qn r Я f\n=-r\ ♦ Т2/г=п , А ^ 1 • П 1-\-(опр \~(опр lnrj yi. 56
» —«О (Р2 —0С2) _ 1-j /О» — 1+Е' §~" V (Р, ( ) _2n —1 (1.168) _ (l+26)(l+ef _2n — ft)n а~ В частности, если Л[ и Лг имеют одинаковые границы спектра, т< е. ai=a2 = oc, Pi = р2 = р, причем а^(3, то из (1.167) следует (М69) что означает слабую логарифмическую зависимость скорости сходимости от числа обусловленности матриц. Если же операторы Ль Л2 не перестановочные, то построить оптимальную последовательность параметров и получить оценку скорости итераций вида (1.167) не удается. В общем случае для стационарного итерационного процесса вида (1.164) справедлив следующий результат. Теорема 1.10. Итерационный процесс (1.165) для Ti,n = = Т2,п==т и операторов Ль Лг, удовлетворяющих для всех и условиям (AiU,u) > 64{и, и), . п 170) (AiUtAiuXtAiiAiUtU), /=1,2, v* ; сходится при любом т>>0, если хотя бы одна из величин 61,62 больше нуля. При этом для коэффициента подавления ошибки справедлива оценка p<(min{Pl, P2}) 1/2 Pi = если итерационный параметр определяется формулой т=1/У"6Д~ (1.172) Здесь /= 1 при pi<p2 и / = 2 — в противном случае. Справедлива также оценка, которая сильнее (1.171) для положительно определенных Ai, Л2 с близкими границами спектров: ' <U73) _ т= 1/-\/бА, 6 = min(6i,62), А = Для двумерной задачи в работах различных авторов (см., например, обзор в [69]) предложены модификации методов переменных направлений, эквивалентные по скорости сходимости рассмотренному нами алгоритму. 57
Для трехмерных задач известно также несколько алгоритмов расщепления, из которых мы рассмотрим схему с дополнительными параметрами: un+l/p=^un-xn(Alun+i/p + 2 Atun — f), 1=2 (1.174) un+i/P = un+a- i)/P+pn ._ ,(„«+(*- D/P_ un)-xnAi(un+i/p- и"), i = 2, 3, .... p. После исключения промежуточных величин получаем W-f)- (1Л75) «=1 1 = 1 Здесь матричные множители в скобках предполагаются следующими слева направо в порядке возрастания индексов /. В частности, для двумерной задачи (р = 2) схема (1.175) сводится к формуле ы»+> = \Е - ~ (Е - Тп)]и" - сол П (Е + тЛ,)-1/ ...... (1.1/О) (о„=1+р„. При (оп = 2 эта схема эквивалентна рассмотренному методу Писмана — Ракфорда (1.165) для Т1П = т2п = т. Сходимость итерационного процесса (1.175) при р = 3, так же как и других известных трехшаговых схем, удается ноказать только при перестановочности операторов Д. А именно, если при этом Ai—положительно определенные, то итерации (1.175) СХОДЯТСЯ При ЛЮбыХ Т„ > О И 2 > 0)„ = П(1+ Pni) > 0. i=l По поводу реализации неявных методов переменных направлений можно отметить, что они требуют один или два массива памяти длиной, равной количеству узлов (в зависимости от модификации алгоритмов), плюс два-три массива с размерностью, равной максимальному количеству узлов в строке или в столбце сетки. Расчет одной итерации, очевидно, требует примерно в р раз большего количества арифметических действий, чем метод прогонок по линиям с верхней релаксацией. Г. Попеременно-треугольные методы. Мы напомним, что при решении многомерных задач неявными методами переменных направлений исходный оператор разбивается на сумму «одномерных» операторов, а итерационный цикл представляется в виде последовательности дробных шагов, на каждом из которых обращается один из «одномерных» операторов. В этих эффективных алгоритмах по сравнению с явными методами Зейделя или верхней релаксации можно, отметить тот недостаток, что число арифметических операций, необхо- 58
димых для вычисления очередного приближения, увеличивается из-за необходимости проведения прогонок. В то же время рассмотренный нами операторный анализ сходимости итераций при р = 2 требует только условия А = А\+А2 и положительной определенности операторов А\, А2. В попеременно-треугольных методах, или явных схемах переменных направлений [64, 166], используются в операторной записи такие же итерационные процессы, но исходная матрица разбивается на сумму двух треугольных матриц, которые, как известно, наиболее легко обращаются. Реализация каждого дробного шага проводится по явным рекуррентным формулам и требует столько же арифметических действий, сколько одна итерация метода поточечной верхней релаксации. Отметим, что даже для многомерных задач итерационный цикл в этом случае разбивается только на два дробных шага. В качестве примера мы приведем явный вариант схемы Пис- мана — Ракфорда для семиточечных разностных уравнений в трехмерной задаче +pouijk = fijk (1.177) (индексы при ро, Рь ••-, Рь для краткости опускаем). Операторы Ai и Л2 определяем следующим образом: Тогда итерационный процесс (1.165) проводится по формулам: .п+1/2 1 Г/.n \~(г\ ,.л+1/2 | „ ,#я+1/2 Первый дробный шаг реализуется так же, как в методе Зейделя, с перебором узлов «вправо-вверх» (может быть выбрана любая последовательность, для которой при вычислении иц£х/2 значения и^\^к, w£/tYjL u>?.£k-2\ уже определены). При реализации второго дробного шага счет проводится в обратном направлении. Очевидно, при вычислениях на ЭВМ требуется только один массив для хранения пци. Если матрица Л симметрична и положительно определена, то при ро=ро =-~- ро и вещественных и имеем (Л,а, и) = (А\иу и) = (А2и, и)=^{Аи1 t/)>0, 59
что по теореме 1.10 обеспечивает сходимость приближений ип к точному решению при т;>0. Поскольку в данном случае операторы Ль Л2 не перестановочны, то построить оптимальную последовательность итерационных параметров хп не удается. При т„ = т для оценки скорости сходимости применима теорема 1.10, как и в неявных методах. В частности, скорость сходимости попеременно- треугольного метода для пятиточечной разностной задачи Дирихле в крадратной области на квадратной сетке вдвое меньше, чем для стационарного неявного метода Писмана — Ракфорда. Отметим, что * аналогичные алгоритмы (методы SSOR— symmetric successive over relaxation) строились зарубежными авторами из другого принципа — использования последовательной верхней релаксации с попеременным изменением направления пересчета неизвестных, см. литературу в [69, 203]. Рассмотрим скорость сходимости явной двупараметрической схемы переменных направлений для симметричной положительно определенной матрицы A = Ai + A2, Ai=A2 (см. (1.176)): ип+1 = [Е—|(£ — Т))ип — сот(£+тА2)~ \Е + тЛi)~7. (1.180) Легко видеть, что матрица Т симметрична и данный итерационный процесс будет сходиться при^ т>0, 0<со<4. При | — j -\/Д/Д т = то= I—'■ имеем О^ХТ^.ХТ= ¥-Z_ и оптимальное значе- ние со = соо равно о 1 4- лШК <оо = —^- = 4 ^'. (1.181) 1/2 (2- Кг) 1 + 3VVA а коэффициент подавления ошибки удовлетворяет неравенству Отсюда для 6/A<Cl скорость сходимости итераций равна (1.183) В данном методе при 0<со<2 спектр оператора перехода лежит на неотрицательной части вещественной оси, и для ускорения сходимости итераций можно использовать прием чебышев- ского ускорения в несколько другой форме, чем это описано в п. 1.5.1 (мы рассмотрим явную схему Писмана — Ракфорда, т, е. в (1.180) (0 = 2): urt+1==rt/n+G, (1.184) un+l = un+l +an(un+l - ип). При этом задача отыскания оптимальных значений ап (л=1, 2, ..., mod (га)) сводится к построению полинома вида П Рт = П [к + ая(А,- 1)J, (1.185) 60
наименее уклоняющегося от нуля на интервале [О, ХТ](ХТ— спектральный радиус Т). Так как п (*- то искомые {$„ должны быть корнями многочлена Tm(a /Tm{a + b), где Tm(aX-\-b) — полином Чебышева степени m на интервале [—1, 1], а = 2Дг, &= —1: Н]4{*ЁЧ о-187» Число итераций п(е), необходимых для подавления начальной ошибки в е раз, в этом алгоритме равно (при т = п) 'n(e)<ln 8 /inv-VY'-l, Y=r-1- (1-188) При 6/А<с1 (что соответствует малым h) ХТж1—2-уб/А и для е<С 1 имеем что соответствует скорости сходимости R^2-\J2\jlT^ (1.190) Отметим также, что применение чебышевского ускорения требует использования одного дополнительного массива для хранения в памяти значений u?f~.x Весьма важно, что метод чебышевского ускорения позволяет автоматизировать выбор итерационных параметров по апостериорной информации, без использования значения Хт, которое чаще всего неизвестно. Для этого сначала выбирается некоторое значение (поскольку в сеточных уравнениях Хт близко к 1, то можно смело брать Хо ^ [0.7, 0.9J), и итерации проводятся по формулам (1.184), (1.187) с заменой Хт на Хо. Поскольку при этом в последовательных приближениях становится преобладающей гармоника, соответствующая максимальному собственному числу, то становится возможным приближенное вычисление ХТу которое делается следующим образом: ХтжХР=(1 7гГ)/тА, О-191) где k — минимальное целое число, при котором |2Н1М-,|<бь zk=\\uk -tik-xb/\\uk-x -ик~2Ь (1.192) для некоторого достаточно малого ei. После этого в итерациях параметры рп вычисляются по формуле. (1.187) с заменой Хт на X[k\ Д. Вариационные методы переменных направлений. В последние годы в работах советских и зарубежных математиков [44, 52, 68; 121, 203] исследовалась оптимизация 61
алгоритмов переменных направлений на основе вариационных принципов, которая приводит к обобщению известных градиентных методов. Например, для итерационных процессов вида ип = ип-{ -(*п-ХН-\Аип-{ -/), (1.193) где под Нп мы подразумеваем произведение операторов, соответствующих методам переменных направлений или попеременно-треугольным, параметры (оп можно выбирать из условия минимизации какого-либо функционала. Если в (1.193) минимизировать функцию ошибки Ф(ип) = (Аип, и11) — 2(un,f), то получим обобщение метода наискорейшего спуска ,vn). ' (1Л94) Функция ошибки при этом меняется по закону ф(ип)=ф(ип-1)—{гп-\Н~1гп-1)/{АН-1гп-\ H~lrn~~l). (1.195) Рассмотрим проведение невязки гп в итерационном процессе (1.193). Поскольку справедливо соотношение „я ^п— 1 .ч ylu-Ln-l Г = Г —(Dn_i/i/7 T , то при <ол = (Л#-1гл, r")/(AH-lrn, AH~lrn) (1.196) невязка убывает оптимальным образом, причем (r«+V+')__1 (AH-^\r"f ( 4 (r\rn) (rn,rn)(AH-{r\AH~lrnY Если m, M — минимальное и максимальное собственные числа матрицы АН~\ то q^(M — m)/(M — m). Таким образом, формулы (1.193) и (1.196) дают аналог метода минимальных невязок. Для двух дробных шагов (А=А\-\-А2) мы полагаем #:=1(£ + тЛ1)(£ + тЛ2), (1.198) и реализация рассмотренных двух методов основывается на решении уравнения с помощью обращения простых операторов. При этом можно использовать как неявные, так и явные алгоритмы переменных направлений, т. е. определять А\, А2 как трехдиагональные или треугольные матрицы. Очевидно, эти алгоритмы можно рассматривать как «классические» релаксационные методы, примененные к решению уравнения Lu = Gy полученного из исходного умножением 62
"1: на Я Отсюда следует, что сходимость таких итерационных процессов доказывается обычными для этих методов способами, если Н~1А—положительно определенная матрица. Эффективность же алгоритмов, очевидно, будет зависеть от обусловленности Н~1А, которую можно, в свою очередь, оптимизировать за счет выбора т. С другой стороны, для градиентных методов существуют оценки погрешности итераций, непосредственно не зависящие от обусловленности исходных матриц. Например, в обобщенном методе минимальных невязок (1.193), (1.196), (1.198) для вектора невязки справедливо неравенство [52]: (гл, гп)^4у(Нуо,Нуо)/п\ если Я — симметричная положительная матрица, и ||ЛЯ~1||^7- Эта оценка характеризует довольно быстрое уменьшение ошибки на первых итерациях, причем она справедлива даже для вырожденной матрицы А. Логическим развитием вариационных методов переменных направлений являются методы сопряженных направлений. Таким примером может быть метод сопряженных градиентов, минимизирующий функцию ошибки Ф(ип) по заданному начальному приближению и0 (а не по предыдущей итерации ип~\ как в методе наискорейшего спуска): (1-199) где Я определяется из (1.198). В силу самого построения метода сопряженных градиентов из условия минимальности функции ошибки, скорость его сходимости по крайней мере не меньше, чем если в методе (1.193) использовать оптимальную последовательность чебышевских итерационных параметров соп аналогично тому, как это делалось выше в п. Г. Кроме того, в итерационном методе (1.193) для вектора ошибки уп справедлива оценка, аналогичная предыдущей и не включающая явным образом числа обусловленности матриц [71]: Известно также, что метод сопряженных градиентов дает точное решение за конечное число итераций, равное порядку системы. Хотя это соображение не дает конструктивной оценки для разностных уравнений в с^лу большого количества неизвестных, но свидетельствует о некотором «внутреннем резерве» алгоритма. По крайней мере численные эксперименты свиде- 63
тельствуют об очень высокой эффективности метода сопряженных градиентов в сочетании с переменными направлениями. Исходя из условий минимизации того или другого функционала, могут быть построены различные алгоритмы сопряженных направлений. Некоторым сдерживающим фактором для их широкого распространения является то, что они требуют большего объема вычислений на одну итерацию и большего объема памяти, чем метод чебышевского ускорения. Е. Итерационные методы неполной факторизации. Рассмотрим систему уравнений блочно-трехдиагональ- ного вида (см. 1.102), которую мы запишем в форме =fk, 6 = 2, 3, ..., m-1, (1.200) — L/Xni — 1 ~\~ B{Xm = /■///. Здесь Xk, k=l, 2, ..., m,— векторы, каждый из которых имеет размерность /&. Матрицы Bk предполагаются квадратными, трехдиагональными и монотонными, т. е. обратные матрицы Bk~l существуют и имеют неотрицательные элементы. Матрицы Lfc, Uk считаем неотрицательными, и вся блочно-трехдиагональ- ная матрица А системы (1.200) предполагается монотонная (Lk^O, Uk^O, A~x~^0, где матричные неравенства подразумеваются поэлементно). Если, например, система (1.200) получена из аппроксимации краевой задачи в прямоугольной области, то /* = / и L*, Uk — диагональные матрицы. Как отмечалось в п. 1.4.1, метод матричных прогонок для решения такой системы является безытерационным, однако реализация его требует количества операций О(1гт). Еще более жестким ограничением является тот факт, что реализация его требует запоминания вспомогательных чисел О(12т). Учитывая, что для монотонных матриц с диагональным преобладанием обратные матрицы имеют положительные элементы со значениями, убывающими по мере удаления от главной диагонали, рассмотрим следующий итерационный алгоритм [75]. , Будем искать решение системы с помощью соотношения Xk — MkXk+\-\-tjk, после подстановки которого в (1.200) получаем Gk^Bk-UMk-i), Mk = Gr{Uk. (1.201) Представим теперь Gk~x в виде суммы Dk + Hk, где Dk — ленточные матрицы, ненулевые элементы которых равны (или приближенно равны) соответствующим элементам Gk~l. Переписывая (1.201) в виде xk = DkUkXk+\ + HkUkxk+1 + Gr l(fk 64
Представим теперь Gk l в виде суммы Dk + Hk) где Dk — ленточные матрицы, ненулевые элементы которых равны (или приближенно равны) соответствующим элементам G&"1- Переписывая (1.201) в виде •Xk = DkUkXk+1 + HkUkXk+1 + Gk~ \fk + Lkt/k- i), можно выписать соотношения k, -X + UkXk+\)-DkUkxk+u (1.202) Gk = Bk-LkDk.xUk-x = Dk + Hk, "удовлетворяющие, как нетрудно видеть, исходной системе уравнений. На основе (1.202) определим итерационный процесс ynx = Gr\n + Uxx$-x)-DxU{xV\ -DkUkxi+\% (1.203) \, k = 2, 3, ..., га, k = m—l, ..., 1. Если в данных соотношениях матрицы Dk взять равными Gk~l (при этом Hk будут нулевые матрицы), то получим без- итерационный метод матричных прогонок. Другой предельный случай, когда Dk = 0, Hk=Gk~l = Bk~l, дает не что иное, как неявный метод Зейделя с прогонками по линиям, который определяется из (1.162) при (о=1. Поэтому алгоритм (1.203) при ненулевых Dk можно еще назвать сверхнеявным методом Зейделя. Из построения следует, что если последовательность xl сходится, то предел является решением системы (1.200). Мы подробней остановимся на реализации метода (1.203) при Dk = (Gk~l)"3\ где (GrI)(3) означает матрицу, у которой элементы на трех главных диагоналях те же, что у Gf\ а остальные — нулевые. В этом случае выполнение итераций требует предварительного вычисления Dk, что сводится к нахождению трех главных диагоналей матрицы, обратной к трехдиагональ- ной матрице Bk — LkDk-\Uk-\. Эту последнюю задачу рассмотрим на примере трехдиагональной матрицы Т = {—а,-,&/, — С/}. Вектор-столбец fq) = {t^q] элементов матрицы Г"1, очевидно, удовлетворяет системе — ajtj-itq + bjtjq — c}tj + i,q = eq, ai=c/ = 0, /=1, 2, ...,/, где eq— орт, имеющий единичный д-и компонент, а остальные компоненты нулевые. С помощью встречных прогонок за 0(1) арифметических действий могут быть вычислены величины ri = dl/hu r, = d//(6/-r/_1), di = aj+lch / = 2,...,/, si = di-x/bu sl = dj-i/{bl — Sj+x)9 / = /—1,/ —2,..., 1, через которые выражаются элементы трех главных диагоналей по следующим формулам: ^Н^-^-1-^-ыГ1, <7 = 2, 3, ..., /-1, tq-\,q = tqqrq-\/aq, q = 2,..., /, tq+i^—tqqSq+i/Cq, ^—1,2,...,/— 1. 5 В П Ильин 65
Поскольку каждая Gk— трехдиагональная матрица, умножение векторов на Gr1 в (1.203) также реализуется с помощью простых прогонок. Реализация каждой итерации в (1.203) может быть упрощена, если в качестве Dk брать диагональные матрицы (Gk~l)"{\ ненулевые элементы которых равны диагональным элементам матриц Gk~x. С другой стороны, усиление «неявности» можно* достичь при Dk = (Gk~l)(p\ p>3. Например, при р = 5 вычисление Gk требует нахождения пятидиагональной ленточной части матриц, обратных пятидиагональным матрицам. Это может быть несложно осуществлено с помощью встречных пятидиа- гональных прогонок [15]. До сих пор в этом пункте структуру матриц L&, Bk, Uk и реализацию алгоритма мы связывали с естественной построчной упорядоченностью узлов, как и в п. 1.4.1, т. е. Xk из (1.200) равно Uj = [u,j} из (1.100) при k = j. Возможен и другой способ представления системы (1.200) для разностных пятиточечных уравнений (1.99), основанный на определении векторов Xk как совокупности значений щ на k-и диагонали сетки с номером k = i-\-j—l. В этом случае каждая из матриц В^. будет диагональной с элементами e,jy a Lk и Uk— нижняя и верхняя двухдиагональные матрицы с элементами a,,, bij и с,/, d,j соответственно. Если мы теперь в (1.203) определим Dfe = (G^1)(1), то получим итерационный метод неполной факторизации, предложенный Н.И.Булеевым и развитый затем многими авторами, см. [69, 24, 124] и цитируемую там литературу. Вектор ошибки я-й итерации vn = {xj — xf} в (1.203) удовлетворяет равенству где матрицы L, £/, Н имеют следующее блочное представление: I! я, о и = н= о о о о -DlUl -GrlLt -DkUk о Е, о нкик (1.205) 66
Относительно системы (1.200) дополнительно предполагается, что она обладает диагональным преобладанием, обеспечивающим выполнение условий устойчивости матричной прогонки М/^0, ||Mfe|| <C 1. Матрицы Mk определяются в (1.101), а за норму матрицы берем максимальную сумму модулей элементов строки. Далее, полагая систему отнормированной по условиям ||Lfe||<l, ||(Л||<1, будем иметь Gk>0, £>*>0, tf*>0, ||G*L*|I<1, \\DkU\\<l9 Л=1,2,...,т. (1.206) Отсюда следует, что матрицы L, U — монотонные, т.е. итерационный процесс (1.203) реализуем. Его матрица перехода T=U~lL~lH, очевидно, имеет неотрицательные элементы. Непосредственным умножением можно проверить справедливость соотношения LU-H=G~XA, (1.207) где G — блочно-диагональная матрица с блоками Gk на диагонали. На основе спектральных свойств неотрицательных матриц несложно доказать следующий результат. Теорема 1.11. Пусть матрицы Р и N — монотонные, Q — неотрицательная, R — неотрицательная и невырожденная, и пусть выполняется соотношение P-Q = NR. (1.208) Тогда максимальное по модулю собственное число X матрицы P~{Q вещественное, простое и удовлетворяет неравенству 0А1 Для частного случая, когда R—единичная матрица, это утверждение переходит в известный результат о регулярном расщеплении матриц [28]. По аналогии представление (1.208) будем называть квазирегулярным расщеплением матрицы N. Из (1.207) и теоремы 1.11 следует, что максимальное по модулю собственное число матрицы S = (L')~l(U')~lH положительное и меньше единицы (штрих означает транспонирование). Поскольку собственные числа матриц S, Т' и Т совпадают, получаем, что итерационный процесс (1.204) при выполнении условий (1.206) сходится. С целью иллюстрации скорости сходимости данного итерационного процесса рассмотрим результаты методических расчетов для разностных уравнений Пуассона, соответствующих задаче Дирихле в квадрате и квадратной сетке' с числом внутренних узлов m по каждой координате. В этом случае Lk и Uk— единичные матрицы порядка m, a Bk— трехдиаго- нальные матрицы, имеющие «4» на главной диагонали и «—1» — на соседних с ней диагоналях. Мы применим формальное обобщение алгоритма, состоящее в определении матриц Dk по формуле Dk — Q (Gk~[f3\ где Э — некоторый числовой параметр. 5* 67
Расчеты выполнялись при правых частях fk, соответствующих точному решению, равному единице. Начальное приближение выбиралось нулевым. Итераций продолжались, пока максимальный модуль разности соседних приближений не становился меньше 10~5. Для демонстрации влияния параметра 6 в табл. 1 приведены количества итераций п при разных величинах 9. Таблица 1 0 т 10 20 30 40 1 16 44 86 141 1,05 13 36 71 116 1,10 10 29 56 91 1,15 12 21 41 67 1,20 17 37 57 75 Итерации 9 17 31 44 Как видно из результатов, оптимальное значение 9 близко к 1,15 (при этом число итераций сокращается примерно вдвое по сравнению с 9=1), и его значение слабо зависит от порядка системы уравнений. Отметим, что при 9>1,25 итерации расходятся. В последнем столбце таблицы даны результаты по применению ускорения Люстерника (см. п. 1.5.1). Сначала ведутся итерации с 9=1 и вычисляются приближения к максимальному собственному числу Хп= \\хп — хп~1 \\/\\хп~[ — хп~2||. После выполнения условия \Хп — К-\ I ^s~ 10~3 делается один шаг ускорения где хп+{—«обычное» (я+1)-е приближение, а далее итерации продолжаются при со = 1, 9=1,15. Данный прием сокращает число итераций примерно в полтора раза. При этом количество итераций оказывается приблизительно в 3 раза меньше, чем в методе прогонок с оптимальной верхней релаксацией (1.162). Отметим, что с учетом возможного вычисления матриц DkUk до итераций трудоемкость одного приближения не намного больше, чем в методе блочной релаксаций. По-видимому, если взять Dk пятидиагональными матрицами, количество итераций можно существенно уменьшить. Однако увеличение ширины ленты матриц в пределе (при Я^ = 0, Dk=Gk) приведет к методу матричных прогонок, не являющемуся оптимальным. Можно ожидать, что существует «золотая середина» в определении ширины ленты Dk, при которой эффективность методов данного класса будет максимальной. Методы неполной факторизации в рассмотренной форме даже для симметричной системы имеют несимметричную матрицу итерационного шага. Это не позволяет эффективно применять к ним способы повышения скорости сходимости типа чебышевского ускорения или сопряженных градиентов. 68
Мы теперь остановимся на другой форме алгоритма, свободной от этого недостатка. Рассмотрим итерационный процесс вида K(un+{-un) = Tn(f-Aun) (1-209) с некоторой предобусловливающей матрицей К и параметрами тп. Выберем К равной G-lU. (1.210) Очевидно, при G = B — LG~XU будет К = А и (1.210) представляет собой не что иное, как блочную факторизацию Гаусса матрицы А. Тогда итерации в (1.209) сходятся за один шаг, а блочно- диагональная матрица G = {Gk] определяется из рекуррентных соотношений G\ = Bu Gk = Bk — LkGiT-\Uk-\, & —2, 3, ..., /. Если же мы будем использовать только ленточную часть матриц, обратных к ленточным матрицам f)U k = % 3, ..., U (1.211) то формулы (1.209) — (1.211) дают итерационный алгоритм, реализация которого проводится аналогично (1.203). Если матрица А симметрична, то Lk=Vk-\ и матрицы G, К также симметричны. Если к тому же Л — монотонная матрица и выполняются условия (1.206), то К является положительно определенной матрицей, а собственные числа К~1А вещественные и положительные. Кроме того легко показать, что К—монотонная матрица и что справедливо соотношение Отсюда и из теоремы 1.11 следует, что при тп=1 итерационный процесс (1.209) — (1.211) сходится, поскольку собственные числа матрицы перехода Т = Е — К~1А = К~1Н будут меньше единицы по модулю: 1. (1.212) Спектральный радиус матрицы Т при этом равен р(Г)=а/(1+а), а = Теперь для применения чебышевского ускорения' в (1.209) необходимо определить границы спектра матрицы К~1А. Непосредственно из (1.212) следует т=1/(1+а) <ЦК~1А) < (1 +2а) / (1 +сс) =М. (1.213) Отсюда получаем, что оптимальная циклическая последовательность (с периодом N) чебышевских итерационных параметров в (1.209) определяется формулами (1.153), и при а ^> 1 скорость 69
сходимости итераций будет равна Для модельной разностной задачи (см. (1.69) и ниже (1.214) ) при построчной упорядоченности узлов сетки Lk и Uk будут единичными матрицами, и величину а= р(А~1Н) можно оценить через минимальное собственное число матрицы А и норму матрицы G"1— (G~l)(p). Для р = 3 непосредственные расчеты с помощью формул (1.203) дают р^-'ЯХ 0,123/(2А2), откуда для скорости сходимости метода с чебышевским ускорением получаем R Такая же оценка скорости сходимости будет справедлива и для метода сопряженных градиентов с использованием предобусловли- вающей матрицы /Сиз (1.210). Реализацию такого алгоритма можно провести по формулам (1.199) при Н = К. Рассмотренные методы имеют нечто общее с появившимися за последнее время итерационными алгоритмами, использующими неполное разложение Холесского или Гаусса, когда в матрицах- множителях «зануляются» относительно малые по величине элементы (см., например, [2] и цитируемые там работы). 1.5.3. Сравнительный анализ итерационных методов. Одной из актуальных проблем вычислительной математики, как с теоретической, так и практической точки зрения, является выбор оптимальных алгоритмов. Этот вопрос достаточно содержателен при решении разностных уравнений в силу большого объема требуемых вычислений и наличия разнообразных итерационных алгоритмов, имеющих, в свою очередь, свободу в подборе счетных параметров. Сравнение эффективности итерационных методов можно вести по теоретическим оценкам скорости сходимости итераций. Недостатки таких оценок заключаются, как правило, в том,^что они, во-первых, более или менее точны только для частного круга задач и, во-вторых, имеют асимптотический характер, т. е. справедливы при А, 8-^0. Другой путь заключается в проведении численных экспериментов. Здесь требуется подбор характерных методических задач и «чистота» эксперимента, т. е. аккуратность в соблюдении равных условий при сравнении различных методов. Понятие оптимального алгоритма имеет смысл в применении к решению определенного класса задач на конкретной вычислительной системе. Решить проблему выбора оптимального метода для частной задачи зачастую не легче, чем просто решить эту задачу любым имеющимся алгоритмом. Теоретические оценки и эксперименты на методических примерах не закрывают, конечно, всей проблемы, но дают первую информацию, которую необходимо учитывать при анализе эффективности методов. 70
Сравнение итерационных методов решения разностных уравнений, как правило, проводится на следующей модельной задаче: (1.214) /, /=1, 2,..., /, А = я которая представляет собой пятиточечную аппроксимацию задачи Дирихле —\-\ ^=f(x,y), 0<х, (5л: ду2 = O, в квадрате с длиной стороны л на квадратной сетке (вид функции f(xyy) не очень существен, поскольку рассматривается поведение итерационных процессов). В табл. 2 приводятся значения асимптотической скорости сходимости итераций R для рассмотренных ранее методов: Зейделя, последовательной верхней релаксации, прогонок с верхней релаксацией, продольно-поперечных прогонок с постоянным значением итерационного параметра и с последовательностью параметров, двухпараметрического попеременно-треугольного с постоянными параметрами, попеременно-треугольного с чебышевским ускорением и с минимальными невязками, рассмотренного выше метода неполной факторизации (при р = 3) с чебышевским ускорением, для которых используются соответственно обозначения ЗЕЙД, ВР, ПВР, ПШ, ППН, ДПТ, ПТЧУ, ПТМН, НФЗ. Таблица 2 R ЗЕЙД h2 ВР 2Л ПВР 2л/ТН ПП1 2Л ппп n2/2\\nh\ ДПТ 2h ПТЧУ 2л/ТГ ПТМН 2h НФЗ 4уТ/г Во всех алгоритмах итерационные параметры предлагаются оптимальными. Как видно, при А-►О вне конкуренции оказывается метод продольно-поперечных прогонок с оптимальной последовательностью параметров (ППП), а на втором месте стоит попеременно-треугольный метод с чебышевским ускорением (ПТЧУ). Если область представляет собой не квадрат, а прямоугольник, и сетка прямоугольная (равномерная или неравномерная), то все оценки для R в табл. 2 остаются по порядку теми же (ft в данном случае есть максимальный шаг сетки). Количественно же для всех методов значение R будет ухудшаться, если сетка становится сильно неравномерной, т. е. растет отношение максимального шага к минимальному. Для других типов граничных условий, например, если задано условие Неймана на одной, двух или трех сторонах прямоуголь- 71
ника, скорости сходимости всех методов остаются по порядку прежними. Общая тенденция поведения R такова: чем на большей части границы выполняется условие Неймана', тем хуже сходятся итерации, т. е. R уменьшается. Для уравнения Пуассона в цилиндрической системе координат оценки асимптотической скорости сходимости итерационных методов примерно такие же, как и в декартовых координатах. Если же рассматриваемая область не является прямоугольником, то для метода продольно-поперечных прогонок оптимальная последовательность итерационных параметров неизвестна и оценка R~(j( .. .] не справедлива. Такая узкая применимость — главный недостаток этого алгоритма, в то время как для остальных итерационных процессов оценки из табл. 2 (в том числе для ПП1) остаются по порядку теми же. Таблица 3 —^^_^^ Метод Область ^~"~-~-^-^^^ Квадрат 20x20 Квадрат 30x30 Квадрат 50x50 Уголок 50x50 Кольцо 88x88 ЗЕЙД 319 644 1531 877 1200 ВР 83 147 327 172 478 ПВР 54 90 190 115 272 пш 27 39 60 65 205 дпт 28 42 61 52 — ПТЧУ 20 31 38 31 50 птмн 15 21 25 23 — В табл. 3 мы приводим количество итераций, затрачиваемых рассматриваемыми методами при решении трех характерных задач. Первая из них—это модельная задача (1.214) с числом шагов сетки 20X20, 30X30, 50X50 (только граничное условие п 88 я бралось ы|г=1). Вторая — «уголок» (см. рис. 7, а) с граничными условиями #|г=1 и сеткой 50X50: я,- = 0,02г; f// = 0,02/; /, / = 0, 1, ..., 50. Третья задача — «кольцо» (рис. 7, б) с граничными условиями ы|г=0, ы|г=1 и квадратной сеткой 88X88: *,• = *, 72
#/=/; *\/ = 0, 1, ..., 88 (радиусы окружностей равны /?i =2,5, R2 = = 88). Для всех трех задач решались пятиточечные разностные уравнения с начальным приближением u?j = O. Итерации продолжались, пока разность соседних приближений не становилась во всех узлах меньше 10~5. Расчеты проводились на БЭСМ-6 со значениями итерационных параметров, для всех методов близкими к оптимальным. Как видно из результатов, во всех случаях оотношения экспериментальной скорости сходимости итераций различных методов примерно соответствуют теоретическим оценкам. Исключение составляет попеременно-треугольный метод с минимальными невязками: число итераций в нем гораздо меньше, чем это следует из асимптотической оценки скорости сходимости. Для сравнения практической эффективности алгоритмов имеет значение количество арифметических действий Q для реализации одной итерации ичобъем необходимой памяти Р. Соответствующие данные мы приводим в табл. 4. Таблица 4 Метод Q Р ВР 12/m Im ПВР 15/m 2/4- 1т пгш 34/т 1т+ 21 ДПТ 25/т 21т ПТЧУ 33/m 21т птмн 38/т 3/т Количество арифметических операций, вообще говоря, можно примерно в полтора раза сократить, если учесть, что для регулярных узлов и равномерных сеток коэффициенты имеют простой вид. Наоборот, необходимость вычисления коэффициентов для нерегулярных узлов и выполнения логических действий в программах, рассчитанных на решение краевых задач со сложными границами, значительно увеличивает фактический объем операций. Более детальный анализ различных итерационных алгоритмов, включая теоретические оценки эффективности и обширные экспериментальные данные, можно найти в работах [18, 69, 166, 26]. g 1.6. Комбинированные методы решения разностных уравнений 1.6.1. Метод итераций по подобластям. Как видно из предыдущих пунктов, для прямоугольных областей разностные уравнения могут решаться почти оптимальным образом с помощью методов циклической редукции, быстрого преобразования Фурье или продольно-поперечных прогонок с последовательностью параметров: число арифметических действий пропорционально /г 21 ln/г |, т. е. в расчете на один узел слабо зависит от шага сетки. Существенно более трудоемкими являются задачи с границами сложной конфигурации, например, криволинейными и многосвязными. При 73
малых h прямые методы в этих случаях слишком громоздкие, а итерационные требуют проведения большого количества приближении. Отсюда, естественно, возникает идея разбить расчетную область на некоторые подобласти, чтобы одна или несколько из них были прямоугольные и включали основную часть узлов сетки. Тогда решение исходной задачи можно свести к последовательному решению вспомогательных задач в подобластях таким образом, чтобы итерационные приближения сходились в целом по области к искомому решению. При этом на границах вводимых подобластей для каждого приближения необходимо ставить некоторые специальные граничные условия. Предпосылками к эффективности такого подхода являются следующие факторы: а) скорость сходимости итераций по подобластям должна не зависеть при /г-^0 от шага сетки; б) вспомогательные задачи в прямоугольных подобластях решаются особенно экономично; в) непрямоугольные подобласти содержат относительно малое число узлов, и в них разностные уравнения могут быть решены быстро обычными итерационными методами, например, верхней релаксации. Существенным вопросом в данном случае является построение хорошо сходящихся итераций по подобластям. Один из давно известных способов — это альтернирующий метод Шварца. Для примера на рис. 8 он формулируется следующим образом. Расчетная область G представляется в виде Рис.8. объединения подобластей G = G(1)|JG(2), G(l)=GiUG3, G(2)=G2UG3, имеющих пересечение Gi= G(1)fl G(2). Сначала находится п\{х, у)— решение уравнения Пуассона в G(1) при произвольно взятом начальном граничном значении на S\ — той части границы G(1), которая принадлежит G(2). Затем решается задача в G(2), причем для ее решения и2{х,у) на S2 (определяемом аналогично Si) граничные значения берутся те, которые получались из предыдущей задачи (мг| s2= ^ij Si)- Далее процесс продолжается аналогично: вычисляются приближения мгл-1, u2k, ft = 2, 3, ..., из решения задач в G(l) и G(2), для которых граничные значения на Si, S2 используются взаимооб- раЗНО (ll2k-\\ Sl=«2fe-2| s* Ци\ S2==W2/?-l| S) ' Известно, что при некоторых предположениях (в частности, линии Si, S2 должны подходить к границе G с ненулевым углом) такой итерационный процесс сходится [61], и для некоторых частичного вида подобластей несложно дать оценки скорости сходимости итераций на основе принципа максимума. Рассмотрим поведение ошибок Z2k — u — U2k, Z2k-i = u — ti2k-\ для примера на рис. 8, предполагая, что го(х,у\=1, (x,j/)6 G(2). На первом этапе в G(1) имеем Zi(*,{/)<Zi(x,t/), где Z\(x,y) определяется 74
из задачи z,(jc,j/) = O, (*,*/)£ ГПГь (1.215) z,(*,{/)=lt (x,y)£ Su где Г, Tj и Г2 — соответственно границы областей G, G(1) и G(2). Несложно показать, что значения Z\(x,y) на S2 удовлетворяют неравенству z,(x,j/)<<7, = max{l/2, &/4 (*,{/) 6 S2. Аналогично для второго этапа в G(2) имеем z2(x,y) < г2{х,у), где z2(x,j/) определяется из задачи z2(x,{/) = 0, z2{x,y) = qi, Отсюда получаем соотношение a}, (x,j/)£Si. Таким образом, после первой итерации, а следовательно и после каждой последующей, ошибка уменьшается по крайней мере в q\q2 раз. Другой перспективный метод заключается в проведении итераций по подобластям без налегания [196, 174, 123, 168]. Формально его можно описать для примера на рис. 8 следующим образом (обозначим при этом G(1)=G!UG3, G(2)=G2). Пусть имеется какое-то приближение к искомому решению в G(2) и на границе стыка подобластей ) S,. Найдем тогда решение и^У+i задачи в G(1) при некоторых краевых условиях на Si, правая часть в которых зависит от и$ . Затем находим в G(2) следующее приближение м£$+1) при граничных условиях на Si, определяемых с учетом m$+u и далее процесс циклически повторяется: дп I s^~ (1.216) 5 = 0, 1,2,... Здесь v i Sr и у | 5[f означают предельные значения функций при стремлении к Si соответственно из G^l) и G(2). Каждое из приближений м^У+ь ^22^2 определяется как решение уравнения Пуассона в G(i), G^2) с исходными граничными условиями на границе G и (1.216) —на Si. Итерационный процесс может быть 75
модифицирован путем введения релаксационных параметров: при этом^в левых частях уравнений (1.216) надо заменить и£У+ь и$}+2 на ЗДУ+i, й^+2- Не останавливаясь на исследованиях такого вида алгоритмов, отметим главный результат последних работ: существуют такие значения а,, р,, со*, *=1,2, что итерационный процесс (1.216), (1.217) сходится к решению исходной задачи, т. е. u$+i^u(x,y) для (x,j/)6 G(1), u$+2-+u(x,y) для (*,{/)£ G(2) при ft-*- оо. Один из вариантов граничных условий (1.212) следующий: для G(1) на S\ ставится условие Дирихле, а для G(2) — условие Неймана, т. е. |3i =a2 = 0. В общем случае открытой остается проблема оптимизации значений ab Pi, a2, Рг, coi, 0)2 (они могут быть и переменными на разных итерациях). Рассмотренные альтернирующий метод Шварца и итерации по неналегающим подобластям естественно обобщаются на случай разбиения исходной области на несколько подобластей и на трехмерные задачи. Описание итераций по подобластям мы провели на дифференциальном уровне, но при решении разностных уравнений выражения (1.216), (1.217) заменяются, естественно, на соответствующие конечно-разностные аппроксимации. Этот подход, в сочетании с эффективными прямыми методами быстрого преобразования Фурье или циклической редукции при разбиении сложной области на простые подобласти, представляется одним из перспективных, так как можно ожидать, что скорость сходимости итераций по подобластям не зависит от шагов сетки. 1.6.2. Решение разностных уравнений на последовательности сеток. Одним из самых мощных способов повышения эффективности методов решения разностных уравнений является использование вспомогательных сеток. Идея в целом простая: если нам надо решить краевую задачу на сетке Qh, то можно сначала найти разностное решение на более редкой сетке QA|, затем проинтерпо- лировать его в узлы основной сетки Q/, и, приняв полученные значения за начальное приближение и$\ каким-либо итерационным алгоритмом найти искомое решение ин с заданной точностью. Ожидаемый выигрыш в объеме вычислений обязан тому, что, во- первых, сетка QA| имеет меньшее число узлов, чем Qh (следовательно, решение соответствующих разностных уравнений требует меньшего числа итераций и количества арифметических действий для расчета одного приближения) и, во-вторых, wA0) должно быть достаточно близко к искомому ин, т. е. «доитерирование» на сетке Q/z не потребует большого числа итераций. Для решения задачи на QA| можно, в свою очередь, использовать еще более редкую сетку Qh2 и т. д., см. [8, 12, 190]. Рассмотрим для простоты последовательность разностных аппроксимаций Пуассона (1.216) на квадратных сетках Qhk с шагами 76
hk = hk-i/2> ho = h, k= 1, 2, ..., г (на сетке Qhi шаги считаем величинами одного порядка с характерными размерами области). Если мы вычисляем разностное решение щ (на сетке Qh «в лоб» с помощью какого-либо итерационного метода, имеющего скорость сходимости R=C\h (здесь и ниже Ck — некоторые не зависящие от h постоянные, например, для оптимальной верхней релаксации Ci = 2), то асимптотически при h-^О потребуется объем вычислений Q = C2ft~3 |1п/г | (предполагается, что ошибка начального приближения есть 0(1), а итерации ведутся до получения решения исходной системы разностных уравнений с точностью е = С3/г2). Предположим теперь, что мы сначала решим разностную задачу на сетке Q\ (с погрешностью 8 = 4Сз^2), затем с помощью линейной интерполяции определим начальное приближение для сетки Qh (оно будет иметь погрешность \|) = 8i -\-C^h2 = Csh2, С5 = Сз + + С4 по отношению к пи, второй член обусловлен погрешностью интерполяции) и далее тем же итерационным методом доводим решение до точности е. В этом случае объем вычислений равен Q{ = C2(2h)-3 \\nh\ +C5h-2 + C2h-2\n {Съ/Сг): 1-й член соответствует итерационному решению на сетке Qhl, 2-й — интерполяции и 3-й — «доитерированию» на Q^. Как видно, при Л->-0 Qi/Q-*- -^Д- Если, в свою очередь, для вычисления решения uhx на сетке Qi использовать предварительно сетки Q^, Qhzn т. д., то для Л-►О несложно получить коэффициент сокращения объема вычислений Qr/Q-*- \\nh\~l (Qr — трудоемкость решения исходной задачи на г сетках). Такой асимптотический подход несложно обобщить на случай разностных аппроксимаций различного порядка точности, разных видов интерполяций и итерационных алгоритмов. Однако более сильные оценки дает спектральный анализ метода последовательности сеток, предложенного Р. П. Федоренко [190]. Он основан на следующих качественных рассуждениях. Классические итерационные методы, например чебышевского ускорения, быстро подавляют высокочастотные компоненты (т. е. соответствующие большим собственным числам матрицы системы уравнений) и сглаживают таким образом приближения, однако именно потом сходимость к искомому решению, особенно при малых /г, осуществляется крайне медленно. С другой стороны, как раз гладкую составляющую решения можно «схватить» достаточно хорошо из экономичного решения разностных уравнений на вспомогательной редкой сетке и последующей интерполяции. Один из конкретных вариантов такого подхода для решения уравнения &hUh = fh заключается в последовательном выполнении нескольких процедур: а) проводится итерационный процесс un = un-i + a(Ahunh-{-fh\ /i=l,2, ...,#,, (1.218) где а и N\ выбираются такими, чтобы высокочастотные компоненты разложения иЦх в ряд Фурье по собственным векторам матрицы 77
Л^ были достаточно малы, например, для задачи Дирихле в квадрате собственные числа Д^ равны p,g=l,2,...,N; полагая высокочастотными гармониками те, для которых р или q больше N/2, мы будем иметь для них коэффициент подавления ошибки qpq=l+aXDq при a = h2/5 меньше числа g ~ О А и за iVi = 13 итераций можно подавить эти компоненты более чем в 103 раз; б) вычисляется невязка полученного приближения H (1.219) и определяется вектор rAi, состоящий из компонент, равных значениям rh в совпадающих узлах сеток Qh и Qhl; в) на сетке Qhi решается уравнение А^а, = гЛ1; (1.220) г) с помощью оператора интерполяции Phuh с сетки Qhl на uh определяется вектор zh = Phuhzhi\ (1.221) если известны значения гц на квадратной сетке только для четных £,/, то простая интерполяция осуществляется по формулам {(2, + i,/ + Z;_i,/)/2, i нечетно, / четно, (2,,/+i + Zrf/_i)/2, -{ четН05 j нечетно, (1.222) (2/_if/ + 2,-t/ + i + 2(,/_i + 2,+ it/)/4, ^ j нечетны; д) проводится поправка приближения на сетке Qh'. u^ + i = uNl + Zh9 (1.223) Далее проводится Л^2 итераций по формуле (1.208) с использованием ulfi + l в качестве начального приближения (N2^M\)y вычисляется снова невязка fh — A^w^l+ +1 и, если она еще велика, весь цикл повторяется. Как правило, приближение uN{JrNiJr{ уже совпадает с необходимой точностью с искомым разностным решением щ. Решение системы уравнений (1.220) для поправки zhl может проводиться, в свою очередь, с использованием еще более редкой сетки йЙ2ит. д. Если при этом полученное решение на редкой сетке Qhk использовать для построения начального приближения для Q/jai, то можно показать (путем достаточно сложных выкладок, которые мы опускаем), что суммарный объем вычислений, необходимый для получения решения и^ равен О(/г~2), т. е. пропорционален числу узлов. Мы теперь рассмотрим модификацию алгоритма, основанную на использовании вложенных вспомогательных сеток и решении редуцированной системы разностных уравнений на основной сетке. 78
Пусть у — решение некоторой краевой задачи, описываемой операторным уравнением Ly = fy (1.224) в которое предполагаются включенными и граничные условия. Обозначим через fo (1.225) систему разностных уравнений, аппроксимирующих на сетке Qo с характерным шагом h0 исходную дифференциальную задачу (1.224). Здесь и0, f0 — векторы размерности, равной числу узлов сетки (мы будем говорить — векторы, определенные на Qo), aL0 — квадратная невырожденная матрица. Предполагаем, что при /io->-O погрешность аппроксимаций системы имеет вид г|)0 = fо - L0(y)0 = ftSDo(<p)o + So. (1.226) Здесь \ро, So, (г/)о, (ф)о — определенные на Qo векторы; ер — достаточно гладкая функция непрерывного аргумента; (ф)о означает вектор, компоненты которого равны значениям ср в узлах сетки Qo; Do — квадратная матрица с элементами, остающимися ограниченными при /го->-О. Предполагается, что- норма So достаточно мала, || So||o = o(fto), причем норма может использоваться разная, но такая, чтобы ее порядок по hQ был равен порядку компонент So (например, для двумерных задач можно взять || So ||o = [ujj(So, S0)]l/2). Кроме того, мы делаем естественное допущение об ограниченности нормы обратной матрицы, || L5"1 ||о = 0(1). Вектор ошибки разностного решения Zo = Uo — (у)о удовлетворяет уравнению LoZo = i|)o, а само разностное решение может быть представлено в виде (1.227) Do((p)o, LoWo — So. Пусть в расчетной области построена более редкая сетка Q», вложенная в Qo и подобная ей, т. е. отношение расстояний от какого-либо узла в Q\ до его соседей в Qi к соответствующим расстояниям до соседних узлов в Qo одинаково. Другими словами, на Qo, Q\ в совпадающих узлах для разностных аппроксимаций мы будем рассматривать сеточные шаблоны, образующие геометрически подобные фигуры. Рассмотрим алгоритм вычисления решения системы (1.225) с использованием решения разностных уравнений на сетке Qi L,a, = f,. ' (1.228) Пусть нам известен вектор ии для которого справедливо представление = Si. (1.229) 79
Здесь S\ — определенный на Qi вектор, для которого || S\ || = = o(hT). Предполагается также, что элементы диагональных матриц Di и Do, соответствующие совпадающим узлам сеток Q\ и Qo, равны между собой, т. е. значения L\V\ и Lovo для совпадающих узлов одинаковы. Множество точек сетки Qo можно представить как совокупность двух подмножеств: Q0 = Qi U Qo- Найдем сначала решение редуцированной системы на густой сетке, получаемой из (1.225) следующим образом. Решаем только уравнения, соответствующие узлам из Qo, причем в членах, соответствующих Qi, значения сеточной функции полагаются равными соответствующим компонентам и\у и эти члены переносятся в правую часть. Полученную систему можно представить в векторной форме (Louo)Qo = (/o)q8, (wo)o, = и i. (1.230) Ее решение, как нетрудно показать, можно представить в виде H ш (1.231) где v0 — достаточно гладкая функция. Рассмотрим теперь вектор невязки (ro)i = f\ — (LoWo)i, для которого справедливо представление Отсюда можно сделать естественное предположение, что имеет место равенство (ro)i = (г)! + о(А?) (1.232) с некоторой достаточно гладной функцией г (за исключением,, возможно, некоторого множества узлов, меньшего по порядку, чем Qi). Вектор 2О = ^о — по, очевидно, удовлетворяет системе Го, Q°o, Рассмотрим теперь вспомогательную задачу Lozo = го, (1.234) где компоненты вектора г0 совпадают с (ro)i в Qi, а в остальных узлах доопределены специальным гладким образом. Именно, обозначая через го& компоненту вектора, соответствующую &-му узлу из Qo, потребуем выполнения соотношения 2_\ ^ok == 80
где t означает, во сколько раз число узлов в Й0_больше чем в Qi. Добиться этого можно, например, определив г0 из уравнения ДдГо = 0 в Q§, где Ah — разностный оператор Лапласа, соответствующий однородному условию Неймана на границе расчетной области. Отсюда из выражений 2O=2zo, zo — 2 Zo, где = Го, a rо — вектор с единственной ненулевой k-й компонентой, равной Гол, получаем равенство zo=-j-zo + о(А8). (1.235) Из рассмотренного следует, что решение системы на редкой сетке = (ro)i удовлетворяет соотношениям гх = (го), + o(Ag) = /[Mi - м,] + о(/га). Отсюда, наконец, получаем, что для решения системы Lxux =fx +y(r0), (1.236) мы имеем (1.237) Наконец, решим еще раз редуцированную систему на Q§ с использованием уточненного разностного решения на Йь (L0Uo)\Qo = f°o, (ffo)|Ql = Mi. (1-238) С помощью анализа решения системы (1.238), аналогичного (1.231) — (1.234), несложно установить следующий результат. Теорема 1.12. Пусть ио, и\ — решения систем разностных уравнений (1.225), (1.228), аппроксимирующих соответственно на вложенных подобных сетках Qo, Qi дифференциальную задачу (1.224), и пусть для них справедливы разложения (1.227), (1.229). Тогда сеточная функция по, определяемая из уравнений (1.230), (1.236), (1.238), является приближенным решением задачи (1.224) на Qo, и для нее 'справедливо разложение по = (у)о + №о + Ш>о, ||©о||о = о(А8). (1.239) Следствие 1. Непосредственно из представлений (1.229), (1.237) с помощью выкладок, аналогичных (1.232) — (1.234), легко получить, что на сетке Qo можно построить уточненное разностное решение с погрешностью o(ho). Для этого достаточно после 6 В П Ильин 81
решения системы (1.235) взять на сетке Q\ линейную комбинацию (так называемая экстраполяция Ричардсона [80]): ui = [(ao)i—Y"i]/(1—Y). y = (hi/ho)a, , (1.240) а затем на Й§ решить вместо (1.238) аналогичную редуцированную систему, которую можно записать в виде =й>. (1.241) В итоге мы будем иметь й (1-242) (последний несущественный член добавляется за счет дополнительной погрешности, вносимой при решении (1.241)). Отметим, что при естественных разностных аппроксимациях матрица L°o систем (1.230), (1.238), (1.241) имеет конечное число обусловленности, т. е. || L°o || || (Lo)"1 II =0(1). Это означает на практике, что при решении таких систем с любой конечной точностью е каким-либо итерационным методом, например Зейделя, количество итераций не зависит от шага сетки, тем более, что с помощью линейной интерполяции по известным значениям на редкой сетке ошибку начального приближения легко сделать равной по порядку O(hг). Дополнительную погрешность, обусловленную «недоитерированием», при анализе (1.232) — (1.234) можно включить в фЬ2) без нарушения, за счет выбора е, порядка величины Wo. Рассмотрим теперь вопрос о решении разностные уравнений на последовательности вложенных подобных сеток Qo, Й1,..., Й*>. Как мы видели, решение системы на йо сводится к двукратному решению систем на Й1. В свою очередь, это можно сделать с помощью решения систем на Й2 и т. д. В итоге потребуется решать 2k систем на Й^ и на каждой /-й сетке {1 = 0, 1, ..., k) решать 2i + 1 раз редуцированные системы. Пусть Q/, Pi означают количество арифметических операций, необходимых для решения соответственно полной и редуцированной систем на сетке й,. Тогда, очевидно, имеем Если последовательность сеток выбрана так, что каждая сетка й/ строится с помощью деления отрезков между соседними узлами Й£_1 на целое число частей (3 = 2, 3, ..., то величина Qo, как легко проверить, будет пропорциональна числу узлов Л/о, если количество узлов последней сетки конечно. Пусть, например, для двумерной задачи (3 = 2 и Po = RNo. Тогда, очевидно, будем иметь Р2 Заметим, что для трехмерных задач и больших значениях (3 от- 82
носительный выигрыш в числе операций возрастет, так как в этом случае будет Pi = fi-3iRN0. Во избежание возможного накопления высокочастотных компонентов погрешностей при использовании нескольких сеток можно, аналогично [190], на каждой из них уточнять решение путем проведения нескольких итераций по методу Ричардсона с использованием т « || Lt \\ ~] и сг?= Si из решения (1.238). Повышение точности решения по формулам (1.240), (1.241) нужно проводить только на Qo. Отметим в заключение, что метод последовательности сеток можно эффективно применять и при проведении итераций по подобластям. Большое достоинство алгоритма в том, что помимо ускорения итерационного процесса, применение комбинаций разностных решений на разных сетках позволяет повышать порядок точности результата [80,122]. § 1.7. Некоторые вопросы расчета характеристик электростатических полей Численное решение краевых задач для уравнений Лапласа или Пуассона для многих электрофизических приложений имеет самостоятельное практическое значение. Одним из таких актуальных примеров является расчет электростатических полей высоковольтных конструкций. Особенностью таких задач является сложная геометрия расчетных областей, наличие разномасштабных элементов и сред с сильно различающимися диэлектрическими свойствами. Конечной целью являются не сами значения потенциалов в узлах сетки, а картина эквипотенциальных линий, эпюры тангенциальных составляющих напряженности поля на поверхностях изоляторов, линии индукции поля, максимальные напряженности в критических подобластях и т. д. В силу требований к точности зачастую расчеты проводятся со значительными затратами ресурсов ЭВМ как по объему вычислений, так и по оперативной памяти. Особенно это относится к задачам, когда не просто требуется определить характеристики заданной конструкции, а найти ее геометрические или потенциальные параметры, обеспечивающие необходимые технологические характеристики. В простейшем случае эта проблема сводится к многовариантным расчетам, а в целом — к оптимизации решений краевых задач по заданным функциям цели и ограничениям на варьируемые параметры или функционалы от решения. Типичным примером для изоляционных конструкций является задача снижения их габаритов и материалоемкости при условии гарантированной электрической прочности. В"таких условиях «инженерные» расчеты требуют определенного искусства, опыта и грамотного использования алгоритмов. 6* 83
Основными требованиями к методам можно считать обеспечение заданной точности, экономичности и надежности. Теоретические оценки погрешности и объема вычислений носят в основном асимптотический характер, и расчеты практических конструкций должны сопровождаться методическими экспериментами или использовать результаты решения аналогичных задач. В простейшем случае на их основе требуется выбрать (если не оптимально, то по крайней мере разумно) разностную сетку, способ аппроксимации и алгоритмы решения систем уравнений. Задача такого анализа — оценить примерно число узлов и их расположение для обеспечения требуемой точности, прикинуть трудоемкость решения задачи и спланировать проведение численных экспериментов. Зачастую также возникают нестандартные математические постановки, в которых решение краевой задачи является только одним из этапов в достижении конечной цели. В данном параграфе мы рассмотрим некоторые из перечисленных вопросов, сопровождая их иллюстрациями расчетов, выполненных по изложенным выше алгоритмам, реализованным в пакете программ Эра, описанном в гл. 7 и в КСИ-БЭСМ [10]. 1.7.1. Решение методически* задач. А. Задача Дирихле в кубе. Рассматривается уравнение Пуассона ^+ 4^= ду2 0 < <1 -243) где [ = 0 или f= —3n2s\nnx sinny sirmz, с гранитными условиями, обеспечивающими точное решение в виде (1.244) (здесь р = 0 при f = 0, иначе p = sinjiz). Численное решение строилось по семиточечным разностным уравнениям на кубической сетке с шагом /г = 1 /20 и погрешностью итерационного процесса е = 2~13. В табл. 5 приведены аналитическое решение фа и относительная погрешность б. Таблица 5 X 0,05 0,1 0,1 0,85 Y 0,05 0,55 0,1 0,95 z 0,05 0,05 0,05 0,95 f = о Фа 0,0001290 0,0002547 0,0005031 0,05683 б% 1,01 1,06 1,09 0,14 Фа 0,003958 0,007817 0,01544 0,06794 6% 0,22 0,23 0,23 0,14 Расчеты проводились с помощью попеременно-треугольного метода. При значениях итерационного параметра 2 ^ т ^ 5 решение требует около 400 итераций. Б. Задача Дирихле в квадрате. Решалась аналогичная двумерная задача для уравнения Лапласа в еди- 84
ничном квадрате со значениями ф на границе, соответствующими решению (T)(xytj) = s\njix—^- (1.245) TV ^' slm v ; на квадратных сетках с числом узлов 20 X 20 и 40 X 40. При этом использовалась пятиточечная аппроксимация второго порядка и, кроме того, неоднородная разностная схема с погрешностью решения О(/г4): пятиточечные уравнения в околограничных узлах и девятиточечные типа «ящик» — в регулярных. Итерационное решение проводилось в обоих случаях с помощью попеременно- треугольного метода с параметром т— 10 и погрешностью г = 2~22. В табл. 6 даются значения количества итераций п и максимальной относительной погрешности численного решения б. Результаты свидетельствуют о значительном превосходстве схемы повышенного порядка аппроксимации как по точности получаемого результата, так и по числу итераций. Сетка Схема п 6% O(h2) 82 0,44 20x20 О (h4) 4 70 0,02 O(h2) 252 0,11 Таблица 6 40X40 О (h4) 211 0,0009 В. Задача Дирихле в кольце. Рассматривается решение уравнения Лапласа в кольце, см. рис 7, б, с радиусами окружностей /?i = 2,5; /?2 — 88. Использовались пятиточечные уравнения на квадратной сетке 88X88, см. п. 1.5.3. В табл. 7 иллюстрируются значения ошибки численных результатов фч; аналитическое решение имеет вид "Я? (1.246) )=\х\4г-/ \П Решение этой задачи проводилось также для полукольца х ^ 44 с граничным условием Зф/дп = 0 при х —44. Когда это Таблица 7 г Фа Фч 3 0,06357 0,06366 0,15 4 0,16388 10,16329 0,36 5 0,2417 0,2411 0,25 10 0,4834 0,4831 0,06 15 0,6248 0,6245 0,05 20 0,7251 0,7249 0,03 условие аппроксимировалось с помощью центральной разности соотношением cp(ft,j/) —ф( — Л,у) = 0 '(разностная сетка использова- 85
26 лась та же, что и для кольца), полученное численное решение практически совпадало с предыдущим. А при использовании односторонней разности, аппроксимирующей условие Неймана с погрешностью O(h), ошибка численных расчетов на той же сетке достигала 8,8%. Г. Расчет ячейки плоского триода. Геометрия области и граничные условия даны на рис. 9. Эту задачу следует считать «трудной» для разностных методов, во-первых, _из-за наличия разномасштабных деталей и, во-вторых, ввиду большой относительной длины участка границы с условием Неймана. Численное решение этой задачи на квадратной сетке с числом узлов 54 X 192 и аппроксимацией условия Неймана центральными разностями дает максимальное расхождение с аналитическим решением в 1,9%. Применение более редких сеток значительно повышает погрешность расчетов (подробнее см. [70]). 1.7.2. Примеры расчета характеристик высоковольтных конструкций. При проектировании новых высоковольтных систем основной целью является нахождение геометрии поверхностей и состава изоляционных материалов, обеспечивающих наименьшие габариты и вес конструкций (с этим, как правило, связана их стоимость) и необходимую электрическую прочность. Последнее представляет собой сложную проблему, в которой необходимо учитывать качественный состав материалов, чистоту поверхностей и многое другое. Однако в первую очередь здесь требуется знать картину электростатического поля. Напряженность электрического поля может быть найдена путем численной обработки разностных решений краевых задач в узлах сетки. Важной характеристикой является максимальное значение модуля напряженности поля \Е\ в расчетной области. Поскольку ' ~ ' "" 1/2 Рис. 9. вопрос сводится к вычислению производных потенциала по его значениям в узлах. В § 5.2 подробно рассмотрены формулы численного дифференцирования с помощью конечных разностей и сплайновых аппроксимаций, вполне обеспечивающих необходимую на практике точность. 86
Как правило, в расчетах изоляторов требуется знать распределение тангенциальной составляющей напряженности Ех на поверхности диэлектрика. В двумерном случае она легко вычисляется с помощью разности первого порядка: если Р, Q — две точки поверхности с достаточно малым расстоянием lPQ между ними, то |£т|« \up — uQ\/lpQ. Для этого требуется предварительно найти значения потенциала на внутренних границах типа Г4 в точках, не являющихся, как правило, узлами сетки. Целесообразнее всего в этом случае использовать те же интерполяционные соотношения, которые использовались в § 1.2 для аппроксимации условий сопряжения на внутренней границе. Например, в точке 3' на рис. 6 потенциал может быть выражен через узловые значения и\у и2, из, и4 по формуле, легко выводимой из (1.38), (1.40): Зачастую необходимо знать нормальные производные потенциала на граничных поверхностях (как правило, металлических, с заданным потенциалом). Их вычисление наиболее сложно на криволинейных границах. Проще всего в этом случае использовать разность первого порядка. Если Р — точка на границе, a Q — точка внутри области на расстоянии d от Р вдоль нормали Пр, то приближенно имеем да/ дп(Р) « (иQ— иp)ld. Потенциал uQ может быть вычислен с помощью интерполяции по значениям в соседних узлах сетки. Если уравнение граничной поверхности имеет вид ф(х,у) = 0, то координаты точки Q могут быть вычислены по формулам (5.87) из § 5.4. При необходимости повышения точности можно найти значения потенциала в двух внутренних точках нормали и аппроксимировать нормальную производную разностью второго порядка, аналогичным (1.32). Для наглядного представления картины поля обычно средствами машинной графики рисуют эквипотенциальные линии в расчетной области. Здесь требуется вычисление координат эквипо- тенциалей, что может быть легко сделано с помощью обратной линейной интерполяции. Если V—значение потенциала данной изолинии, a tip, uQ—потенциалы в двух соседних узлах сетки с радиус-векторами zPf rQ, причем аР< V<Mq, to радиус-вектор г у точки эквипотенциали определяется формулой rv=rp+{rQ— rP)(V— uP)/(uQ— иР). Другой удобный способ описания поля заключается в следующем: рисуют силовые линии, в каждой точке которых касательная совпадает с вектором напряженности. Уравнение такой ли- 87
нии для двумерного случая можно записать в параметрическом виде x = x{t), y = y{t). Задав какие-либо начальные данные x\t==o = xo, y\t = o = yo, координаты силовой линии легко вычислить с помощью численного интегрирования обыкновенных уравнений dx/dt = ду/dt = du/ду. Последняя задача может решаться каким-либо из простейших алгоритмов, например, методом Эйлера: п, Уп). В качестве примера практической задачи мы приводим результаты.проведенных В. Н. Гатрич и В. М. Свешниковым расчетов опорной изолирующей конструкции высоковольтной подстанции. На рис. 10 изображены геометрия данной осесиммет- ричной системы, эквипотенциальные и силовые линии. Густой штриховкой отмечены поверхности с заданными потенциалами, а редкой — изолирующий материал со значением диэлектрической постоянной 8=10 (остальная часть области — воздух с 8=1). Высота самой конструкции около 16 м, а диаметры экранов, сечения которых представляются заштрихованными кружочками, около 10 см. Для замыкания краевой задачи потенциал полагался равным нулю на поверхности цилиндра с радиусом около 16 м и высотой около 32 м. Расчеты такой конструкции требуют использования сильно неравномерной сетки с измельчением шагов около малых деталей. Для обеспечения практически приемлемой точности численное решение проводилось на сетке с числом узлов около 10 000. Для ускорения вычислений использовались три вспомогательные вло- Рис. 10.
женные сетки, каждая из которых получалась из предыдущей, более густой сетки увеличением вдвое размеров шагов. Однако и при этом расчет одного варианта требует около часа времени на БЭСМ-6 (на каждой из сеток решение разностных уравнений проводилось с помощью блочного метода оптимальной последовательной верхней релаксации и точностью итераций около 10~5, см. подробнее [39]). 1.7.3. Численное решение задачи Робена. Особый вид краевых задач составляют так называемые задачи Робена, которые характеризуются наличием в расчетной области изолированных металлических тел, на которых заданы заряды, но потенциалы неизвестны. В таком случае, помимо уравнений (1.1) — (1.3), постановка включает условия (мы считаем, что f(*,j/,z) = O, а количество граничных участков типа 1\, Г2, Г3, Г4 и вид условий на них не имеет значения): \^ , (1.247) где Si — поверхность тела с неизвестным зарядом q-, и постоянным, но неизвестным, потенциалом V,. Поскольку рассматриваемая задача линейная, в силу принципа суперпозиции решение задачи (1.1) — (1.3), (1.247) можно представить в виде (1.248) где фо — решение уравнения (1.1) с заданными граничными условиями (1.2), (1.3), принимающее нулевые значения на всех S,-; каждое ф,, е=1,..., N,— тоже решение (1.1), но удовлетворяющее условиям (1.2), (1.3) с gl = g2 = g3 = 0) и равное единице на Si и нулю — на всех остальных St-,, U Ф1. Обозначая dik= \ -—-,мы из (1.247) получаем систему N линейных ал- гебраических уравнении относительно неизвестных потенциалов Vi,V2,...,VN: a,\V\ + al2V2 +....+ alNVN= q, — a,0, i = 1, 2,..., N. Решив эту систему, мы по формуле (1.248) получаем искомое решение задачи Робена. Как видно, вычисление всех a,k требует решения (N-\-l)~u краевой задачи и расчет нормальных производных от потенциала на всех поверхностях S,. В качестве примера решения практической задачи Робена мы рассмотрим расчет изоляционной подвески высоковольтной линии передачи электроэнергии. Упрощенная осесимметричная модель конструкции (в действительности она трехмерная) приведена на рис. Па, а ее узел в окрестности потенциала провода АВ более подробно изображен на рис. 116. Подвеска представляет собой двухслойный изолятор с электрическими постоянными 8i = 5,5, 82 — 3 и радиусами г\ = 11, г2 = = 23 и металлическими участками АВ (значение потенциала 89,
равно w=l), EF (u = 0) и CD. На последнем из них потенциал неизвестен, дано только, что он не заряжен (q = 0). Радиусы проводов, несущих разные фазы тока и изображенных на рис. 11а точками, равны 10 (все размеры даны в сантиметрах). Краевая задача замыкается граничным условием и = 0 на поверхностях z=0, z = 4000 и г = 2800. Расчеты проводились на сетке с общим числом около 6700 узлов (естественно, сильно сгущенной около мелких 3/50 -3/00 1000 2000 Рис. Па. Рис. 116. деталей) и с использованием четырех вспомогательных, последовательно разрежающихся сеток. На рис. 11а, 116 приведены эквипотенциальные линии и распределение модуля напряженности поля | £ | на критическом участке подвески с координатой г= Ю. Значение наведенного потенциала на металлическом участке CD оказалось равным и = 0,115. 1.7.4. Задачи оптимизации электростатических полей. Проектирование нового устройства по существу всегда представляет собой задачу оптимизации. Разработчик имеет целью обеспечить какие- то электрофизические качества, варьируя геометрические, потенциальные или физические параметры объекта при технологических, эксплуатационных, финансовых <и других условиях. Эту проблему можно математически описать как минимизацию некото- 90
рого функционала при линейных или нелинейных ограничениях. Предполагается, что начальные значения всех параметров задаются. Пример задачи оптимизации высоковольтной конструкции: рассчитать изоляционную систему заданного типа и отыскать такие конфигурации диэлектриков и электродов, при которых максимальная напряженность в области или тангенциальная составляющая напряженности на поверхности изолятора не превосходили бы заданных критических значений. Формальнотакая задача может быть описана следующим образом: найти p\,...,pN такие, что ...,рД (1.249) при линейных ограничениях на варьируемые параметры а^Ар^Ь (1.250) или на некоторые функционалы от решения ЛЛ<ФЛ(р)<ЯЛ, Л=1,...,М. (1.251) Здесь a = {ai], b = {bj\, /=Л,..., L, — заданные векторы некоторой размерности L, р = {ри ..., pN\—вектор параметров, А— в общем случае прямоугольная матрица с числом строк и столбцов соответственно N и L, Ak и Bk — заданные числа (таким образом, задано L линейных и М нелинейных ограничений). В качестве параметров pL могут быть значения потенциалов на электродах или количественные характеристики геометрических вариаций отдельных деталей (сдвиг, поворот, изменение масштаба и т. д.). Для решения задачи (1.249) — (1.251) существует большое количество алгоритмов (и обширная литература; см., например, [191]). Один из эффективных методов — метод модифицированных функций Лагранжа, в котором задача разбивается на этапы, каждый из которых является задачей безусловной оптимизации, и реализуется по методу сопряженных градиентов. Особенностью рассматриваемой проблемы является тот факт, что расчет каждого очередного значения функционала при текущих значениях параметров является достаточно трудоемкой операцией, поскольку требует решения краевой задачи u = u(p\....ypN), а сам функционал зависит последовательно от и: Ф(рь ..., pN) = = F[u(p\,..., pN)]. Экономичные алгоритмы, требующие относительно малого числа шагов оптимизации, используют в каждой очередной точке значения производных функционала по параметрам. Для их приближенного вычисления можно использовать аппроксимацию конечными разностями 91 ^ ; PN)— Ф(РЬ ..., Pi— ДР/, .-, PN)
В целях сокращения числа вычисления функционалов можно использовать следующий подход [137]. В предположении малости возмущения параметров мы полагаем р р рд,) « F[u(pU ..., р„ ..., pN) + /ip;U;(pu ..., р/, ..., р Д (1.252) где м,- есть функция влияния 1-го параметра, которая представляет собой враждой точке разностной области производную от потенциала по pi. Эту величину можно также определять с помощью аппроксимации конечной разностью, но зачастую ее можно вычислить, решая вспомогательную краевую задачу. Так, если р, есть значение потенциала на некотором электроде Г,, то ut есть решение краевой задачи с единичным значением потенциала на Г, и однородными условиями на остальной части границы. Пусть теперь р, — параметр геометрической вариации электрода Г, такой, что каждой точке Q невозмущенной поверхности с радиус-вектором r(Q) соответствует взаимно однозначно точка Q' возмущенной поверхности Г, с радиус-вектором r'{Q')\ где n(Q) — нормаль к Г, в точке Q, a a(Q) — скалярная функция координат, зависящая параметрически от р,-. В этом функция влияния геометрической вариации определяется как решение уравнения Лапласа с условием u,(Q) = - a(Q)du(Q)/dnJ Q £ Г,„ (1.253) (u(Q) — решение невозмущенной задачи) и однородными краевыми условиями на остальных участках границы. Для определения всех функций влияния требуется решить N вспомогательных краевых задач с разными граничными условиями, но с одинаковой геометрией. Последний фактор позволяет существенно сэкономить суммарный объем вычислений. Необходимо отметить, что проводя минимизацию функционала по некоторому направлению (в пространстве параметров), выбранном с помощью функций и,, нельзя задавать слишком большие приращения геометрическим параметрам, поскольку крае-вые задачи с условиями (1.253) получены в предположении малости возмущений. Вследствие этого после некоторого числа шагов оптимизационного процесса требуется пересчитывать геометрические вариационные функции.
Глава 2 РЕШЕНИЕ ЗАДАЧ МАГНИТОСТАТИКИ МЕТОДАМИ КОНЕЧНЫХ ЭЛЕМЕНТОВ В настоящей главе рассматриваются основные принципы методов конечных элементов и особенности их реализации при расчетах двумерных магнитостатических полей. Задачи магнитостатики включают большое разнообразие физических и математических постановок (см. [178, 56, 181] ). Мы ограничиваемся достаточно узким типом задач, без учета явлений анизотропии, гистерезиса и без анализа поведения решений в окрестности угловых и других особых точек. Однако и рассматриваемая постановка позволяет рассчитывать с достаточной точностью поля для широкого класса устройств. Теория методов конечных элементов для решения эллиптических уравнений за последние годы нашла исчерпывающее изложение в монографиях Г. Стрэнга и Дж. Фикса [179], Ж. Обэна [146], Л. А. Оганесяна и Л. А. Руховца [149], Г. И. Марчука [120] и других авторов. Мы остановимся только на рассмотрении аппроксимаций с помощью наиболее простых и распространенных базисных финитных функций и на формулировках минимального количества теорем, необходимых для понимания источников погрешностей и их оценок. Эффективность реализации методов конечных элементов при расчете магнитостатических полей в ферромагнетиках существенно зависит от скорости сходимости итераций для нелинейных алгебраических уравнений, возникающих в результате дискретизации исходных задач. По алгоритмам решения нелинейных уравнений имеется достаточно исследований как общего характера (достаточно полно представленных в [151] ), так и применительно к магнитостатическим задачам [198, 41, 105]. В § 2.3 дается описание наиболее употребляемых итерационных процессов, хорошо апробированных на практике. Надо сказать, что решение задач с сильным насыщением остается достаточно трудоемкой операцией, и по оптимизаций нелинейных итераций можно ожидать дальнейших разработок. По расчетам магнитостатических полей на ЭВМ имеется уже большая практика; см., например, работы [138,-59, 173, 144], а также труды специально посвященной этим вопросам международной конференции COMPUMAG [99, 100]. С практической точки зрения особое значение имеет уровень автоматизации методов конечных элементов (построение сетки, формирование и решение системы уравнений и т. д.) в пакетах прикладных программ. На этих вопросах мы остановимся в последней главе. 93
§ 2.1. Математические постановки задач магнитостатики Рассматриваемые в данной главе задачи описываются системой уравнений Максвелла, которые для стационарного случая сводятся к виду rot// = ±L/\ (2.1) 0, (2.2) где В, Н, / — векторы магнитной индукции, напряженности магнитного поля и объемной плотности тока. Между векторами В и Н имеется также функциональная зависимость, характеризующая материальные свойства среды и определяемая, как правило, из обработки экспериментальных данных. В приближении, когда можно пренебречь гистерезисом и анизотропией, эта связь имеет вид (2.3) где |io — магнитная проницаемость вакуума, a \i = \x(x,y, z, \В\2) — относительная магнитная проницаемость. На бесконечном расстоянии от источников тока магнитное поле должно обращаться в нуль. В практических задачах типичным является наличие трех типов сред: воздух (pi=l, / = 0), проводник из немагнитного материала с током (^=1, j¥=0) и ферромагнитный материал без тока (^#=1, / = 0). На поверхностях раздела различных сред ставятся условия непрерывности нормальной составляющей вектора магнитной индукции и касательной составляющей напряженности: п(В+ - В-) = 0, [п X Щ+=[п X #]_ =4я/„/с, (2.4) где п—нормаль к поверхности, знаки « + » и « —» относятся к ее различным сторонам, a jn — поверхностная плотность тока. В силу (2.2) можно ввести в рассмотрение векторный потенциал А: B = votA, (2.5) после чего уравнения сводятся к виду rot v rot Л = ^L/\ (2.6) где v=(jjioM')""1 называется магнитным сопротивлением. Для двумерных плоских задач, когда решение не зависит от координаты z, а плотность тока и векторный потенциал имеют только по одной ненулевой компоненте /г = /\ А2 = А, в декартовых координатах уравнение (2.6) имеет вид = *!Lj, (2.7) с h K } ^Л дх) ^ ду\ ду причем Вх = дА/дх, Ву = дА/ду. •. 94
Другой важный практический класс задач — осесимметричные поля, когда уравнение описывает связь между азимутальными компонентами Ад=А, jQ=j (при этом Л г = Л г = /г = /г = 0, Bz = ЗА/ дг + А/ г, Вг = В двумерных задачах (2.7), (2.8) соответственно на плоскостях или на оси симметрии полагается А = 0. Наиболее простым приближением является |ы=оо для ферромагнитной среды. В этом случае задача решается только для немагнитных сред, а на границах с ферромагнетиками ставится условие Неймана. Следующее приближение заключается в том, что для каждой ферромагнитной среды полагается [х = const. Тогда задача остается линейной, и на границах раздела сред ставятся условия сопряжения (2.4), выраженные через А: Л| + =Л|_, [nX(v rot A)]\ + =[nX(v rot Л)]|_. (2.9) В общем случае задача является сугубо нелинейной. Типичная ситуация связана с определением \х из так называемых £-#-харак- теристик, типичный вид которых представлен на рис. 12,a, a О 100 а) Ю00Н(О/м2) О Рис. 12. б) И соответствующий вид функции \х(В) — на рис. 12,6. Иногда для описания этих зависимостей применяются различные функциональные аппроксимации, например, вида где а, |3, е, с — параметры, подбираемые из условия' наименьшего отклонения от экспериментальных кривых. Двумерные магнитостатические задачи удобно также описывать в терминах магнитного потока, который для произвольной поверхности S определяется формулой (2.11) 95 = \в cos (B,n)dS.
Если в плоскопараллельном поле имеется плоскость симметрии (пусть это будет x = Ot), то, полагая Л|^=о = О, мы будем иметь , У) = \ Bydx' = А{х, у), о т. е. г|э(л:, у) удовлетворяет уравнению (2.7). Для осесимметричных задач, в силу условия А |Г=о = О, можно г положить \p(r,z) = 2л [Bz(r', z)r'drf = rA(r, г), причем функция о магнитного потока будет удовлетворять уравнению Дифференциальным уравнениям (2.1), (2.2) соответствуют интегральные законы сохранения ^-I, (2.13) \ BndS = 0. (2.14) S Здесь L — некоторый замкнутый контур, а /= ( jndS~полный S(L) ток, пронизывающий этот контур; в (2.14) через S обозначается какая-либо замкнутая поверхность. Мы не будем останавливаться на интегральных постановках задач магнитостатики. Сами же уравнения (2.13), (2.14) могут служить хорошим средством контроля численных результатов. Настоящая глава содержит описание основных алгоритмических аспектов методов конечных элементов на примере двумерных уравнений (2.7), (2.8). С одной стороны, эти постановки сами по себе достаточно актуальны с практической точки зрения, а с другой — изложение методов решения данных задач позволяет, на наш взгляд, понять технику реализации конечных элементов для других дифференциальных уравнений, в том числе и трехмерных. Задачи магнитостатики можно формально решать и с помощью разностных методов, рассмотренных в предыдущей главе. Однако характерные в данном случае особенности краевых задач — наличие разномасштабных деталей, подобластей с сильно различающимися свойствами и разветвленных граничных поверхностей — требуют подстройки сетки к особенностям геометрии области и тщательных аппроксимаций в окрестности границы. В принципе можно для этого строить специальные разностные уравнения повышенной точности, но сложность их построения и решения неизмеримо возрастет по сравнению с регулярными прямоуголь- 96
ными сетками, когда простота алгоритмов является огромным преимуществом. Техника же конечных элементов, несмотря на ее некоторую трудоемкость, обладает универсальностью, единообразием и хорошими аппроксимационными качествами именно для самых разных и сложных задач. § 2.2. Аппроксимация решений в методах конечных элементов 2.2.1. Коротко о теоретических основах метода. Методы конечных элементов основаны на аппроксимации вариационных постановок задач математической физики. Вариационный принцип заключается в том, что решение -г- функция независимых координат — ищется из условия минимума некоторого функционала, представляемого в виде интеграла. Между вариационными формулировками и дифференциальными уравнениями существует тесная связь. Например, если и(х9 у) е С2 (G) — функция, непрерывная вместе со своими вторыми производными в ограниченной области (ху у) е G и принимающая на границе Г области G нулевые значения, то необходимым условием минимальности интеграла 1(и) = \ F(x, у, и, иХу uy)dx dy (2.15) является то, что функция и (х, у) удовлетворяет уравнению Эйлера- Лагранжа -kF"+-kF"-F'=°- <2Л6> Если же функция и (ху у) на Г не задается, то необходимое условие минимальности I (и)у помимо (2.16), включает уравнение граничных условий jLC0S {п,х) + IL Sin(/i,x) = 0, (2.17) где п — нормаль к Г. Для уравнений (2.7), (2.8) эквивалентная вариационная постановка сводится к минимизации функционала = \ [ Т \ v ®d£-M] xadxdy. (2.18) G О Здесь единицы измерения полагаются для простоты такими, что коэффициент \п/с равен единице. Кроме того, мы формально объединяем случай декартовых и цилиндрических координат, полагая соответственно а равной нулю или единице ( \В\2 = ( —— + в п Ильин 97
Если магнитное сопротивление v не зависит от индукции, то интеграл (2.18) упрощается. Для типичного случая кусочно- постоянных коэффициентов (v(jc, у) = v,-: для (х, у) £ Giy G;— некоторая подобласть G = £/G,-, / = 1,2, ..., К) он сводится к виду Для краевых задач со смешанными неоднородными граничными условиями » = &(*> У\ (х,у)*=Ги ^ (2.20) 5I//3/1 + ф, у)и = 6(х, у\ (х, у)*=Г2, Г,UГ2 (2.21) вариационная постановка несколько меняется. Во-первых, сам минимизируемый функционал содержит дополнительный член с интегралом по граничной поверхности Гг с условием Ньютона (2.21): Щ = $[\§-J v(E)d£ - jA]x«dxdy + J(|-«2 - *a)rfS. (2.22). GO F2 Во-вторых, минимум 1(и) ищется среди функций, принимающих значения g(x,y) на Гь Решение вариационной задачи мы будем искать в пространстве Н функций, равных нулю на Fi и имеющих ограниченную норму Я (£ ) Ш> (2-23)- При этом для простоты анализа ограничиваемся однородной краевой задачей с# = а=6 = 0в (2.20), (2.21). Относительно функции v(£) мы предполагаем, что она имеет непрерывные первые производные и удовлетворяет при 0 <£ < оо условиям 0 < v, < v(6) < v2 < оо, v'(£) > 0, . (2.24) которые выполняются, в частности, если в (2.10) а > 0, р > 0, с > е > 0. Справедлив следующий важный результат. Теорема 2.1. Существует единственная функция и ^ Н такая, что I(u) < I(v) для любых v e Я, (2.25) функционал 1(и) определяется соотношениями (2.18), (2.22). Доказательство вытекает из того, что при сделанных предположениях функционал непрерывен в Н, строго выпуклый (т. е. I(u) + I(v) ^2I(u + v)/2)) и /(»)->■ оо при Mir* оо. 98
Решение задачи (2.25) является также решением уравнения Lu + } = О, г . д ( ди , и \ - д ди /о г>£\ LU = —— v(— h»~ +i-V—. - (2.26) д* \ дх ' х / ду ду Методы конечных элементов основаны на построении аппроксимаций решения и е Я вариационной задачи в конечномерных подпространствах S*, содержащихся в Я. Такие подпространства строятся с помощью деления области на конечные элементы: треугольники, четырехугольники и т. д. Наиболее распространенным является процесс триангуляции (особенно для полигональных областей), т. е. разбиения области на треугольники. С конечными элементами связывается совокупность узлов: в простейшем случае это вершины; иногда используются середины сторон, центры тяжестей элементов и т. д. На множестве конечных элементов строятся пространства кусочно-полиномиальных функций таких, что локально они имеют однотипный вид. Это" могут быть функции линейные, квадратичные или кубические по каждой переменной в пределах одного элемента. Их коэффициенты выражаются через значения самих функций и/или их производных в узлах. Каждая функция из выбранного пространства может быть представлена линейной комбинацией линейно независимых функций, составляющих базис пространства. И что имеет принципиальное значение — эти функции являются финитными, т. е. отличными от нуля только в окрестности, ограниченной несколькими соседними элементами. Простейшие и наиболее распространенные базисные функции — линейные на каждом треугольном элементе, принимающие значение 1 в одной из вершин и 0 — в остальных. В общем случае базисные функции строятся по их заданным значениям в узлах (вершинах элементов и других вспомогательных точках), а иногда также по значениям производных или по дополнительно налагаемым условиям. Количество величин (значения функций или их различных производных), используемых в одном узле для построения базисной функции, будем называть его кратностью. Примеры построения базисных функций и их свойства мы рассмотрим в следующем пункте. Через А будем обозначать характерный шаг конечномерной дискретизации Gh области G. В теоретическом анализе всегда рассматривается последовательность дискретизаций соответствующих пространств базисных функций и аппроксимаций исходной задачи. Все дискретизации предполагаются регулярными в том смысле, что при А-► О размеры конечных элементов являются величинами одного порядка, а углы между их сторонами — не меньше некоторой постоянной 0*> Со, к = 1,2,..., (2.27) Cxh < А/< С2А, / = 1,2,... Здесь и далее через С/ мы обозначаем не зависящие от А константы. 7* 99
Любая функция Vh из пространства Sh, соответствующего дискретизации (сеточной области) Gh, представляется в виде линейной комбинации базисных функций: vh = Cityi + с2г|)2 + ... + cNqN, (2.28) количество которых определяет размерность пространства и зависит от количества узлов сеточной области и их кратности. При этом не учитываются узлы, лежащие на части границы Fi с условием Дирихле (их совокупность будем обозначать через Г^). Базисные же функции г|)/ строятся так, что их значения на Г^ равны нулю, в силу чего любая Vh из Sh будет принадлежать также пространству Sh. Существует несколько подходов к приближенному решению вариационных задач. Если они возникают из самосопряженных дифференциальных уравнений, что имеет место в нашем случае, то основным является метод Ритца, заключающийся в нахождении минимума функционала не в Я, а в конечномерном подпространстве 5л, точнее, в последовательности таких подпространств. Функция tih, минимизирующая / на S*: I(uh) < I(vh) для всех vh e Sh, (2.29) называется аппроксимацией Ритца вариационной задачи (2.25). Решение задачи (2.29) определяется из системы уравнений dl(uh)/dci= 0, 1= 1,2, ...,#. Отметим, что в пространстве Sh находится и функция йн — интерполянт точного решения исходной вариационной задачи (2.25), т. е. такая функция вида (2.28), которая во всех узлах совпадает с и. Основными вопросами теории методов конечных элементов являются: а) построение приближенного решения iih, б) оценка нормы погрешности решения Wh = и — tih. Последний из них решается для наших задач на основе свойств монотонных отображений. Определение 2.1. Отображение L строго монотонно, если существует такая строго возрастающая функция f(t) для 0 < ^ t <С оо, что /(0) = 0, lim/(0 = оо, (2.30) t-*-co и для любых иу v из пространства Н (Lu - Lv) {u-v)> /(|| и - v\\H)\\u - v\\H. (2.31) Здесь под Lu(v) понимается скалярное произведение щ.)- J ,[(£ + «.J.X-& + -т) + Н1 G 100
Определение 2.2. Отображение L непрерывно по Липшицу для ограниченных аргументов, если для всех u,v e H при || и || я <| /?, || 01| я < R существует такая постоянная С(/?), что \\Lu- Lv\\ < C{R)\\u- v\\H (2.33) Теорема 2.2. Пусть L — строго монотонное и непрерывное по Липшицу для ограниченных аргументов отображение. Тогда существует такая не зависящая от подпространства Sh постоянная С, что К\\и- vh\\H) <C inf ||и - vh\\H. (2.34) Непосредственными преобразованиями можно проверить, что если v(£) удовлетворяет неравенствам (2.24), то определенный в (2.26) оператор L соответствует условиям теоремы 2.1. В частности, если уравнение (2.26) линейное, то f(x) = t, а при v = v (||u\\p) имеем f(t) = tp+K Из (2.34) следует важное неравенство /(II" — ик\\н)< С\\и-йн\\н, (2.35) где Uh — функция из класса Sh, интерполирующая точное решение и по его значениям в узлах. Это неравенство позволяет оценивать ошибку аппроксимации Ритца через погрешность интерполяции в пространстве S&. 2.2.2. Аппроксимация функций с помощью конечных элементов. Многоугольная двумерная область наиболее простым образом разбивается на треугольники. После этого задача аппроксимации функции может отдельно рассматриваться на каждом отдельном треугольном элементе. Пусть Pi, Р2у Ръ — вершины треугольника, в которых заданы значения и\, и2, иъ функции и(хуу). Простейшая аппроксимация представляет собой билинейный интерполяционный полином и(х, у) = он -f а2х + «зУ, (2.36) коэффициенты которого легко^ могут быть выражены через щ из решения системы уравнений u{Pt) = uh i — 1,2,3: ai = -^-[(Xjyk — xkyj)Ui «2 = -§^[(У! - У*)* + (Ук - yi)ui + {yi - yj)Ukl' (2.37) аз = -оЦ(** — Xj)Ui + (xi — xk)uj + (xj — xi)uk]. Здесь j, /, k — обозначения каких-либо из вершин, пронумерованных против часовой стрелки, а S//* — площадь треугольника. Полином (2.36) может быть также выражен через базисные 101
функции 1=1 (2.38) где pi есть линейный по лс, у многочлен, равный единице в i-u узле и нулю в остальных: ( ) C) ( £) = Djk/Cijk, Tjk = Xjyk — yj = Xk — = t// — 1 1 1 X Xj xk У У1 Ук , djk = l l l Xi Xj xk Ui У\ Ук (2.39) Здесь p,i(x, у) определены только в одном треугольнике. Однако для каждого 1-го узла триангуляции области легко построить кусочно-билинейную функцию г|)/(х, у), разную единице в /-ом узле и нулю — в остальных (в каждом из примыкающих треугольников она определяется по формулам (2.39)). Совокупность таких пирамидальных функций для всех узлов триангуляции, за исключением лежащих на части границы Гь образует базис пространства Sh кусочно-линейных функций, обращающихся на 1\ в нуль. Отметим, что любая функция из Гн непрерывна, так как значения и(х, у), построенные для двух смежных треугольников, на их общей стороне просто совпадают. Порядок интерполяции легко повысить, если помимо щ в вершинах треугольников использовать еще значения в серединах сторон Ра, Рб, Ре, см. рис. 13,а. В этом случае мы имеем и(х9у) = ро + М + foy + + + где все (3; могут быть определены из уравнений /= 1,2,..., 6. а, их,иу (2.40) в) Рис. 13. Если же ввести функции р[2\х,у\ квадратичные по каждой переменной, равные единице в рь и нулю — в остальных, то интерпо- лянт можно представить в виде й(х, У) = , у), (2.41) где 102 выражаются через р{х,у) из формул (2.39) следующим
образом: p[*>(x,y) = pl{2pl- 1), /=1,2,3, (2.42) р^\х, у) = 4pip2, pi2\x, у) = 4р2рз, Д2) (*, у) = 4р3р1. Совокупность функций рР (х, у) в треугольниках, имеющих общие узлы (вершины треугольников или середины сторон), образует базисную функцию пространства кусочно-квадратичных непрерывных функций. Аналогично можно рассмотреть интерполяции и более высоких порядков. Например, По значениям функции в вершинах треугольника и точках трисекции сторон и центре тяжести можно построить бикубическую интерполяцию, имеющую 10 коэффициентов, которые однозначно определяются по 10 указанным точкам. В общем случае можно строить полином m-го порядка по двум переменным, имеющий 4"(т + 0(т + 2) коэффициентов, кото- 1 рые выбираются по условию интерполяции в у(т + \){т + 2) точках, получаемых при разбиении исходного треугольника на т2 равных треугольников путем деления его сторон на т одинаковых частей и соединения полученных точек прямыми, параллельными сторонам. При построении интерполяционных формул часто используется предварительное преобразование треугольника к стандартному, у которого в новых переменных рир2 координаты точек Pi, Р2, Рз есть соответственно (1,0), (0,1) и (0,0). Эти новые переменные как раз и выражаются формулами (2.39), поскольку уравнения р{х,у) = 0 при /= 1,2,3 описывают стороны треугольника РгЛз, РзР\, Р1Р2, а в вершинах Л имеем Pi(x,y) = 1. Обратное преобразование плоскости {p\,p<i) в плоскость (х,у) выражается, как легко видеть, с помощью формул х = хг + 1\гр\ + £23/02, У = Уз + Ц\зр\ + Ц23Р2. (2.43) Такого типа интерполяции называются лагранжевыми. Другой подход заключается в использовании значений не только функции, но и ее производных. Построенные таким образом интерполяционные полиномы Называются эрмитовыми. Класс соответствующих полиномов включает полные многочлены Qv(x,y) нечетной степени 2v + 1, которыеопределяются значениями DlQv(Pj) при |/| < V/, / = 1, 2, 3, и DlQv(PA) для |/| < v— 1. Здесь Р\,р2,Рз — вершины треугольника, Р± — его центр тяжести, i = (Л, «2), где /i, /2 — целые числа, |/| = i\ + i2, DlQ = d^Q/ /(дх^ду1*). Простейшую эрмитову интерполяцию представляет кубический многочлен, десять коэффициентов которого определяются по значениям функции и ее производных их, иу в вершинах треугольника, а также по значению и(х,у) в центре тяжести (см. ЮЗ
рис. 13,6): Q(x>y)= 2Г^£/(*>У)+ 2 l(ux)i n(xyy) + (uy)iSi(x,y)l - 7PiPk\ / = 1,2,3, рд + Ь*р*(р/ - pdl Ф>У) = PifoaPiiPk - Pi) + 4ikPk(Pj - /?/)]. Интерполяционная функция v(x,y\ построенная с помощью таких многочленов, будет непрерывна при переходе от одного треугольника к другому, поскольку вдоль каждой стороны она представляет собой кубический полином, однозначно определяемый значениями функции и ее производных в вершинах. Мы теперь остановимся на прямоугольных элементах, для которых легко строятся эффективные аппроксимации. Прямоугольные элементы целесообразно строить для областей, составленных из прямоугольников. Для областей сложной конфигурации можно комбинировать прямоугольные элементы внутри области с треугольными около границы. Рассмотрим прямоугольный элемент [x/^+i] X [*//,*// +1] с длинами сторон Ль А2, см. рис. 13, в. Билинейный многочлен, аппроксимирующий функцию и(х, у) по ее значениям в вершинах, имеет вид ри(х, у) = ац(х, y)uii + fLi+i,j(x, y)m+ul + ( 0)и/+1./+ь (2.45) l - y\ - x)(y — yj), Если в прямоугольной области [*о, хт] х [уо, Ут] построена прямоугольная сетка х = хи у = уу, / = 0, 1,..., /и, / = 0, 1,..., я, то кусочно-билинейная аппроксимация во всей области имеет вид £(*, у)=Ъ 2 Ых, У) uih (2-46) где каждая базисная функция i|ty строится по формулам (2.45) из условия, что она равна единице в (/,/)-м узле и нулю в остальных. При этом г|5//(х, у) отлична от нуля только при *,-_ i <x< xi+1, с// 1 < у < у/ + ь Нетрудно проверить, что функция р(х, у) непрерывна во всей области. Интерполирующую функцию с непрерывными первыми производными во всей прямоугольной области можно построить с по- 104
3 3 мощью бикубических полиномов вида Q(x, у) = 2 2 ацх1у], /=0 /-=0 определяемых в каждом прямоугольном элементе по значениям и, их, иу, иху в четырех вершинах. Для единичного квадрата O^jc^I, 0^r/^l такой многочлен выражается формулой ф8» (/) = (1 _ О2 (1 + 2/), Л) = (1 - (ft, (2.47) ^°\о = /2(3 - 20, iri!)(o = t\t - i), где (D(kyt)u)ij означает dk+lu/dxkdyl в точке с координатами х^ У\- Бикубическая аппроксимация во всей области может быть представлена в виде комбинации базисных функций, выраженных через произведения одномерных функций ^к\х] и ^(у). Теперь узлу сетки будут соответствовать четыре базисные функции, и каждая из них имеет носителем четыре прямоугольных элемента. Построение аппроксимаций на основе интерполирующих полиномов, построенных непосредственно в четырехугольных элементах, не являющихся прямоугольниками, связано с той неприятностью, что при переходе от одного элемента к другому нарушается непрерывность даже самих функций. Наиболее распространенным приемом является преобразование координат с помощью кусочно-полиномиальных функций так, чтобы в новых переменных четырехугольник переходил в единичный квадрат. Если для преобразования координат используются того же вида полиномы, что и для базисных функций, то такое преобразование называется изопараметрическим. Простейшим соответствующим примером является отображение квадрата в четырехугольник с помощью билинейного преобразования. х(1,г\) = хх + (*2 — х\)1 + (х3 — хх)ц + (ха — хъ — х2 + *i)£t|, y(l,x\) = У\ + (1/2 — У\)Ъ + {Уг — У\)Ц + {У а — Уз — У2+У\)1г\. (2.48) Здесь вершинам единичного квадрата с координатами (0,0), (1,0), (0,1), (1,1) соответствуют вершины четырехугольника (х\9 у\), (х2, у2\ (*з, */з), (*4, Уа\ а стороны квадрата переходят линейно в соответствующие стороны четырехугольника. Преобразование (2.48) обратимо, т. е. каждая точка (jc, у) в четырехугольнике соответствует одной и только одной точке (£, г\) в квадрате, если четырехугольник выпуклый, т. е. все его внутренние углы меньше я. Это следует из того, что в этом случае якобиан преобразования = 4% - *№ = г/2 — f/i + Вт) Уз — у\ + #£ где А = х4 — хэ — х2 + х\, В = у4 — уз — У2 + У\, всюду отличен от нуля. Другой важный случай преобразования координат связан с употреблением криволинейных элементов, необходимость которых 105
возникает при наличии областей с непрямолинейными границами. Мы рассмотрим один простейший, но практически важный случай — аппроксимацию функции на треугольнике, две стороны которого прямолинейные, а одна — криволинейная. Пусть в треугольнике Р\Р2Рз стороны Р2Рз и Р\Рз прямолинейные и описываются уравнениями 1(х9у) = 0 и т(х,у) = 0, а криволинейная сторона Р\Р2— уравнением п(х,у) = 0. Функции /, т, п предполагаем для простоты нормированными условиями 1{хиух) = т(х2уу2) = п(хг,у3) = 1. (2.49) Преобразуем плоскость (х,у) в плоскость (/, т) по формулам / = —!— (т23 + Л2з* — ЬзУ% гп = -Л-(тз1 + Цз\х — 1му), С 123 С 123 (2.50) где обозначения взяты из (2.39). В плоскости (/, т) получается треугольник с вершинами Р\ = (1,0), Р2 = (0,1) и Рз = (0,0), а уравнение криволинейной стороны принимает вид n(x(l,m), y(l,m)) = f(l,m) = 0. Теперь на треугольнике Р[Р2Рз построим лагранжеву интерполяцию вида \ (2.51) где U4 — значение функции в некоторой дополнительной точке Pi, лежащей на криволинейной стороне Р\Р2, а базисные функции г|э/ удовлетворяют следующим требованиям: ' a) i^Z, m)=l, t liVtf, m) = I, tm^l9m) = m (2-52) i=\ i=\ t=l (//, mi — координаты точек Р[); эти условия означают, что линейные полиномы в плоскости (/, т) аппроксимируются выражением (2.50) точно; а поскольку преобразование координат (2.49) линейное, то в плоскости (х,у) линейные многочлены также интерполируются точно; б) базисная функция я|)3(/,т) равна тождественно нулю на криволинейной стороне Р\Р2\ в) получающаяся из (2.50) кусочно-гладкая функция на сетке треугольников, каждый из которых имеет не более одной криволинейной стороны, непрерывна. Сначала мы построим базисную функцию г|)з, удовлетворяющую условию б). Для этого рассмотрим семейство поверхностей z(l, т) = 0, пересекающее плоскость (/, т) по кривой /(/, т) = 0 и описываемое уравнением (az + р/ + ут + 6)z + /(/,т) = 0 (2.53) с неопределенными параметрами а, р, у, б. Если мы потребуем, чтобы фз была линейна на сторонах Р[Р'ъ и Р2Р'з, то есть чтобы с учетом (2.49) выполнялись соотношения 2=1 — / при т = 0, 106
z = 1 — m при / = 0, то из (2.53) величины р, у, 6 однозначно выражаются через а, и мы получаем однопараметрическое семейство поверхностей + /(/, т) = 0. (2-54) Выбирая теперь какое-либо значение а и полагая ^(Z, т) = z, определяем из соотношений (2.52) остальные базисные функции: (l-m4)/ + /4rn-/4 /4 ♦i('. "О = i-/4-m4 + Т=Р5 — Ц)т — т4 т3 + 1—/—т В частности, если положить а = 0, а в качестве криволинейной стороны взять отрезок гиперболы f(l,m) = aim - I - т +1, то все базисные функции г|)/(/, /л), как нетрудно проверить, оказываются многочленами. Это позволяет решать краевые задачи с криволинейными границами путем аппроксимации их кусочно- гиперболическими дугами и применяя простые полиноминальные базисные функции. В общем же случае интерполяция на криволинейных элементах может привести к более сложным функциям, например, дробно-рациональным [127]. Отметим, что для трехмерных задач аппроксимации строятся аналогичным образом, но имеют, естественно, более громоздкий вид. Типичными конечными элементами являются тетраэдр, параллелепипед, а также соответствующие фигуры (четырехгранники и шестигранники) с криволинейными поверхностями. Подобно тому, как это делается для двумерных элементов, строятся трилинейные, триквадратичные и более высоких порядков лагранжевы или эрмитовы интерполяции. Для оценки ошибок приближенных решений методами конечных элементов в соответствии с (2.35), необходимо определить погрешность интерполяции с помощью конечных элементов. Этот результат устанавливается при наличии следующих свойств базисных функций: а) пространство Sh базисных функций % имеет степень &, т. е. любой полином до &-го порядка может быть представлен в виде линейной комбинации базисных функций и, следовательно, принадлежит пространству Sa; это означает, например, что при k = 2 интерполяция с помощью г|эг точна для многочлена вида х2 — ху — — у ; иногда в таких случаях говорят, что система функций полна до некоторого k\ б) базисные функции однородны порядка q, т. е. их производные до g-го порядка равномерно ограничены на последовательно- 107
сти пространств Sh при Л -► 0; это свойство требует, в частности, невырожденности конечных элементов в смысле выполнения неравенств (2.27); если же, например, базисные функции строятся путем сведения криволинейного элемента к стандартному виду, то якобиан преобразования координат должен быть ограничен и непрерывен при А -► 0. Теорема 2.3. Пусть степень пространства Sh равна k, а его базис однороден порядка q. Тогда для любой функции и, обладающей k + 1 суммируемой в квадрате производной, справедливо неравенство при s ^ q: \и - uh\s < Cshk+ l-*\u\k + u (2.56) где \v\s = \ \Dav\2dx dy, \a\ = s, a Cs — не зависящие от h константы. Неравенство (2.56) означает, что интерполирование базисными функциями с указанными свойствами обеспечивает погрешность порядка hk +1 для самих интерполируемых функций и hk + х ~ s— для их производных порядка s. Данная теорема в совокупности с оценкой (2.35) позволяет оценивать погрешность приближенных решений методами конечных элементов. Отсюда, в частности, следует, что приближенное решение задачи (2.25) по методу Ритца при использовании кусочно-линейных аппроксимаций на треугольниках и представлении функции v(£) в виде (2.10) имеет погрешность О(А). При практической реализации методов конечных элементов могут возникать дополнительные погрешности, связанные с тем, что приближенное решение ищется не строго из вариационной постановки (2.29). Зачастую при вычислении интегралов в функционалах приходится применять приближенные квадратурные формулы. Кроме того, иногда для упрощения алгоритмов при наличии криволинейных границ производится их аппроксимация прямолинейными конечными элементами. Мы не будем проводить анализ обусловленных этими факторами ошибок. Эти вопросы достаточно хорошо исследованы, и результат заключается в том, что точность конечно-элементных решений существенно не уменьшается, т. е. порядок погрешности при «разумных» возмущениях вариационной постановки остается без изменений. Например, если кривую второго порядка аппроксимировать ломаной, то дополнительная ошибка есть О(А), что вполне допустимо для кусочно-линейных интерполяций. § 2.3. Построение конечно-элементных уравнений Мы проведем вычисление коэффициентов конечно-элементных уравнений, получающихся из приближенной минимизации функционала энергии (2.18) с помощью кусочно-линейных аппроксимаций на треугольниках. Данный алгоритм используется различными 108
авторами и оказывается достаточно эффективным при расчетах на ЭВМ магнитостатических полей в средах с нелинейными характеристиками. Пусть Gh — сеточная область, представляющая собой совокупность треугольников Ts(s = 1, 2, ..., k\ на которые разбивается расчетная область G. Искомое решение представим в виде Ah(xyy) = ui$\(x,y) + "2ЫХ>У) + - + имЫх>У)> (2-57) где яр/ — кусочно-линейные базисные функции, отличные от нуля только на треугольниках, имеющих одной из своих вершин 1-й узел (значения i|)/(jtr, yt) равны единице при / = /' и нулю — при 1Ф1'). Значение N равно общему количеству узлов триангуляции, за исключением лежащих на участках границы области с условиями Дирихле. Предполагается, что триангуляция проведена таким образом, что граница сеточной области Гл совпадает с границей Г расчетной области (если последняя есть прямоугольник) или, по крайней мере, близка к ней. Считаем также, что сеточные узлы из Га лежат точно или на внешней границе, или на линиях раздела различных сред (линиях разрыва v(£)). В (2.57) щ есть искомые значения приближенного решения в узлах сетки. В пределах отдельного треугольника Тцк с вершинами Pi, P/, Pk функция Ан(х,у) представляет собой билинейный ин- терполянт, описываемый формулами (2.38), (2.39). В выбранном пространстве кусочно-линейных функций минимизируемый функционал (2.18) заменяется на его аппроксимацию I(Ah) = 1{ии и2у ..., О, (2.58) т. е. зависит от конечного числа параметров щ. Система конечно- элементных уравнений dl/дщ = 0, / = 1,2,..., N, в данном случае имеет вид «. _ $ [«1*11(1..*. + В.'*-) - /£]*** = 0. ,2.59, Gh где величины Вх, Ву, \В\ в каждом из треугольников выражаются формулами ".-■£ + «4-*—■£■• !<"'=« +«г- Мы рассмотрим уравнения подробнее для случая осесиммет- ричных магнитостатических задач в цилиндрической системе координат (а = 1). Для треугольника Тци будем иметь (см. обозначения в (2.39)): Вх = — (uiljk + tijlki , у) = т h —2, ui Pi(xy у\ дВх _ In, дВу _ ц,к i дА„ тд + nikx + llky 109
Уравнение для 1-го узла получается после подстановки (2.60) в (2.59) и проведения интегрирования по треугольникам, имеющим /-ый узел своей вершиной. Если триангуляция получена путем предварительного разбиения области с помощью двух семейств ломаных линий (ломаные одного семейства не должны пересекаться) на четырехугольники и последующего разбиения их диагоналями на треугольники, то в каждом уравнении будет семь ненулевых членов. Такую сетку будем называть топологически эквивалентной прямоугольной. При использовании локальной нумерации узлов для такого случая каждое уравнение можно записать в следующем виде (см. рис. 14): S prur-pouo = f. . (2.61) Любой из коэффициентов рг вычисляется из интегралов по треугольникам, имеющим своими вершинами узлы с номерами 0 и г. Поскольку функция v имеет сложную нелинейную зависимость от иГу целесообразно применить простую квадратурную формулу, а именно считать величины Ву и дВу/дщ постоянными в каждом треугольнике, взяв их значение в центре тяжести dm Cijk ) (2.62) Рис. 14. В этом случае значение v постоянно в треугольнике, и коэффициенты уравнения (2.61) для 1-го узла имеют относительно простой вид (hr означает расстояние между r-й и 0-й точками, a vr относятся к треугольникам, пронумерованным в соответствии с рис. 14, причем треугольники рассматриваются прямоугольные) : */-2Ai/3 A4 , xi-h/3 , h2 xi-hx/3 7 —2Ai/3 xth2 i —Л,/3) + 7 xth2 3(*, + Аз/3) ]■ h2 /3 lOfa /Q /i4 hz A, - /fci/3). 110
Ръ = Vl Xz + Лз/З */-2Л,/3 (Г+^/з)2 */ + 2/ЗЛ3 л:2 h4 3 3 Лз Л, / л4 9> JC/ + 2/13 *,-А УЗ /з i/З - /г /г4 3 ' л2 л/3) 3/ *J) \h2 А, h2 xi + Лз/3 Лз ' Аз/3)^1, (2.63) 6 . / = 2 -57 з (т/а + Л/^ + 1 В последнем члене Sr и /г — соответственно площадь и плотность тока (предполагаемая постоянной) в r-ом треугольнике, а индексы /, k для каждого из них относятся соответственно к периферийным вершинам, следуемым в порядке обхода контура треугольника против часовой стрелки, начиная с центрального узла «О» (например, для 1-го треугольника / = 3, k = 5, для 2-го — / = 5, k = 4 и т. д.). В задачах магнитостатики, как правило, уравнения (2.61) бывают трех видов. Первый соответствует тому, что все треугольники относятся к воздушной среде — в данном случае f = 0 и все vr — одинаковые постоянные, при этом коэффициенты имеют наиболее простую форму. Второй вид относится к шаблону, находящемуся в проводнике с током (vr = const, /=т^0), а третий — к ферромагнитной среде, где vr зависит от значений Ui в вершинах треугольника. Есть, разумеется, и смешанные узлы, лежащие на границе раздела различных сред, когда различные треугольники шаблона имеют раздюго типа функции v и /. Полученная система уравнений может быть записана в векторном виде Ku = g, (2.64) где компоненты векторов и, g соответствуют значениям неизвестных и правых частей в узлах сетки, а /С, как следует из построения,— симметричная матрица (с зависящими от и элементами). Если в функции v(u) зафиксировать какие-либо значения и, то К является положительно определенной матрицей, поскольку скалярное произведение (Киу и) есть фактически функционал IBI2 Структура матрицы К зависит от упорядоченности узлов сетки и соответствующих компонентов щ искомого вектора. При есте- Ш
ственной нумерации узлов сетки, топографически эквивалентной прямоугольной, К имеет ленточную структуру с шириной полосы не более 2L + 1, где L — максимальное число узлов в линиях одного семейства. Коэффициенты уравнений (2.61), вообще говоря, зависят от решения, и поэтому К представляет собой нелинейный оператор, для анализа свойств которого полезно рассмотреть матрицу Гесса, представляющую собой матрицу вторых производных от функционала 1(Ап): дЧ дЧ дЧ R = ди\ди2 du\duN дЧ дЧ дЧ duNdU\ duNdu,2 '" duNduN Дифференцируя интеграл в (2.59), несложно получить (v' означает производную по \Вг): Gh дВх^2 дВу 9*в* ав' где д2Вх дВи = ^i-o. (2.65) duf duf duf Отсюда для уравнений вида (2.61) с коэффициентами (2.63) матрица R определяется из соотношений (#w)/=_i=2 prtir — poUo, (2.66) г= 1 где ро = Ро-\-ро, а величины ро и рг определяются формулами, которые получаются из выражений для ро и рг заменой множителей vr на dvr/duo. Если шаблон для /-го узла целиком лежит в неферромагнитной среде, то ро = ро и все Рг = 0, т. е. в соответствующей строке матрицы отличен от нуля только диагональный элемент. Отметим, что если функционал 1(и) строго выпуклый, то матрица R является положительно определенной. Если сетка не является топологически эквивалентной прямоугольной, то структура матрицы /Сможет существенно усложниться. Различным узлам могут соответствовать шаблоны с неодинаковым числом треугольников, и геометрически близко расположенные узлы могут оказаться имеющими сильно различающиеся номера. В таких случаях матрица системы конечно-элементных уравнений будет иметь разное количество ненулевых элементов, и ширина ленты (максимальная разница номеров компонент неизвестного вектора, участвующих в одном уравнении) может оказаться достаточно большой. Для случая произвольного типа конечных элементов и базисных функций общая схема построения матрицы системы может 112
быть описана следующим образом. Пусть u(i) = {u({\ и£\..., u\s)} — совокупность компонентов искомого решения, соответствующего одному конечному элементу Ts (это могут быть как значения функции, так и производных). Представляя на элементе Ts приближенное решение через значения v-t и соответствующие базисные функции Ап(х, у)= 2 и^к(х, у) и подставляя это выражение в минимизируемый функционал (2.19), мы можем интеграл по одному треугольнику написать в форме скалярного произведения с матрицей /-го порядка, элементы которой зависят от самих значений иф: ЦАп)= lT(Ksu^\ u^)-(fs, иМ). (2.67) Для Ks принято название матрица жесткости. Как следует из ее построения, при любых «замороженных» коэффициентах, т. е. когда в функции v берутся произвольные значения Mk, Ks есть симметричная и положительно определенная матрица. Матрица же К полной системы уравнений (2.64) складывается из элементов всех матриц Ks- При построении полной матрицы К из элементарных необходимо только установить соответствие между компонентами «локальных» векторов u(s) и вектора и. § 2.4. Методы решения систем нелинейных уравнений Запишем систему конечно-элементных уравнений в виде f ...+kiN»N = h (2.68) где kim — зависящие от неизвестных щ величины. Один из самых очевидных алгоритмов решения системы (2.68) заключается в проведении итераций с релаксацией по нелинейности: /С(л~1)йЛ = /, f/n = cou/l + (l —(й)ип~{. (2.69) Запись /С^"1) означает, что все элементы матрицы, зависящие от и, берутся с предыдущего шага. Параметр релаксации со, как правило, берется в интервале (0,1) и определяется экспериментально. В зависимости от характера нелинейности задачи его введение или ускоряет скорость сходимости итераций, или даже позволяет расходящийся при со = 1 процесс сделать сходящимся. Если же задача линейная, то при со = 1 процесс дает решение формально за одну итерацию. Как видно, в данном случае метод сводится к решению последовательности линейных задач. При этом актуальным является вопрос, как решать системы линейных алгебраических уравнений с матрицами /С(п~!). Напомним, что эти матрицы обычно имеют порядок N в несколько тысяч и являются ленточными с шириной 8 В П. Ильин 113
ленты L в несколько десятков. Кроме того, К^п~х^ являются симметричными и положительно определенными. Это обеспечивает устойчивость метода исключения Гаусса для решения систем даже без выбора главного элемента. С учетом ленточной структуры матрицы при больших N, L он требует оперативной памяти ЭВМ порядка NL ячеек и количества арифметических действий примерно NL2/3. Если объема оперативной памяти достаточно, то применение метода Гаусса является эффективным и наиболее распространенным. Дело в том, что для конечных элементов в сложных областях (для чего эти методы и наиболее приспособлены) типичным является большой разброс в шагах сетки, что сильно ухудшает скорость сходимости итерационных алгоритмов, успешно применяемых для конечно-разностных уравнений. Кроме того, часто встречающаяся нерегулярность сетки «портит» структуру матрицы и делает затруднительным использование ряда экономичных итерационных процессов, например, неявных методов переменных направлений. В методе Гаусса, а равно и в других применяемых прямых методах (например Холесского), очень актуальным является выбор такой упорядоченности конечных элементов и узлов сетки, при которой матрица системы имеет по возможности меньшую ширину полосы, что позволяет существенно сократить необходимые для реализации ресурсы ЭВМ как по памяти, так и по объему вычислений. Если же в матрице системы линии, огибающие зоны нулевых элементов, сильно криволинейны, то тщательная реализация метода Гаусса позволяет еще повысить его экономичность. Пусть Li = Li — l-\-\ —локальная ширина полуполосы ленточной матрицу, где L/ — максимальный номер компоненты неизвестного вектора в 1-ом уравнении, имеющего ненулевой коэффициент. Тогда реализация метода Гаусса осуществима при использовании N только 2 Li ячеек оперативной памяти, что может оказаться го- /=i раздо меньше величины NL, где L = max{L/}. Когда объем оперативной памяти ЭВМ не позволяет непосредственно применить метод Гаусса, то могут быть использованы блочные варианты гауссовского исключения с «упрятыванием» промежуточных данных на внешних запоминающих устройствах. Однако уже для трехмерных задач с числом узлов в несколько десятков тысяч реализация даже таких алгоритмов затруднительна. В этих случаях при решении системы (2.69) для каждого п можно применить «внутренние» итерации по методам чебышевско- го ускорения или последовательной верхней релаксации, или сопряженных градиентов. При этом фактически производится приближенное обращение матриц К^п~^ но, если погрешность гп решения промежуточных систем достаточно мала, то сходимость всего процесса почти не нарушается. С точки зрения оптимальности 114
алгоритма существенным является вопрос выбора последовательности е„ такой, чтобы суммарное количество внутренних итераций, необходимое для обеспечения заданной точности решения системы (2.69), было минимальным. Теоретически эта проблема трудно разрешима, и можно только рекомендовать экспериментальный подбор параметров гп (а также и со, возможно даже различных cort на разных итерациях) для некоторых классов задач с типичным характером нелинейности. Переписав для удобства систему (2.68) в виде g(u) = 0 или в покомпонентной записи мы можем указать еще два простых алгоритма, являющихся непосредственными обобщениями итерационных процессов для линейных уравнений. Первый из них можно назвать нелинейным методом Якоби: giiurK.^ufz^ufuf+i1,..., unN~x) = О, (2.70) и? = ай?+(\ —(o)ttf-1, 1= 1,2,..., N. Здесь на каждой м-й итерации для каждого / необходимо решать нелинейное (но уже скалярное) уравнение относительно й?, для чего можно проверить «внутренние» итерации каким-либо из общепринятых методов: хорд, Ньютона, Стефенсона и т. д. Параметр релаксации со введен в (2.70) априори для возможного управления скоростью сходимости. Второй алгоритм является нелинейной последовательной релаксацией g{unu ..., uUu и?, uUx (2.71) и?=ай?+(1 -соК /=1,2,..., N, который при со = 1 является обобщением метода Зейделя. Как правило, и в (2.70), и в (2.71) значения со подбираются экспериментально в интервале от 0 до 1 для ослабления влияния нелинейности. Если в (2.71) для каждого / не проводить точного вычисления й?, а просто делать фиксированное число т «ньютоновских» итераций, то получим так называемый m-щаговый метод ПВР- Ньютона (внешние итерации выполняются с помощью последовательной верхней релаксации, а внутренние — по методу Ньютона). Наиболее распространен одношаговый метод ПВР-Ньютона, который для нашей системы уравнений (с учетом того, что ее решение минимизирует функционал 1(и)) может быть записан в следующем явном виде: d2l/duf(ul.... 8* 115
Рассмотренные алгоритмы, каждый своим образом, могут быть представлены в виде итерационного процесса ип = В(ип~х) (2.73) с некоторым нелинейным оператором В в N-мерном пространстве. Например, если в (2.70) положить со=1 и не делать внутренних итераций, то в применении к системе (2.68) получим формулы 1), (2.74) /=1,2 TV. Относительно итераций (2.73) можно сформулировать следующий результат. Теорема 2.4. Если оператор В удовлетворяет условию \\B(u)-B(v)\\ ^q\\u-v\\, <7< 1, (2.75) то уравнение и — В(и) имеет решение и Доказательство начинается с установления неравенств \\ип+х-ип\\ < \\В(ип)-В{ип~х)\\ < q\\un-un'x\\ <ьЯп\\их — и°\\, которые следуют из (2.75). Далее для любого целого р > п имеем \ип+1 — ип ^ Отсюда, согласно критерию Коши, последовательность и11 имеет предел и*, который является решением, поскольку для любого п справедливы соотношения Необходимо заметить, что применение этой теоремы в конкретных случаях требует «всего навсего» проверить условие (2.75), что как раз представляет значительные технические трудности. Одним из самых эффективных методов решения систем нелинейных уравнений является метод Ньютона — Канторовича un = un-x—H-\un-{)g(un-x), (2.76) где матрица Н состоит из производных вектор-функции g: H = ={dgk/duh k, /=1,2,...,ла Если и* есть решение уравнения g(w) = 0, то через Qa обозначим множество и, удовлетворяющих условию \\и — и*\\ <Са. 116
Теорема 2.5. Пусть для некоторых положительных чисел а, аи #2 выполняются условия ' || Н- \и) || < ах при и 6 Йа, (2.77) \\g(u)-g(v)-H(v)(u-v)\\ <а2 \\v-u\\2 при u,v 6 Qe,(2.78) w° б Й&, где ft = min(a,c-1), c = aia2. (2.79) Тогда итерационный процесс (2.76) сходится и справедлива оценка \\и* — ип\\ ^с-1(с\\и1 — и*\\)2. (2.80) Условия (2.77), (2.78) имеют тот смысл, что для и из некоторой окрестности решения и* должны быть ограничены все вторые производные функции gi и матрица, обратная к якобиану Н. Величина Ь из (2.79) характеризует, насколько начальное приближение должно быть близко к а*, чтобы метод сходился. Неравенство (2.80) означает, что за одну итерацию ошибка убывает квадратичным образом. При этом для того чтобы норма погрешности я-го приближения была равной || ип — и* || =е, при е «С 1 требуется количество итераций порядка п(г) « Iog2log28~1, (2.81) в то время как для метода простой итерации из теоремы 2.3 имеем п(г) « Iog28~1. Таким образом, если начальное приближение выбрано достаточно близко к точному решению, нелинейные функции в уравнениях дважды дифференцируемы, а якобиан системы невырожден, то метод Ньютона сходится и очень быстро. Одна из сложностей его применения заключается как раз в выборе начального приближения, а вторая связана с трудоемкостью реализации самих итераций, которые можно записать в виде (2.82) В данном случае на каждом шаге необходимо решать систему уравнений с матрицей R^n~{\ Это можно делать или прямыми методами типа Гаусса, или итерационными. Если применить для этого m итераций последовательной верхней релаксации (т. е. не решать точно систему (2.74) на каждом шаге), то получим двуступенча- тый так называемый m-шаговый метод Ньютона-ПВР. Одна из трудностей метода (2.73) заключается в необходимости вычислять для каждого п элементы матриц Я, что может требовать больший объем вычислений, чем само решение системы (2.74). В таких случаях применяется модификация метода Ньютона с пересчетом матрицы R не для каждого я, а через несколько шагов. Этот прием эффективен тогда, когда приближения ип находятся в такой окрестности, где их изменение не сильно сказывается на элементах матрицы R. 117
§ 2.5. Примеры расчетов магнитостатических полей В этом параграфе мы приведем результаты численных расчетов, выполненных А. Л. Урванцевым и С. Б. Кузнецовым с помощью пакета программ Эстамп, описанного в последней главе. Этот пакет реализует метод конечных элементов с кусочно-линейной аппроксимацией азимутального компонента осесимметричного векторного потенциала, описываемого уравнением (2.8). Решение нелинейных алгебраических уравнений проводится итерационным методом ПВР-Ньютона (2.72). Первый пример имеет методический характер. С целью экспериментальной оценки погрешности метода решается линейная задача в прямоугольнике 0< г <r3 = 0,117, 0< z < 0,016 с граничными условиями А = 0 при г = 0, дА/дп = 0 при z = 0 и z = 0,016, Л=Ло = О,75943 при г = г3. Магнитное сопротивление бралось равным v = vi = 10~3 при 0 < г < п =0,058, v = v2=l при г> > 0,058. Плотность тока в (2.8) / = с/о, /о = О,1 для r\<r<L <:г2 = 0,1 и / = 0 — для г<г\ и г>г2. Точное решение в этом случае не зависит от z и имеет вид ег, где константы a, b, d, e однозначно определяются из условий, удовлетворяющих исходному уравнению, граничным значениям, непрерывности величин А и у(дА/дг-\-А/г) при г = Г\ и г2. Решение задачи проводилось на трех сетках. Одна из них имела шаги /iz = 0,04, hr = 0,058/13 для r<ru hr = 0,042/4 для ri<r<r2 и /гг = 0,017/3 для г>г2 с общим числом разбиений 4X20. Из двух других сеток одна имела шаги вдвое большие, а другая, наоборот, вдвое меньшие, с числом разбиений соответственно 2 X Ю и 8 X 40. Численное решение на сетке 4 X 20 имеет погрешность в десятые доли процента, причем существенное улучшение точности дает описанная в гл. 1 экстраполяция Ричардсона (пн — = 4uh/3 — W2a/3) • Например, в точках г = 0,058 ошибки равны: для сетки 4 X 20 — 0,2%, для сетки 4 X 20 + 2 X 10 (т. е. с экстраполяцией Ричардсона) —0,01%, для сетки 8Х40 + 4Х X 20 —0,0007%. В качестве примера решения практической задачи мы рассмотрим расчет поля осесимметричной магнитостатической линзы, изображенной на рис. 15. Здесь разными штриховками обозначены области магнитопровода и магнитного наконечника, состоящих из материалов с различными ферромагнитными свойствами. Перечеркнутые прямоугольники представляют собой сечения токонесущих катушек с примерно равными плотностями токов. Назначением такой магнитостатической линзы является формирование электронного пучка с заданными оптическими свойствами, проходящего вдоль оси системы. Основной целью расчетов является 118
нахождение распределения осевой компоненты Bz магнитной индукции в окрестности зазора линзы (отрезок ВС). Решение такой задачи является достаточно сложным в силу ряда специфических особенностей. Отрезок ВС, где требуется обеспечить наилучшую точность (и не самого решения, а его производной) составляет около одной сотой части от общей длины системы АД. Токи в катушках такие, что возникает сильное насыщение железа, означающее резкую нелинейную зависимость v(|£|2), с изменением его значений в разных подобластях от 1 до 10~5. Расчеты проводились с граничным условием Л = 0 на контуре ADEF, соответствующем предположению об отсутствии полей рассеяния вне магнитопровода. На рис. 15 изображена «редкая» сетка, используемая в расчетах (триангуляция области проводилась путем проведения диагоналей во всех нарисованных четырехугольниках). Само решение вычислялось на густой сетке с числом узлов около 4000, получаемой из редкой делением каждого тре- к угольника на 4 равные части. | Для повышения экономичности расчетов решение проводилось в несколько этапов, с использованием на каждом из них вспомогательных подзадач (весь процесс расчетов автоматизирован): а) решение задачи на редкой сетке при кусочно-постоянных v в железе, выбранных из априорных предположений; б) решение нелинейной задачи на редкой сетке с использованием решения из п. «а» в качестве начального приближения; в) решение нелинейной задачи на густой сетке с использованием в качестве начальных приближений значений, полученных из интерполяции решения в п. «б»; г) уточнение решения в окрестности зазора линзы. При этом используется метод «фокусировки»: на границе выбранной подобласти (прямоугольник KLMN на рис. 15) в качестве граничного условия берутся значения, полученные с помощью предыдущего решения, строится еще более мелкая сетка и находится оконча- Рис 15. 119
тельное решение. Последний этап можно провести экономично в силу возможности выбора простой подобласти* построения квадратной сетки и использования специальных алгоритмов решения алгебраической системы, рассмотренных в гл. 1. Эффективность расчетов существенно зависит от выбора релаксационных параметров со в итерациях (2.72), который может быть осуществлен только экспериментально. Оптимальные значения зависят и от типа железа, т. е. характера нелинейной зависимости магнитной проницаемости от величины магнитного поля, и от величины токов, т. е. от участка кривой v(| В |2), «работающего» в решаемой задаче. Величины со целесообразно брать 12 Z разными в «воздухе» и «железе». Для «воздуха» со ^ 1,9 при достаточно большом числе узлов сетки, в «железе» при слабом насыщении оптимальные со примерно такие же, а при увеличении тока уменьшаются и могут быть меньше единицы. Решение обычно требует проведения нескольких сотен итераций, и сходимость в целом не является монотонной, т. е. на некоторых шагах ошибка может расти. На рис. 16 мы приводим характерный вид зависимости Bz(z) на оси с началом координат в центре зазора. Три кривые соответствуют случаям слабого, среднего и сильного насыщений, с увеличением тока высота пика растет (отношение максимального значения Bz к значениям на краю подобласти KLMN может составить 103 и более). На рисунке обозначены также экспериментально снятые значения Bz для рассчитанной магнитной линзы. В районе пика отклонение составляет 3—5%, а в прилегающих зонах— 1—2%. С практической точки зрения такое соответствие расчетов и экспериментов можно считать вполне удовлетворительным.
Глава 3 МЕТОДЫ ИНТЕГРАЛЬНЫХ УРАВНЕНИЙ ДЛЯ ЗАДАЧ ТЕОРИИ ПОТЕНЦИАЛА § 3.1. Интегральные постановки краевых задач Пусть Q — ограниченная трехмерная область с достаточно гладкой поверхностью Г. Для произвольной функции u(x,y,z), непрерывной вй + Ги имеющей непрерывные производные внутри Q, справедлива интегральная формула Грина (3.„ Здесь А — оператор Лапласа, nQ — внешняя нормаль к границе Г в точке Q, /?(P, Q) — расстояние между точками Р и Q, а со принимает значения: [4л, если точка Р лежит внутри Q, 2л, если точка Р лежит на границе Г, О, если точка Р лежит вне Q. Для гармонической функции А^ = 0, и из (3.1) для точек Р, лежащих внутри Q, получаем интегральное представление - (32) Аналогичные формулы имеют место и для функций двух независимых переменных. Пусть S — некоторая область на плоскости (х,у), ограниченная контуром С, a nQ — направление внешней нормали к этому контуру в точке Q. Основная интегральная формула Грина для этого случая имеет вид (3.3) ( 2я, если Р 6 S, (о= я, если Р £ С, I 0, если Pi S + C. 121
Соответственно для гармонической функции во внутренних точках области S справедливо представление В данной главе мы основное внимание уделим смешанным краевым задачам для уравнения Лапласа. Мы отметим несколько особенностей постановок внутренних и внешних краевых задач с граничными условиями 1-го рода. Пусть на границе Г, ограничивающей область G, задана кусочно-непрерывная функция f(P). Тогда внутренняя задача Дирихле ставится следующим образом: найти функцию и(Р), гармоническую внутри области Q, непрерывно примыкающую к граничным значениям f(P) в точках непрерывности последних и ограниченную в замкнутой области Q + Г. Требование ограниченности фактически относится к окрестностям точек разрыва функции f(P). Решение сформулированной задачи существует и единственно. Для двумерного случая внутренняя краевая задача ставится совершенно аналогично. Однако постановки внешних краевых задач для функций двух и трех переменных существенно отличаются. Пусть Q' — дополнение к Q + Г до всего трехмерного пространства. Первая внешняя краевая задача состоит в следующем: найти гармоническую функцию и{ху у, г) в неограниченной области Q', непрерывную вй' + Г, принимающую на поверхности Г заданные значения g(x, у, г) и равномерно стремящуюся к нулю на бесконечности. Последнее условие является необходимым для единственности решения. Внешняя задача Дирихле на плоскости ставится следующим образом: требуется найти функцию и(х, у) в неограниченной области S'— дополнении к S + C, удовлетворяющую в S' уравнению д2и/ дх2-\-д2и/ ду2 = 0у непрерывную в S' + C, принимающую на С заданные значения g(x, у) и ограниченную в бесконечности. Требование обращения решения в нуль на бесконечности здесь является слишком сильным, так как при нем задача может оказаться вообще неразрешимой. Мы будем рассматривать краевые задачи более общего вида, которые, однако, не сильно усложняют реализацию метода интегральных уравнений, рассматриваемых в данной главе. Найти решение уравнения Пуассона Au = f. (3.5) в области Q с границей Г, на отдельных участках которой заданы граничные условия 1-го, 2-го или 3-го рода: u\Tl = gu (3.6) 122
Кроме того, допускается наличие в области Q «внутренних границ» Гз, на которых задаются условия непрерывности решения и скачка его нормальной производной i i ди | ди I /о о\ «|гз+=*|гз-> 8+^г1гз^-^г|г3^ (3.8) Границу области мы допускаем кусочно-гладкой и многосвязной (за исключением отдельных случаев, где делаются специальные оговорки). В такой постановке мы будем рассматривать двумерные и трехмерные задачи, внутренние и внешние. В последнем случае на бесконечности ставится условие ограниченности и для двумерных задач и стремления к нулю — для трехмерных. Если участок границы Tj с условием первого рода присутствует, то решение краевой задачи единственно. Особый случай представляет задача Неймана, когда на всей границе задано условие (3.7) при а = 0. Решение такой задачи определяется с точностью до произвольной постоянной. Функция —=—= =-, представляющая по- R V(*-*')4Qy')2+(2*')2 тенциал поля единичного заряда, помещенного в точке Q(x\ y\ z'), является решением уравнения Лапласа, зависящим от параметров х', у\ z'. Если р(х', у', z') есть распределение объемной плотности зарядов, то обусловленный ими потенциал в точке Р(х, у, z) определяется интегралом ёУ^ (3-9) Для плоских задач аналогично определяется логарифмический потенциал и(х,у)=\ в(х',у')\п ,- ' f^dx'dy\ (ЗЛО) где o(x't у') есть двумерная плотность зарядов. Отметим, что если объемный потенциал стремится к нулю в бесконечности, то функция (3.10) имеет логарифмическую особенность. Как показывает основная формула Грина (3.2), любая гармоническая функция может быть выражена с помощью интегралов, представляющих поверхностные потенциалы. Потенциал поверхностной плотности зарядов (ji(Q), распределенных на поверхности Г, описывается интегралом v(P)=\i^L.dSQ (з.п) и называется потенциалом простого слоя. 123
Если функция v(Q) описывает поверхностную плотность диполей, то обусловленный ею потенциал выражается поверхностным интегралом S^()S (ЗЛ2) и называется потенциалом двойного слоя. Потенциал двойного слоя в некоторой точке Qo на поверхности Г является разрывной функцией: (3.13) Здесь w+(Qo) и w-(Q0) — предельные значения потенциала двойного слоя при подходе к точке Qo с разных сторон поверхности. Потенциал простого слоя непрерывен в точках поверхности Г, но терпит разрыв его нормальная производная: (3.14) где знаками « + , —» обозначены предельные значения производных, a -^-(Qo) есть так называемое среднее значение нормальной производной. Для плоских задач потенциалы простого и двойного слоев определяются аналогично (3.11), (3.12): (3.15) Как и для функций трех переменных, на границе (в данном случае на кривой С) терпят разрывы потенциал двойного слоя и нормальная производная потенциала простого слоя. При этом в формулах (3.13), (3.14) надо только всюду заменить 2я на я. Формулы объемного и поверхностных потенциалов позволяют определить градиенты полей путем непосредственного дифференцирования подынтегральных выражений в (3.9) — (3.12). Градиент потенциала объемной плотности зарядов описывается формулой (3.17) где rPQ — радиус-вектор точки Q с началом в точке Р. Градиенты потенциалов простого и двойного слоев представляются соответ- 124
ственно выражениями ^ (3.18) SQ, (3.19) где nQ — единичный вектор нормали к поверхности Г в точке Q. Применение поверхностной плотности потенциалов дает аппарат для формулировки интегральных уравнений решения краевых задач. Будем искать решение трехмерной внутренней первой краевой задачи (3.5) — (3.6) в виде потенциала двойного слоя ). (3.20) Полагая при этом / = 0 в (3.5) и считая поверхность Г = Г] односвязной, в силу условий (3.13) получаем интегральное уравнение 2nv(P) + \ Kx(P,QWQ)dSQ = gi(P) для Ре Г. (3.21) г Если же решается внешняя краевая задача в неограниченной области Q', являющейся дополнением к Q-f-Г, то вместо уравнения (3.21) получаем -2nv(P)+\ Ki(P,Q)v(Q)dSQ = gl(P\ Per. (3.22) г Для случая двумерной области вместо уравнений (3.21), (3.22) будем иметь соответственно для внутренней и внешней краевых задач интегральные уравнения nv(P)+ \ K*P,QHQ)dl=gi(P), (3-23) с -nv(p)+ \ K2(P,Q)v(Q)dl = gl(P). (з.24) Здесь ядро каждого из уравнений имеет вид /GCtf, Q) = dnQ\mR(P,Q))' Если же для трехмерной смешанной краевой задачи при р = 0 решение внутри Q искать в виде потенциала простого слоя, то с учетом соотношений (3.14) получаем систему интегральных уравнений для fui(Q): \v{Q)Gi(P9Q)dSQ=gl(P\ Per и 125
(3.25) Здесь ядро записывается в виде G\(P,Q)= \/R{P, Q), а производные от ядра могут быть вычислены по формулам 9G(PQ) dG dG 0G, Для внешней краевой задачи'во втором и третьем уравнениях системы (3.25) перед внеинтегральными членами левых частей надо поменять знаки. Для двумерной внутренней краевой задачи аналогичная система имеет вид \li(Q)G2(PiQ)dl = gl(P\ Ре Си с i = g2(P), P € С2, (з.27) где G2(P, Q) = ln , а через С\, Съ, Съ обозначены участкитра- ничных кривых с граничными условиями соответственно (3.6), (3.7), (3.8). Мы отдельно рассмотрим также практически важный случай осесимметричных краевых задач. Переходя к цилиндрическим координатам г, z, Э и производя в (3.25) интегрирование по углу 0, мы придем к уравнениям вида (3.27), только ядро G2(P,Q) надо заменить на П3(РО)=- 4rK^ k= 2^ , (3.28) V( + ')2 + (')2 1{ + г'Г + (г'Г где К— полный эллиптический интеграл первого рода, аг,ги г', г' — координаты точек соответственно Р и Q. Решение смешанных краевых задач можно также искать, используя одновременно потенциалы простого и двойного слоев. Пусть, например, в краевой задаче (3.5) — (3.7) Г = Г1 + Г2 и р = 0. Тогда, определяя на части границы Г\ плотность простого слоя |л(Р), а на Г2 — плотность двойного слоя v(Q), и#з граничных 126
условий получаем два интегральных уравнения Р6Г2. (3.29) Если плотности \x(Q) и v(Q) из -этих уравнений найдены, то потенциал определяется из интеграла Такой подход исследован в работах французских ученых [142, 11]. Рассмотрим еще метод решения внутренней задачи Дирихле, развитый В. Д. Купрадзе, М. А. Алексидзе [4] и основанный на интегральном представлении гармонической функции. Введя обозначение v(Q) = du/ dnQy из (3.1) при Аи = О мы будем иметь для любой точки Р, лежащей вне Й + Г: где F(P) = \ u(Q)——(——— )ds — легко вычисляемая функция, когда u(Q) задана на границе. После нахождения v(Q) из интегрального уравнения (3.31) решение первой краевой задачи для уравнения Лапласа определяется из формулы (3.2). Аналогично можно построить решение и для двумерного случая, надо только вместо формул (3.1), (3.2) использовать (3.3), (3.4).. Как легко видеть, ситуация принципиально не меняется для решения уравнения Пуассона Au = f, при этом в правых частях формул (3.2), (3.31) достаточно добавить интегралы [ р(р L dVQ. Отличием интегрального уравнения (3.31) от ранее рассмотренных является то, что «точки наблюдения» Р не лежат на поверхности Г, по которой ведется интегрирование. Аналогичный подход был развит А. X. Рахматулиной и И. И. Кочетовым [ШЗ] на основе использования фундаментальных решений эллиптических уравнений. В случае внутренней краевой задачи (3.6), (3.7) для уравнения Лапласа такой метод описывается следующим образом. Пусть расчетная ограниченная область Q с границей Г принадлежит некоторой области Q с границей Г такой, что расстояние между любой парой точек Pi 6 Г, Р2 6 Г строго больше нуля. Тогда определяется функция распределения «источников» <x(Q), Q 6 Г, 127
как решение интегрального уравнения (3.32, После нахождения o(Q) само решение находится с помощью интеграла и(Р)=\ (3.33) Аналогично можно решать и внешние краевые задачи. Если решение ищется в неограниченной области Q', являющейся дополнением к Й, то вспомогательную поверхность Г можно брать как внутри Q, так и вне. Достоинством такого алгоритма является то, что поверхность определения «источников» Г можно выбирать удобной для численной реализации, например, сферу. Однако при разнесении «точек наблюдения» и «точек интегрирования» ухудшается устойчивость метода к накоплению ошибок, и решение интегральных уравнений вида (3.2) требует применения алгоритмов регуляризации некорректных задач. В заключение параграфа мы сформулируем актуальную в электростатике так .называемую задачу Робена. Проблема заключается в нахождении распределения потенциала, обусловленного заряженными металлическими телами, на одних из которых заданы потенциалы, а на других — заряды. В терминах потенциала простого слоя u(P)=\ MpL dSQ такую задачу можно сформулировать следующим образом: \^ РбГо, (3.34) = <7и Q6T;, /=1,2, ...,m. (3.35) г, Здесь Го — часть границы Г с заданными краевыми значениями потенциала, Г\, Г2,..., Тт — поверхности тел с заданными величинами зарядов qt. Уравнения (3.35) следуют из применения теоремы Гаусса к поверхностям, охватывающих тела Q, и стремящихся к Г/. Потенциал на каждой из поверхностей Г/ должен равняться постоянной щ, заранее неизвестной: -^dS^uu РеП i=l,2,...,m. (3.36) 128
Таким образом, задача Робена сводится к системе уравнений (3.34) — (3.36), решение которой можно записать в виде .+umu<">, (3.37) где каждая из функций и^ выражается через «парциальную» плотность \i^ с помощью интеграла . / = 0,1,...,т. (3.38) Для нахождения \i^ надо решить т-\-\ систему уравнений, первая из которых имеет вид !И^=Л \ R(P,Q) ~~« "' * ^ " а остальные определяются при g(P) = 0: \ =o, ре То, Г где /=1,2,..., m, a 6f/ = l при / = / и б*/ = 0 при /=й/. После определения всех плотностей [i(/) путем дифференцирования (3.38) из интегралов вида (3.35) находятся «парциальные» заряды на поверхностях Г£: q(» = [ ^—dSQi /=1,2,..., m; / = 0, 1,..., т. Теперь уже могут быть вычислены неизвестные константы щ из решения линейных алгебраических уравнений, получаемых из (3.35): (3.39) Окончательно искомое решение определяется по формуле (3.37). 9 В П Ильин 129
§ 3.2. Численное решение интегральных уравнений для потенциала простого слоя 3.2.1. Двумерные плоские краевые задачи. Мы начнем с рассмотрения внутренних смешанных краевых задач (3.5) — (3.8) для уравнения Лапласа в плоскости, когда расстояние между точками Р(х,у) и Q(x\ у') определяется выражением R(P,Q) = Границу области считаем кусочно-гладкой и состоящей из прямолинейных или криволинейных отрезков 5/, /=1,2,..., L, каждый из которых отличается от других или видом описывающего его уравнения, или заданным на нем граничным условием. Все граничные отрезки считаем описанными с помощью параметра т, имеющего смысл длины и меняющегося на Si в интервале [а/, Р/]. Для прямолинейного отрезка координаты его точек определяются через т формулами х = а1т + Ь1у y = ctt + dh (x,y)eSh а/<т<р,, (3.40) где коэффициенты а/, bi, с/, di находятся по значениям координат концов отрезка x(aj)9 y(ai), х(р/), y(fii). Отрезок окружности задается параметрически соотношениями (3.41) где г/ — радиус, a jt0/, Уы — координаты ее центра. Граница Г может быть многосвязной, а также иметь углы, в окрестности которых функция плотности имеет особенность. Для ее устранения на отрезке S/ с граничными условиями 1-го рода, в окрестности концов которого встречаются такие особенности (с известным асимптотическим поведением) вводится замена [6]: №)=, /f(T)T,fif = ifapW' (3-42) (т — ai) ( — т+P/j где |л(т) — уже гладкая функция. Значения xi, Х2 характеризуют порядок особенностей на концах отрезка и определяются значениями углов соь со2 в концевых точках: Х/ = (я-о)/)/(2я-о)/), /=1,2. (3.43) Например, на свободном конце отрезка со = 0 их=1/2. Если на концах отрезка особенностей нет, то xi = Х2 = 0 и ц(т) = \х(т). Численное решение интегральных уравнений вида (3.27) основывается на дискретизации границы С = Si + S2 + ... + S , для чего каждый из граничных отрезков Si разбиваем точками Pt = = Р(т/) на Ni частей (проще всего это сделать равномерно по т с шагом Дт/ = (|3/ — ai)/Ni). Общее количество интервалов разбиения будет равно N\ + N2+..• +NL. Совокупность граничных отрезков S/ мы будем называть граничной ветвью LOT, m = 1,2, ...,Af. Упорядоченность граничных отрезков Si и их параметрическое представление выберем таким образом, что на m-й ветви параметр т меняется непрерывно от 130
ат до pm. На каждой ветви функцию |л(т) аппроксимируем с помощью В-сплайнов: |im(T)= k=-p (3.44) где Nm — общее количество интервалов разбиения на m-й ветви. В (3.44) tk есть неизвестные коэффициенты, а В^ (т) — элементарный В-сплайн п-го порядка, определяемый следующим образом: i = k-a <О/(т) = (т — Т/_а)(т — Если п+1 — нечетное число, то (3.45) , р-а, в противном случае а = р = (л+1)/2, р = (п— 1)/2. Через т/ обозначаются так называемые узлы сплайна, которые для нечетных п совпадают с точками т„ а для четных — лежат посередине между т/_1 и т/. Выражение (/(т))+ равно /(т) при />0и нулю — в противном случае. На рис. 17 приведены для иллюстрации графики -2Л элементарных В-сплайнов 1-го, 2-го и 3-го порядков В[>п)(т), п= 1,2,3, для случая равномерной сетки с шагом А. Графики ££п) (т) получаются из них простым сдвигом на т*. Соответствующие формулы для В[)п)(т) имеют следующий вид: о , h + r, h-x, О , -h, т; (3.46) 131
т<-ЗА/2, -ЗА/2<т<-А/2, -А/2<т<А/2, А/2 <т< ЗА/2., ЗА/2 < т; (3.47) т<-2А, 4А3-6Ат2-Зт3, А<т<о! 4А3 — 6Ат2 + Зт3, 0 < т < А, 6/И (2A —т)3, А<т<2Л, Д 2А<т. (3.48) Поскольку каждый из сплайнов В{)п\т) обладает непрерывными производными до (п— 1)-го порядка, то такой же гладкостью обладает и соответствующая аппроксимация \хп(г). Как видно из (3.44), если граничная ветвь разбита на Nm интервалов, то функция £п(т) выражается как линейная комбинация Af-f-l +2p сплайнов. Для однозначного определения сплайновой аппроксимации на концах отрезка [аот, рт] задаются «граничные условия» на сплайн, для чего могут использоваться следующие соотношения: (3.49) Здесь а, й, с, d — заданные числа, выбираемые из априорных соображений о характере поведения аппроксимируемой функции в окрестности концов отрезка [am, pm]. Если, например, граничный отрезок подходит перпендикулярно к линии симметрии потенциала, то на соответствующем конце естественно положить \i'n=0. Для замкнутых граничных ветвей их концевые точки совпадают, и тогда на сплайн накладываются условия периодичности; McLm) = |I«(Pm), Й(ат)= jU(Pm), |1^(ат)= Й'(Р«). (3.50) Наиболее просто реализуется, естественно, аппроксимация сплайнами первого порядка. С точностью до постоянной 1/А_все tk представляют собой значения интерполируемой функции jli(t^) в узлах^ Граничных условий на сплайн при п=1 не надо, и в (3.44) jx(t) фактически есть обычная кусочно-линейная аппроксимация. При аппроксимации плотности pi(x) В-сплайнами отдельного рассмотрения заслуживает случай, когда граничные линии разветвляются, как это показано, например, на рис. 18. Здесь изображены характерные эпюры квадратичных сплайнов в окрестности точки стыка прямых и OL. В плоскости KMN элементарные сплайны определяются, как в одномерном случае. На луче OL сплайны 132
надо определить так, чтобы они совпали с соответствующими элементарными сплайнами на ON, если плоскость KOL повернуть вокруг оси О К до совмещения с плоскостью KON. Если ломаную NOL описать непрерывным образом с помощью параметра длины т. то на ней в окрестности точки «О» сплайны 5/(т), / = 1, 2, 3, представляются как обычно. Функция \х в точке «О» при этом будет аппроксимироваться выражением t2B2(%) Здесь параметр т выбирается таким образом, что он представляет длину как прямой MN, так и ломаной MOL (начиная от некоторой общей точки на луче ОМ). Аналогично можно определить J Л / M f к щ >>( Ilii^ Рис. 18. сплайны, когда в одной точке стыкуются три или более граничных отрезка. Дополнительных граничных условий на сплайны в таких точках для определения аппроксимации не требуется. Аппроксимационные качества В-сплайнов являются высокими не только в отношении приближаемых функций, но и их производных. Если ип{%) есть интерполяционная аппроксимация функции и(х) с помощью В-сплайнов /1-го порядка (ип(т/)==и(тг-)), то имеют место оценки р = 0, 1,...,п, где р есть порядок производной, h — максимальный шаг сетки, а Мр — не зависящие от h постоянные. Приближенное решение системы интегральных уравнений строим по принципу коллокаций следующим образом. Подставляя в интегральные уравнения (3.27) вместо искомой функции |я(т) ее сплайновые аппроксимации на каждой из граничных ветвей и требуя точного выполнения граничных условий в точках дискретизации Pi e Г, получаем систему линейных алгебраических 133
уравнений относительно коэффициентов tki и у 2 ЬВР(ъ) + \ 2 tkB<kn\T')Gfa, т') /(х')р(х') dx' = /(x,), (3.51) Здесь oti, pL — границы отрезка изменения т, на который отображается вся граница Г при ее параметрическом представлении. Ради единообразия мы формально объединили все три уравнения из (3.27). Для точек, лежащих на границе с условием 1-го рода, внеинтегральный член в левой части (3.51) отсутствует (у = 0), а для остальных т/ имеем у = л. Правая часть /(х/) равна gi(Pt) или g^Pi\ если соответствующая «точка наблюдения» лежит соответственно на участке границы С\ или С2; если Р/еС3, то /(т/) = 0. 7(т') есть якобиан преобразования переменных от х\ у' кт' и определяется выражением Функция р(х'), отличная от единицы на граничных отрезках, в концах которых учитывается особенность плотности, определяется из (3.42). Суммирование под интегралом проводится по элементарным В-сплайнам, определенным на всех М граничных ветвях. Количество уравнений (3.51) равно общему числу точек дискретизации границы. Правые части уравнения равны g2(x/), Pi е= С2, Ядро G2(x/, т') определяется для участков границы с разными типами граничных условий следующими формулами: 1 _/ о с .— г* In Д-1пГ 1 .-8_ д dnQ = {cos(nQfx) *—^- +cos (n причем в последнем выражении надо положить jc = x(x/), f/ = t/(x»), jc/ = a:(x/), у/==у(т/), а величины cos (nQ, jc), cos (nQ, у) означают коси- 134
нусы углов между осями х, у и нормалью к границе в точке с координатами х(т'), у{т'). Отметим, что зачастую применяется более грубая математическая модель без учета особенностей в узловых точках. Если не требуется вычислять решение в окрестности особых точек или если вблизи них неизвестно асимптотическое поведение плотности, то на соответствующих граничных отрезках Si в таких случаях полагается р(т/)=1. Как следует из вида ядра интегрального уравнения, при стремлении точки Q к Р оно имеет логарифмическую особенность, которую можно устранить с помощью несложного аддитивного преобразования. Пусть некоторое подынтегральное выражение имеет вид ш(т, т') == и(тг, т') + v(t, т') In |т — т'|, где функции и(т, т'), и(т, т') не имеют особенностей. Тогда интеграл от w можно вычислить следующим образом: , т')с1т' = J {ф, т') + [v(t, т') - о(т, т)] In |т — т'|)Л' + |т —т'|Л/. (3.53) Последний интеграл берется точно, а в предпоследнем подынтегральная функция уже «хорошая», и для вычислений теперь обосновано применение квадратных формул. При вычислении элементов матрицы указанные преобразования требуется делать только при интегрировании по интервалам разбиения границы, примыкающим к точке наблюдения Р,-. К уравнениям (3.51) для замыкания системы надо добавить 2рМ уравнений, аппроксимирующих граничные условия для сплайнов, которые получаются как результат подстановки (3.44) в соответствующие уравнения (3.49) или (3.50). Пусть, например, краевая задача обладает симметрией относительно какой-то линии. Если концевая точка, соответствующая значению параметра т; = ат, принадлежит граничному отрезку, «стыкующемуся» перпендикулярно с линией симметрии, то для сплайна естественно поставить граничное условие-~М _ =0. Соответствующее уравнение алгебраической системы будет иметь вид Ш±\ где сумма берется фактически по тем элементарным сплайнам, производные которых не равны нулю в точке т = ат. Для квадратичного и кубического сплайнов получим уравнение t\-\ — u-|_i = 0. Таким образом, получаем линейную алгебраическую систему, в которой число уравнений и неизвестных равно N—{2p-\-\)M-\- + 2 Nm. Обозначая через t = {t\, t2, ...,tN) вектор неизвестных т = \ коэффициентов сплайна, можно записать ее в виде At = f. (3.54) 135
Здесь / = {/ь /2, ..., Ы есть известный вектор, А — квадратная матрица порядка N. Если k-oe уравнение этой системы получается из соотношения (3.51) для точки наблюдения Р(т,-), то /Л = /(т«); в противном случае fk равно нулю или определяется из правых частей граничных условий (3.49). Элементы строк матрицы Л, соответствующие точкам Р(тг) е С, получаются после проведения интегрирования в (3,51). Иногда это можно выполнить точно, но зачастую приходится применять численное интегрирование. В последнем случае можно рекомендовать квадратурные формулы Гаусса, как имеющие высокую точность при вычислении подынтегральной функции в достаточно малом числе вспомогательных точек (на практике 3—5 квадратурных точек на одном интервале разбиения граничного отрезка является вполне достаточным). Матрица Л является плотной (малое количество ненулевых элементов имеется только в строках, соответствующих граничным уравнениям сплайна) и, вообще говоря, несимметричной. Решение системы (3.54) с помощью итерационных методов не представляется нецелесообразным, поскольку спектральные свойства матрицы Л, необходимые для оптимизации таких алгоритмов, как правило, неизвестны. При использовании прямых методов (гауссовского исключения или основанных на ортогона- лизации) можно рекомендовать итерационное уточнение решения, заключающееся в следующем. Пусть при решении системы (3.54) в силу погрешностей округления мы получили не точный результат, а некоторое приближение /(1). Тогда вычисляем вектор невязки г(1) = / — Л/(1) и находим поправку к решению (3.55) с помощью которой уточняем первоначальное приближение (з.5б) Если новая невязка r^ = f — Л/(2) еще велика, то аналогично можно вычислить новую поправку z^=A~l№ и новое уточнение £(3) и т. д. Если начальное приближение t^ не совсем уж плохо и матрица имеет не катастрофически плохую обусловленность, то процесс итерационного уточнения сходится очень быстро, и на практике достаточно сделать только одну поправку. Вычисление невязки дает еще тот дополнительный эффект, что позволяет осуществлять контроль точности решения. Поскольку вспомогательная система (3.55) решается с той же матрицей, что и исходная, это позволяет экономить объем арифметических действий, и суммарный объем операций при проведении одного итерационного уточнения увеличивается примерно только на 25%. При программной реализации этого алгоритма необходимо иметь в виду, что вычисление невязки обязательно нужно делать с двойной точностью, поскольку она почти всегда получается как результат вычитания близких по величине чисел, что приводит к потере первых значащих цифр. 136
Особый случай представляет собой решение внешней краевой задачи на плоскости. Дело в том, что если непосредственно из системы (3.27) найти функцию плотности простого слоя (напомним, что при этом перед внеинтегральным членом левой части второго уравнения надо поменять знак), то соответствующий потенциал, как это видно из (3.15), при- Р-+оо может также стремиться к бесконечности. В то же время постановка плоской внешней краевой задачи содержит условие ограниченности потенциала. Чтобы удовлетворить последнему требованию, можно поступить следующим образом. Мы для простоты рассмотрим 1-ю краевую задачу при наличии внутренних границ с условиями на С3, выраженными третьим уравнением из (3.27). Определим сначала плотность \х0 непосредственно из системы (3.27) при заданном распределении потенциала gi(P) на границе (второе уравнение — для Р<=С2 — мы исключили). Далее найдем функцию \i\ как решение краевой задачи, в которой потенциал на границе всюду равен единице (в (3.27) правую часть gx(P) для РееСх надо заменить на 1). Для этих двух задач найдем соответствующие значения полных зарядов на границе Qo = J juto(Q) dl, Q\ = \ H-i(Q) dl и определим некото- c с рую постоянную б из условия Q0 + 6Qi=0. Очевидно, что функция является гармонической функцией, принимает на С\ граничные значения £i(P) + 6oh обращается в нуль на бесконечности. Легко также показать, что v\(P)=l, поскольку эта функция есть единственное решение уравнения Лапласа, равное на всей границе единице. Отсюда получаем, что потенциал v(P) = v0(P) — б есть искомое решение внешней краевой задачи, поскольку на границе он принимает заданные значения g\(P)9 а на бесконечности стремится к постоянному числу б. Если функция плотности из решения интегральных уравнений найдена, то распределение потенциала как для внутренней краевой задачи, так и для внешней, определяется из интеграла Кроме того, с помощью дифференцирования подынтегрального выражения в (3.57) могут быть вычислены производные различных порядков. Например, первая производная по направлению / определяется выражением (3.58) 137
7 tWt [x-x'(t')]cos(1, x) — - Oti Такая возможность имеет большое значение при необходимости нахождения производных потенциала, поскольку зачастую используемое численное дифференцирование с помощью конечных разностей приводит к потере верных значащих цифр. Отметим, что для вычисления производных в точках на границе или вблизи нее при интегрировании по интервалам, близким к «точке наблюдения» (х, у\ необходимо производить выделение логарифмической особенности, как и при определении элементов матрицы А. Численные методы решения интегральных уравнений для потенциала простого слоя менее исследованы в теоретическом плане, чем методы конечных разностей или конечных элементов. Для многосвязных областей или кусочно-гладких границ оценки погрешности решения неизвестны. Мы приведем без доказательств результат, полученный В. В. Ворониным и В. А. Цецохо [32] для уравнения К (Л Q)ix(Q)dl=g(P\ где Г — замкнутая гладкая кривая на плоскости, а ядро К(Р, Q) имеет логарифмическую особенность. Введя параметризацию кривой, интегральное уравнение представим в виде где a Li — некоторый непрерывный из Ср> а в С7' а оператор, 0<а< 1, q = тт(р + 2, г). Предполагается, что g(x) принадлежит пространству СЛ'а периодических функций, r-я производная которых удовлетворяет условию Гельдера с показателем ос. Норма вводится следующим образом: max |g(T)l+suf' Обозначая через juii(t) приближенное решение интегрального уравнения, получаемое при кусочно-линейной аппроксимации \х(т) на сетке с шагом h и использовании метода коллокаций, 138
имеем при г>3 оценку При кусочно-квадратичной аппроксимации функции \i (т) получается более точная оценка для приближенного решения \х2 (т): \\п h\2\\g\\ray где yrh — hr~l при 2<г<3 и yrh = h3~a при г>4. Через Сь С2 обозначены не зависящие от h постоянные. 3.2.2. Осесимметричные задачи. Решение осесимметричных задач теории потенциала в цилиндрической системе координат производится во многом аналогично плоскому случаю с тем основным отличием, что ядра интегральных уравнений имеют более сложный вид. Если r,z — координаты образующих осесимметричных поверхностей, то после перевода описания граничных отрезков S/ к параметрическому виду г = г(т), z = z(t), а/^т^Р/, /=1,2, ..., L, систему интегральных уравнений (3.27), (3.28) можно привести к виду ,(t')/(t')G3(t, T')dT' = gi(r), Р(т) е Г,, О[а G3(t, t') + -±- G3(P(t), Q(x'))W)dx' = g2(x), P(x) e Г2, Кт^Оз^т), Q(x'))/(x')rfT' = 0, Р(т)еГ3.(3.59) Здесь /(т') — шаблон преобразования 7(т/)= ( ^ ) т=т/. Ядро и его производные описываются формулами GT TV , т') = [г(т). + r'Mf + [z(x) - z'(t')P, (nQ, Z), dnQ дг —v-^w I dz "I \ / С/1*\ Iff иЛ I /л СЛ\ — —^ — t,\k) — Д(«) , (о.,ои) r'(z'-z) 139
где E(k) — полный эллиптический интеграл второго рода. Во втором уравнении системы (3.59) знаки «-+-» и « — » относятся соответственно к внутренней и внешней краевым задачам. Потенциал плотности простого слоя ) = \ [i(T0G3( , z, т'), z'(t')) /C (3.61) в данном случае обращается на бесконечности в нуль, и различия методов решения внутренней и внешней задач, как это было для плоскости х, у, здесь не имеется. Численное решение интегральных уравнений (3.59), как и в предыдущем пункте, проводим с помощью дискретизации границы, аппроксимации плотности В-сплайнами (3.44) с учетом особенностей в узловых точках по формуле (3.42) и формировании алгебраической системы вида (3.51) из условий коллокаций с добавлением уравнений граничных условий для сплайнов. Получаемая система линейных алгебраических уравнений (3.54) имеет матрицу А такой же структуры, только определение ее элементов требует более сложных вычислений. Эллиптические функции K{k) и E(k) могут быть аппроксимированы с высокой точностью известными полиномиальными представлениями. Одна из таких аппроксимаций, обеспечивающая максимальную ошибку не более 6ХЮ~~7, имеет вид (3.62) /=0 /=0 Значения коэффициентов а„ bt, ciy dt определяются из табл. 8. Таблица 8 ai b, ci 0 1,386294361 0,5 1,0 0,0 l 0,097932891 0,124750742 0,44479204 0,249697949 2 0,054544409 0,060118519 0,085099193 0,08150224 3 0,032024666 0,010944912 0,040905094 0,01382999 Поскольку вычисление эллиптических интегралов является трудоемкой и многократно повторяемой операцией при формировании матрицы системы и расчете потенциалов, то целесообразно для некоторых интервалов изменения аргумента k использовать более экономичные формулы. Например, при малых значениях 140
k эффективно использовать ряды [55]: где k' = -yjl — k2, Ш\ = ((1 — k')/(\ + k'))2. Использование выписанных пяти членов ряда обеспечивает при k ^ 0,5 величину погрешности не более 10~10. Как видно из (3.60), (3.62) ядра интегральных уравнений и в осесимметричных задачах имеют логарифмическую особенность при ту'->т. Поэтому при вычислении элементов матрицы Л, когда интервал интегрирования примыкает к точке наблюдения, необходимо делать аддитивное выделение особенности по формуле (3.53). Само численное интегрирование также целесообразно проводить с помощью квадратурных формул Гаусса. 3.2.3. Трехмерные краевые задачи. Численное решение интегральных уравнений для трехмерных краевых задач, не отличаясь по принципиальным моментам от случая двумерных задач, является гораздо более сложной проблемой в техническом плане. Дело заключается, естественно, в повышении размерности. Функцию плотности надо аппроксимировать на двумерных многообразиях, а численное интегрирование проводить по поверхностям, имеющим в практических задачах зачастую сложную конфигурацию. Особенности поверхностной плотности потенциала теперь имеют место в окрестностях двугранных или трехгранных углов, и ее асимптотическое поведение имеет более сложный вид. Если характерный шаг дискретизации границы есть А, то порядок получаемой системы линейных алгебраических уравнений равен O(h~2). При этом для обеспечения заданной точности возникает необходимость решения плотных систем с числом уравнений до тысячи или более, что требует больших ресурсов ЭВМ. Система интегральных уравнений в данном случае описывается формулами (3.25), (3.26), которые мы несколько конкретизируем: dGx _ X-X' dGi _y-y> 001 _ z-zf (3-63) dx ~~ #3 ' Qy #3 ' ~z ~RZ ' Здесь х, у, z и х', у', z' — координаты соответственно точек Р и Q. Во многих ситуациях оказывается удобным параметрическое описание граничных поверхностей x = x(U\ y = y(U\ г = г$Л), (3.64) 141
особенно, если геометрия области позволяет в переменных 5> £ представить границу, состоящей из прямоугольников a^<g<pP, с42) <£ < |3(m2), /=1,2 Z., m=l,2,...,Af. Якобиан преобразования (3.64) задается выражением где в квадратных скобках через дроби обозначены определители вида вида Е. О В переменных £, £ в окрестности ребер двугранных углов легко осуществить выделение особенности для граничных условий 1-го рода. Функция плотности представляется в виде произведения n(g,£) = Й1,£)р(£,£), (3.66) где первый множитель есть уже гладкая искомая функция, а второй характеризует асимптотическое поведение плотности вблизи особенности. В плоскости |, £ части различных граничных поверхностей будут представляться прямоугольниками или другими фигурами, и в каждой из них р(£, £) определяется по-своему. В тех подобластях, на границах которых особенностей нет (или они не учитываются), полагается р(|, у = 1. Если же, например, прямоугольник [ii, 62] X [Si, £2] ограничивается ребрами двухгранных углов | = |i, t == £1 с величинами соответственно соi, C02, то надо P(U) = ((Б - БОХ1(Е - ЕО-)-1, где значения xi, x2, определяются, как и для двумерных задач, формулами (3.43). В общем, р(£, £) должно содержать столько множителей, сколько в данной подобласти определения р содержится разных особенностей. В плоскости (£, Q построим прямоугольную сетку I = Ь, £= S/, / - 1,2,..., /, / = 1,2, ..., У, (3.67) на которой проведем кусочно-полиномиальную аппроксимацию плотности pi(g, £). Такие аппроксимации — билинейная, биквадра- тичная, бикубическая — можно строить путем непосредственного обобщения одномерных В-сплайнов. С другой стороны, фактически задача аппроксимации здесь стоит та же, что и в хорошо разработанной теории конечных элементов (см. § 2.2). Используя технику построения треугольных или четырехугольных конечных элементов, несложно провести аппроксимацию плотности и в тех случаях, когда граничные поверхности сложные и в плоскости 142
(I, £) представляются совокупностью фигур различных типов. Простейший метод заключается в триангуляции отображения граничных поверхностей в параметрической плоскости и использовании кусочно-билинейной аппроксимации. На прямоугольной сетке (3.67) при этом будем иметь ^-^)+ ^Д. (ki+i-Vn), (3-68) где frj = £,(&, £/), & < | < g/+i, £, < t < S/+i- Используя середины сторон триангуляции или другие вспомогательные точки, можно строить конечно-элементные аппроксимации более высокого порядка точности, как это описано в § 2.2. Вводя единую триангуляцию точек дискретизации с помощью индекса «k» и используя финитные базисные функции -ф*(£, £) конечно-элементной аппроксимации, мы можем записать Й6,£)~2 скук(ЪЛ), (3.69) k где ck — подлежащие определению коэффициенты; суммирование производится фактически по малому количеству функций г|)ь отличных от нуля в точке (£,£). В частности, для кусочно-бйли- нейной аппроксимации, обозначая индексами k\, &2, &з точки (/,/), (/+1,/), (/,/+1), мы можем для соответствующего треугольника PkiPk2Pk3 переписать (3.68) в виде С). (3.70) Коэффициенты с^ в данном случае совпадают со значениями ill в соответствующих точках, а базисные функции приводятся к виду ь)=1Ы£^)^ Подставляя аппроксимацию ji(^, Q в интегральные уравнения (3.25), записанные для точек дискретизации границы Р^ k=\, 2, ..., /С, и производя (численно или аналитически) вычисления необходимых интегралов, получаем систему линейных алгебраических уравнений для коэффициентов ck. Для задачи Дирихле систему можно записать в виде aklci + ... + akkck + ... + akKcK = gi(Pk), k = 1/2,... К, (3.71) * где элементы матрицы аы описываются выражением X Ог(хк, ук, zk, x'(l', £'), У'{1', I'), г\\\ 1')Щ1\ t,')dV dt,'. (3.72) 143
Аналогично с помощью (3.25), (3.63), (3.66), (3.69) могут быть записаны алгебраические уравнения и для других типов граничных условий. 3.2.4. Интегральные уравнения для некоторых других эллиптических задач. Формально близким обобщением уравнения Лапласа является уравнение Гельмгольца Аф_й2ф = 0, (3.73) к которому сводятся, например, задачи об электромагнитных колебаниях. Решение этого уравнения представляется с помощью плотности простого слоя в виде ф(/>)= J KQ) eXPi^'Q)} dS, QzeT. (3-74) Аналогично рассмотренному выше, для различных краевых задач могут быть сформулированы интегральные уравнения. Другим практически важным классом являются задачи, близкие к осесимметричным. Рассматривая потенциал в цилиндрической системе координат и представляя его в виде разложения по азимутальным гармоникам Ф(г, z, в)=фо(г, z) + q>^(r, z) cos в + ф^(г, z)sin6 + z) cos2e + q#>(r, z)sin26 + ..., (3.75) мы получаем, что каждая из них удовлетворяет уравнению 0, /_1. 2. (3.76) Решение такого уравнения можно искать с помощью аналога плотности потенциала простого слоя в виде интеграла фт(Р)= ^^m\Q)G^m\PyQ)dSQy (3.77) г где функция G(m)(P,Q) описывается выражением costnQdd __ я 2г' Г cosm9flf6 (3.78) O () 0 Здесь ft определяется формулой из (3.28), как и для осесим- метричной задачи потенциала, а (г, г) и (г', z'), как обычно, представляют координаты точек Р и Q. С помощью этих представлений формируются интегральные уравнения решения краевых задач для ц)т(г, z), как это делалось в п. 3.2.2 (в уравнениях (3.59) надо только заменить G на G(m)). Ядра новых уравнений выражаются через ряды от полных 144
эллиптических интегралов: ОМ(Р,д)=(_1Г_|_(Л0+ 2 sM A0 = K(k), At = HK(k)-mi Л, = аИ/_, + р;^-2. / = 2,3,..., So=l, Sl = sHl[(-l)*jj±zlfo (3.79) _ 2/-2 1+fe2 o._ 3 — 2/ ._, 2 В частности, для т = 2 эти выражения сводятся к формуле Для вычисления K(k) и £(й) можно использовать аппроксимации (3.62), однако при малых значениях аргумента (&<:0,2) нахождение разности K(k) — E(k) будет сопровождаться значительной погрешностью. Чтобы этого избежать, следует использовать представление эллиптических интегралов через степенные ряды, хорошо сходящиеся при небольших k: т( т количество членов можно выбирать автоматически по значению &, чтобы отброшенные члены не нарушали необходимой точности. Для других типов краевых задач можно сформулировать следующий общий результат [103]. Пусть в области Q с границей Г ищется решение задачи и(Р), P^Q: g, (3.82) где L — эллиптический оператор второго порядка, для которого известно фундаментальное решение /С(Р,РГ), ди/dl — производная и по направлению /. Предположим, что условия существования и единственности решения данной задачи выполнены и что оно представимо в виде и{Р)=\ k'(P, P')y{P')dP'. ' (3.83) г Тогда для функции <р(Р) из (3.82) получаем интегральное уравнение (а + Р -£i)k{P' Р'ЫРУР' = g(P), РеГ. (3.84) 10 В П Ильин 145
Г i § 3.3. Примеры решения методических задач Для иллюстрации точности методов интегральных уравнений потенциала простого слоя мы приведем несколько результатов по расчетам задач с известными точными решениями, выполненных В. А. Катешовым с помощью описанного в последней главе пакета программ Эфир. А. Поле сферического конденсатора. В цилиндрической системе координат расчет- •* ная область ограничивается двумя z полукругами, см. рис. 19. Точное решение в указанной на рисунке системе координат имеет вид Рис. 19. Rxz где радиусы соответственно внутреннего и внешнего кругов. Потенциал внутреннего круга полагается равным единице, а внешнего — нулю, значения радиусов— /?i = 60, /?2 = 180. В табл. 9 приведены полученные в расчетах численные значения, а также величины соответствующих погрешностей в процентах не только для потенциала, но и его третьих производных (их точные значения описываются формулой ф"' = — тЛА г?-). -г)4 Таблица 9 Z 1 2 3 4 5 6 7 8 9 10 11 10- ф 0,2941071 0,6249999 0,9999997 1,428571 1,923076 2,499998 3,181816 3,999997 4,999996 6,249999 7,857229 103-б% 3,7 1,6 • 10~2 3 • 10"2 -7 • 10~2 2,08- 10~' 8 • 10~2 1,3- 10~1 7,5-. 10"2 8,0 • 10~2 1,6- 10~2 -1,1 100 . q>"' 0,3678504 0,4394198 0,5333328 0,6559758 0,8192981 1,041665 1,352364 1,799996 2,469149 3,516313 5,217868 ю4. б% —4020 76 0,38 1,8 1,1 4,8 4,4 2,2 -3,6 ' -197 5700 Эти данные получены из решения интегрального уравнения (3.59), соответствующего задаче Дирихле для двумерного уравнения Лапласа в цилиндрической системе координат. Плотность потенциала аппроксимировалась квадратичными В-сплайнами на равномерной сетке, полученной разбиением внутреннего круга на 10 интервалов, а внешнего — на 30. Вычисления вспомогательных интегралов по контуру проводились с помощью квадратур- 146
ных формул Гаусса, использующих по 4 узла на каждом интервале разбиения границы. Как видно из таблицы, расчет потенциала и его производных осуществляется с достаточно высокой точностью вдали от границы, однако вблизи нее погрешность существенно повышается. При проектировании электронно-оптических систем, формирующих изображения, для определения коэффициентов аберраций и других оптических характеристик приборов необходимо на оси симметрии вычислять с высокой точностью потенциал и его производные до второго порядка, в том числе вблизи границы и даже на поверхности самих электродов. С целью демонстрации возможного способа решения такой задачи мы опишем результаты следующего численного эксперимента. Рассчитывалось поле сферического конденсатора с теми же параметрами, что указаны выше. Внутренний полукруг разбивался на 20 интервалов, а внешний — на 60. Порядок сплайнов использовался второй, а число гауссовских квадратур 4, как и ранее. Поскольку вблизи электродов производные вычисляются непосредственно из интегралов по границе со значительной погрешностью, применялся следующий прием. На отрезках [О, Н\] и [L — #2, L] оси симметрии (L = /?2 — R\) вблизи внутреннего и внешнего электродов потенциал вычислялся с помощью эрмитовых полиномов 5-го порядка ф(г) = а0 + ax{z — z0) + a2(z — z0)2 + a3(z — zof + b(z - z0)5, (3.85) где Zo = O для левого отрезка и Zo = L — для правого. Для определения коэффициентов полиномов на каждом из отрезков использовались, с одной стороны, значения потенциала и известные соотношения между производными на электродах ф0 = ф(2о), ф' = -*-<р", <р™ = -*-<р<'"> - -g-ф', (3.86) где R — радиус кривизны граничной поверхности, а с другой — вычисленные с помощью интегралов значения потенциала cpk и его двух первых производных <р£, <р£'. В результате получаем систему уравнений ai8k + a28k + ci3bk + a48i + a58l = q)k — <p0, ах + 2a28k + 3a36f + АаАЫ + ЪаъЬ\ = <р£, 2а2 + 6а36, + 12аЛ + 20а5б1 = q#, (3.87) а\— /?а2 = 0, а4—-|а3~-|^-=0, 8k==zk — z0. В целом на отрезке [О, L] потенциал определялся в 121 равномерно расположенной точке (включая граничные), причем на отрезке [Н\, L — Я2] — непосредственно из интеграла от поверхностной плотности. Затем по найденным значениям строился интерполяционный сплайн 5-го порядка с граничными условиями Ю* 147
вида (3.86), а путем его дифференцирования вычислялись в тех же узлах первые производные. Результаты расчетов при #i = 15, #2=10 приведены в табл. 10. * Таблица 10 Z 1 3 5 10 16 32 48 64 103-ф 2,793287 8,474550 14,28567 29,41171 48,78047 108,1082 181,8182 275,8622 104 • 6% 3 3 0,3 0,2 0,02 0,01 0 0,003 103 • ф' 2,808892 2,872729 2,938768 3,114189 3,346210 . 4,108852 5,165309 6,688444 Ш4 • 8% 3 3 3 0,7 4 3 4 3 105 • ф" 3,13863 3,24627 3,35892 3,66428 4,08232 , 5,55146 7,82665 11,5324 ю2. ь"% 0,7 0,7 0,9 1,4 3,7 1,7 0,6 0,5 Приведенные значения вторых производных получены с помощью центральных разностей от первых («сплайновых») производных. Вычисления <p"(z) непосредственно из интерполяционного сплайна дают очень хорошую точность при точных (p(z,-), а при наличии ошибки потенциала в 7-м знаке, как это имеет место здесь, использование сплайна для численного дифференцирования приводит к погрешности <р" в 10—50 раз больше, чем в табл. 10. В данном эксперименте были также вычислены из сплайна 3-я и 4-я производные по г в точке г = 2 = 0. Их расчетные значения оказались равными 5,14495' 10~~7 и 1,14353-10~8, а соответствующие погрешности — 0,002% и 0,004%. Рассмотренные результаты свидетельствуют об очень высокой достижимой точности данного метода, которой, по-видимому, трудно достичь в методах конечных разностей или конечных элементов. Б. Цилиндрический конденсатор. Для иллюстрации решения двумерной задачи в декартовой системе координат мы рассмотрим первую краевую задачу для области, изображенной на рис. 20. Радиусы и потенциалы кругов равны соответственно /?1 = 1, /?2 = 2, ф(/?!)=1, ф(/?2)=о. Точное решение в данном примере описывается формулой тт Рис. 20. Численное решение искалось на окружности радиуса /?=1,5, где точное решение равно 0,415039. В табл. 11 приведены для различных координат х значения фЧИСл и погрешности б в процентах (соответ- 148
ствующие значения координаты у определялись из уравнения окружности). Расчеты проводились при разбиении меньшей окружности на 20 равных интервалов, а большей — на 40. Таблица 11 X —0,3 —0,4 —0,5 —0,6 —0,7 ^числ 0,415019 0,415003 0,415020 0,415051 0,415060 Ю3 • 8% 5 9 4,8 —2,8 —5,3 X —0,8 —0,9 — 1,0 — 1,1 — 1,2 ЧцИСЛ 0,415072 0,415050 0,415044 0,415035 0,415034 ю3 -б% —7,8 —2,8 —3,8 0,9 1,3 В. Расчет гармоники неосесимметричного возмущения потенциала в сферическом конденсаторе. Пусть некоторая осесимметричная поверхность с заданным потенциалом подвергается малой эллиптической деформации таким образом, что в поперечном сечении круг радиуса R превращается в эллипс с длинами полуосей а, 6, где a = R, b = = R(l—е), е — параметр возмущения. Тогда получаемое распределение потенциала представимо в виде (3.75). Мы рассмотрим задачу вычисления первой гармоники <р\1\ которая удовлетворяет уравнению (3.76) при т=1 и граничному условию ф^) т==—г~| г> для сферического конденсатора с возмущаемой внешней сферой. Вычисления проводились при тех же счетных параметрах, что и в п. А. В табл. 12 даны результаты расчетов первой производной по г от ф^ при г = 0 и разных значениях г. Через д^\1 обозначены Таблица 12 Z 0 10 20 30 60 100 110 1С3 . Эф(1) 1,5432 1,5321 1,5181 1,5000 1,4022 9,2648 5,9337 103 . ЭФ<1> 1,5439 1,5324 1,5208 1,5032 1,4051 9,2643 5,9641 \% 0,04 0,02 0,18 0,21 0,21 0,006 Ц,51 ID3. ,ф(1) 1,5432 1,5327 1,5212 1,5036 1,4053 9,2648 5,9644 би% 0,0006 0,04 0,21 0,24 0,22 0,0004 0,52 точные значения ду^/дг, через дф(,1/—численные результаты, полученные при задании точных граничных условий для (р{1\ и через Зф^и — расчетные данные, полученные при задании граничных условий путем нахождения производной по г на границе от невозмущенного решения фо, также определенного численно. Величины бт, 6И обозначают соответствующие относительные погрешности в процентах.. 149
Г. Расчет поля двуслойного сферического конденсатора. Рассматривается задача о, вычислении поля сферического конденсатора, имеющего радиусы внутреннего и внешнего электродов с потенциалами Vi = l, K2 = 0 соответственно для R\ = 6, /?3= 18, в котором имеются две среды с разными диэлектрическими свойствами: е = ei = 1 для /?i <г</?2= 12 И 8 = 82 = 2 ДЛЯ 7?2<^</?3- Распределение потенциалов в данном случае описывается формулой . . [ах/ V } \а2/ (V\-Vt) ах = (Л l-+^( J L \ R\ R2 ^ 82 V /?2 #3 Ri 82 /?з В табл. 13 приведены точные и расчетные значения потенциалов и их первых производных по радиусу фт(г), фт(/)> Фр(г)> Фр(г) для разных значений г (при r = R2 дана полусумма предельных величин ф^ ф+). Таблица 13 г 6 7 8 9 10 11 12 13 14 15 16 17 18 фт 1 0,755102 0,571429 0,428571 0,314286 0,220779 0,142857 0,1098*90 0,0816326 0,0571429 0,0357142 0,0168067 0 1,000000 0,754919 0,571443 0,428574 0,314285 0,220791 0,142857 0,109909 0,0816310 0,0571427 0,0357139 0,0168128 ю-11 ф; 0,285714 0,209913 0,160714 0,126984 0,102857 0,0850059 0,0535714 0,0304311 •'0,0262391 0,0228571 0,00200893 0,00177954 0,00158730 0,285714 0,209048 0,160729 0,126990 0,102861 0,0849117 0,0535714 0,0305361 0,0262364 0,0228567 0,00200905 0,00177525 0,00158714 Расчеты проводились при разбиении полуокружностей с радиусами Ru R2, R3 соответственно на 6, 12 и 18 интервалов. Аппроксимация плотности осуществлялась с помощью квадратичных В-сплайнов. Вспомогательные интегралы вычислялись по квадратурным формулам Гаусса^ с четырьмя узлами. Как видно из результатов, точность высокая, но она несколько ухудшается для точек, лежащих вблизи границы, хотя для граничных точек погрешность очень мала. Это объясняется тем, что в околограничных точках программная реализация алгоритмов, использованная для данных расчетов, не предусматривает выделение особенностей ядра. 150
Д. Некоторые замечания об алгоритмических особенностях методов интегральных уравнений. Рассмотренные примеры, а также опыт решения других методических и сложных практических задач (см., например, [6, 32, 71, 197]), свидетельствуют о высокой эффективности методов интегральных уравнений для решения краевых задач. Однако с точки зрения оптимизации этих алгоритмов имеется много открытых вопросов, которые мы рассмотрим на примере уравнений потенциала простого слоя. Как видно из предыдущего параграфа, метод обладает многими «управляющими рычагами», что дает дополнительные резервы усовершенствования, но создает свои проблемы по их квалифицированному освоению. Первый вопрос — это выбор способа дискретизации границы. Увеличение числа точек коллокаций должно, естественно, повышать точность расчетов, но при этом быстро растет объем вычислений, поскольку формируемая алгебраическая система имеет плотную матрицу. Далее, маловероятно, что равномерное расположение граничных точек является наилучшим. Однако какие-либо рекомендации по их расположению дать затруднительно, кроме того общего замечания, что точки целесообразно располагать гуще там, где плотность потенциала должна меняться круче по априорным соображениям. Надо сказать, что на практике зачастую эта проблема решается самым прагматичным образом: точки коллокаций выбираются равномерно (поскольку это проще всего в программной реализации), а их количество берется по максимуму такое, сколько позволяет оперативная память ЭВМ. Добавим к этому, что если точки коллокаций выбираются на поверхности, не совпадающей с границей (как это делается в описанных в § 3.1 методах Купрадзе, Рахматуллиной и др.), то возникает дополнительная проблема оптимального расположения этой вспомогательной поверхности. Не менее существенный вопрос — способ и порядок аппроксимации плотности потенциала. При использовании В-сплайнов, например, следует определить порядок и вид граничных условий для них. В работах [117, 197] применяются специальные дробно- рациональные аппроксимации с нелинейными параметрами, значения которых подбираются экспериментально из решений характерных задач. Число точек коллокаций и способ аппроксимации, естественно, — взаимосвязанные факторы. Повышение порядка аппроксимации в меньшей степени влияет на трудоемкость самого алгоритма, но может очень сильно усложнить его программную реализацию. Точность решения зависит существенно от методов вычисления вспомогательных интегралов. Можно, конечно, проверить расчеты «с запасом», используя квадратурные формулы Гаусса высокого порядка, но при этом значительно возрастает трудоемкость формирования матрицы алгебраической системы. Сюда же относится вопрос о способе учета особенностей ядра интегрального уравне- 151
ния, а в осесимметричных задачах — и об аппроксимации эллиптических интегралов. Все эти факторы мы рассматривали пока только с точки зрения повышения точности аппроксимации. Они, однако, неизбежно влияют на обусловленность матрицы системы, а при ее ухудшении возникает вопрос о надежном способе решения алгебраической системы. Исходная задача представляет собой интегральное уравнение Фредгольма 1-го рода с ядром, имеющим слабую особенность логарифмического типа; вопросы устойчивости ее численного решения недостаточно изучены теоретически. Следует сказать, что в этом отношении имеются обнадеживающие экспериментальные данные. Для описанных в предыдущем параграфе алгоритмов, по крайней мере для систем до 300-го порядка, численное решение является устойчивым и без применения каких- либо специальных методов регуляризации. В частности, решение алгебраических систем методами Гаусса или ортогонализации не приводит к появлению заметных дополнительных ошибок. Однако на ЭВМ типа ЕС необходимо применять двойную точность (на БЭСМ-6 в рассматриваемых задачах достаточно и простой точности). В целом проблема согласования, оптимизации и автоматического выбора счетных параметров для обеспечения заданной точности и экономичности методов интегральных уравнений требует дальнейших исследований как теоретического, так и экспериментального характера. § 3.4. О сравнительной эффективности методов решения интегральных и дифференциальных уравнений Приведенные в предыдущем пункте результаты, а также и другие имеющиеся в литературе описания численных экспериментов свидетельствуют, что методы интегральных уравнений позволяют добиться такой высокой точности решения и его производных, которой пока что не достигается в методах конечных разностей или конечных элементов. Для сокращения наименований методов мы иногда будем употреблять обозначения соответственно МИУ, МКР и МКЭ. В силу этого может возникнуть вопрос — а не является ли метод интегральных уравнений намного эффективнее других алгоритмов решения краевых задач? И это несмотря на обилие в мире публикаций и программных реализаций по методам конечных разностей и конечных элементов. Одним из весомых аргументов интегральных уравнений является тот факт, что дискретизи- руется не вся расчетная область, а только ее граница. Это означает, что искомая функция плотности в двумерных краевых задачах зависит фактически от одной переменной, а в трехмерных — от двух. Чтобы получить сравнительные количественные оценки экономичности, мы рассмотрим объем вычислений и необходимой опе- 152
ративной памяти для решения с заданной точностью характерной краевой задачи — уравнения Лапласа в единичном квадрате с граничными условиями 1-го рода. Сравнение проведем для интегрального уравнения с кусочно-линейной аппроксимацией плотности простого слоя и метода конечных элементов с кусочно-линейными базисными функциями (это эквивалентно также пятиточечной конечно-разностной аппроксимации оператора Лапласа). Шаг дискретизации считаем одинаковым и равным А=1/#, где N — количество разбиений каждой из сторон квадрата. - Поскольку теоретическое количественное сравнение погрешности методов провести трудно, мы примем гипотезу, что получаемая точность решения в данных алгоритмах при равных шагах примерно одинакова. В случае малых h количество неизвестных можно считать равным AN для МИУ и № для МКР или МКЭ. Матрица системы линейных алгебраических уравнений для МИУ плотная и содержит 16Af2 ненулевых элементов. В МКР порядок матрицы равен N2; и она является ленточной с шириной полуполосы N и количеством ненулевых элементов 5N. Реализация МИУ требует 16Af2 машинных слов для хранения элементов матриц и объем вычислений, равный C\N2 — для формирования матрицы, 16ЛА3/3 — для ее решения и kC2N — для вычисления значений потенциалов или их производных в k точках. Здесь С\ и С2 — не зависящие от h постоянные, причем довольно большие. Например, в случае цилиндрической системы координат только одно вычисление полного эллиптического интеграла К при заданном аргументе k требует около 40 арифметических операций (с учетом того, что определение одного значения логарифма эквивалентно по времени выполнению примерно 20 умножениям). Реализация МКР с помощью метода исключения Гаусса требует объем памяти N3 и количество арифметических действий Лг/3. При использовании метода циклической редукции или быстрого преобразования Фурье для решения разностных уравнений эти цифры меняются на Лг и C3Af2log2Af, где величина Сз в разных реализациях колеблется между 5 и 10. В итерационных алгоритмах требуется память в N2 слов, а количество операций меняется в пределах от C3Af3log2Af до CsN2(log2N)2; рекордные же методы с использованием последовательности сеток сокращают объем вычислений до C4Af2. Отметим, что при этом в МКР или МКЭ находится решение во всех N2 узлах сетки. «Усредняя» эти оценки, можно резюмировать, что при вычислении в МИУ значений потенциалов примерно для N точек рассматриваемые алгоритмы близки по экономичности. Если же решение требуется найти в N2 точках, то метод интегральных уравнений будет проигрывать, в силу большого коэффициента С2. Если решается неоднородное дифференциальное уравнение, например, уравнение Пуассона вместо уравнения Лапласа, то ситуация меняется не в пользу МИУ, поскольку при формировании алгебраической системы расчет правых частей требует для каждой 153
точки дискретизации границы брать интеграл iiO области, что приводит к дополнительным операциям порядка O(N3). Кроме того, при вычислении k значений потенциала или производных нужно дополнительно kC5N2 действий. Мы рассмотрели простейшие способы аппроксимации для сравниваемых методов. Повышение. точности аппроксимации в принципе можно проводить как в конечных элементах, так и в интегральных уравнениях, в том числе с учетом асимптотического поведения решения в окрестности особых точек. Однако для МИУ такие уточнения гораздо легче реализовать технически, поскольку область определения искомых функций имеет меньшую размерность. Значительные преимущества имеет МИУ при решении внешних краевых задач, так как применение МКР или МКЭ связано с необходимостью искусственного замыкания расчетной области и постановки граничных условий из априорных соображений, что не всегда можно сделать с хорошей точностью. Решение же трехмерных задач с помощью МИУ представляется трудоемкой проблемой. Например, если расчетная область — единичный куб с шагом дискретизации h= \/N> то порядок алгебраической системы получается 6N2. Для ее решения требуется память в 36N4 машинных слов, а объем вычислений равен 72jV6. Это говорит о том, что даже на современных ЭВМ реально решать трехмерные задачи только с достаточно большими шагами сетки. В методах МКР и МКЭ ситуация более благоприятная, поскольку памяти нужно только N3 слов, а количество операций при использовании итерационных алгоритмов меняется от C6^3(log2iV)2 до C6Af4log2Af, в зависимости от типа итерационного процесса. Следует заметить, что МИУ наиболее эффективно применяется только к относительно узкому классу дифференциальных уравнений, для которых известны фундаментальные решения. Сюда входят уравнения, коэффициенты которых или постоянны, или кусочно-постоянны, или имеют специальный вид. С помощью различных приемов к интегральным уравнениям можно свести дифференциальные задачи с переменными коэффициентами общего вида, но экономичность МИУ будет при этом падать. В целом же рассмотренное нами подтверждает очевидный факт, что не существует самого лучшего метода для решения всех задач. Для каждой задачи, точнее класса задач, имеется свой предпочтительный алгоритм. И в зависимости от характера задачи различие в эффективности алгоритмов может быть большим или меньшим. Заканчивая сравнительный анализ, необходимо сказать, что современное понятие алгоритма включает его программную реализацию. Поэтому окончательное суждение об эффективности методов надо проводить с учетом разных факторов, в том числе не являющихся чисто математическими в традиционном смысле, на которых мы остановимся в последней главе. 154
§ 3.5. Краткий обзор других методов решения интегральных уравнений 3.5.1. Метод вспомогательных зарядов. В работах В. Т. Овча- рова, а также и других авторов [141], получил применение подкупающий своей простотой подход к расчету электростатических полей на основе представления потенциала в виде совокупности полей точечных зарядов, располагаемых каким-либо специальным образом внутри расчетной области или вне ее. Для плоских задач такое представление имеет вид Ф,У) = £ qiln I (3.88) (xf + (yy)2 где Xi, yi — координаты точечных зарядов qt. Зафиксировав значения Xi, yi и выбрав какие-либо N точек л:/, у\ на граничных поверхностях с заданными потенциалами ф(х/, yf), для определения дополучаем систему алгебраических уравнений 2 frln _ * — = qfr;,j/yQ, /,/=l,2,...,JV. (3.89) V)+(/) Для осесимметричных задач цилиндрические координаты Г/, Zi будут соответствовать зарядам, потенциал которых описывается формулой _ Система уравнений для qt имеет вид N «./=1.2,...,^ (3.91) Вместо уравнений (3.89), (3.91), фиксирующих значения искомого потенциала в заданных точках, можно было бы записать условия минимума среднеквадратичного отклонения ср(х, у) от значений в точках (jc/, yf). В этом случае количество зарядов и число «контрольных» точек на границе не обязательно должны быть равными. Одна из проблем метода вспомогательных зарядов — это оптимизация их расположения относительно границы. Если, например, около прямолинейного электрода с постоянным потенциалом поле представить как результат действия расположенных вблизи точечных зарядов, то удовлетворение граничных действий будет выполняться со значительной ошибкой, поскольку эквипо- тенциали такого поля около самих зарядов будут существенно волнистыми линиями. Если же вспомогательные заряды располо- 155
жить дальше от электрода, то ухудшится обусловленность алгебраической системы, что приведет к погрешности вычисления #/. Перейдя от «физической» трактовки алгоритма к математической, легко видеть, что использование вспомогательных зарядов соответствует кусочно-постоянной аппроксимации плотности в методе, развитом А. X. Рахматуллиной и И. И. Кочетовым, который был описан нами в § 3.1. 3.5.2. Аппроксимация потенциала гармоническими полиномами. В работах А. Г. Власова, Ю. А. Флегонтова и ряда других авторов [31] получил развитие метод расчета электростатических полей на основе представления решения уравнения Лапласа в виде рядов от гармонических функций. Здесь можно выделить два основных подхода к вычислению потенциалов. Первый — метод переопределенных рядов А. Г. Власова — основан на разбиении расчетной области й на ряд подобластей простой формы так, чтобы в каждой из них решение представлялось в виде рядов от гармонических функций, точно удовлетворяющих заданным граничным условиям на той части поверхности подобласти, которая является границей Q. На поверхностях сопряжения подобластей выписываются условия непрерывности потенциала и его нормальной производной, служащие уравнениями для коэффициентов рядов. Трудности такого подхода заключаются в реализации задач со сложными конфигурациями границ, особенно если алгоритм требуется автоматизировать в универсальных программах, рассчитанных на широкий класс областей. Второй метод заключается в том, что расчетная ограниченная область й, имеющая сложную границу Г и, возможно, кусочно- гладкую и многосвязную, погружается в область Й' простой конфигурации: прямоугольник — для плоских задач, цилиндр — для осесимметричных. Приближение ф к искомому решению ф ищется в виде суперпозиции функций, гармонических в Q'. Если области йий' имеют общий участок границы S, то приближение Ф строится так, чтобы удовлетворялось граничное условие ф|5 = = ф|5. Для Й', представляющей собой цилиндр 0<г</?, d, можно выбрать следующую аппроксимацию: + 2 a|kI>/o(a*r)shp*(c-d)+ S ai2V0(a*r)sha*(d-z) + az + b, (3.92) где /о, /о — функции Бесселя первого рода соответственно от вещественного и мнимого аргументов, а* = м*//?, а р* — k-й корень функции /о. Значения L, М, N определяют точность аппроксимации и количество неизвестных в получаемой алгебраической системе. Коэффициенты а$\ ail\ ctp искомого представления ф могут выбираться из условия минимизации любой из норм функции невязки граничных условий г = ф|г — <р|г (мы рассматриваем первую краевую задачу). 156
Авторами показано, что если граница Q состоит из конечного числа простых поверхностей Жордана с заданными потенциалами, то можно построить гармоническую функцию ф, равномерно аппроксимирующую на Г решение ф с произвольной заданной точностью. То есть обеспечивается выполнение неравенства 1ф — ф1г<е (3.93) ДЛЯ ЛЮбыХ 8. Отсюда в силу принципа максимума для гармонических функций погрешность приближенного решения также не будет превосходить е и для любой точки расчетной области. Получаемые в этом методе алгебраические уравнения для коэффициентов гармонических рядов могут иметь плохую обусловленность, и тогда применяются методы регуляризации. Если погрешность получаемого приближенного решения имеет максимумы в некоторых точках границы, то для повышения точности в окрестности таких точек можно расположить вспомогательные заряды, величины которых определяются из условия минимизации ошибки. Строго говоря, данный подход можно с одинаковым успехом считать методом решения как дифференциальных, так и интегральных уравнений. Мы его относим к последним, поскольку здесь имеется та общность в технологии, что алгебраические уравнения формируются из условий удовлетворения граничным условиям в точках границы. Мы рассмотрим также относящийся к этому классу метод Купрадзе — Алексидзе для решения задачи Дирихле [5]. Этот метод (коротко упомянутый в § 3.2) заключается в следующем. Пусть требуется найти в ограниченной трехмерной области G гармоническую функцию, принимающую на границе Г заданные значения g(P). Обозначим через G\ область с достаточно гладкой границей Гь целиком включающую в себя область G, и предположим, что минимальное расстояние между Г и Г\ больше нуля. Введем функцию v(Q) — -r-^-(Q), Q 6 Г, удовлетворяющую интегральному уравнению - Jw=f(p)' Р6Г" f^=$^-4(w)'(3-94) г г с помощью которой искомое решение находится по формуле щР)=— \ ———*-g(Q) (—/—г) dS, P 6 G. (3.95) г Приближенное решение уравнения (3.94) ищем в виде отрезка ряда Фурье = 2 ъу{Р) (3.96) 157
по специальным образом строящимся ортогональным функциям Введем функции )f /=1,2,..., легь (з:97) где Pi — элементы счетного множества точек, расположенных всюду плотно на поверхности 1\. Можно показать, что система функций [ty(P)} линейно независима на поверхности Г, т. е. для любого N N из равенства 2 ) = 0, Р6Г, следует 2 |а«1=0. Из этого вытекает, что можно построить ортонормированную на Г систему функций <р/(Р)=2 bik^k{P\ P е Г, (3.98) удовлетворяющих условиям с ф^ф/ dS = 6ki- Проведение процес- г са ортогонализации может быть сведено к формуле где используются обозначения для определителей (3.99) Г Уравнение (3.94) запишем для точек Pk = Fk= \g(Q) -jL di2 ... d \ в виде , (3.100) \j() (3.101) Умножая первые / уравнений (3.101) на коэффициенты (k= I, 2, ..., /) и складывая их, получим \ v(Q) 2 = ^= 2 r k=x r ^=1 Определяя из этих соотношений с*, искомое приближенное решение u{N\P) находим из (3.95) после подстановки (3.96) вместо 3.5.3. Применение метода конечных элементов к решению интегральных уравнений. Мы коротко остановимся на решении интегральных уравнений с помощью метода Галеркина. Не останавливаясь на его теоретическом обосновании, которое было проведено Ж. Неделеком и другими зарубежными математиками [142], мы только отметим основные алгебраические особенности на примере трехмерной задачи Дирихле. Для плотности потен- 158
циала простого слоя в этом случае мы имеем интегральное уравнение первого рода где ху у означают точки на границе, а \х — у\ — расстояние между ними. Как обычно, метод конечных элементов предусматривает замену расчетной области некоторой ее дискретизацией: в данном случае поверхность Г аппроксимируется совокупностью элементарных площадок Г/г. Как было отмечено в § 3.2, при двумерном параметрическом представлении поверхности Г в плоскости параметров это может быть простая триангуляция. Далее вводится конечномерное пространство Vh, имеющее базисом некоторые финитные функции г|),(х), /=1,2, ..., N, где N — размерность Vh- Вместо решения уравнения (3.93) ищется ее проекция на Vh в виде \xh(x)= 2 cft{x\ *е=Гл. , (3.104) По методу Галеркина искомые c-t определяются из системы уравнений -^\ \ 2 cftiy)^(х)/ \x-y\dxdy = \g(xMx)dx. (3.105) г г /~~1 г В простейшем случае Yh может представлять собой совокупность треугольников Tiy a Vh — пространство кусочно-постоянных функций. Тогда if>/(jt) есть функция, равная единице в Г/ и нулю — в остальных треугольниках, а уравнение (3.95) записывается в векторной форме Ас = g, с = {си с2, ..., cN}9 g = {gu g2, .... gN]. (3.106) Элементы матрицы пц и правой части g/ описываются формулами \ \^ $(***• (ЗЛ07) Данный подход позволяет единообразным способом строить аппроксимации более высокой точности; в том числе и для других интегральных уравнений. 3.5.4. О решении интегральных уравнений для потенциала двойного слоя. Численное решение ряда краевых задач эффективно осуществляется с помощью потенциала двойного слоя. Мы рассмотрим коротко его реализацию для внутренней задачи Дирихле на плоскости в предположении, что граница области односвязная, гладкая и выпуклая. Уравнение контура С запишем в параметрическом виде = х(т), у = у(т)у 159
при этом# считаем, что функции х(т), у(т) имеют непрерывные производные х(т\ у(т\ не обращающиеся в нуль одновременно. Потенциал двойного слоя (3.16) в данном случае выражается формулой (З.Ю8) . где (х, у) и (*', у') — координаты точек Р и Q, а ф — угол между вектором PQ и нормалью в точке Q. Этому же выражению можно придать вид где do — усол, под которым элемент дуги контура (1т виден из внутренней точки Р. В этих обозначениях интегральное уравнение (3.23) принимает вид р \ ^ v(t')</t' = g(r). (3.109) Если мы поделим последнее уравнение на л, введем ядро - к(т, х')= - ±£- = - -L-fL arctg ^Р-^, 4 у я d% п d% ъ х(т') — х(т) и поставим перед интегралом параметр А,, то получим т>(тО^т'=^(т). (ЗЛЮ) Можно показать (см., например, книгу Л. В. Канторовича и В, И. Крылова [86]), что значение X = 1 не является собственным числом данного интегрального уравнения. Поэтому, на основании общей теории интегральных уравнений, уравнение (3.110) имеет единственное решение для любой функции g(r). Построение приближенного решения этого уравнения проведено и исследовано Н. М. Крыловым и Н. Н. Боголюбовым. Оно основано на разбиении всего отрезка [а, (3] на равные отрезки [т/ — /i/2, т/ + А/2], / = 1, 2,..., N, т, = А/2, h = (р — — a)/N, и использовании кусочно-постоянной аппроксимации плотности v(t'). При этом по условиям коллокаций в точках т/ из (3.110) получаем (при А,= 1) систему алгебраических уравнений Здесь использованы обозначения 160
Поскольку без ограничения общности мы можем считать все А/со положительными и в силу равенства все уравнения системы (3.111) для любого конечного N имеют строгое диагональное преобладание, если контур имеет всюду конечный радиус кривизны. Тогда система (3.111) невырождена и имеет единственное решение при любых gfa). Погрешность решеция z/ = v(t,-) — v/, как нетрудно показать, удовлетворяет уравнению т/) = */, (3.112) где погрешность аппроксимации -ф/ определяется выражением 1 и, как можно видеть из оценки ошибок квадратурных формул, удовлетворяет неравенству max \%\ < Bh\ где постоянная В определяется дифференциальными свойствами функции v(t) и не зависит от h. Отсюда следует (см. [86]), что погрешность решения z-t также есть величина порядка O(h2). Отметим, что реализация и исследование решения интегральных уравнений для потенциала двойного слоя существенно затрудняются при более сложных конфигурациях границ, в частности, при наличии тонкостенных пластин или незамкнутых оболочек.
Глава 4 МЕТОДЫ РАСЧЕТА СОБСТВЕННЫХ ЧАСТОТ И ГАРМОНИК ЭЛЕКТРОДИНАМИЧЕСКИХ СИСТЕМ § 4.1. О постановках задач электродинамики Постановки задач расчета электродинамических систем чрезвычайно разнообразны, им посвящено много монографий, например [116, 27, 143]. В этом параграфе мы остановимся только на некоторых основных моментах — рассмотрим способы сведения физических постановок к проблеме собственных значений- для краевых задач. Задачи электродинамики в общем виде описываются системой уравнений Максвелла ot£j/, dv 4np, с at ^ (4.1) rot E+ 4"-|f =0' divB==0> к которым добавляются материальные уравнения D = eE, B = iiH. (4.2) Здесь величины £, D, Я, В, с, е, \i обозначают соответственно напряженность и смещение (индукцию) электрического поля, напряженность и индукцию магнитного поля, скорость света, электрическую и магнитную проницаемости. Систему уравнений (4.1), (4.2) надо дополнить уравнениями, определяющими распределение плотности тока / и плотности зарядов р. Однако для целей данной главы их вид не имеет значения, и мы просто считаем /, р заданными функциями координат. Величины е, [i будем считать постоянными. На поверхностях раздела различных сред заданы граничные условия (мы предполагаем отсутствие поверхностных токов): £,+ = £Г,. Н? = НГ, (4.3) где знаки +» — относятся к разным сторонам поверхности, а индекс / означает тангенциальные составляющие полей. На металлической поверхности, в предположении идеальной проводимости, полагаем £"^ = 0. Рассматривая электромагнитное поле в пустоте (е = |х=1), удобно ввести скалярный и векторный потенциалы ф, А: tf = rot Л, £=-grad(p—~~p (4.4) 162
которые удовлетворяют волновым уравнениям АЛ-4^=-4*//^- ^1?=-4лр' (4-5) а также соотношению (условию калибровки Лоренца): В ряде случаев векторы Е и А удобно представить в виде суммы потенциальных и вихревых компонент (см. [40, 116]): £ = £<"> + £<*>, А=АМ + АЬ\ (4.7) удовлетворяющих равенствам divA<*> = div£(6) = rot£(n) = 0, £<«=_ 1_^, £<»>=_grad<p, Я=гоМ<Ч (4'8) Новые Скалярный и векторный потенциалы ф, А^ь\ как следует из (4.5) — (4.8), удовлетворяют системе уравнений 7-Т = - Ч- + Особенность данной постановки заключается в том, что скалярный потенциал ф определяется кулоновским взаимодействием зарядов и только параметрически зависит от времени. Векторный потенциал может быть представлен в виде ряда )= f qk(t)Ak, (4.10) где Ak — собственные* функции оператора A = grad div — rot rot, определяемые соотношениями ^ = 0. (4.11) Последнее условие означает равенство нулю тангенциальной компоненты вектора Ak на поверхности металлического проводника. Задача (4.11) определяет дискретный набор собственных чисел Xk. Собственные функции, соответствующие разным А*, взаимно ортогональны, и их можно считать нормированными по условию В задаче о возбуждении колебаний объемных резонаторов Xk и Ak представляют собой частоты и гармоники свободных колебаний. Для определения амплитуд qk(f) первое из уравнений (4.9) умножим на Ak и произведем интегрирование по объему резонатора Q. С учетом соотношений (4.10), (4.11) получаем уравнение dV, (x)k = Xkc. N (4.12) 11* 163
Здесь также учтено соотношение \ Akgvadtp dV=0, которое получается, если в векторном тождестве j (votArotB -\- divAdivB-{- ААВ) dV= \ ([ArotB]-{~Ad\vB)dS Q Г положить A=Ak, B = gradcp и учесть свойства функций Л*,<р. После нахождения векторного потенциала напряженности электрического и магнитного полей определяются из равенств Е(ь)= — —2 qLAk, Я = 2 qkrotAk. (4.13) с к н Таким образом, основной вычислительной проблемой является решение частичной проблемы собственных значений (4.11). Для аппроксимации векторного потенциала конечным отрезком ряда (4.10) требуется найти несколько наименьших по модулю собственных чисел Xk и соответствующих собственных функций Ак. Другая постановка проблемы собственных значений может быть сформулирована с использованием векторов Герца. Мы ее рассмотрим для задачи о свободных колебаниях в вакууме при отсутствии объемных зарядов и токов. При этом используем широко распространенную комплексную форму уравнений электромагнитного поля. Представляя зависимость полей от времени в виде экспоненциального ряда с комплексными показателями, каждую из гармоник можно записать в виде 4}}, (4.14) где со есть частота, а ЕШУ Нш — соответствующие векторные амплитуды колебаний. Из уравнений (4.1) получаем (индекс со для краткости опускаем): rotE = ikHy votH=-ikEy к = <ь/с. (4.15) Введем так называемый электрический вектор Герца, определяемый соотношениями £ = grad div П + £2П = пй rot П, (4.16) H=-ik rot П. Очевидно, что векторы £ и Я из (4.16) автоматически удовлетворяют уравнениям (4.15), если вектор П удовлетворяет волновому уравнению ДП + £2П = 0. (4.17) Аналогично можно определить магнитный вектор Герца E = ik rot П7, #=grad div n' + £2n' = rot roffl^ (4.18) Непосредственной проверкой легко убедиться, что если вектор П' удовлетворяет волновому уравнению АП/ + ^2П/ = 0, (4.19) 164
то векторы £, Я, определяемые формулами (4.18), будут удовлетворять системе (4.15). Одна из типичных задач электродинамики заключается в расчете распределения электромагнитного поля в волноводе, представляющие собой полый металлический цилиндр, который считается бесконечно длинным и имеет поперечное сечение произвольной формы. Частные решения уравнений электромагнитного поля внутри волноводов рассматриваются в виде бегущих волн. Предполагается, что зависимость амплитуд Еш, Нш от z (ось z выбирается параллельной образующей цилиндра) описывается множителем' exp {irz}> где г определяется длиной волны, распространяющейся вдоль оси. Класс таких решений (электрические волны) можно получить с помощью электрического вектора Герца с компонентами Пх = О, Пу = 0, П2 = Щх, у) exp {irz}, (4.20) где функция П(х, у) не зависит от г. Функция Пг должна удовлетворять уравнению ДП &2П откуда для Щх, у) получаем (4.21) Из соотношений (4. 3) следует, что на идеально проводящей стенке волновода функция П (х, у) удовлетворяет граничному условию П|г = 0. (4.22) Задача (4.21), (4.22) определяет дискретный набор собственных чисел qn и соответствующих гармоник Пп, д=1,2, ... Если функция П (х, у) найдена, то составляющие электромагнитного поля определяются формулами ^, Ey = ir exp{irz} ^, £г = z}-^-, Hy = ikexp{irz}-^-, #г = 0. (4.23) оу ох Другой класс решений (магнитные волны) строится с помощью магнитного вектора Герца ГЦ =0, Щ =0, Щ =(х, у) exp{irz}. (4.24) В силу (4.3), (4.19) получаем, что функция Щх, у) определяется из задачи на собственные значения 165
Соответствующие компоненты электромагнитного поля находятся из выражений Ex = ikexp{irz}dll'/9y, Еу = -ikexp{irz}y E2 = 0, (4.26) Hx = irexp{irz}dll' /дх, Hy = irexp{irz}dYl' /ду, Hz = q2exp{irz}U\ Другой тип электромагнитных задач состоит в расчете колебаний поля в объемных резонаторах. Мы рассмотрим цилиндрический резонатор (с произвольным поперечным сечением), который можно рассматривать как отрезок волновода, в котором в плоскостях 2 = 0, z = a поставлены идеально проводящие металлические стенки. Как и при расчете поля в волноводах, здесь отдельно рассматриваются электрические и магнитные волны. Колебания электрического типа определяются с помощью электрического вектора Герца с составляющими П* = 0, П„ = 0, Пг = Щх9у)и(г). (4.27) Из уравнения (4.17) и условия равенства нулю тангенциальной составляющей вектора Е на стенках резонатора с помощью метода разделения переменных получаем, что функция Щх, у) определяется из задачи на собственные значения (4.21), (4.22), где Г в данном случае есть боковая поверхность цилиндра. Функция u(z) определяется из задачи a = O1 (4.28) решение которой имеет вид um(z) = cos \imz9 \im = mn/a. (4.29) Если через г\ обозначить собственные числа задачи (4.21), (4.22), то собственные частоты резонатора равны (Dw« = cVr2 + jiX (4.30) Магнитная составляющая поля в резонаторе получается с помощью магнитного вектора Герца Ш = 0, П£ = 0, Щ = П'(х, у) v(z). (4.31) Функция П'(х, у), как и для волноводов, определяется задачей на собственные значения (4.25), а для функции v(z) имеем задачу d2v/dz2 + v2v = 0, v(0)=v(a) = 0, (4.32) определяющую дискретный набор 1 vm = mn/a. (4.33) Обозначая через q2n собственные числа задачи (4.25), для волновых чисел резонатора получаем формулу kmn = л/ql + Vm. 166
Электродинамические задачи могут быть сведены к проблеме собственных значений и непосредственно для векторов электрической и магнитной напряженности. При отсутствии свободных зарядов и токов в вакууме из (4.1), (4.3), (4.15) мы получаем + = 0, div£ = O, Et\r = 09 (4.34) AH+k2H=0, div# = O, (rot#),|r = 0, где Г обозначает поверхность идеального металлического проводника, а Е и Н — амплитуды колебаний Еш и Яш. Мы отметим еще только один тип краевых задач, возникающих при расчете осесимметричных резонаторов с меридиальным сечением произвольной формы. В плоскости г, z из (4.34), следует волновое уравнение где в случае электрических колебаний функция w определяет азимутальную компоненту вектора напряженности электрического поля (w = rEQ) и удовлетворяет граничным условиям w\r = 0. (4.36) Для задачи о магнитных колебаниях имеем w = rHQy dw/dn\r = 0. (4.37) В обоих случаях функция до, как следует из ее определения, на оси симметрии обращается в нуль. § 4.2. Разностные аппроксимации проблемы собственных значений для краевых задач В этом параграфе рассматривается задача на собственные значения для уравнения х+^ ы (4 38) дх \ дх/ ' ду2 х ' где а может принимать значения —1, 0, 1. Требуется найти значения к и соответствующие функции и(х9 у), удовлетворяющие в ограниченной области Q уравнению (4.38) и смешанным однородным граничным условиям на границе Г = Г1иГ2: и|Г1 = 0, ди/дп\Т2 = 0. (4.39) Граница области допускается многосвязная и куСочно-гладкая, причем в угловых точках или точках смены граничных условий решение может иметь особенность. Случаи а = 0, 1 соответствуют задачам на собственные значения для оператора Лапласа в декартовой или цилиндрической системах координат, аа=-1 — задаче о собственных колебаниях осесимметричного резонатора. 167
Задачу (4.38), (4.39) можно решать различными алгоритмами, в том числе методами конечных элементов или интегральных уравнений, см., например, [88, 93]. Мы останавливаемся на конечно-разностных аппроксимациях только в силу субъективных интересов. Данный параграф можно считать некоторым дополнением к §1.2 в плане построения разностных уравнений, учитывающих асимптотическое поведение решения в окрестности особых точек. Этот вопрос имеет общий характер как при решении уравнения Пуассона, так и для задачи на собственные значения. Построению аппроксимаций с учетом особенностей решения посвящено большое количество работ по методам конечных разностей и конечных элементов, см., например, [108, 149, 192] и цитируемую там литературу. Мы остановимся на одном случае построения конечно-разностных уравнений, который в первоначальном виде был предложен И. В. Фрязиновым [192] и далее развит А. В. Гаврилиным [34]. Положительное качество рассматриваемых аппроксимаций заключается в их простоте и достаточной эффективности. Разностные уравнения в окрестности особых точек остаются пятиточечными, как и вдали от границы, что позволяет относительно легко автоматизировать их программную реализацию для сложных краевых задач. Как показывают численные эксперименты, учет особенностей позволяет существенно повысить точность как для решения уравнения Пуассона, так и для вычисления собственных чисел и собственных функций. 4.2.1. Построение разностных уравнений. Мы рассмотрим предварительно краевую задачу для уравнения Пуассона Q, (4.40) fn\T=q{x,y). Обозначим через s(P), Р^Г, вектор, касательный к границе Г в точке Р. При обходе границы вдоль 5 считаем для определенности, что область Q остается слева. Пусть Qi, i= I, 2,..., N, означает особые точки границы, которые могут быть вершинами углов, точками разрыва функций g, q или точками смены типа граничных условий. Считаем, что в окрестности особой точки граница Г представляется в виде двух отрезков прямых /i,2 (Qk), имеющих общую концевую точку Qk и образующих между собой угол 0o(Q*) = Ji/a*, 0,5<aA-<<2. Около каждой точки Qk построим в Q сектор a>(Qfc) с углом, образованным отрезками l\,2(Qk) и дугой окружности с конечным радиусом R. Величину R выбираем достаточно малой, чтобы секторы (o(QR) не пересекались. Шаги сетки считаем тоже малыми, чтобы расстояние между разными секторами было не меньше локального шага сетки. В силу этого мы далее проведем рассмотрение только для окрестности одной особой точки Q^ которой соответствует угол 6о. Введем локальную полярную систему координат с началом в точке ft и с 168
отсчетом угла от положительного направления оси х. Обозначим через 0i,2 углы, соответствующие отрезкам /i,2, так что Эо = = 01 — 02, а через Qk— неограниченный сектор, образованный лучами Li,2, проходящими вдоль /i,2. Функции g, q из граничных условий в окрестности считаем линейными по локальной координате r = {[x—*x(Qk)]2-\- + [у — y(Qk)f}l/2, т. е. для случая условий 1-го рода на отрезках /i, /2 будем иметь gn(r, Qk)=gn(Qk) + bnr, л=1,2, (4.41) где gn(Qk) означают предельные значения функции g на отрезках /i,2 при стремлении к точке Qk, а Ъп — константы. Отметим, что предположения о линейности функций из граничных условий и о прямолинейности граничных отрезков вблизи особых точек не являются сильным ограничением. Выбором достаточно малого R можно добиться, что замена криволинейного граничного отрезка прямолинейным или линеаризация нелинейной функции g будет достаточно хорошей аппроксимацией краевой задачи. Решение задачи (4.40) в секторе co(Q^) представим в виде (4.42) где vq — какое-либо частное решение однородного уравнения (4.40) в Qk с условиями (4.41), a v\ — решение уравнения (4.40) в (d(Qk) с граничными условиями tn(r, Q) = vx(r, 02) = O, (4.43) Vl(R, 0) = v(R, 0) - 1/о(Л, 0), 0 е [в,,в2]. Для функции v\ в окрестности точки Qk справедливо разложение (см. [101]) v\= 2 amrwxsinxm(0 —02) + ^2, (4.44) т=\ где ат — константы, а ^2 — достаточно гладкая функция. Отсюда для искомого решения в co(Q) имеет место представление v = a{rasmyc(Q — 02)+ w(r, 0), (4.45) где функция ш(г, 0) содержит гладкую часть решения и старшие гармоники из (4.44), начиная со второй. В области Q построим прямоугольную сетку с координатными линиями x=Xi> у = У\у / = 0,1,2,...,/, / = 0,1,2,...,/; с шагами hf=Xi+\—X/, Щ = t//+i—у}. Все особые точки Q/ считаем принадлежащими узлам сетки. Разностные уравнения будем строить для множества узлов Qa, являющихся внутренними по отношению к области Q. Все внутренние узлы классифицируем следующим образом: a) Qa = QJ+Q& гДе ^ — множество регулярных узлов, ай[ — множество околограничных; регулярным называем такой узел 169
(/,/), у которого все четыре соседних узла (/—1,/), (/,/—1), (/+1,/), (/,/+1) находятся в Q, если же хоть один «сосед» — внешний по отношению к Q, то узел (/, /) — околограничный; б) Qh = Q'h-\-Q'h'y где Q'h является множеством особых узлов, т. е. принадлежащих одному из секторов co(Q*), a Qa' — множество обыкновенных узлов, принадлежащих остальной части области Q. Смысл такого разбиения заключается в следующем. Для особых узлов аппроксимацию краевой задачи будем проводить с учетом разложения (4.45) для искомой функции, а для обыкновенных узлов — без учета особенностей решения. Кроме того, как для особых, так и для обыкновенных узлов, если они являются околограничными, построение разностных уравнений надо выполнять с учетом граничных условий. Мы проведем построение аппроксимации для некоторого особого узла с индексами (/, /), который может быть как регулярным, так и околограничным. Будем использовать локальную нумерацию узлов пятиточечного шаблона в соответствии с рис. 21, а индексы /, / в дальнейшем для краткости опускаем. Обозначим через Я ячейку сетки для узла (/, /), ограниченную ли- j-i НИЯМИ х = Xi - i / 2, Рис. 21. у = У1+1/2 И, ВОЗМОЖНО, отрезком границы s, если он пересекает указанный прямоугольник. На рис. 21 заштрихованы две такие ячейки — для регулярного и околограничного узлов. Через 1\г U, /з, U обозначим стороны (а также и их длины) ячейки, параллельные координатным линиям, а через d — длину отрезка внешней нормали к ячейке, опущенной из узла (/, /) на граничный отрезок s, если таковой существует. Вообще говоря, могут быть и более сложные варианты пересечения ячейки сетки с границей. Мы их рассматривать не будем, так как принципы построения разностных уравнений для всех случаев остаются теми же, что и для рассмотренных ниже случаев. Запишем уравнение баланса, для чего проинтегрируем по ячейке уравнение (4.40), предварительно умножив его на ха: а -р- dx - \ ха -^- ds = \ xafdx dy. (4.46) U s н 170
Если ячейка Н не пересекает границу, то последний член в левой части (4.46) отсутствует. Аппроксимацию каждого члена в (4.46) будем проводить так, чтобы она была точна на первой гармонике (4.44), (4.45), т. е. на функции /(г, 8) = rxsinx(8 — 82). Для этого, например, выражения \xa~^dy, Kxa-p-ds заменим соответственно на — v\) /hf-1, cnsxf(vs — v0) /d, где коэффициенты си сп имеют вид a^t 1 f a to —1\ dylX (4-47) г — \ v*a //с • су*а а величины xs, vs означают координату и значение функции в точке пересечения нормали п с граничным отрезком s. Аппроксимацию интеграла в правой части (4.46) достаточно провести с помощью формулы прямоугольников (\ xaf dx dyttxtfijHj. В результате для особого узла получаем разностное уравнение, которое мы выпишем ради простоты в предположении его регулярности (5 = 0): fu/4. (4.48) Легко видеть, что если в (4.48) мы положим Ci = C2== Сз = с4= 1, то получим обычное балансное пятиточечное уравнение, рассмотренное в первой главе. Такого вида разностные уравнения, т. е. без учета особенностей решения, мы будем применять для обыкновенных узлов. Отметим, что в секторе (o(Qk) могут быть лучи, соответствующие некоторым узлам 8, вдоль которых значения t, tXj ty обращаются в нуль. Если какой-либо отрезок между узлами сетки пересекается таким лучом, т. е. значения /о, tk в (4.47) имеют разные знаки, то соответствующие Ck в (4.48) полагаем равным единице. Это означает, что для таких узлов в разностном уравнении делается только частичный учет особенностей решения. Если максимальный шаг сетки h стремится к нулю, то общее количество таких узлов (будем их называть частично особыми) есть величина порядка O(h1) Легко показать, что множители Си в (4.48) имеют вид (шаги сетки для простоты считаем постоянными, hf=hXy Щ=ку): ,2ч у. //|о/ \ _1_ о h 1 Q ■yjlxxx/ \i6Lx) | bfc, K— А, О, (4.49) k = 2, 4. 171
При этом имеют место следующие неравенства: max[\txxx/tx\, \tyyy/ty\}^l/r2, (450) \ek\^Bh3/r\ \l—ck\^Bh/r, * = 1,2,3,4, V ' ' где через В обозначается некоторая положительная постоянная, не зависящая от А и г, а значение г относится к узлу (/, /). Учет граничных условий как для обыкновенных, так и для особых узлов, проводим в соответствии с алгоритмами построения разностных уравнений, рассмотренных в первой главе. Чтобы не загромождать изложение, мы не будем выписывать аппроксимации для всех возможных типов узлов, которых набирается достаточно много: обыкновенные регулярные, обыкновенные околограничные, особые регулярные, особые околограничные (кроме того, среди двух последних типов надо выделить частично особые узлы). В соответствии с обозначениями п. 1.3.3 полную систему разностных уравнений Пуассона запишем в виде Lhu=-l где компоненты вектора правой части имеют вид х*\ц и включают еще, быть может, члены, обусловленные учетом неоднородных граничных условий в околограничных узлах. Отметим, что систему (4.51) мы рассматриваем для удобства как состоящую из уравнений вида (4.48), поделенных предварительно на объем ячейки Я,/, при этом также меняем знаки в обеих частях уравнений (4.48). При рассмотрении уравнения (4.38) для проблемы на собственные значения краевой задачи мы используем те же разностные аппроксимации, что и выше для уравнения Пуассона. При этом используется тот факт, что собственные функции удовлетворяют однородным граничным условиям (4.39), и в окрестности особых точек для них справедливы асимптотические представления (4.42) —(4.45)/ Таким образом, после аппроксимации уравнений (4.38), (4.39) получаем алгебраическую задачу на собственные значения -XhU. (4.51) 4.2.2. Оценки погрешности собственных чисел и функций. Как и в предыдущем пункте мы сначала рассмотрим разностные уравнения Пуассона, полученные с учетом особенностей решения. Функция ошибки z = u— Vh удовлетворяет уравнению qy (4.52) где г|) — вектор погрешности аппроксимации. В силу линейности уравнения (4.52) погрешность разностного решения представим в виде суммы z = zQ-\-z\, где член z0 обусловлен ошибкой аппроксимации только для особых узлов, a Z\ — для остальных. Согласно п. 1.3.3 равномерная норма последнего слагаемого равна || Z\ ||oo = 0(/i2), поскольку секторы co(Q/) имеют ко- 172
нечный радиус и вне их решение краевой задачи обладает достаточной гладкостью. Для анализа г0 необходимо оценить величины ошибок аппроксимации в особых узлах. Используя разложения в ряд Тейлора, а также соотношения (4.49), (4.50), можно показать справедливость неравенств Bhar~2, 0,E (4.53а) Bhra~\ 1<а<2, для частично особых узлов, 1~{ | ln/г | +га), 0,5<а< 1, (4.536) С \ (B(h2a~ B(r>« для особых околограничных узлов и i1+a|ln/i|r-2), 0,5 < a < I, (4.53в) для остальных особых узлов. Мы проведем оценку погрешности z0 в равномерной метрике с помощью аппарата разностных функций Грина (см. работу Кут- тлера [108] и цитируемую там литературу), которые определяются из уравнения y). (4.54) Здесь 8pq есть символ Кронекера, а сами величины р, q означают номера узлов сетки (или номера соответствующих компонент вектора и), и каждому из них соответствует пара индексов (/, /) и (*',/'). Для любого узла сетки с номером р компонента вектора погрешности 2о выражается через функцию Грина формулой {zo)p = hxhy^Gpqy!(iqy (4.55) где сумма берется по всем особым узлам. В силу свойств системы разностных уравнений (4.51) (монотонность, строгое диагональное преобладание для строк, соответствующих околограничным узлам, вид множителей Ck) для разностной функции Грина несложно устанавливаются следующие свойства: ( flllnAI, a a>-2, = -2, a>0. 173
Здесь величина rq относится к узлу с номером qy первая, сумма берется по всем регулярным узлам (исключая частично особые), а вторая — по околограничным и частично особым. Общее число слагаемых в первой сумме равно O(h~2)y а во второй — O(h~l). Теперь из равенства (4.55), используя оценки (4.53а) — (4.53в) для погрешности аппроксимации в особых узлах, а также неравенства (4.56) для разностной функции Грина, получаем соотношение [ 2 + n2h\ 0,5<а<1, Объединяя эти неравенства, получаем окончательный результат для полной погрешности разностного решения: || z || ос <Ba(/z2 + /i2a I In h I +hl+a In2 A), (4.56) где величина а определяется «наихудшей» особой точкой, т. е. k Перейдем теперь к оценке погрешностей собственных чисел и функции. Обозначим через А,(/г), v^k\ k—\,2y..., собственные числа и функции дифференциальной краевой задачи (4.38), (4.39), а через Х^\ и^ — собственные числа и векторы алгебраической задачи (4.51). Числа X^k\ Xft считаем пронумерованными в порядке возрастания их значений, которые неотрицательны, в силу выбранных знаков при определении дифференциального и разностного операторов L, Lh. Отметим, что разностный оператор Lh есть матрица, представимая в виде произведения D~lA, где D — диагональная матрица, элементы которой есть значения объемов ячеек Нц, а А — симметричная положительно полуопределенная матрица (А соответствует непосредственно уравнениям (4.48), до их последующего деления на (hf-\-{-hf)(hf-\-\-hf)/4). Операторы L, Lh имеют по одному нулевому собственному числу, если только в исходной задаче на всей границе заданы условия Неймана. Уравнение (4.51) эквивалентно обобщенной проблеме на собственные значения Au = \hDu. (4.57) Если Л, D — симметричные матрицы порядка N, и D невырождена, то всегда существует Af вещественных чисел А,Р и соответствующих векторов и^к\ удовлетворяющих уравнению (4.57). Некоторым и^ могут соответствовать одинаковые числа. Векторы и(к\ соответствующие разным собственным числам, £>-ортогональ- ны, т. е. (Duik\ t/(/)) = 0 при Х^фХ^. Оценки погрешности собственных чисел и функций можно провести с помощью результатов исследований Брэмбла и Куттлера [108], на которых мы останавливаться не будем. Смысл их заключается в том, что если разностный оператор обладает теми свойствами, которые имеют место для рассматриваемого нами опера- 174
тора La, то равномерные оценки погрешности приближенного решения проблемы собственных значений являются по порядку теми же, что и для погрешности разностного решения. Соответствующие неравенства можно записать в следующем виде: (4.58) где постоянные Bk не зависят от А, но зависят от номера собственного числа k. Если к[к) — собственное число кратности mk, т. е. совпадает с W+1), ...Д^"1""*"0, которым соответствуют u{k+x\ ... ...,a( +m !\ то в (4.58) под u{k) фактически подразумевается некоторая линейная комбинация собственных векторов, соответствующих числам Х(п\ ДА^+т*-1)# В неравенствах (4.58) по сравнению с (4.56) опущен член A1 + aln2 |Л|. Дело в том, что при выводе оценки погрешности разностного решения случай а = 1 имеет место только при неоднородности граничных условий, которой не возникает в задаче на собственные значения. Если же a<Cl, то при достаточно малых А имеем AI+a | In2 A | <IA2a| In А |. При а>1 и малых А аналогично получаем Ai+a| \n2k | <А2. Заметим, что свойства разностной функции Грина и оценки погрешности нами были сформулированы ради простоты для случая равномерной сетки. Однако оценки погрешности уравнения Пуассона и проблемы собственных значений остаются по порядку теми же, есл« используется кусочно-равномерная сетка такая, что при А-^0 в ней остается конечное число координатных линий, на которых меняются шаги. Качественно это можно объяснить тем, что количество узлов, лежащих на линиях смены шагов и в которых аппроксимация хуже, составляет величину О(А~[), т. е. на порядок меньше общего числа. 4.2.3. Примеры методических экспериментов, В этом пункте мы приведем результаты по решению уравнения Пуассона и проблемы собственных значений для краевых задач. Все расчеты, как с выделением особенностей решения, так и без выделения, выполнены А. В. Гаврилиным [35]. В табл. 14 приведены ошибки вычисления первого собственного числа и соответствующей собственной функции для смешанной краевой задачи в единичном квадрате. На сторонах с координатами х = 0 и jc= 1 заданы условия Неймана dv/dn = 0, а на сторонах у = 0 и у=1 —условия Дирихле и = 0. Аналитическое решение для этой задачи дает А.(1) = 9,8693 и и(1) = /2" sin ш/. Расчеты проводились на разных сетках с шагами А=1/10, 1/20, 1/40, 1/80. В табл. 14 даны значения 8Х = U(1) — ffl\ и величины среднеквадратичной (усредненной по всем узлам сетки) абсолютной погрешности, соответствующей собственной функции Ьи. Как видно, ошибка вычисления А,(1) убывает примерно квадратично с уменьшением А, а погрешность Ьи — приблизительно 175
Таблица 14 h 6Л 6а 1/10 0,0809 0,0513 1/20 0,0211 0,0254 1/40 0,0047 0,0126 1/80 0,0005 0,0063 линейно. Последнее можно объяснить тем, что в данных экспериментах разностные уравнения решались итерационным методом, и хотя точность А,(1) была достигнута высокая, с точки зрения 8и имело место «недоитерирование». В табл. 15 даны погрешности вычислений первых четырех собственных чисел 6Х(1), 6Ал2), 8Х(3), 6А,(4) для задачи Дирихле в квадрате. Таблица 15 h 1/5 1/10 1/20 0,641 0,162 0,040 " вх<2> 5,250 1,495 0,344 5,250 1,495 0,344 9,859 2,564 0,647 Аналитические значения самих собственных чисел равны соответственно 19,737; 49,348; 49,348; 78,957. Как видно, даже при небольшом числе узлов сетки точность для всех четырех собственных чисел (в том числе и для кратных) достаточно высокая. Теперь мы приведем результаты экспериментов для краевых задач с особенностями, иллюстрирующими преимущества рассмотренных выше аппроксимаций с учетом асимптотического поведения решения перед обычными разностными уравнениями, т. е. построенных без учета особенностей. Мы сначала рассмотрим решение задачи Дирихле для уравнения Пуассона (4.40) при а = 0 в L-образной области, аналогичной изображенной на рис. 7,а. Конкретнее, выбранная область представляет собой квадрат с длиной стороны 2, из которого в левом верхнем углу вырезан единичный квадрат. В качестве искомого решения выбрана функция Здесь tg e = (у - i)/(x - i), а начало координат выбрано в левом нижнем углу большого квадрата. Чтобы функция v(xyy) удовлетворяла задаче (4.40), мы полагаем ) = v(x,y)\r, 176
В табл. 16 для х= 1,2 и разных значений у приведены следующие данные. В каждой клетке указаны пять чисел, которые в порядке сверху вниз означают следующее: точное решение задачи в данной точке, абсолютная ошибка обычного разностного решения при h = 0,2, то же при А = 0,1, ошибка разностного решения с учетом особенности при h = 0,2, то же при /г = 0,1. Таблица 16 х ^^^ 1,2 0,6 7,0726 0,0913 0,0389 0,0093 0,0013 0,8 4,2929 0,1427 0,0626 0,0024 0,0003 1,0 1,9489 0,2669 0,1009 0,0479 0,0066 1,2 0,5305 0,0676 0,0296 0,0079 0,0033 Определенные выше особые разностные уравнения строились при этом только в секторе радиуса 0,5 с центром в угловой точке, имеющей координаты (1,1). Как показывают результаты, учет особенности решения позволяет значительно (в 5—10 раз и более) повысить точность решения. Заметим, что, как показывает эксперимент, погрешность с уменьшением шага сетки для обычной аппроксимации убывает примерно линейно, а для аппроксимации с учетом особенности — квадратично или даже более сильно. Для такой же L-образной области рассмотрим теперь ошибки при решении задачи на собственные значения. В случае граничных условий Дирихле минимальное собственное число дифференциальной задачи равно к = 9,6397. Расчеты.для такой задачи проводились на разных сетках как с выделением особенности, так и без выделения, соответствующие погрешности вычисления к в табл. 14 обозначены через бв и б0. На обоих типах аппроксимаций был также проведен эксперимент по применению экстраполяции Ричардсона для уточнения результатов: на двух сетках с шагами А и 2А находились приближенные значения кн и А,2л, а далее откорректированное значение — ~ 4 1 kh определялось по формуле Л.^ = — Хл — — Л,2/г. Строго говоря, такая операция теоретически обоснована, если справедливо разложение ^l) = ^1) + aiA2 + O(A2). В данном случае такой факт не доказан, но сам эксперимент показывает хороший эффект экстраполяции. Соответствующие ошибки вычисления к обозначены в табл. 17 через бвз — при аппроксимации с выделением особенности и боэ — без выделения. Результаты на самой грубой сетке оказываются не характерными: погрешность оказывается минимальной для аппроксимации без выделения особенностей, причем экстраполяция Ричардсона не дает улучшения точности. Однако при уменьшении шага сетки расчетные данные приходят в соответствие с асимптотическими 12 В П Ильин 177
Таблица 17 h 1/10 1/20 1/40 0,0487 0,0270 .0,0113 0,0519 0,0198 0,0061 А 0,0530 0,0139 0,0036 0,0033 0,0009 0,0002 оценками ошибок. Отличие численного решения от точного для разностных уравнений с учетом особенностей гораздо меньше, чем без учета. Экстраполяция Ричардсона дает значительное уточнение результатов, и особенно это эффективно для аппроксимаций с выделением особенности решения. § 4.3. Итерационные методы решения алгебраической проблемы собственных значений В данном параграфе мы рассмотрим методы решения обобщенной частной задачи на собственные значения i= 1, 2,..., N, (4.59) где Л, D — симметричные матрицы порядка N, А — положительно полуопределена, afl — положительно определена. В этом случае, как известно (см. [38]), существует набор из N D-ортогональных собственных векторов, т. е. (Dziy Zj) = O при 1ф\. Собственные числа вещественны и неотрицательны, минимальное собственное число предполагается простым и все они пронумерованы в порядке возрастания (A,i<A,2< ... <Я#). Рассмотрим две отдельные задачи: первая — вычисление минимального собственного числа, вторая — нахождение нескольких (до 10—20) меньших собственных чисел и соответствующих собственных векторов. В рассматриваемых нами приложениях матрица А вырождена, если только она получается из аппроксимации задачи Неймана. При этом нулевому собственному числу соответствует только один собственный вектор со всеми одинаковыми компонентами. Для других краевых задач матрица А монотонная (Л-1^0), и минимальное собственное число к\ простое, как это следует из теории неотрицательных матриц [38] (более того, из нее следует, что у соответствующего собственного вектора Z\ все компоненты строго положительны). Отметим, что эквивалентная (4.59) обыкновенная задача на собственные значения Czi = lkiZi имеет матрицу C = D~lA, которая имеет вещественный спектр как произведение двух симметричных матриц. Если исходная краевая задача рассматривается в области, составленной из прямоугольников, то матрицу D можно считать единичной и С = А. Поскольку матрицы систем разностных уравнений имеют большие порядки (до нескольких тысяч) и являются ленточными и редкими, то мы остановимся только на итерационных алгоритмах, 178
требующих минимальный объем запоминаемых промежуточных данных. По этой причине мы не рассматриваем такие известные методы, как LR- или (^-алгоритмы, методы вращений и др. 4.3.1. Вычисление минимального собственного числа и соответствующего собственного вектора. Данную задачу мы сформулиру- ем для удобства как обыкновенную задачу на собственные значения CZi = XiZh /=1,2, ...,#, (4.60) в которой С, Zu ^обладают свойствами: C = D~lA, ... <^, (Dzi9 Zj)=O при 1ф]. Одним из простейших в теоретическом плане способов вычисления Х\ является степенной метод, который основан на построении последовательности векторов хп==С~{хп-{^С-пх\ /1=1,2,... (4.61) Разложим вектор начального приближения х° в ряд по z,-: N, ai = (Dx°9 zt), тогда для п-то вектора последовательности получим xn = v1axzx+vn2a2z2 + ... +vnNaNzN, v/ = AT1. (4.62) Отсюда, если начальный вектор не является D-ортогональным - к первому собственному вектору, т. е. а\Ф0, и если /-я компонента Z\ ненулевая (а это, как отмечалось выше,-действительно так в силу неотрицательности матрицы С"1), для любой ненулевой компоненты хп мы будем иметь *7 + y*?=v,[l +O(v§/v?)]. (4.63) Таким образом, если через v(in) обозначить отношение любых одинаковых линейных комбинаций компонент векторов хп + \ хп, например, сумму их модулей, то при п-^- оо получаем v^Wvj. Очевидно также, что в правой части (4.62) при я->оо можно пренебречь всеми слагаемыми, кроме первого. Это означает, что вектор хп для достаточно больших п фактически представляет собой первый собственный вектор. Относительная погрешность компонент составляет при этом величину O^/vf). Чтобы избежать чрезмерного роста или уменьшения компонент хп, можно на каждом шаге вводить нормировку векторов. При использовании любой из норм для последовательности J? = C-|jc11-1, xn = xn/\\xn\\J приведенные выше рассуждения и оценка (4.63) остаются справедливыми. В процессе реализации степенного метода итерации (4.61) ведутся до выполнения неравенства (4.64) при достаточно малой величине г. 12* ' 179
Для ускорения сходимости величину v(irt) можно определять отношением скалярных произведений (Dxf1, xn)=^\\xn\\2D, для которых, как легко проверить с помощью (4.62), имеет место оценка v2ln)}. (4.65) Очевидно, что с помощью выражения (4.65) можно достичь заданной точности е вычисления vi примерно вдвое быстрее (при 8<Cl), чем из соотношения (4.6S). Отметим, что данный прием сам по себе никак не влияет на ускорение определения собственного вектора, так как последовательность хп остается неизменной. Если имеется какая-либо априорная информация о величинах A,i, Яг, то дополнительного ускорения можно достичь с помощью степенного метода со сдвигом, который определяется выражениями \ G^C-x—il, л = 1,2,..., (4.66) где т — некоторый итерационный параметр. В то время как раньше скорость сходимости зависела от v2/vi, теперь определяющей становится величина v2- х =min{ " v3-t I I vN- — I}. 13 частности, если v2> v3 и если положить t = v2, to сходимость степенного метода со сдвигом зависит главным образом от отношения | (v3 — t)/(vi— т)|. Применение сдвига будет малоэффективно, если заранее трудно оценить значение А,2. В этом случае можно использовать ускорение, которое называется б2-процессом Эйткена. Условием его применимости является выполнение неравенств | К\ | < I Я21 < I A,31, а сам алгоритм заключается в следующем. Пусть на основе последовательности х" определен ряд величин Упу Уп+и Уп+2, относительно которых известно, что yn = Civ.nl + C2V& + ... + cN[LnN. (4.67) Если уп — какая-либо компонента вектора хпу то fi/ = v/, а при yn=(Dxn, xn) будет \ii = vf, i= 1,2,..., Л^. Обозначим через ип отношение уп+\/уп и введем величину рп=(ипип+2 — u2n+i)/(un — 2un+i + un+2). (4.68) Используя (4.67), несложно проверить справедливость при i I > I И* I > I M* I отношения 1? Н1). (4.69) Таким образом, ускорение Эйткена на основе использования только апостериорной информации позволяет дополнительно сократить число итераций для вычисления vi, в том числе и по отношению к (4.65). Рассмотренный б2-процесс позволяет также уточнить компоненты первого собственного вектора, если минимальное собственное число vi уже вычислено с достаточной точностью. Для этого 180
строится аналогичная (4.68) комбинация компонент векторов хп~~\ хг\ хп + \ умноженных соответственно на vb I, vf1 Исходя из (4.62), несложно показать справедливость соотношения ^Hv^-'vr1^1- ^/(^Г1- ^x] + vr'^r1) = = ai2,yv7[l +O(vS/v7)]. (4.70) Отсюда видно, что числа qn}, /=1,2,..., N, с точностью до одинакового множителя aivf, дают приближения к значениям Z\\ с относительной погрешностью O(v%/vn\). Существенным моментом в степенном методе является необходимость обращения на каждом шаге матрицы С, что эквивалентно решению системы уравнений -{ (4.71) Точное решение таких систем с помощью прямых методов, как правило, оказывается слишком трудоемким. Поэтому зачастую используются двойные итерации, состоящие в том, что для каждого п вектор хп вычисляется с помощью «внутренних» итераций, выполняемых с помощью какого-либо из алгоритмов, рассмотренных в гл. 1. На некоторой ai-й «внешней» итерации «внутренние» итерации ведутся до обеспечения заданной точности гп вычисления вектора х". Одним из важных вопросов такого метода является оптимизация последовательности е„, обеспечивающей минимальное суммарное количество «внутренних» итераций. Мы не будем останавливаться детально на этой задаче. Очевидно, гп должны составлять убывающую последовательность, поскольку на первых внешних шагах не требуется высокая точность определения хп (исследование этих вопросов можно найти в статьях [170, 110] ). Для ускорения сходимости степенного метода в (4.66) можно ввести переменные сдвиги т„, определяемые корнями полиномов Чебышева 1 -го рода (см. [111] ). Однако мы рассмотрим применение чебышевского ускорения в алгоритме, аналогичном используемому при решении систем уравнений и не требующему обращения матрицы С. Определим последовательность векторов х" = х"-1 - тпСха-] = Рп(С)х°, (4.72) п РЯ(С)= П (/-т*С), « = 1,2,..., где тп — итерационные параметры, выбираемые следующим образом. Определим некоторые положительные числа m, M, удовлетворяющие неравенствам k\<.m<ks^M. Значения тп выберем циклическими с некоторым периодом L, равными обратным величинам корней полинома Чебышева р м—т M_m наименее отклоняющегося от нуля на отрезке [т, М\ и равного 181
единице при v = 0: тя(т, М, L) = 2[M+m-(M-m)cos я(2^)""1)]"1- (4.73) Здесь &(я) есть некоторая перестановка первых L чисел натурального ряда. При L<30, что обычно достаточно для практических задач, можно положить £ = modL(n), т. е. k= 1, 2, ..., L, 1,2, ... Для больших L скорость сходимости итераций (4.72) растет, но в этом случае для избежания возможной неустойчивости счета требуется специальное определение последовательности k(ri), на котором мы не останавливаемся, см. [119, 166]. На каждом шаге итерационного процесса (4.72) будем вычислять значение величины а?Р2(У1) + а1^(У2)++а2^(у_1) ()* Поскольку многочлен Pn(v) строго больше нуля при v = vi (он имеет корни только на интервале (т, М) и равен единице при v = 0), то мы имеем )], (4.75) где величина р„ определяется равенством Р„ = Л,(г2)/Р„М (4.76) при V2<m и P«=max{|Pn(v)|}/Pn(v,V (4.77) V 6 [т,М] если vi<m<Cv2. В силу свойств многочленов Чебышева и соотношений (4.75) — (4.77) следует, что y\n) = {\-gn)/Tn (4.78) будут стремиться к минимальному собственному числу vi при n = kLy 6=1,2, ... Скорость сходимости определяется величинами рп. Полагая для простоты М = 1, из оценок значений чебышевских полиномов получаем: Pn<(l-v,/2-y>"~-^r (4.79) при при v2<m<l. Отсюда следует, что скорость выделения минимального собственного, числа по крайней мере не ниже, чем скорость подавления ошибки при решении систем линейных уравнений с помощью че- бышевского ускорения. 182
Обобщением алгоритма (4.72) является итерационный процесс с переменным сдвигом [36]: xn = xn-l-TnHnl(A-tin)D)xn-l = Tnxn-\ (4.80) Х^ = (Ах\ xn)/(Dx\ хп\ п = 1, 2, ..., где хп — некоторые итерационные параметры, Нп — квадратные матрицы порядка N, а А,(п) являются приближениями к значению A,i из задачи (4.59). Матрица перехода от вектора хп~1 к хп здесь имеет вид и если какие-то из матриц #„, Л, D не перестановочны, то собственные векторы матрицы Тп не совпадают с искомыми векторами zi. Это вносит принципиальное отличие от рассмотренных выше методов. Например, в (4.72) матрица перехода есть / — т„С, что позволяет просто проводить анализ сходимости на основе разложения векторов хп по базису исходной задачи. Применение же методов типа (4.80) основывается на том факте, что если последовательность А,(п) сходится к собственному числу, то векторы хп сходятся к соответствующему собственному вектору z\ задачи (4.59). Мы подробнее рассмотрим модификацию алгоритма (4.80), в котором величины А,(п) пересчитываются не на каждом шаге. Тогда формально можно записать двуступенчатыи итерационный процесс (матрицы считаем симметричными, положительно определенными и не зависящими от п): лЫ ,л , 1ч „ , (4.81) Здесь xlo — произвольный начальный вектор, не ортогональный вектору z\, А,(о) = (Лхо, Хо)/(Вх1, хк), kn — количество «внутренних» итераций для каждого /г, т4п) — чебышевские итерационные параметры для интервалов (т„, Мп), границы которых 0<mn<iMn могут меняться на разных внешних итерациях. Для произвольного числа А,(о) собственные векторы спектральной задачи (A-№D)zt = vPDzi, i=l,2,... ,N, (4.82) очевидно, совпадают с собственными векторами задачи (4.59), а собственные числа связаны соотношением vP = Xi — А,(о). С другой стороны, собственные векторы */[0) матрицы перехода /#0 = / _ г£я>Я-] (А - ti0)D) (4.83) итерационного процесса (4.81) при А,(о) определяются спектральной задачей i= 1,2,... , N. (4.84) 183
Нетрудно видеть, что v[0) и |40) являются собственными числами матриц D~l/2{A-X^D)D~l/2 и H~l/2(A ~X^D)H~l/2 соответственно. Отсюда, в силу положительной определенности матриц D, Н и закона инерции Сильвестра [38] следует, что спектральные задачи имеют одинаковое число положительных, нулевых и отрицательных собственных чисел. Из последнего свойства вытекает, что если значение А,(о) находится между Xs и A,s+i» I ^s<cN, то для собственных чисел (4.84) будут выполняться неравенства (с учетом того, что к\ из задачи (4.59) —простое собственное число): ^<^<...<|40)<0<^,<...<^). (4.85) Поэтому, если мы выберем то, Мо из условий О^то^м^ь \х$^Мо, а итерационные параметры т40) возьмем равными обрат- Ti а пг ( A*o + mo —2v\ ным значениям корней многочлена Чебышева i кЛ—тз— 1 (для этого в формуле (4.73) надо положить п~к, т — тщ, М = т0, L~ko), to мы получим, что для достаточно больших ко имеют место неравенства А/о)2> №ь=(Лх§°, 4°)/(Bxk0\ 4°)>Аи, (4.86) т. е. значение Я(1) ближе к искомому К\у чем 7S0\ Доказательство следует из того факта, что в силу (4.85) собственные числа т]10) матрицы перехода (4.83) удовлетворяют неравенствам ^о)> №> -. > Ч?}> 1 >№х> - > т»(й>. (4.87) Отсюда, раскладывая векторы Хо из (4.81) в ряд по собственным векторам yfp задачи (4.84), легко показать, что последовательность нормированных векторов xq/(Dxo, х§)1/2 сходится к ^/(D/*\ у^у/2. А поскольку величина (Dxl с ростом fe стремится к (Лxk0, x^_ (Q) ((Л-X^D)xi 4) S)" ~" то из отрицательности ffl и положительной определенности матриц Я, 1) получаем (4.86). Аналогично и для других я можно показать, что если Х^^Хи to при достаточно большом количестве «внутренних» итераций kn и соответствующем выборе т„, Мп в итерационном процессе (4.81) имеем неравенства Таким образом, получаем, что при я-^оо числа Х^ сходятся к пределу А,* — Х\ (если Я*>1, то предельное значение \i[n>l отрицательно, и мы приходим к противоречию). Последовательность 184
векторов t/fi сходится к Z\, так как при п-^оо величина ^я+|> —Л(й)=((Л —Л(я)ад% xfr)/(Dxk0\ 4я) стремится к нулю и Х{п)-^Х\У хоя-+у\п\ Скорость сходимости алгоритма (4.81), как и в степенном методе, зависит от соотношения значений к\, А,2. С точки зрения оптимизации экономичности определяющим является выбор начального сдвига Я(о), количества внутренних итераций kn, параметров тп, Мп для вычисления итерационных параметров и самого вида матриц Я„. Если нет какой-либо априорной информации о границах спектра матрицы H~l(A — A,(n)D), то значения тп можно брать нулевыми, а Мп оценить грубо по ее норме. При выборе Нп в виде единичной матрицы (4.81) мы приходим к формальному обобщению метода (4.72), заключающемуся в использовании переменных сдвигов ^"Х Однако как раз в этом случае простой спектральный анализ показывает, что введение сдвигов не дает улучшения асимптотических (при больших п) оценок необходимого числа итераций. В работах Руэ [162] исследовано применение метода последовательной релаксации с переменным сдвигом для нахождения минимального собственного числа и соответствующего собственного вектора. Формально такой итерационный процесс можно записать в виде (4.81) с некоторой несимметричной матрицей, но его реализация более наглядна в следующей записи. Пусть матрица А из спектральной задачи (4.59) представляется суммой А = —М-\-В— N, тле В — диагональная, а Ми N— соответственно нижняя и верхняя треугольные матрицы. Тогда последовательные приближения определяются формулами l = Nxkn, k= 1,2,..., *я, (4.88) Здесь о) — итерационный параметр, a kn — количество «внутренних» итераций на п-и «внешней» итерации. Как видно, вычисления векторов Xn+i производятся практически так же, как и при решении систем линейных алгебраических уравнений методом последовательной верхней релаксацил. Введение переменного сдвига изменяет только диагональные члены матрицы перехода, которая в данном случае определяется из выражений * = 1,2, ...,*„, (4.89) В таком итерационном процессе для различных kn и начальных приближений А,(о) (только матрицы Т$ должны быть невырождены) при я-> go значения Х^ сходятся к ^, а 4 — к соответствующему собственному вектору z\. Мы не будем останавливаться на обосновании метода. Отметим только, что достаточными условиями сходимости итераций явля- 185
ются те же свойства, что и для методов последовательной релаксации решения систем уравнений (см. § 1.3): диагональное преобладание, положительность В и неотрицательность матриц М, N. У матрицы перехода базис из собственных векторов другой, нежели в задаче (4.59). Однако если A,(n)->A,i, то минимальное собственное число матрицы Т$ стремится к нулю, а4 — к ее соответствующему собственному вектору, который будет при этом совпадать С Z\. С точки зрения экономичности алгоритма (4.88) возникает задача оптимизации параметров со, №\ kn. Теоретически эти вопросы не исследованы. Практика показывает, что при А,(0) = 0 и выборе со из тех же принципов, как и при решении систем уравнений, разностные задачи на собственные значения решаются данным методом с высокой эффективностью (величины kn можно брать от 1 до 10). Вычисление минимального собственного числа и соответствующего собственного вектора требует примерно такого же количества итераций, что и решение системы уравнений с той же матрицей. 4.3.2. Нахождение нескольких собственных чисел и векторов. Если мы нашли каким-либо из выше рассмотренных итерационных процессов Х\ и z\, то его можно продолжить с небольшой модификацией для определения второго собственного вектора и собственного числа, если оно простое. Для этого достаточно использовать свойство D-ортогональности z\ ко всем остальным собственным векторам задачи (4.59). Пусть, например, в методе (4.72) при n = tii мы вычислили с достаточной точностью вектор Z\. Тогда дальнейшие итерации продолжаем, проводя ортогонализацию векторов хп к Z\\ уп = Рп(С)х\ xn = yn-(Dynfzl)zu n = m + l, лг,+2,... (4.90) Очевидно, что предельный вектор последовательности хп будет ортогонален к zu и если собственное число v2 матрицы С простое, то величины gn из (4.74) для достаточно больших п могут быть использованы для его вычисления: v2=\im{(l-gn)/xn}. (4.91) П-*-оо При этом предельный вектор хп нам дает 2г. Типичное использование такого подхода — вычисление минимального ненулевого собственного числа для вырожденной матрицы, возникающей из разностной аппроксимации задачи Неймана. Формально этот процесс можно использовать и для вычисления нескольких собственных чисел и векторов. Если в задаче (4.59) уже найдены к\, ...Дг, Zi,..., 2Г, то для нахождения Хг+\ (если оно простое) можно использовать метод (4.72), в котором векторы хп D-ортогонализуются к z\,...,zr: у- = Рп{С)х\ xn = yn-i [Dy\ Zi) и (4.92) 186
Однако применение такого алгоритма к вычислению большого количества собственных чисел требует высокой точности определения z\,...,zr, иначе «погрешности ортогонализации» приведут к большим ошибкам результата. Кроме того, применимость метода сужает условие некратности вычисляемых собственных чисел. Эффективным алгоритмом одновременного вычисления нескольких собственных чисел и векторов для матриц большого порядка является метод итераций в подпространстве [10], являющийся одним из вариантов так называемых ступенчатых методов [183, 188]. Итерационный процесс ведется одновременно с т векторами, для которых задаются произвольные начальные приближения xf\ л#>, ...,*2?. Обозначая через Мо прямоугольную матрицу размера mXN, состоящую из векторов х$\ k= 1,..., m, решение задачи (4.59) ищем с помощью последовательности LnDLny (4.93) = LnZn+\ Как видно из построения, Ап, Вп представляют собой квадратные симметричные матрицы порядка т, а Ап — диагональная матрица с элементами Х\п\ ...ДЙ?. Четвертое соотношение (4.93) представляет собой запись обобщенной проблемы собственных значений для матриц Л„_|_1, Вп+1, причем столбцы z{n+l\..., z(m + 1) есть собственные векторы, соответствующие собственным числам Х[п+1\ ... ...,A,fe+1). Для каждого п такая вспомогательная проблема может быть легко решена «стандартным» алгоритмом (например, методом Якоби), поскольку для рассматриваемых нами задач m<cN. Первая строка в (4.93) есть фактически т систем линейных уравнений N-vo порядка, решение которых может быть выполнено с помощью итерационных методов, описанных в главе 1. С помощью спектрального анализа последовательных приближений можно показать, что значения МЧ-А^ стремятся к собственным числам A,i,...,A,m исходной задачи (4.59), в том числе и при наличии среди них кратных значений. Столбцы х^\ &=1, 2,..., т, матрицы Мп, соответствующие собственным числам Xin\ стремятся при п-+оо к собственным векторам Zk исходной задачи (4.59). Скорость сходимости каждой из последовательностей Х\п) для l^k^m зависит от отношения Xk/km+i. Поэтому с точки зрения ее увеличения целесообразно брать размерность итерируемого подпространства с запасом. То есть, если требуется вычислить г собственных векторов, то значение т берется процентов на 20— 50 больше. Однако надо иметь в виду, что при этом увеличится трудоемкость каждой итерации. В целом задача вычисления 5—10 собственных чисел и векторов остается достаточно «дорогой», и вопрос оптимизации алгоритмов является чрезвычайно актуальным. Достоинства метода (4.93) заключаются в возможности его реализации при относительно малом объеме оперативной памяти и в наличии опубликованной хорошей программной реализации [10]. 187
§ 4.4. Примеры расчета характеристик электродинамических систем Мы приведем результаты расчетов ряда практических задач, выполненных А. В. Гаврилиным с помощью описанного в последней главе пакета программ Эдип, см. также [37]. 4.4.1. Расчет длины волны регулярного волновода. Для регулярного волновода с П-образной формой поперечного сечения, см. рис. 22, ставилась задача расчета длины основной волны электрических колебаний. Математическая постановка сводится к решению задачи (4.38) при <х = 0 (декартова система координат) в области, ограниченной ломаной ABCDEF. С учетом симметрии сечения, граничные условия берутся в виде и —0 на АВ и ди/дп = 0 наBCDEFА.Ллкяа волны / выражается формулой 1 = 2я/-^Х через минимальное собственное число X краевой задачи, для нахождения которого применялись рассмотренные выше методы, и а=1 расчеты проводились с исвложенных сеток Qh, QA/2, й Рис. 22. Для значений а\=а2 = ( пользованием последовательности A/2 последняя из которых получалась делением пополам шагов редкой сетки. Сетки выбирались такими, чтобы граница проходила по координатным линиям. Аппроксимация условия Неймана проводилась с погрешностью второго порядка. Поскольку для данной задачи не известно точное решение, достоверность расчетов проверялась путем сравнения результатов на двух типах сеток. Первый вариант рассчитывался на вложенных квадратных сетках, из которых редкая имела шаг А=1/40. В результате были получены значения Kh = 5,5806; Xh/2 = 5,5840; 2 — -L-Xh = 5,5852. о Во втором варианте редкая сетка имела следующие шаги: f 0,05, 0<*<0,25, [ 0,05, 0<у< 0,025, hx=\ 0,5/30, 0,25<jc<0,75, hy=\ 0,5/30, 0,25<w<0,75, L 0,05, 0,75 <*<1, I 0,05, 0,75 < у <1. Соответствующие собственные значения при этом равны: kh = 5,5828; lh/2 = 5,5849; lh/2 = 5,5857. Отсюда видно, что для обоих типов сеток проэкстраполиро- ванные значения кн/2 отличаются друг от друга менее чем на 0,01%, что может служить достаточной гарантией точности алгоритмов. 188
4.4.2. Расчет коэффициента усиления поля периодической структуры. В линейных ускорителях заряженных частиц широкое распространение получили периодические структуры с кольцами. Схематическое изображение осесимметричного фрагмента одной из таких структур (вообще говоря, трехмерных) представлено на рис. 23, а вместе с характерной формой силовых линий электрического поля. \\Кп Рис. 23. Анализ структуры проводился на основе решения краевой задачи (4.38) при а = 1 в области, ограниченной контуром OABCDEFGO с граничными условиями ди/дп — О на ABCD и и = = 0 — на остальной части границы. Особенностью задачи является то, что радиусы закругления кольца в точках В и С на два порядка меньше характерных размеров а или Ь. Целью расчетов были подбор геометрических параметров для обеспечения заданной длины волны и нахождение распределения коэффициента усиления поля ko = Ez/Ec? вдоль поверхности кольца. а Здесь Еср==—\ £г(0, z) dz — среднее значение компоненты о напряженности поля на оси,' a Ez = Ez(s)— напряженность как функция параметра длины контура ABCD. Значения Е2 в узлах сетки вычислялись с помощью аппроксимации выражения Ez = =—— по формулам с погрешностью второго порядка, а в остальных точках использовалась линейная интерполяция. На рис. 23,6 приведён вид зависимости &o(s), имеющий физически «разумную» форму. Достоверность результата проверялась путем расчетов с различными счетными параметрами. 4.4.3. Моделирование замедляющей системы ускорителя. На рис. 24 приведена расчетная ячейка замедляющей системы ускорителя заряженных частиц. Целью численного моделирования было нахождение основной частоты электрических колебаний со = = j/АГи распределения характеристического сопротивления систе- 189
мы, рассчитываемого по формуле ф) = я( J JL dr' dzj Я^1 Q dz, а также определение изолиний азимутальной компоненты магнитного поля Вф, в данном случае вычисляемого через основную гармонику и с помощью выражения В^ = и/г. Рис. 24. Здесь Q обозначает расчетную область, a Qr — ее часть с координатами г'^г. Расчеты проводились на последовательности кусочно-равномерных сгущающихся вложенных сеток (каждая последующая сетка имеет шаги вдвое меньше, чем-предыдущая). Самая редкая из них имела количество узлов около 600, а самая густая — около 10000. На рис. 24 приведена кривая зависимости характеристического сопротивления от радиуса, а также характерные изолинии компоненты магнитного поля Вг Отметим, что полученное в расчетах значение основной частоты «даже слишком» хорошо совпадает с экспериментально измеренным числом для данной системы — отклонение составляет менее 0,01%.
Глава 5 МОДЕЛИРОВАНИЕ СИЛЬНОТОЧНЫХ ПУЧКОВ Сильноточные пучки заряженных частиц имеют широкое распространение в различных областях науки и техники. Математическая постановка здесь заключается в решении так называемых самосогласованных нелинейных задач, сводящихся к расчетам электромагнитных полей и движения пучков заряженных частиц с учетом объемных зарядов и токов. Отдельно следует рассмотреть стационарные задачи и нестационарные. Описание последних мы делаем в квазистационарном предположении, что за время прохождения частицами расчетной области электрическое поле меняется несущественно и распределение потенциалов описывается в каждый момент времени уравнением Пуассона. Рассматриваемые задачи имеют богатое физическое содержание и в различных приложениях требуют учета многочисленных эффектов: релятивистских скоростей, вторичной эмиссии, объемной ионизации, взаимодействия с высокочастотными полями и т. д., см. [23, 97, 161, 163]. Численное моделирование плотных пучков заряженных частиц имеет давнюю историю, восходящую еще к «домашинной» эпохе. Значительное количество результатов было получено с помощью приближенных аналитических методов или моделирования на аналоговых устройствах. Состояние этого этапа работ достаточно полно отражено в монографии [97]. С освоением ЭВМ образовался поток статей, посвященных как описанию расчетов различного типа силыюточных приборов, так и разработке новых алгоритмов. Большая библиография по этим работам приведена в книгах [70, 138, 161], а также в обзорной статье [148]. Среди работ за последние годы следует отметить исследования московских математиков А. Г. Свешникова, Ю. И. Мокина, Г. Т. Головина и других, в которых рассматриваются и новые математические постановки, и численные методы, и результаты численных экспериментов, см. [13, 21, 22, 46, 67, 131 —136], а также цитируемую там литературу. Можно смело сказать, что расчеты сильноточных электрофизических устройств представляют собой одну из наиболее трудоемких задач вычислительной математики, требующую затрат значительных ресурсов самых современных вычислительных систем. Достаточно заметить, что в полном объеме эта проблема включает составными компонентами рассмотренные в предыдущих главах задачи расчета напряженности электростатического 1Q1
поля, магнитной индукции, собственных частот и гармоник резонаторов. Кроме того, прикладные требования заставляют рассчитывать экстремальные режимы сильноточных устройств, что приводит к решению сильно нелинейных задач, для которых вопросы существования, единственности или устойчивости решений являются открытыми. В таких случаях проблемы сходимости или оценки погрешности алгоритмов практически неразрешимы, и критерием адекватности расчетов является только сравнительный анализ численных экспериментов и физических измерений. § 5.1, Описание математической модели Рассмотрим следующую постановку задачи: а) потенциал электрического поля ср, образованного системой электродов и объемным зарядом частиц с плотностью р, удовлетворяет уравнению Пуассона Аф=—4яр; (5Л) б) движение частиц массы М и заряда q определяется уравнением (мы пользуемся гауссовской системой единиц): где г — радиус-вектор этой частицы, с — скорость света, t — время, а Я — вектор напряженности магнитного поля; в) выполняется условие неразрывности токов div/ = d'wpv = др/dt, (5.3) где / — плотность тока, a v — средняя скорость, определяемая как v(r)=hm . (5.4) Здесь Vi = dr/dt — скорость отдельной частицы, имеющей заряд qi. Суммы берутся по всем частицам, находящимся в объеме AV. Соответственно плотность объемного заряда имеет вид p= lim ^-= lim-у, (5.5) где Q(AV0 = S<7i• — суммарный заряд в объеме Д1Л Магнитное поле представляем в виде суммы Н = Нь-\-Нс, где Нь — напряженность так называемого внешнего поля, задаваемого или вычисляемого каким-либо образом как функция независимых переменных. Вектор Нс характеризует собственное магнитное поле пучка: КП (г-г')} \r-r'\ dV. (5.6) Требуется найти решение, т. е. распределение потенциала, плотности токов, объемных зарядов и траекторий частиц в замкну- 192
той области G, на границе Г которой заданы условия для ф, / и начальные данные для координат и скоростей частиц. Строго говоря, рассматриваемое уравнение неразрывности плотности тока и сами понятия плотности тока и объемного заряда имеют смысл только при достаточно высоких плотностях частиц, что не всегда имеет место в исследуемых задачах. Однако эти вопросы легко снимаются, если вместо дифференциальных уравнений (5.1), (5.3) использовать эквивалентные интегральные законы сохранения: теорему Гаусса is *v где As — площадь поверхности объема W, и баланс заряда i ~ 2 qi= { (Q2 - Q\)dt. J AV Здесь 2 qt означает количество заряда в AV в момент времени AV tn, a Q2 и Q\ —заряды, входящие и выходящие, соответственно, за единицу времени через поверхность As. Используемые ниже алгоритмы аппроксимируют фактически интегральные соотношения при малых, но конечных АV. Для расчета объемных зарядов и плотности тока используем модель «больших частиц». Предполагается, что элементарные частицы, влетающие за интервал At в область с некоторой площадки As со скоростями, находящимися в отрезке [vy v-{-Av], образуют так называемую большую частицу конечного размера, которая движется затем как целое, сохраняя свой заряд неизменным. Начальные координаты и скорости большой частицы определяем усреднением по всем входящим в нее элементарным частицам. При необходимости учета распределения частиц по скоростям проводится разбиение потока на энергетические, а если нужно, и на угловые группы. Тогда с каждой площадки As пускаются несколько частиц с начальными значениями скоростей, усреденными по соответствующей группе. Для нахождения заряда в некотором объеме АV расчетной области определяется доля заряда каждой частицы, относящейся к Д V, и производится простое суммирование. Аналогично, с учетом скоростей частиц, находятся и элементарные токи в объеме AV. Для стационарных задач используется более экономичная модель — метод трубок тока.^ В этом случае предполагается, что все частицы, входящие в расчетную область через площадку As, образуют элементарную токовую трубку с неизменным переносимым ею током /=$ $ j(r,v)dvds. (5.7) As Au 13 В П Ильин 193
Форму такой трубки определяем по траектории какой-либо элементарной частицы, вылетающей с площадки As. При учете распределения частиц по скоростям также проводятся разбиения потока на энергетические и угловые группы, и с каждой площадки запускается несколько трубок, с соответствующими начальными данными. Основное различие методов «больших частиц» и «трубок тока» заключается в объеме необходимой для запоминания информации. Например, пусть в трехмерной стационарной задаче поток моделируется 200 трубками тока и каждая соответствующая траектория содержит в среднем 50 расчетных точек. Тогда требуется запомнить только начальные значения координат и скоростей частиц, всего 200 X 6 чисел, в то время как при использовании сравнимой по точности модели «больших частиц» потребовалось бы 200 X X 50 X 6 чисел. Распределение объемного заряда в стационарном случае будем находить, используя условие неразрывности для отдельных трубок тока. Если, например, траектория, которой мы ставим в соответствие бесконечно тонкую трубку с током Л, пересекает некоторый объем АV за время А/^, то заряд i-и трубки тока, находящийся в этом объеме, определяется как ЛА/^. Общее количество заряда в объеме AV ищем с помощью суммирования по всем проходящим через него траекториям: 2 (5.8) Отметим, что такой алгоритм универсален в том смысле, что не предполагает ламинарности потока, допускает пересечения траекторий и различные типы частиц. Физический характер рассматриваемых нами задач в большой степени зависит от типа граничных и начальных условий. В данной работе мы допускаем следующие возможные случаи. Расчет проводится в замкнутой двумерной или трехмерной области, на границах которой задаются или значения потенциала, или условия Неймана. Если исследуемая система электродов не замкнута, то требуется провести замыкание расчетной области, поставив из физических соображений условия на искусственно вводимых участках границы. Например, если замыкание проводится достаточно далеко от интересующей нас окрестности, то можно поставить условие однородности поля дц/дп (здесь и далее п — внутренняя нормаль к границе). Условия Неймана также ставятся на линиях или плоскостях симметрии. При наличии сред с различными диэлектрическими постоянными е+, е_ на границе их раздела ставятся условия сопряжения (1.3). Нас будут интересовать, как правило, области со сложной конфигурацией, в том числе и многосвязные. Далее, мы будем допускать наличие в области нескольких пучков частиц различного сорта, т. е. имеющих разные значения массы и заряда. Мы предполагаем возможным следующие типы начальных условий для плотности тока. 194
al) Задается плотность тока; если пучок не моноскоростной, то указывается общая плотность тока, функция распределения частиц по скоростям и способ разбиения потока на энергетические или угловые группы. Обозначая tj = cos (и,/г), для этого случая мы сможем формально записать выражение /|г€г=/(г,|о(г)|, л(г)). (5.9) Примерами задач с такого типа условиями может служить расчет поля в области, в которую влетает односкоростной пучок, или расчет параметров известной эмиссионной способности катода с учетом температурного разброса частиц. 61) Ставится условие ограничения плотности тока пространственным зарядом при нулевых начальных скоростях на эмиттирую- щей поверхности катода. Это приводит к дополнительному граничному условию: помимо заданного потенциала фо на катоде требуется равенство нулю нормальной производной потенциала на поверхности. Для одномерного случая (плоский диод) такая задача имеет точное решение: плотность тока пропорциональна отношению [ф(х) — фо]3/2/х2, а распределение потенциала имеет вид ф(х)~х4/3 — это так называемый закон «3/2», или Чайльда — Ленгмюра. Для цилиндрического или сферического диодов, а также в случае релятивистских скоростей или наличия внешних магнитных полей, соответствующие решения имеют незначительные поправки, см. [113, 163] Если эмиттирующая поверхность криволинейна, то мы считаем, что существует на достаточно близком от нее расстоянии d эквипотенциальная поверхность, «почти параллельная» поверхности эмиттера, и между ними распределение ф такое же, как для одномерного случая. При этом учитывается возможность ограничения плотности тока эмиссионной способностью катода /s, т. е. для электрона массы т с зарядом е будем иметь Л лег = mm {/„ -f\J 2 — ), (5.10) где щ — значение потенциала в точке на расстоянии d по нормали к поверхности эмиттера. Рассматриваемая постановка существенно усложняется в задачах расчета плазменной границы, когда само положение эмитти- рующей поверхности неизвестно. В этом случае обычно плазма предполагается квазинейтральной и эквипотенциальной, а значение потенциала принимается тем же, что и на примыкающем металлическом электроде. Плотность тока эмиссии из плазмы считается заданной и определяется ее температурой и плотностью. Граница эмигрирующей поверхности определяется из условия равенства кинетического давления плазмы р и давления электростатического поля: V дп 13* 195
Если считать переходный слой между плазмой и вакуумом бесконечно тонким и пренебречь тепловыми скоростями заряженных частиц, то на границе плазмы можно считать нормальную производную от потенциала равной нулю. Тогда получаем, что на малом расстоянии d Ът границы решение приближенно описывается законом Чайльда — Ленгмюра, как и вблизи обычного катода. в1) Условие для вторичной эмиссии. В данном случае плотность тока для вылетающих с поверхности частиц зависит от энергии и плотности частиц падающего потока. При этом вторичные частицы могут быть распределены по энергетическим группам: /вт = /(1/л1, \Vn\, ICbtI, T)X где vn, jn — скорость и плотность тока падающего потока, а /вт должна быть задана как функция указанных переменных. . В простейшем приближении «вторичные» частицы можно считать вылетающими по нормали к поверхности, причем, как правило, выделяются упруго отраженные частицы, начальная скорость которых равна скорости падающих, а также медленные частицы, обусловленные неупругим отражением. В рассматриваемой нами формулировке явление поверхностной ионизации понимается как частный случай вторичной эмиссии, отличающейся только сортом эмиттируемых частиц. rl) Мы отметим еще один физический эффект, приводящий к новому типу задач, — процесс объемной ионизации в электровакуумных приборах, возникающий из-за остаточного давления. Предполагаем, что заданы плотность газа, сечение ионизации и функции распределения частиц после столкновения. По этой информации в ходе расчета траекторий основного потока формируются начальные данные для ионизируемых частиц, а их движение рассчитывается обычным образом. Решение будем искать в декартовой системе координат х, у, z для трехмерных областей, а в двумерных используем координаты х, у для плоских задач и цилиндрические координаты г, z — для осесимметричных. Решение самосогласованных стационарных задач проводится путем последовательных приближений по объемному заряду. Сначала находится поле при каком-то начальном распределении р (как правило, нулевом), и в таком поле рассчитываются траектории, токи и обусловленный ими заряд. Затем определяется поле с учетом этого заряда, снова рассчитываются траектории и т. д.; итерации продолжаются, пока соседние приближения не совпадут с заданной точностью. Если за период, сравниваемый со временем движения частиц в расчетной области, существенно изменяются потенциалы на электродах или какие-либо другие параметры (например, плотность тока влетающих в область частиц), то мы приходим к нестационарной задаче. В этом случае будем использовать квазистационарное приближение, т. е. предполагаем, что скорость изменения переменных факторов все-таки относительно мала и на каждый 196
момент времени распределение потенциала удовлетворяет уравнению Пуассона. Решение нестационарной задачи при этом определяем как последовательность стационарных решений, для каждого из которых граничные и начальные условия соответствуют моменту п времени tn= 2 А/*. Значения Atk выбираются достаточно ма- k=i лыми по сравнению с характерным временем изменения параметров задачи. Напомним, что в нестационарных задачах поток можно описывать только с помощью модели больших частиц, а не трубок тока. Для этого задаются начальные координаты г,- и скорости п находящихся в расчетной области больших частиц, а также значения их масс Mi и зарядов qu /=1,2, ...,N. Очевидно, величины г, и N должны быть такими, чтобы расстояния между соседними частицами были малы по сравнению с характерными размерами области. Кроме того, часть границы, являющейся эмиттером или фронтом входящего пучка, рассматривается как «источник» частиц. С площадки Ask в каждый момент времени tn выпускается частица с зарядом AskjkAtn, где jk — средняя плотность тока на As*. Распределение плотности объемного заряда приближенно описывается соотношением (5.5), причем AV берется конечным, a Q(AV) определяется по заряду больших частиц, находящихся в объеме А V. Конкретизируем форму дифференциальных уравнений, причем для удобства введем безразмерные переменные: х'—— и'—-У- г'—— г'—— V— г ©' — ф Lq Ьо Lo Lq to фо dt' vo Но vo /о ро где Lo, vo, to, фо, /о, ро, Но — некоторые характерные величины длины, скорости, времени, электрического потенциала, тока, плотности заряда и напряженности магнитного поля, причем vo = = Lo/voi (ey m — заряд и масса покоя электрона), В дальнейшем мы будем все уравнения писать в безразмерном виде, а штрихи для краткости опускать. Уравнение Пуассона запишем в форме для трехмерного Случая и для двумерного. Здесь а равна нулю для плоских задач и единице — для осесимметричных, причем ради единообразия перемен- 197
ные г, г заменены на х, у, а 0 = 4пр0Ц/ц)о — безразмерная константа. Потенциал ф на разных участках границы удовлетворяет гра- ничньТм условиям бида (1.2), (1.3), причем функции gi могут зависеть от t. Запишем в проекциях на оси координат системы уравнений движения, выделив для наглядности в дальнейшем те случаи, которые отличаются алгоритмическими аспектами. а2) Нерелятивистские задачи без магнитного поля: х=_р4^, £=-р-^, z=-|A (5.13) здесь p = zm/(2Af |е|), причем третье уравнение в двумерных задачах отсутствует (напомним, что в осесимметричном случае х9 у означают цилиндрические координаты). 62) Плоские нерелятивистские задачи со скрещенными магнитными полями (НХ = НУ = О): ) ^) (5.14) здесь Di=HoLoVo/(co(po) — безразмерная постоянная. в2) Трехмерные релятивистские задачи: fg] (5.15) г=pV Т^ [ Ц+d (iH н) ie ] гдс 82_ e^j где о - ^ ,w 2 {x dx ty gy Очевидно, нерелятивистский случай получается отсюда при 6 = 9—0. Решение таких систем может потребоваться даже для двумерных электрических полей, если НхФ0 или НУФО. г2) Мы выпишем, наконец, систему уравнений движения в цилиндрической системе координат для релятивистского случая: /„, - щНг) - /0 ; (5.16) дг dz/' Решение этих уравнений требуется проводить для каждой частицы 198
или траектории при заданных начальных данных Мы рассмотрим алгоритмы расчета траекторий, объемных 'зарядов, токов и необходимых характеристик электромагнитных полей. Предполагается, что решение краевых задач для потенциалов проводится с помощью разностных методов на прямоугольных (в трехмерном случае — параллелепипедоидальных) сетках (Гкусочно-постоянными шагами по каждой из независимых переменных. Соответствующие вопросы мы будем затрагивать в минимально необходимом объеме, ограничиваясь главным образом ссылками на первую главу. ' Расчет потенциалов можно бы проводить и по методам конечных элементов, рассмотренных в гл. 2. Однако при использовании существенно неравномерных и тем более нерегулярных сеток, подстраивающихся под геометрию границы, сильно усложняются алгоритмы вычисления напряженностей электрических и магнитных полей, являющихся наиболее трудоемкой частью при интегрировании уравнений движения частиц. В случае же регулярных прямоугольных сеток конечно-разностные методы более экономичны, чем конечно-элементные. Для самосогласованных задач конечно-разностные аппроксимации имеют преимущество также и по сравнению с методами интегральных уравнений. Во-первых, при наличии объемных зарядов в области значительно усложняется формирование алгебраической системы для определения плотности поверхностного заряда. Во-вторых, вычисление производных потенциала в каждой точке (а это необходимо делать многократно при большом числе частиц) требуется проводить интегрированием по всей границе области, что тоже является трудоемкой операцией. Сделаем несколько замечаний о других математических моделях пучков заряженных частиц. Мы фактически рассмотрели поток как дискретную совокупность элементарных частиц, а каждую «большую частицу» определили простым суммированием заряда, массы и усреднением скоростей элементарных частиц, находящихся в начальный момент времени в конечном элементе фазового объема. Наиболее распространенная модель основана на определении функции распределения частиц f(t, г, р) в фазовом пространстве из кинетического уравнения Власова +v+Fo « dt dr dp ' где р — импульс, a F — сила, действующая на заряженную частицу в электромагнитном поле. Плотности тока и объемного заряда при этом выражаются интегралами 9(r) = q \ /(г, v)dvf j(r) = q \ vf(r, v)dv, 199
а траекториями движения отдельных частиц являются характеристики кинетического уравнения, вдоль которых функция распределения постоянна. В работах Ю. И. Мокина [131, 133—136] предложена и исследована еще одна математическая модель, основанная на определении траекторий заряженных частиц из некоторой системы интег- ро-Йифференциальных уравнений. Пусть фо(г) — «лапласовское» электростатическое поле, определяемое из (5.1) при р = 0 и исходных граничных условиях рассматриваемой задачи, a G(r, r') — функция Грина, определяемая уравнением AG(r, г')=—4я6(г—г') с соответствующими однородными граничными условиями. Обозначим через r'(ro, t) радиус-вектор точки траектории частицы, вылетающей в момент ^ = 0 из точки г0 эмиттирующей поверхности S, а через t(r0) — момент выхода этой частицы из расчетной области. Тогда потенциал — решение уравнения (5.1) —может быть определен по формуле /(Го) G(r,r'(ro,t))dtWS. s о Если плотность тока определяется из условия ограничения пространственным зарядом, то для j(r0) имеем интегральное уравнение ^\ И Т И = 0. (5.17) Последние два уравнения в совокупности с уравнениями движения частиц при начальных данных для всех г0 6 S образуют замкнутую систему. Если условия задачи требуют учета собственного магнитного поля пучка, то необходимо добавить аналогичные уравнения для компонент векторного потенциала. Такая постановка эквивалентна модели, использующей кинетическое уравнение Власова. Аналогичная математическая модель была предложена Ю. И. Мокиным [132J и для задачи о нестационарном движении пучка заряженных частиц. Дискретизация системы интегро-дифференциальных уравнений позволяет получать модели трубок тока и больших частиц. При некоторых упрощающих предположениях удается также показать сходимость получаемых приближенных решений к точному [133]. В заключение параграфа отметим, что наиболее сложные из рассматриваемых задач — это управление пучками заряженных частиц, или другими словами, оптимизация систем формирования интенсивных потоков по заданным критериям качества. Некоторые постановочные вопросы по этой проблеме или примеры решения отдельных задач рассматривались в работах [21, 116, 114, 147]. 200
§ 5.2. Определение напряженностей электрического и магнитного полей При расчете траекторий самостоятельной вычислительной задачей является определение компонент электрического и магнитного полей. Напряженности находятся, как правило, из численного дифференцирования сеточных функций,- описывающих распределение потенциалов или магнитного потока. 5.2.1. Расчет напряженности электрического поля. В данном пункте мы приводим алгоритмы аппроксимации напряженности электрического поля по формулам с погрешностью первого или второго порядка. Рассматриваем также приближение потенциала бикубическими полиномами (или сплайнами), имеющими непрерывные производные вплоть до второго порядка и обеспечивающими погрешность аппроксимации потенциала О(А4), а напряженности — O(h3). Для задач с наличием плоского или осесимметричного внешнего магнитного поля предполагается, что его компоненты заданы в точках плоскости или оси симметрии. По этим значениям производится сплайновая интерполяция и далее с помощью ряда Шер- цера определяется напряженность во внутренних точках области. Собственное магнитное поле релятивистских пучков находится из закона Био — Савара — Лапласа или путем численного дифференцирования функции магнитного потока, определяемого из решения краевой задачи. Пусть требуется найти значения д<р/дх, дф/ ду, дф/ дг в точке (х*, у , z\ расположенной в ячейке разностной сетки (рис. 25,а). а? ] 6 3 1 о j 7 а 4 S 1 2 Ч? Рис. 25. Производные аппроксимируются с погрешностью О(А) следующими выражениями: z—zk р=- h2 hx 201
(5.18) ф^ ф2 — ф1 + ^(ф4 — фз — ф2 + ф1), ф" = фб — ф5 + ?(ф8 — ф7 — фб + фб), Фу' = ф7 — ф5 + Р(ф8 — ф7 — фб + фб), фг^фб —ф1+р(фб —ф5 —ф2 + ф1), фГ = ф7 — фЗ + Р(ф8 — ф7 ~ ф4 + фз). Для двух независимых переменных формулы соответствующим образом упрощаются (г = 0, дц)/дг = 0). Аппроксимацию производных с погрешностью 0{h2) проиллюстрируем двумерной задачей. При этом используем девятиточечный шаблон типа «ящик» с центральным узлом, ближайшим к точке (а:*, у*) (рис. 25,6). Вдоль ближайших координатных линий производные аппроксимируются трехточечными выражениями, а между линиями производится квадратичная интерполяция: дх <5ф \ 17//- -J- 2l\—h\ — фо+/ = 0,3,6, / = 0,1,2, /i=a:* — xo, l2 = y*—y0i \ dx /° / dq> \ дх /5 | hxh2 dy ду Если ф — решение уравнения Лапласа, то существует аппроксимация производных по переменным г, z цилиндрической системы координат, имеющая погрешность O(h2) в ячейке разностной сетки и использующая только четыре узла. Это обусловлено тем, что разложение ф по линейно- независимым гармоническим полиномам до третьего порядка включительно имеет вид frfz*) -|а,2» r Рис. 26. azzr2 (5.20) и содержит только четыре коэффициента, которые могут быть найдены по четырем точкам (рис. 26): 202
= фо, ~ ФЗ — ф1 "* h\ ' ° h,h\ Выражения для производных тогда имеют вид: Если в приведенных примерах некоторые из используемых узлов разностной сетки внешние по отношению к расчетной области, то в них значения ф можно предварительно вычислить с помощью экстраполяции по внутренним узлам (и с учетом граничных условий). Например, для рис. 2 линейная экстраполяция дает 2 (5.23) Более точные аппроксимации производных строятся аналогично с привлечением дополнительных узлов сетки. В этом случае можно применять эффективные методы интерполяции, описанные в §2.2 для методов конечных элементов. В частности, самая простая из них — это кусочно-линейная аппроксимация по треугольникам (тетраэдрам — в трехмерном случае). В примере на рис. 19 для точек треугольника с вершинами «О», «1», «3» достаточно положить дф __Ш-"о ду _ Цз-ао ~д7 hx ' ~di~~ hs ' к } Аккуратное вычисление напряженности очень важно в окрестности эмиттирующей поверхности, поскольку ошибка может повлиять и на форму всей траектории, и на величину вычисляемой плотности тока. Если эмиттер имеет криволинейную поверхность, то линейная экстраполяция по формуле (5.23) может дать значительную погрешность. В этом случае может эффективно применяться техника интерполирования на криволинейных конечных элементах. В частности, практически всегда задачу можно свести к аппроксимации на треугольнике с двумя прямолинейными сторонами и одной криволинейной. Соответствующие формулы (2.51) обладают тем хорошим качеством, что обеспечивают точное согласование заданных значений функции на кривой линии. Рассмотрим теперь алгоритм сплайновой аппроксимации для расчета напряженности электрического поля [119]. Остановимся сначала на функции одной переменной f(x). Пусть даны N+1 точек хо<.х\<...<%. Функцию у = у(х) будем называть сплайн-функцией первого порядка (или кубическим сплайном), если а) y(Xi) = fiy / = 0, l,...,^, где fi==f(Xi) — заданные числа; 203
б) на каждом отрезке [*/, xi+\] з у{х)=у{х) = 2 c№{x-Xl)k; (5.25) k = 0 в) у(х) имеет непрерывные производные вплоть до второго порядка; г) на концах отрезка удовлетворяются условия одного из следующих типов: I) y'(Xi) = f't> ; = O,JV; II) y"(Xi) = f>>9 i = 0,N; III) на одном*из концов выполняется условие I, а на другом — условие II. Из уравнений */(**) = //, yi(xi+l) = yi+l(xi+l)y y((xi+i) = yl + i(xi+i\ yi'(Xi+\) = y!' + \ (Xi+i) получим для коэффициентов формулы (5.25) следующие уравнения (А/=х/+1— xi): a$=fh i = O9...,N9 (5.26) ЗаГЧ-i + aS~l) = a<2, / = 1 ^V — 1, (5.27) а? = За('-%?-1+2а(>-%1-1 + а«-1\ (5.28) a«"%3_l + ag-%2_, + a«-%_i + a(/-|> = //, i = l,...,N- Ц5.29) Исключая из этих соотношений a^ и a^, получим В уравнениях (5.30) N+1 неизвестных а(^\ На концах интервала добавим условия одного из следующих типов: о IN \IN IN hN-\ III) берется по одному из условий I и II. Анализ матрицы полученной системы уравнений во всех 3 случаях показывает, что она невырожденная. Следовательно, система имеет единственное решение. Когда f(x) четырежды непрерывно дифференцируема, имеем следующие оценки точности интерполяции: | у(Р\х) _ fP\x) | = 0{hA~% р = 0,1,2,3, (5.31) Из системы уравнений (5.30) найдем а%\ / = 0,...,N, методом прогонки. С помощью этих коэффициентов из (5.27), (5.28) вычислим а^\ а(*\ 204
Перейдем к рассмотрению двумерной задачи. Пусть область [*о, %]Х[*/о, Ут] разделена линиями, параллельными координатным осям и имеющими координаты: л;0<••.<*;<...<%, / Функцию z = z(x, у) назовем сплайн-функцией второго порядка (или бикубическим сплайном), если она обладает свойствами: а) на каждом прямоугольнике [xiy xi+\]X[yj, yj+\] z(x, у) = 2 S ой» (* - x,)* (у - у/)'; (5.32) fc=0/=0 6) z(x, у) обладает непрерывными производными вплоть до второго порядка. Сформулируем задачу интерполирования. Пусть в узлах прямоугольной сетки заданы значения функции zij = f(xi, yj). Требуется построить функцию г(х, у) вида (5.32), совпадающую с f(xi, y\) в узлах сетки и удовлетворяющую дополнительным условиям на границах области. На линиях х = jto, x = xN в точках у} могут задаваться частные производные df/dx или d2f/dx2 или должна указываться периодичность функции по х. Аналогичные условия задаются для переменной у. Всего получается 16 способов задания граничных условий. В угловых точках (*<>, Уо), (*о, Ут), (xN, уо) и (xN, ym) должны задаваться смешанные производные dk+lf/dxkдх\ где k и I — порядки производных, заданных на границах (при задании периодичности порядок считается равным нулю). Очевидно, что при фиксированных у\ 6 [уо, ут] или xt g [х0, xN] функции z(x, у\) и z(*/, У) — сплайн-функции первого порядка. Основываясь на этом факте, можно показать существование и единственность z = z(x, у) с указанными выше свойствами. Оценки точности имеют вид, аналогичный (5.31). Построение z(x, у) начнем с построения одномерных сплайнов по строкам и столбцам сетки. Ввиду единственности они совпадают со значениями z{xyy) на линиях x = Xi или у = У/. Так, получим коэффициенты <tif, aW, аЩ>, aW, afP, <№, 4з;), i=0,1,.... N, } = 0, 1,.... m, причем (0,/)_ 1 а2ц I „52 d2z a°2 -T77l;z*' ^=1Г'^ (5.33) 2 ^ I JI**' ^' dx* или ц и v выбираются в зависимости от типа условия при x=xNnx=x0. 205
Ясно, что коэффициентов (5.33) достаточно для построения функций -^-^Vl у=у> в виде Одномерных сплайнов от х. В результате решения системы типа (5.30) получим значения а(М\ c&i\ c№\ i=0, 1,..., N, / = 0,1,..., т. Остальные коэффициенты аиъ и а^ находятся по формулам вида (5.27), (5.28): а а*! 3 k= 1,2,3. В заключение данного пункта можно отметить, что выбор алгоритма вычисления напряженности электрического поля имеет важное значение с точки зрения точности и экономичности расчета траекторий и решения самосогласованной задачи в целом. Однако проблема выбора оптимального метода остается открытой и требует систематических численных экспериментов для различных классов задач. По этому поводу можно дать только рекомендации общего характера. В расчетах сильноточных приборов, где требуются в основном интегральные характеристики, такие как общая сила тока и др., рассмотренные экономичные локальные аппроксимации 1-го или 2-го порядка дают удовлетворительные результаты. Однако по мере повышения требований к точности, при необходимости анализа оптических свойств потока частиц обязателен переход к более сложным методам аппроксимации, например, к сплайновым. 5.2.2. Расчет напряженности магнитного поля. Данная задача распадается на две независимые: вычисление напряженностей внешнего и собственного магнитных полей. Внешнее поле, как правило, создается магнитными линзами, которые можно рассчитывать независимо от электрического поля и движения пучка. При этом можно применять методы, описанные в главе 2, и тогда определение компонент напряженности сводится к численному дифференцированию по значениям потенциала илк магнитного потока, полученным в узлах сетки предварительными расчетами. А. Задача расчета поля по его значениям на прямой. Зачастую проблема на практике ставится таким образом, что значения компонент напряженности известны в некоторых точках из численного эксперимента. В двумерных задачах это обычно ось или плоскость симметрии. При этом поле во внутренних точках области определяется с помощью аналитического продолжения. Для плоского поля, обладающего симметрией относительно линии у = 0, с этой целью может быть использован отрезок ряда 206
Щерцера, представляющего разложение гармонической функции ф,у)=«х,0)-^°^?+±°&&*-..., (5.34а) а'для осесимметричного случая — аналогичное соотношение Выражения (5.34а), (5.346) описывают решение задачи Коши для уравнения Лапласа соответственно в декартовой и цилиндрической системах координат, при заданных значениях ф и нулевой нормальной производной на линии симметрии. Вычисления по этим формулам требуют предварительного определения производных на оси. Это должно быть сделано с возможно большей точностью, поскольку сама задача аналитического продолжения является условно корректной и незначительные ошибки в исходных данных могут привести к существенному искажению результатов. Как видно из приведенных соотношений, такая неустойчивость будет возрастать при удалении расчетных точек от прямых с заданными характеристиками полей, т. е. с увеличением у или г. Аппроксимацию поля и вычисление производных на линии симметрии можно эффективно осуществлять с помощью сплайнов. В качестве иллюстрации достигаемой при этом точности мы приведем выполненные Г. С. Поповой численные эксперименты [158] по продолжению заданного на оси симметрии распределения так называемого колоколообразного поля Ho/(az2+\\ (5.35) H2(r,z)=— Ul -a2)"1 имеющего точное решение Z A2 + (2arz/a2)2 о 4H0rz С 2\-i/2j (5.36) 1а2(1_а2) 1/2da, J Заметим, что функция Hz(rfz) имеет особенности при 2 = 0, г= \/л[о>у т. е. анализ нисленных расчетов можно проводить только при г<^\/л[а. Вычисления проводились с помощью аппроксимации осевого распределения описанным выше кубическим сплайном на неравномерной сетке, сгущающейся в окрестности точки 2 = 0, поскольку функция (5.35) имеет там большую крутизну. Значения 207
#г(0, zi) брались на отрезке [0,3], причем на интервале (0,1) было взято 25 равномерно расположенных точек Zi, а на интервале (1,3) —20. Вычисленные по ряду (5.346) значения (производные определялись дифференцированием сплайна и фактически брались два члена ряда) сравнивались с результатами расчетов по формулам (5.36), где интегралы брались по формуле Симпсона с достаточно большим числом узлов, обеспечивающим заведомо высокую точность. В табл. 18 приведены погрешности результатов в процентах для значений Яо=1, а = 0,5, 1,0 (что соответствует разной крутизне поля) на разных расстояниях г от оси, точнее говоря, для каждого г приведена максимальная ошибка при z £ [0,3]. Таблица 18 ^^"\^^ а 0,125 0,25 0,5 0,5% 0,04 0,16 0,6 1.0% 0,05 0,20 2,6 Ошибки, как видно, можно считать допустимыми, но необходимо обратить внимание на то, что они заметно растут с увеличением крутизны поля и удаления от оси. Были проведены также эксперименты с умышленным внесением случайной ошибки в исходные данные, когда вместо #г(0, z) брались значения где б характеризует масштаб погрешности, а 0 — равномерно распределенная на отрезке [0,1] случайная величина. Оказывается, что с использованием неточных данных результаты резко ухудшаются. Так, при 6 = 0,5% относительная ошибка Hz(ryz) для а = 0,5, г = 0,25 достигает 30%. Это свидетельствует о необходимости осторожного использования аналогичных алгоритмов и о желательности применения известных алгоритмов регуляризации для задачи продолжения поля. Мы опишем коротко такого рода метод, разработанный М. В. Уревым [158]. Он основан на использовании формулы Пуассона для потенциала и введении регуляризующего по Тихонову оператора. Гармоническая функция в точке (г, z) представляется приближенно в виде и- 0 -R q>a(s)ds _ О^]3/2 = \k(r, zy sy (5.38) 208
где R — радиус сферы, охватывающей расчетную область, а фа($) — некоторое «регуляризованное» распределение потенциала на этой сфере. Для его нахождения составляется интегро-диффе- ренциальное уравнение k{0, Z, 5)фа(5)£/5-а[<(5)-фа(5)]=ф(0> (5.39) где а — параметр регуляризации. При этом на q>a(s) дополнительно накладываются естественные условия ф«( — R)=<p'a(R) = 0. Если ф(0, z) задано в М точках оси, то, аппроксимируя левую часть (5.39) с помощью квадратурных формул и конечных разностей, мы можем получить систему линейных алгебраических уравнений относительно фа($/), i= 1,2,..., М. Решая ее (это можно сделать методом исключения Гаусса), легко рассчитать фа(г, z) с помощью применения квадратурных формул к интегралу (5.38). Параметр а можно выбирать из условия минимальности среднекваДратично- го отклонения вычисленных значений фа(г, z£-) от заданных ф(0, zj). Данный алгоритм был апробирован на той же задаче при значениях вносимой погрешности 6 = 0, 0,5%, 2% (функцию ф(г, г) в (5.38), (5.39) надо заменить на Hz(r, г)). В табл. 19 приведены результаты (максимальная погрешность), полученные для а = 0,5 и 1,0 по значениям ф(0, zt) в 41 точке примерно на той же сетке, что и для табл. 18. Аппроксимация интеграла в (5.39) проводилась на равномерной сетке по 5 с помощью формул Симп- сона, а вторая производная заменялась трехточечным конечно- разностным выражением. Таблица 19 0,25 0,5 а = 0,5 0% 0,8 2,3 0,5% 1,0 3,2 2% 2,1 4,6 а = 1,0 0% 1,2 3,1 0,5% 1 3,2 2% 2,1 6,1 Эти данные свидетельствуют, что такой алгоритм обладает хорошей устойчивостью. Однако он более трудоемкий^ чем метод с использованием сплайнов,, поскольку вычисления фа в точках окружности Si сводятся к решению системы с пло'тной матрицей, а определение ее требует проведения интегрирования. Суммарное количество арифметических действий при этом равно по порядку О(М3). Другой подход к решению задачи о продолжении поля при неточных исходных данных заключается в предварительном сглаживании значений #z(0, zi) на оси и последующем применении ряда Шерцера [186]. 14 В II Ильин 209
Это может быть сделано с использованием хорошо развитого аппарата сглаживающих сплайнов. Мы опишем такую технологию на примере кусочно-кубической интерполяции со сглаживанием. Задача формулируется следующим образом. Требуется найти функцию у{х\ минимизирующую на классе функций, обладающих на отрезке [х0, xN] интегрируемыми с квадратом вторыми производными, функционал Р1ШЧ1У, (5.40) где fi — f(Xi) — значения некоторой функции в точках *,, а рь — весовые положительные коэффициенты. В такой постановке скомбинированы условия приближенной интерполяции заданной кривой f(x) и минимальности «изгибания» функции у(х). Чем больше значения р,, тем больший вклад в функционал Ф(у) вносят интерполяционные условия в соответствующих точках xt. Решением этой задачи является кубический сплайн вида (5.25), обладающий непрерывными производными второго порядка и удовлетворяющий граничным условиям y"(xo) = y"(xN) = O. Если значения */(*/) = *// известны, то такой сплайн однозначно определяется из формул (5.25) — (5.30). При этом систему уравнений (5.30) удобно записать в векторном виде (с заменой Д на у{): Л^x = Яv, (5.41) где \л = [аЬ1\ оЦ\ ...,a2k~l\ v = {yo,#i,...,##}— векторы порядка соответственно N—1 и Af+l, A — квадратная матрица порядка N — 1, а Н — прямоугольная матрица .из N+1 строки и УУ—1 столбца: h\ (\ А = (■=> 42) Н = Отсюда мы можем 3 hi- 6 1 А Ао - 0 о + А, -А0А, 1 А, 0 написать 6 А, — А А/_1 1 А, + А2 А,А2 1 N-2 + Ы 3 **- hN-2 6 1 А2 2 + ^ ЛАГ-2 -1 Л hi 6 3 0 1 ЛГ-1 (5.43) 210
Таким образом, вопрос сводится к нахождению yk, при которых функционал (5.40) достигает минимума. Как следует из (5.25), на каждом отрезке [xif Xi+\] функция у"(х) может быть записана в виде 4V {5M) Отсюда '4' (?р ^Y i pfo-ff. (5.45) Это выражение может быть преобразовано к форме Ф(У) =Nt = (Ali,li),+ P((v-f),(v-f), (5.46) где / = {/о, /i, ..., fN} — вектор, а Р — диагональная матрица порядка N + 1 с элементами р{. Поскольку (ш выражается линейно через v, функционал представляет собой квадратичную положительно определенную форму от v. Минимум функционала достигается при выполнении условий 3O/0# = O, / = 0,1, ...,ЛЛ (5.47) Следовательно, уравнения (5.47) в векторной форме имеют вид H'v + Pv = Pf, (5.48) в силу соотношений Умножая (5.48) слева на ЯР"1, получим равенство HP~xH'v + Hv = Hf, (5.49) откуда следует уравнение для v: (A + HP~lH')v = Hf. (5.50) Матрица этой системы симметрична, пятидиагональна и положительно определена. Найдя из ее решения вектор v, с помощью соотношения (5.48) определяем вектор значений сглаживающего сплайна в узлах: \i = f-P~lH'v. (5.51) Отсюда по формулам (5.26) — (5.30) при замене // на у/ определяются все коэффициенты искомого сплайна. Величины pk здесь фактически являются параметрами регуляризации. Варьируя их значения, можно выбирать ту или иную 14* 211
гладкость сплайна и точность его совпадения с исходными данными в узлах сетки. Аналогично можно строить сглаживающие сплайны более высоких степеней. Например, аналогично (5.40) определяются кусочно-полиномиальные аппроксимации порядка 2р—1, обладающие непрерывными производными до порядка 2р —2 и минимизирующие функционал XN N = \ (0) dx + Z0 P^-f?- М. В. Уревым проведены эксперименты по продолжению поля с использованием сглаживающих сплайнов 5-го порядка, реализованных под руководством В. А. Василенко в составе пакета программ Лида [29] для аппроксимации функций. Для рассмотренного выше колоколообразного поля в табл. 20 приведены значения максимальных погрешностей вычисления для различных расстояний г от оси симметрии и разных ошибках б в исходных данных. Таблица 20 "^^\^ б 0,10 0,50 0,75 0% 0,65 2,0 3,9 1% 0,46 1,8 3,5 2% 2,7 5,1 7,7 Расчеты проводились при а=1, /?^=103 и задании начальных данных на следующей кусочно-равномерной сетке: интервал (0,1) разбит на 70 равных подынтервалов, интервал (1, 1,5) —на 60 и интервалы (1,5, 2) и (2,3) —на 30 подынтервалов. Как видно, алгоритм оказывается достаточно устойчивым к ошибкам исходных данных; он гораздо экономичней метода с использованием интегрального уравнения, поскольку в данном случае нужно решать систему уравнений не с плотной матрицей, а с ленточной. Б. Определение собственного магнитного поля пучка. Расчет собственного магнитного поля, обусловленного распределением плотности тока, можно в принципе проводить непосредственно по формуле Био — Савара — Лапласа. Однако непосредственные вычисления интеграла для большого количества точек, что обычно требуется при моделировании пучков заряженных частиц, являются достаточно трудоемкими. Если расчеты проводятся на сетке с числом узлов LXM, то количество арифметических действий равно по порядку O(L2M2). Возможные упрощения этой задачи мы укажем для случая осесимметричного пучка. Во-первых, зачастую можно учитывать только азимутальную компоненту магнитного поля И\ определяемую продольной сос- 212
тавляющей вектора плотности тока jz. В этом случае непосредственное применение теоремы Стокса дает формулу г Щ(г, z) =^=4 \ h(r'> z)r'dr'> о в которой интеграл можно вычислить методом трапеций или Симп- сона. При необходимости учитывать азимутальную компоненту плотности тока \^ нужно вычислять радиальную и осевую составляющие напряженности НГу Hz. Это можно сделать с помощью предварительного определения азимутальной компоненты векторного потенциала А ^которую можно найти из решения уравнения (2.12) или выразив ее через функцию магнитного потока Ф = гАв, удовлетворяющую дифференциальному уравнению -3-^ ("4) Решение его можно провести рассмотренными в 1-й главе разностными методами. Граничные условия достаточно поставить на поверхности цилиндра, окружающего предполагаемую область прохождения пучка частиц. Значения Ф или его производных на границе можно вычислить непосредственно из формулы Био — Са- вара — Лапласа (что гораздо легче, чем найти поле во внутренних узлах расчетной области). § 5.3. Методы интегрирования уравнений движения заряженных частиц Мы рассмотрим некоторые специальные методы решения систем обыкновенных дифференциальных уравнений, описывающих движение заряженных частиц в электрических и магнитных полях. Особенность нашего подхода характеризуется тем, что, во-первых, нас интересуют алгоритмы расчета траекторий в областях сложных конфигураций, иначе говоря, методы, относительно легко реализуемые в программах для решения практических задач. Во-вторых, градиенты электрического поля рассчитываются по значениям потенциалов во внутренних узлах разностной сетки с кусочно- постоянными шагами. В этом случае при численном интегрировании уравнений движения необходим большой объем операций для расчета напряженности и проведения анализа положения точек траекторий относительно области (для окончания счета траектории, а также «отражения» ее от линий или поверхностей симметрии). Наконец, сами значения потенциалов вычисляются приближенно из-за погрешности разностных уравнений и ошибки итерационного решения. По этим причинам мы отдаем предпочтение методам, требующим минимального числа вычислений правой части на одном шаге интегрирования. Кроме того, мы используем экономичные модифи- 213
кации алгоритмов для отдельных типов задач в зависимости от наличия магнитного поля, размерности области, учета релятивистских эффектов и т. д. Если в задачах, не требующих высокой точности расчета траекторий, вычисление производных от потенциала производится по простейшим формулам типа (5.18) — (5.22), то шаг Atn интегрирования уравнений движения, по-видимому, целесообразно выбирать так, чтобы частица проходила ячейку разностной сетки за несколько временных шагов. Тогда условие для определения Atn имеет вид ^-6А<| г„+1-г„ |< 26/г, (5.55) где б — задаваемый параметр, а Л — средняя величина шага разностной сеткив окрестности точки с радиус-вектором rn(h = (hx-\- -\-hy)/2 или h=(hx-{-hy-\-hz)/3 в зависимости от размерности). Таким образом, расстояния между соседними точками траектории примерно равны заданной части б от ближайших шагов сетки. Условие (5.55) проверяется на каждом шаге. Если оказывается, что \rn + i — гп|^--бА, то при счете следующей точки шаг Atn удваивается. Если |rrt+i — rn\^28h, то Atn делится пополам и данная точка пересчитывается. 5.3.1. Задачи без магнитного поля. В отсутствие магнитного поля формулы интегрирования уравнения движения d2r/dt2 = = — Р V Ф (см. (5.13)) с погрешностью О(Дф имеют аналогичный вид для плоских, осесимметричных и трехмерных задач: rn+-^-{rn + rn+l). (5.56) Отметим, что при всей своей простоте этот алгоритм формально не укладывается ни в один из классических методов решения обыкновенных дифференциальных уравнений. Назовем его обобщенным методом Рунге — Кутта. второго порядка. При расчете траекторий в некоторых типах задач, например, с тормозящими полями, большое значение может иметь ба- лансность численного метода интегрирования, т. е. сохранение энергии: »2+1-»5 = 2р[ф(гя+1)-Ф(гя)]. (5.57) Алгоритм в этом случае значительно усложняется. Например, для двумерного случая формулы (5.56) могут быть модифицированы к балансному виду, если первое уравнение заменить на уравнения хп+\ =хп — А/пР[ф (хп+и Уп+\) — +\,yn) — q)(Xn,yn)]/[2(Xn+\—Xn)l * (5.58) 214
При этом на каждом временном шаге требуется проведение итераций до получения хп+и Уп+\ с нужной точностью. В качестве начального приближения естественно взять значения xn+\,yn+i из формулы Эйлера xnl+\=xn-\--^-xru y°n+l=yn+-^- уп. Нетрудно проверить, что даже при проведении двух итераций погрешность метода есть O(At%). Ситуация существенно упрощается, если точки rn, rn+i находятся в пределах одного треугольника (тетраэдра — в трехмерной области) разностной сетки, где производные потенциала считаются постоянными и определяются из формул (5.24). В этом предположении формулы (5.56) дают точное решение уравнений движения и являются балансными. Единственная сложность в таком случае — определение значения Д*„, при котором частица оказывается на границе треугольника. Если расчет напряженности проводится по формулам вида (5.18), т. е. производные представляются кусочно-линейными функциями типа 0<р/ дх = аи + Ьиу, дц>/ ду = сц + Ьцх (5.59) для двух переменных ((/, /) — номер ближайшего левого нижнего узла сетки по отношению к точке (х„, yn) ), то в пределах одной ячейки балансный алгоритм можно получить в виде (индексы при а, Ь, с мы опускаем): ^п) (хп+\ — хп)\ (5.60) Более того, для случая (5.59) уравнения движения (5.13) могут быть аналитически проинтегрированы в пределах каждой ячейки разностной сетки. В двумерных задачах расчетные формулы имеют следующий вид: 4г4 ч у= — r\c\ert-\-C2e~rt — c3cos rt — c4sin rt)-\- rt — Cz sin rt + c4 cos rt) + rt — e~rt-2smrt\ (5.61) г _ 4'3 (/== — r3(Cl^^_^2^ rf-|_ c3 sin rt—c4 cos r*) + где г=-л/|р6|; 2с3 = лг0+ —(a + 6(/0); 2c4 =—- + -t. fey0; 4c\ = г2 г 215
+ ±Ьуо. Отметим имеющуюся здесь техническую трудность: интегрирование должно вестись до момента времени t выхода частиц из данной ячейки разностной сетки, который априори неизвестен. Поэтому реализацию формул (5.61) приходится вести с помощью итераций, подбирая значения t до тех пор, пока точка (х, у) не попадает с заданной точностью на границу ячейки. Начальное приближение с достаточной точностью может быть вычислено по формулам (5.56). 5.3.2. Нерелятивистские задачи с магнитным полем. Мы начнем рассмотрение с простого случая — плоская задача с поперечным магнитным полем. Соответствующая система уравнений имеет вид (5.14), причем мы предполагаем характерные размерные величины выбранными так, что D\ = \. Численное интегрирование проводим с помощью неявной схемы, имеющей погрешность O(At2): _ Мп . ^_ Atn . 2 2 Хп-\-1==Хп—рД//2 ——\Хп-\-\12->Уп-\-\1е1) — уп+1+уп -| — 2 Л2(Хп+1/2уУп+\/2)1 (5.62) i -4-х Уп + \=Уп — г 2 Отсюда выражения для хп+и Уп+i приводятся к явному виду (значения ду/дх, дц/ду, Н2 относятся по-прежнему к точке (JCn+i/2, Уп+\/2)): Хп+1 = Й *1я,)].(5.63) Аналогичная неявная схема второго порядка точности строится и для трех декартовых переменных х9 у, г с магнитным полем произвольного вида. Расчетные формулы имеют при этом более сложный вид (значения ду/дх, ду/ду, дц/dz, НХу Нуу Н2 относятся 216
к промежуточной точке (хп+\/2, Уп+\/2, Zn+i/г)): A//i • А*л . (а1+а2аз)(/1 + а2/з) + (1+а2)(/:2 — «з/з) л+1, /г^.ч (5.b4) . ton ,. . . , 2Л + 1 = Zn + -^- (2Я + Zrt + 1). Здесь используются вспомогательные величины: ai = — Р-^-Яг, a2=— P—^Hy, a3 == — Р-^- f\=xn — рД^я-^.— f/«ai + ina2, Наконец, мы приведем уравнения движения в цилиндрической системе координат: (5.65) Численное интегрирование в (5.65) можно провести с помощью следующей схемы типа предиктор-корректор второго порядка точности. Предварительно находится приближенное значение угловой скорости $ на (я+1)-м шаге: & ^ Р(гпЯг - inHr) - 2^я]. (5.66) Гя+1/2 Здесь, как и ранее, значения Яг, Я2, ду/дг, ду/дг^ относятся к промежуточной точке (rn+i/2, г„+1/2). Поскольку г() при г->0 не определена, то для достаточно малых г полагаем ipn+i=ipn. Далее вычисляем 1 = zn — Mn($d<t>/dz + Рг„+ ,/2-фпн- 1/2Яг), (5.67) 217
у Гп+1/2 =у(/'/г +^/2+l), y + in+i). После этого корректируется значение угловой скорости: П[МНН) 2Ъ] (5.68) и, наконец, находятся величины Zn+\=Zn-\- htnZn+ 1/2, |+ф ^я + Ф«+ 0 /2- (5.69) Расчет угловой скорости в рассмотренных уравнениях может быть уточнен (и одновременно упрощен), так как в соответствии с теоремой Буша имеем первый интеграл от уравнения для \f>: гЧ-(гЧ)<=-^(ф-ф^> (5J0) где Ф = 2п\ Hz{r,z)rdr. (5.71) Если для Н2 используются формулы аналитического продолжения по его значениям на оси симметрии: Яг(г, г)«Яг(0, г)—Г1 #£'(0, г), (5.72) то отсюда получаем (мы для простоты полагаем, что для координаты 2, соответствующей моменту t0, например на катоде, магнитное поле отсутствует и Ф,0 = 0): Ъ= -|[Яг(0, z)—^H'2\Q,z)\ (5.73) Для этого случая в формулах (5.67) промежуточное значение угловой скорости вычисляется как ♦«+1/2=-|[Я^0, 2п+1/2)-^1^Я-(0, гя+1/2)1 (5.74) а вместо (5.68) используется формула, получаемая из (5.74) заменой гп+\/2 на rn+i- Важным достоинством такого алгоритма является отсутствие особенности вблизи оси симметрии. Для построения формул численного интегрирования уравнений движения при наличии магнитного поля можно использовать также точное решение для траекторий в постоянных электрическом и магнитном полях. Если предположить, что величины Ех, Еу, Ег, Нх, Нуу Hz постоянны на интервале (гп, гп+\\ то скорость частицы можно определить следующим образом. Направим ось z' в направлении вектора Я, а оси х'у у' выберем так, чтобы плоскость х'', г7'содержала вектор Е. Обозначая через у?/, Vy,, Ex, компоненты скоростей и напряженности в этой вспомо- 218
гательной системе координат, мы получим vy +' = К' + сЕх>/1Я |) cos сотп - V». sin сот„ - сЕх,тп, где т„ =/„+! — /„, а со = в |//| /(тос) — так называемая циклотронная частота. Пересчитывая теперь компоненты скоростей в основной системе координат pj+1, Vy+ , o?+I, новые координаты частицы можно определить по формулам При необходимости несложно перевести координаты и компоненты скоростей в цилиндрическую систему г, z, -ф. 5.3.3. Уравнения движения релятивистских заряженных частиц. Если скорости частиц близки к скорости света, то уравнения движения целесообразно записывать в форме v= (5.76) эквивалентной (5.2). Здесь р означает импульс скорости, поделенный на то. Мы рассмотрим алгоритмы для случая цилиндрической системы координат: dpr/dt = — $.ду/дг + Щ- p(i//t - п£#г), i (5.77) Из этих уравнений следует теорема Буша для релятивистских частиц где Ф — поток магнитной индукции. Для решения этих уравнений построим схему с погрешностью О(М)2: ,5.79) я,- °"";+Ч я,). 219
2 __ n+l,k n+l,k л./г+и_Л i Р«+\'Ь \-l/2 —fJr 7 > 7 —I * "1 2 / ' Здесь напряженности электрического и магнитного полей определяются с помощью численного дифференцирования потенциала и функции тока: 2я(г* + ! — гя) (r*+i + rn) 2n(zkn+\-zn) (rkn Данный алгоритм требует для каждого временного шага проведения итераций. Очевидно, что если шаг Atn достаточно мал, то итерации будут сходиться быстро. В качестве начального приближения для всех величин можно взять их значения с предыдущего момента времени. Умножив первые три уравнения из (5.79) соответственно на (Vr + l + Vr)/2y (v1+x-\-vT)/2, (Vy+l-\-Vy)/2 и сложив их, получим с учетом (5.80) следующее соотношение (индексы k мы опускаем): ФД (5.81) которое является разностным аналогом баланса энергии для релятивистских частиц Более предпочтительным с точки зрения балансности (в силу равенства у--£-=—. ( с —У v2 = v2r-\-Vz-\-vl) было бы вы- at at \ -yjl-— v2/c2 / полнение соотношений поскольку они гарантируют сохранение энергии на каждом временном шаге. Однако обеспечение этого условия несколько усложняет алгоритм вычисления скоростей. Поскольку левая часть (5.83) может быть представлена в виде то определение v?+l (а также и других компонент скоростей) в этом случае надо проводить не по формулам (5.79), а из уравнения * Гр?+1-^(»?+| + ^ = [(»?+1)2-(^2]/^ (5.84) 220
5.3.4. О точности расчета траекторий. Вопрос оптимизации методов интегрирования уравнений движения имеет существенное значение для экономичности расчетов самосогласованных задач в целом, поскольку при прослеживании большого количества частиц определение их траекторий занимает значительную долю машинного времени. С этой точки зрения важно выбрать временные шаги такими, чтобы они обеспечивали необходимую точность, но не были чрезмерно малыми. Мы приведем результаты методических численных экспериментов и анализ погрешности метода (5.56) для двумерных задач без магнитного поля. В качестве тестовой задачи мы возьмем движение электрона в поле сферического конденсатора (симметричном относительно точки х = 0, у = /?2): 1 J x u) ^ (yR2)[ при ф1 = 1, ф2 = 0, #i = 2,5, R2= 100, 0<*/</?2 — Ru *>0. Уравнение траектории в таком поле описывается формулой [84]: -y)-\f - (C2-B2)(R2-yf C= ао = 0,785398, А = (jcg + £/§)/(2 • |р|), Р=—0,5. Начальные координаты брались равными хо = уо==О. Как известно из качественного анализа, счет траекторий наименее устойчив при малых начальных скоростях. Для количественной оценки этого эффекта расчеты проводились при хо = уо = 7-10"1 и *о = */о = 7-1О-4. Сравнительный анализ методов проводился по относительной погрешности решения б (в %) (для у = 85): 8=\(ха-хч)/ха\ • 100%, - где ха, хч — аналитическое и численное решения, а также по абсолютной погрешности выполнение условия баланса 2 +ь Уп+\) — <р(Хп, уп)1 В табл. 21 и 22 приведены значения б соответственно для начальных скоростей jc0 ==[/0 = 0,7 и хо = уо = 0,0007 при разных значениях временных шагов т = 50; 25; 12,5; 6,25; 3,125 для четырех алгоритмов: обобщенного метода Рунге — Кутта второго порядка (5.56), обозначенного в таблицах буквами ОРК, балансного метода (5.58) с проведением 2 итераций по дсп+1, уп+\, обозначен- 221
Таблица 21 Метод РК ш ОРК Б 50 10~5 0,0087 0,06 0,2 25 4 • 10"5 6- 10~5 0,011 0,04 12,5 3 • 10~5 3. 10~5 0,0027 0,01 6,25 3 • 10~5 3 • 10~5 0,00065 0,03 3,125 3 • 10~5 з. ю~5 0,00014 0,0007 Таблица 22 Метод РК ш ОРК Б 50 0,35 1,5 0,50 22 25 0,047 0,18 0,29 4 12,5 0,0042 0,015 0,10 0,9 6,25 0,00031 0,0010 0,028 0,2 3,125 3,6 • 10~5 5,0 • 10~5 0,0072 0,05 ного буквой Б, стандартного метода Рунге — Кутта 4-го порядка, обозначенного буквами РК, а также часто применяемого для интегрирования уравнений движения метода Штермера 4-го порядка точности [194], обозначенного буквой Ш. Последний алгоритм применяется только с постоянными шагами At и для нашего случая в общем виде описывается формулами _ V фл = V ф(гп), V фп+ 1 = V ф(г«+ l), Это метод типа предиктор-корректор (или прогноза и коррекции), в котором сначала вычисляется промежуточное значение координаты точки гп+х по формуле с погрешностью второго порядка, а затем — окончательное значение гп+\. На каждом шаге здесь требуется двукратное вычисление правой части. Поскольку первая точка Г\ по этим формулам не может быть вычислена, для этого применяются стандартные формулы Рунге — Кутта четвертого порядка. В табл. 23 и 24 приведены аналогичные данные по абсолютной погрешности баланса энергии 8 для методов ОРК и Б. Из сравнения результатов можно сделать следующие выводы. Прежде всего, методы 4-го порядка позволяют, что и следовало ожидать, получить значительно большую точность, чем методы 2-го порядка. Однако этот эффект проявляется особенно при малых Таблица 23 Метод Б ОРК 50 10~6 2- 10"4 25 4 • 10~8 1(Г4 12,5 3. 10~10 2. Ю-5 6,25 ш- 10 2• 10~6 3,125 5. Ю-12 1 . 10~7 222
Метод Б ОРК 5 2 50 . 10~3 • ю-2 6 6 25 • ю-4 . 1(Г3 7 125 . КГ5 1(Г3 6 2 6,25 • 1(Г6 • ю-4 Таблица 3,125 5 • 1(Г7 4•10~5 24 значениях At; для А/= 50 и А/= 25 ошибки всех методов можно считать сравнимыми (за исключением балансного метода, на котором мы остановимся особо). Далее, методы 4-го порядка имеют примерно одинаковую численную погрешность, поэтому среди них более экономичен метод Штермера, требующий вычисления правой части уравнения только в двух точках на каждом шаге (вместо 4-х — в методе Рунге — Кутта 4-го порядка). При достаточно больших временных шагах ошибка, с уменьшением Д/, сильно падает (с некоторой натяжкой ее можно считать в этом случае пропорциональной А/4), однако, когда погрешность становится очень малой — порядка 10~~5 — уменьшение At уже не приводит к повышению точности. Можно предположить, что здесь начинают влиять ошибки округлений. Для методов 2-го порядка зависимость погрешности б от А/ почти во всех расчетах близка к квадратичной. В табл. 21 для всех методов и различных А/ погрешности оказываются в несколько раз больше соответствующих значений из табл. 22. Это лишний раз подтверждает ухудшение устойчивости при уменьшении начальных скоростей частиц. Из табл. 23 и 24 видно, что погрешность энергетического баланса е также увеличивается при уменьшении начальных скоростей. Абсолютные значения 8 с уменьшением А/ уменьшаются, и их значения для всех методов можно считать удовлетворительными. Отметим, что расхождения между методами 4-го и 2-го порядков уже не такие разительные, как по значениям б. Из табл. 21 и 22 видно, что в наименее выгодном свете представляется балансный метод. Однако необходимо заметить, что его реализация фактически ^использует аппроксимацию производных потенциала с помощью конечных разностей первого порядка. А поскольку с ростом t в данной задаче скорость увеличивается, то при постоянном At расстояния между соседними точками траектории сильно растут, что приводит к значительной погрешности аппроксимации. Для подтверждения этих рассуждений были проведены эксперименты со значениями А/п, определенными по формуле Atn = а/(?п + у*)1'2 из условия приближенного равенства расстояния между точками траектории заданному значению а. Расчеты показали значительное повышение точностив этом случае. Например, при выборе а из условия А*о = 5О (при хо = уо = 7-10"4) значение б равно 0,01 (вместо 6 = 20 для Д4 = 50). 223
Необходимо отметить также тот факт, что во всех методах использовались точные значения потенциала или его производных. Для оценки влияния погрешности вычисления правых частей уравнения движения были проведены следующие эксперименты. Значения потенциалов находились по точным формулам в узлах квадратной сетки с некоторым шагом Л, а значения дср/дх, ду/ду определялись в результате триангуляции сеточной области и билинейной интерполяции потенциала в каждом треугольнике. В табл. 25 приведены расчетные значения относительной погрешности б для метода Штермера при значениях /г, равных 5 и 2,5. Таблица 25 ^^\. А/ 5 2,5 ' 25 0,0062 0,0067 12,5 0,00019 - 0,0037 6,25 0,011 0,010 3,125 0,0005 0,0008 Результаты показывают, что ошибка существенно возрастает по сравнению с использованием точных значений производных и становится того же порядка, что и в методах 2-го порядка. Отсюда можно предположить, что алгоритмы 4-го порядка наиболее предпочтительны при возможности вычисления производных потенциала с высокой точностью. И наоборот, при вычислении напряжен- ностей из численного дифференцирования разностного решения для потенциала более экономичен метод второго порядка с однократным вычислением правой части. Отметим в заключение, что большая серия численных экспериментов приведена в работе [58], где рассмотрены различные методы высокого порядка точности для двумерного случая, когда потенциалы аппроксимируются многочленами 3-го порядка по их значениям в 9 узлах разностной сетки. Мы проведем теперь анализ погрешности обобщенного метода Рунге — Кутта 2-го порядка (5.56). Рассмотрим частный случай, когда потенциал представлен гармоническим полиномом 2-го порядка ф(х, у) = \ax-\-by + cxy+Y(x2~У2) | !. Полагая а = 6 = 0, что не повлияет на ход дальнейших рассуждений, уравнения движения приводим к виду x = dx-\-cyy y = cx — dy. Решение этой системы можно представить в виде \ y{t)= m^ где A,i, А,2= ±А,= ±i/c2-f d2, a x\(t), x2(t) — решения задач Коши 224
которые описываются формулами Xk(tn) = Xk0< к Н ~- К » г- . Z л[1к 1 Где ak = ± tV^, tn = nTy k = 1,2. Применяя для каждой из последних систем метод (5.56), мы получим соотношения Xk,n+\ =( Тогда численные решения могут быть записаны в виде Хкп = Здесь использованы обозначения 2 Таким образом, получаем следующий результат. Поскольку для k='2 точное решение системы не превосходит единицы, компоненты численного решения тоже должны удовлетворять этому ограничению, и мы получаем условие устойчивости метода: Непосредственно из выражений для точного и приближенного решений при т->0 следует оценка погрешности для любого конечного tn: 6kn= \xk(tn)-xkn\=O(T% k= 1, 2. я^ более детального анализа ошибки можно рассмотреть неравенства, получаемые непосредственно из выражений для Xk(tn) и xkn: ) q Отсюда, в частности, следует тот естественный результат, что при увеличении X (это соответствует увеличению производных потенциала) для сохранения точности необходимо уменьшать временной шаг. В целом, конечно, приведенные рассуждения имеют только наводящий характер, поскольку в расчетах присутствует много трудно учитываемых факторов: магнитные поля, релятивистские эф- 15 в п Ильин 225
фекты и т. д. В первую очередь сказывается тот момент, что значения потенциала рассчитываются из разностных уравнений только в узлах, и при обычно используемых аппроксимациях производные являются резервными функциями. На практике в большинстве самосогласованных задач оказываются удовлетворительными расчеты траекторий при кусочно-линейной аппроксимации потенциала и выборе шага в схеме (5.56) по условию (5.55) со значениями 6 ж 0,2-f-0,5. § 5.4. Вычисление плотности тока и объемных зарядов В данном параграфе рассматриваются модели трубок тока и больших частиц, на основе которых определяются заряды и токи в ячейках разностной сетки. 5.4.1. Определение начальных данных для трубок тока и больших частиц. Задача, которую нам сейчас надо решить, заключается в дискретизации входящего в расчетную область потока частиц по пространственным координатам, энергии и углам. Мы начнем с описания стационарных трубок тока. Прежде всего производится дискретизация по пространственным переменным. Если пучок частиц входит в расчетную область через какую-либо часть граничной поверхности, называемую нами начальным фронтом пучка, то этот фронт разбивается на некоторое количество NT площадок (в двумерной задаче — интервалов) величины AS/, t = 1,2,..., NT. Координаты некоторой «серединной» точки каждой площадки — rt (в двумерной задаче — просто середина интервала) принимаются за начальные данные для траектории, отождествляемой с элементарной трубкой тока, включающей в себя частицы, вылетающие с данной площадки. Толщина элементарной трубки предпо- г лагается значительно меньше Ух -И I , ' шага разностной сетки. у-ут эды Приведем в качестве примера разбиение двумерного фронта на равные части. Пусть j им будет отрезок кривой Г с уравнением вида у = у(х) и значениями xH^ix^Xk (рис. 27). рис. 27. Тогда численные значения координат начальных точек можно найти следующим образом. Отрезок [хя, xk) разбивается на & NT равных частей, и вычисляются величины Цх)= \ V 1 +(#*)2 &х, хи xr = xH-\-r(xk — хн)/NT, r= 1, 2, ..., NT, LNt—L — общая длина куска кривой Г; вычисление интеграла проводится по значениям коэффициентов уравнения кривой с помощью метода трапеций, причем фактически каждый член квадратурной формулы есть +max{(y£)2, (л;^)2}Д£, где A£ = Ay, если yi^x'y, и наоборот.
Затем по формулам обратной лицейной интерполяции для функции L(x) находим координаты xt середин интервалов равной длины L/NT и yt=y(xt). Отметим, что для осесимметричных областей значения соответствующих площадей равны ASt^2nxtL/NT. Наши вычисления, очевидно, будут оправданы, если величина L/NT достаточно мала по сравнению с радиусом кривизны кривой Г. Ток, соответствующий элементарной трубке с номером t, определяем как It = jt(rt)&st, (5.85) где jt — плотность тока, соответствующая серединной точке интервала. Это выражение можно считать достаточной аппроксимацией интеграла \ j(r)dsy поскольку плотность тока в большинстве прак- Ast тических задач есть слабо меняющаяся функция координат. Одной из типичных задач является расчет пучков частиц в режиме ограничения тока эмиссии пространственным зарядом и в предположении нулевых начальных скоростей. В этом случае мы предполагаем, что на расстоянии d от эмиттера, достаточно малом по отношению к радиусу кривизны и характерным размерам области, распределение потенциала вдоль нормали к поверхности фронта описывается законом «3/2» для плоского диода. Тогда с учетом возможного ограничения плотности тока эмиссионной способностью катода js определяем Н r Н rt.>.ww<lw- (5-86) где с — константа, зависящая от типа частицы и системы единиц (см. (5.10) для электронов), a q>/(d) — значение потенциала на расстоянии d по нормали к эмиттеру, восстановленной в точке rt (см. рис. 27). Величина %(d) вычисляется с помощью линейной интерполяции по значениям потенциала в узлах ячейки разностной сетки, которой принадлежит данная точка нормали, координаты которой для двумерной кривой с уравнением Ф(х, у) = 0 находятся по формулам .(587) Предположим теперь, что заряженные частицы вылетают по нормали к поверхности фронта с различными начальными энергиями. В этом случае мы проводим дискретизацию потока по энергии, используя многоскоростные приближения аналогично тому, как это денется в расчетах нейтронных потоков ядерных реакторов. Весь энергетический интервал разбивается на достаточно малые подынтервалы Aes, s= I, 2, ..., Af9 (jV3 — количество энергетических групп). Коэффициенты относительного распределения, которые Для простоты предполагаются независимыми от пространственных 15* 227
координат, определяются как оо 6, = 5 /(e)de/ $ /(e)rfe, s=l,2 JV,. (5.88) Aes О В соответствии с этим распределением вычисляются и усредненные каким-либо образом абсолютные значения скорости vs для каждой группы. Из каждой начальной точки фронта выпускается N3 трубок с величиной тока и начальными скоростями: Its = Ifis, xts = vscos(nti х\ yts = vscos(nt, у), (5.89) где nt — нормаль к поверхности фронта в точке с радиус-вектором ти И, наконец, дискретизация полного фазового пространства проводится при необходимости учета углового распределения влетающих в область частиц. При этом вводятся еще угловые группы, соответствующие частицам с начальным направлением движения в интервалах телесного угла Айг и имеющие средние направления Qn r=l, 2, ..., Ny. Соответствующие коэффициенты относительного углового распределения равны xr = J j(Q)dQ/\j(Q)dQy r=l, 2, ..., Ny. (5.90) Тогда общее количество запускаемых траекторий равно NT N3 Nyy a начальные данные определяются следующим образом: Itsr = /*6sxr, xtsr = vscos(Qr,x), ijtsr = vs cos(Qr, y\ (5.91) ztsr = vscos(Qn z), где все величины соответствуют точкам (**, yt, zt). Распределение плотности тока / = /(г, е, Q), за исключением режима ограничения тока пространственным зарядом, задается как известная функция координат, энергии и угла. Типичными примерами являются: а) катодные системы с полумаксвелловским распределением тепловых электронов, определяемым температурой эмиттера (см. следующий параграф); б) задача о расчете пучка, ранее сформированного какой-либо электронно-оптической системой, которой и определяется разброс частиц в фазовом пространстве (простейший пример — монохроматический пучок с постоянной по сечению плотностью тока). К другому типу относятся задачи с учетом вторичной эмиссии, когда плотность эмиттируемых частиц определяется падающим потоком. В этом случае задаются коэффициенты вторичной эмиссии, определяющие энергетическое и угловое распределения вторичного потока. Обычно задается несколько энергетических групп вторичных частиц, одни из которых имеют энергию вылета, близкую к энергии падающих частиц (упругое или почти упругое отражение), а другие — более медленные (неупругое отражение). 228
Для модели больших частиц в нестационарных задачах необходимо вычислить заряд «большой частицы» и ее начальное положение. Эти вопросы связаны со способом ее представления. Простейший подход заключается в следующем. Считается^ что большая частица в процессе ее движения имеет постоянный заряд и неизменную форму — прямоугольник в переменных х, у или г, -г и параллелепипед — в трехмерном случае. Начальный фронт пучка дискретизируется, как в модели трубок тока, и в результате определяются прощадки Ask координатами ri средних точек Mki k= 1, 2, ..., N\. Предполагая, что через площадку ASk в течение временного интервала [tn, tn-\-Atn] проходит поток частиц с постоянными плотностью jk и скоростью vly мы определяем «большую частицу» как прямоугольник (параллелепипед— для трехмерной геометрии), имеющий равные основания ASk с координатами средних точек rl и rk-\-Atnvt Соответствующий заряд полагаем равным Qk = jkASkAtn. Далее перемещение частицы можно прослеживать по движению ее центра тяжести, определяемого из интегрирования уравнений движения при начальной координате г%+1/ =г%+А1пи%/2. В любой последующий момент времени tm «большая частица» принимается за прямоугольник с зарядом jknASkAtn, координатой центра г™+1/2, поперечным размером AS* и высотой длины AtnVk, ориентированной в направлении скорости у™+1/2. Если требуется учитывать распределение начальных скоростей частиц, то, как и для стационарных задач, проводится разбиение потока на энергетические и угловые группы. В этом случае из каждой точки Mk начального фронта выпускается несколько больших частиц с разными зарядами и скоростями, усредненными по соответствующим группам. 5.4.2. Расчет полного заряда в ячейках сетки. Мы начнем рассмотрение с модели трубок тока для стационарных задач. Пусть rn, rrt+i —две точки траектории, полученные в результате численного интегрирования уравнения движения с временным шагом Atn. Если в соответствующей элементарной трубке ток равен /v, то на участке токовой трубки между этими точками находится заряд qvn = IvAtn, (5.92) что непосредственно следует из уравнения неразрывности потока. Поскольку для решения разностного уравнения Пуассона нас интересует полный заряд в ячейках разностной сетки, то параллельно с расчетом траекторий мы определяем время прохождения ими различных ячеек сетки и, суммируя для каждой ячейки вклад от всех токовых трубок, находим значения ^м- Прет этом легко реализуется следующий алгоритм. Отрезок [гп, гп+{] разбиваем на заданное число Np отрезков [rnp, rn> p+i], Р=1, 2, ..., Afp, rn0 = rru rrtJVp = rn+i, таких, что в предположении прямолинейного равномерно ускоренного движения между расчетными точками траектории частица проходит каждый отрезок за 229
одинаковое время -^ Тогда на одном отрезке находится заряд q,np = JAtn/Npi (5.93) относящийся к ячейке, центральный узел которой является ближайшим к серединной точке отрезка rn,p+i/2 с координатами, определяемыми по формуле rn -\г ——{2р—\)+ —2 [р — (р— 1) J, Np p (5.94) р = 1, 2, ..., ЛГр-1. Таким образом, при расчете траекторий (в том числе для всех энергетических и угловых групп) одновременно вычисляются пространственные заряды в ячейках разностной сетки: Яцы=Ъ ^ (5-95) Здесь суммирование идет по всем отрезкам всех траекторий, относящихся к ячейке (/, /, k). Данный алгоритм обладает свойством сохранения баланса заряда в области, т. е. с точностью до величины порядка 0(6/ iVp) выполняется соотношение v ijk где U — время прохождения соответствующей траектории расчетной области, а суммирование ведется: слева — по всем траекториям, а справа — по всем узлам сетки. Полная погрешность вычисления объемного заряда г^ зависит, очевидно, от количества траекторий и скоростных групп и от точности расчета траекторий, которая в свою очередь обусловлена погрешностью определения электромагнитного поля. Эту ошибку можно записать формально с помощью выражения ^ ф^ (5.97) где первые три члена представляют ошибку дискретизации потока по энергии, угла^ и пространству (для третьего шаг дискретизации берется по отношению к шагу разностной сетки), следующие два — ошибка расчета потенциала и численного интегрирования уравнения движения, и последний — погрешность рассмотренного выше алгоритма реализации условия неразрывности потока. Порядки этих членов можно в принципе повысить за счет применения более точных приближений. 230
Путем некоторого усложнения алгоритма можно уменьшить ошибку вычисления объемного заряда, обусловленную представлением пучка конечным числом траекторий. Предположим, что трубка тока, ограниченная траекториями с номерами v, v+1, несет ток /v и что плотность тока по сечению трубки постоянна. Пусть г", rv + 1 и г?+1, г"%\ — расчетные точки v-й и (v + 1)-й траекторий, время движения частиц между которыми равно Atn (рис. 28). Четырехугольник с вершинами в этих точках разобьем на Np частей вдоль движения частиц и на Nq — в поперечном направлении. Для этого каждый из отрезков [г*, r*+I], [г?+ь r£jrj] разделим точками г"р, a-v+ijP, /?=1, 2,..., Afp, рассчитываемыми по формуле (5.94), а на отрезках [rj, Гу+i], И+\ г"Ц] нанесем равномерно точки r"k, ri£\ k=l,2,...,Nq. Соединим теперь попарно точки разбиения сторон прямоугольника, имеющие одинаковые индексы р и q соответственно. Очевидно, можно считать, что в каждом из полученных четырехугольников находится заряд величиной IvAtn/(NpNq), и можно отнести его к ячейке разностной сетки, в которую попадает середина этого четырехугольника. Данный алгоритм наиболее эффективно применяется для ламинарного потока, однако его можно реализовать и при пересечении траекторий. Рассмотренные нами методы относились к стационарным задачам. Если же за время движения частиц меняется существенно распределение поля в области, то необходимо от трубок тока переходить к расчету движения «больших» частиц. Пусть на какой-то момент времени Тп известно распределение поля фЛ и самих частиц, каждая из которых имеет известную величину заряда. Из расчета уравнений движения при заданном поле находим положение частиц на момент времени Затем определяем соответствующее распределение плотности объемного заряда pn+i и из решения уравнений Пуассона Дф=—4ярп+1 с граничными условиями для потенциала на момент времени Тп+\ находим новое электрическое поле cpn+i. Величину шага ЛГ„ необходимо выбирать так, чтобы за это время незначительно изменялись нестационарные параметры задачи (это могут быть, например, переменное напряжение на электроде или -зависящая от времени плотность тока пучка на границе влета его в расчетную область). Значения &Тп и шага численного интегрирования уравнений движения Atn не обязаны совпадать (необходимо только условие А^<АГП). Если характерное время изменения нестационарных процессов мало, а особенности задачи 231
требуют точного расчета траекторий, то целесообразно выбирать АТп в несколько раз больше, чем Atn. Аналогию между методами частиц и трубок тока можно установить для стационарной задачи в примере на рис. 28. За «большую частицу» можно принять четырехугольник с вершинами г", г*+1, rj+b r^\ и разносить ее заряд по ячейкам разностной сетки путем разбиения четырехугольника на NpNq «микрочастиц», как это делалось выше для стационарного случая. Считая временные шаги Atn одинаковыми, заряд частиц можно определить по величине тока, прошедшего через интервал начального фронта [r$, Tv+i] за тот отрезок времени, когда в расчетную область входила данная частица. Если же, как указывалось выше, частица в процессе движения считается имеющей форму прямоугольника неизменных размеров, то учет ее заряда проводится по тому же принципу, но реализация алгоритма несколько упрощается. Возможны и другие способы представления частиц, но мы на них останавливаться не будем. Более тонкие модели необходимы в тех случаях, когда пучок сильно расширяется или сужается, а также при образовании режима виртуального катода, когда одна часть пучка резко поворачивает, вплоть до 180°, а другая проходит имеющийся потенциальный барьер. Обзор и анализ различных методов «размазывания» зарядов частиц по ячейкам сетки содержится в [17]. Представляют интерес также работы Мокина Ю. И. [131, 133], в которых различные модели частиц и трубок тока следуют как результат применения разных квадратурных формул к построенной им системе интегро- дифференциальных уравнений. Однако каких-либо систематических результатов по сравнению различных способов представления заряда частиц в ячейках для самосогласованных задач пока не имеется. Принципиальное отличие метода частиц заключается в том, что для' каждой из них на каждый момент времени необходимо хранить значения координат и скоростей. Если считать, что размер частицы должен быть меньше или сравним с размером ячейки разностной сетки, то это налагает большие ограничения на объем памяти при расчетах на ЭВМ. Если с начального фронта пучка через каждый временной интервал Atn впускается N частиц, и каждая из них пролетает расчетную область за L шагов, то в трехмерных задачах потребуется запоминать примерно 1NL чисел (координаты, компоненты скоростей и заряд каждой частицы). Для обеспечения необходимой для практических задач точности значения L могут достигать нескольких десятков или сотен, а N — от сотен до нескольких тысяч (при необходимости же детального анализа энергетического и углового распределения частиц — до десятков или даже сотен тысяч). В модели трубок ^ока для стационарных задач дополнительной памяти практически не требуется. • 232
§ 5.5. Итерационные процессы решения стационарных самосогласованных задач Мы рассмотрим итерационные методы решения системы нелинейных разностных уравнений Д„Ф=-£>р(ф) + /, (5.98) где Ал — какая-либо разностная аппроксимация оператора Лапласа, определенная на внутренних узлах сетки с учетом граничных условий; D — константа, определенная в (5.11) или (5.12); p = q/ V—вектор значений плотности заряда в узлах сетки (q — величина заряда в ячейке, V — объем соответствующей разностной ячейки); f — сеточная функция, отличная от нуля только в околограничных узлах и появляющаяся за счет исключения граничных условий. Во второй главе мы рассмотрели различные итерационные алгоритмы решения нелинейных уравнений: обобщения методов Якоби, Зейделя, верхней релаксации, метод Ньютона и его модификации. Обоснование применимости наиболее эффективных из этих алгоритмов к решению самосогласованных задач удается провести только при условиях на правую часть уравнения (5.98), которые зачастую не выполняются при моделировании интенсивных пучков заряженных частиц. Наибольшее распространение в данном случае получили итерационные процессы с наглядной физической интерпретацией. Один из них состоит в проведении двойных интераций, в которых ведутся внешние итерации по объемному заряду, а внутренние относятся к решению уравнения Пуассона при фиксированной правой части. Применяется также метод решения самосогласованных задач, моделирующий в некотором смысле процесс установления стационарного пучка после его моментального «включения». В этом «квазистационарном» процессе задается некоторая последовательность чисел 0<Г1<:Г2<С... При первых итерациях по объемному заряду траектории считаются до tn~Tn (кроме тех, которые выходят еще раньше из области). После проведения некоторого числа таких итераций, когда соседние приближения станут достаточно близкими, траектории начинают рассчитывать до момента Т2 и т. д. На последних шагах этого процесса можно считать Tk=ooy т. е. все траектории должны оканчиваться пересечением с границей области. Как показывают расчеты, выбором достаточно малых &Tk=Tk— Tk-\ можно добиться сходимости итерационного процесса и для сложных задач с относительно большим объемным зарядом, но при этом требуется большое число внешних итераций. Мы будем рассматривать метод релаксации объемного заряда в виде -233
где (On — некоторая последовательность релаксационных параметров; рЛ+1 — функция плотности объемного заряда, вычисленного для ф = фп+1 по формулам предыдущего параграфа при расчете всех траекторий до выхода их из области. Такой метод широко применялся, в том числе и при моделировании задач на аналоговых устройствах. Однако строгое доказательство сходимости итерационного процесса (5.99) (а также существование и единственность самого решения задачи (5.98)) удается провести только при сильных ограничениях на величину |др/дф|, выполняющихся для электронно-оптических систем с незначительным влиянием объемного заряда. Мы приведем результаты методических расчетов по решению самосогласованной задачи с учетом полумаксвелловского распределения нормальных к катоду компонент начальных скоростей электронов и \[^)', (5.100) где js — эмиссионная способность эмиттера uo = kT /\e\; k — постоянная Больцмана; Т — температура катода в Кельвинах. Объектом численного моделирования избран плоский диод с расстоянием между катодом и анодом dKa=l04 мкм, потенциалом анода относительно катода (ра = 1,38« 10~3 в, температурой катода Г=1100 К и эмиссионной способностью /s = 3 А/см2. Из аналитического решения такой задачи следует, что минимум потенциала равен ф=— 0,46 в и достигается на расстоянии от катода х = 30 мкм [83]. Эта задача может считаться достаточно «трудной» для итерационного процесса, так как в решение основной вклад вносят нелинейные эффекты, иначе говоря, в области образуется большая плотность объемного заряда (до анода доходит только около 1% общего тока). Электронный поток разбиваем на 40 энергетических групп с шагом 0,002 эВ, каждая из которых имеет плотность тока Д/V Током электронов с начальной энергией более 0,8 эВ пренебрегаем. Соответствующие значения «удельной» плотности тока —Д- и Js средней начальной энергии и* приводятся в табл. 26. Разностная сетка взята с шагом h\ = l мкм для 0<х<20 и /i2 = 4,2— в остальной части межэлектродного пространства. Итерационный процесс заканчивался, когда в двух соседних приближениях максимальное различие значений потенциала в узлах сетки не превышало 0,005. Из априорных физических Соображений ясно, что итерационный процесс (5.99) при со0»1, ро = О без каких-либо специальных приемов для данной задачи не сходится, так как в различных приближениях траектории будут то проходить на анод (внося в область огромный заряд), то все будут запираться. 234
Таблица 26 k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1812 1484 1215 994,8 814,4 666,8 545,9 447,0 365,9 299,6 245,3 200,8 164,4 134,6 uk, эв 0,009 0,030 0,049 0,069 0,089 0,109 0,129 0,150 0,169 0,189 0,209 0,229 0,250 0,269 k 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ю*дул//в 110,2 90,2 73,8 60,4 49,5 40,5 33,2 27,1 22,2 18,2 14,9 12,2 9,99 8,18 пк, эв 0,289 0,309 0,329 0,349 0,369 0,389 0,409 0,429 0,449 0,469 0,489 0,509 0,529 0,549 k 29 30 31 32 33 34 35 36 37 38 39 40 6,70 5,48 4,49 3,67 3,01 2,46 2,01 1,65 1,35 1,10 0,90 0,74 uk, эв 0,569 0,589 0,609 0,629 0,649 0,669 0,689 0,709 0,729 0,750 0,769 0,789 Исследуемые нами релаксационные процессы имеют целью тем или иным способом уменьшить количество объемного заряда в области на первых приближениях. Сначала был апробирован метод низкой релаксации, т. е. использующий значения релаксационных параметров con<Cl. Прежде всего, эксперименты с постоянным значением соп не дали удовлетворительных результатов, что можно объяснить тем, что малые значения релаксационного параметра могут обеспечить сходимость процесса, но требуют проведения большого числа итераций. Затем был апробирован метод с поэтапным увеличением значений con, когда при каком-то фиксированном значении со^ итерации по объемному заряду продолжались до тех пор, пока соседние приближения ф не становились равными с погрешностью 8<с1, затем использовалось значение параметра со^+1 = со^^, q> 1 и т. д. В этом случае алгоритм при ооо= Ю~3, q = 2, е= 10~3 требует около 180 итераций, т. е. не является эффективным. Экономичность расчетов удается значительно увеличить при более сильном росте значений (x)n = mm[(dOqn~\ comax], (5.101) где coo <С 1; q > 1; 0 < comax < 1 (со„ увеличивается на каждом приближении по объемному заряду). При значениях 2»10~4^ ^соо^32« 10~3, 2^q^4, comax= I/ 3 в численных экспериментах решение задачи достигается за 10—15 итераций. Типичный ход значений потенциала ип(х) в различных приближениях иллюстрируется табл. 27. Мы укажем еще на два подхода к построению релаксационного процесса, оказавшихся достаточно эффективными на практике. Один из них связан с тем, что в первых приближениях учитывается объемный заряд только самых быстрых частиц, а количество 235
Таблица 27 п 1 2 3 4 5 6 7 8 9 10 11 «я 0,001 0,004 0,016 0,256 0,333 0,333 0,333 0,333 0,333 0,333 0,333 х = 3 + 0,0004 -0,0053 -0,0321 -0,0821 -0,1508 -0,2422 -0,2466 -0,2475 -0,2422 -0,2465 -0,2469 х=\\ + 0,1014 -0,0176 -0,1000 -0,2338 -0,3683 -0,4818 -0,4488 —0,4468 -0,4174 -0,4335 -0,4339 х = 32,6 + 0,0041 -0,0385 -0,1963 -0,4053 -0,5440 -0,6158 -0,5320 -0,5225 -0,4806 -0,5055 -0,5052 ЛГ=62 + 0,0088 -0,0424 -0,1227 -0,3291 -0,4885 -0,4249 -0,3528 -0,3470 -0,3189 -0,3339 -0,3340 рассчитываемых энергетических групп постепенно увеличивается на каждой итерации по объемному заряду. Другой метод основан на специальном выборе начального приближения. Расчеты показывают, что задание начальных значений потенциала даже из грубых качественных оценок решения самосогласованной задачи дает значительное улучшение первых приближений по сравнению с итерационным процессом, в котором траектории вначале рассчитываются в «лапласовском» поле [70]. Несколько отличным характер итерационного процесса оказывается для другого класса самосогласованных задач: расчет катодных систем в режиме ограничения тока электронов пространственным зарядом при нулевых начальных скоростях. Приближения по-прежнему строятся по формулам (5.99), однако следует иметь в виду, что здесь характер зависимости от потенциала существенно отличается. Это наглядно иллюстрируется одномерным случаем: т. е. если в предыдущей задаче от ср зависел только знаменатель, то здесь — и числитель. Однако, как нетрудно видеть, зависимость /~ф3/2 «сглаживает» общий нелинейный характер влияния ф" на распределение pn+1 и итерационный процесс оказывается «лучше», чем в задачах с энергетическим распределением потока и потенциальной ямой вблизи катода. Численные эксперименты свидетельствуют, что такие задачи допускают удовлетворительное решение для со„«0,3 за 5—15 итераций, что можно считать достаточно эффективным, см. подробнее [19, 70]. Приведенные выше характеристики справедливы, если самосогласованные задачи не содержат каких-либо дополнительных ^факторов, усиливающих нелинейные эффекты. Сюда относятся так называемые задачи с торможением, когда заряженные частицы в какой-либо части расчетной области (как правило, это коллекторы электронно-оптических систем) замедляются, что вызывает 236
значительное увеличение плотности заряда в этом месте. Для таких задач траектории в различных приближениях могут сильно менять свою форму и сходимость зачастую достигается только при малых значениях со„ (около 0,1 и ниже) на 20—30 итераций. Другим примером являются задачи со вторичной эмиссией, которая может намного увеличить объемный заряд в расчетной области. Для решения нелинейной краевой задачи можно использовать метод Ньютона, в котором строятся итерации по формулам зу+7 ^2=^(фп)+(фп+1-фпЫфпХ фп(О)=фо, (5.102) и который имеет квадратичную сходимость, если только выполняется условие достаточной близости приближений ф1 и ф°. Для самосогласованной задачи расчета плоского диода с заданной плотностью тока / на катоде и нулевыми начальными скоростями электронов ) = — а/ л/ф> а = 4я/У т/ ~2е < 0, этот алгоритм принимает вид ^1-^. (5.103) Проверка условий сходимости в данном случае затруднительна, поскольку при положительности фп добавочный член в левой части (5.103) «портит» дифференциальный оператор. Представляет интерес итерационный алгоритм, предложенный в работе [19]. Для плоского диода его можно записать с помощью выражения (5.102), если только правый член с g'y умножить на число со = — 2: =Фь (5.104) Мы исследуем этот метод уже применительно к решению разностной задачи (5.98) безотносительно к размерности расчетной области. Тогда аналог уравнения (5.104) можно представить в векторной форме: ДЛф"+1 + /?(фп)фп+1 = -/, "дЛф°=-/. (5.105) Здесь /?(<р) — диагональная матрица с элементами, равными значениям Dp(<p)/q> в соответствующих узлах сетки, т. е. для двумерной задачи (D см. в (5.11)): (5.106) 237
Если рассматривается движение электронного пучка в области с положительными значениями потенциалов на электродах, т. е. /)<0, /;>0, то легко видеть, что значения потенциалов во всех приближениях будут положительны и итерационный процесс протекает без вырождения. В самом деле, поскольку ф°:>0, то для всех п будут выполняться условия Фя>Фп+1>0, [Ah + R(q>n)]-l<0. (5.107) Таким образом, если задача (5.98) имеет единственное положительное решение ф, то последовательные приближения в (5.105) сходятся, и именно к ф. Так как все значения /?(фп) отрицательны, то это может только усилить диагональное преобладание и улучшить обусловленность матрицы Ah + R(q)n) по сравнению с ДЛ. Для решения системы алгебраических уравнений (5.105) на каждом приближении по объемному заряду применимы рассмотренные в первой главе итерационные алгоритмы, причем скорость сходимости их должна быть выше, чем при проведении «внутренних» итераций для уравнения Пуассона в методе (5.99). Численные расчеты показывают высокую эффективность метода (5.105), в том числе для задач с ограничением тока на катоде пространственным зарядом. Например, для плоского диода о сходимости итераций можно судить по относительным значениям плотности тока, вычисленным в первых семи приближениях по закону «3/2»: 14736, 5288, 3151, 2307, 2422, 2412, 2412. В том же диоде с постоянной плотностью тока на катоде / = 1165 значения потенциала сходятся за пять приближений с погрешностью менее 0,1%. Укажем еще на один вопрос, имеющий значение для решения дву- и трехмерных самосогласованных задач в режиме ограничения объемного заряда. Дело в том, что вместо релаксации объемного заряда на каждой итерации можно проводить релаксацию плотности тока эмиттера: где Y — плотность тока, вычисленная с помощью закона «3/2» по распределению потенциала фп. В одномерном случае, очевидно, такой алгоритм тождествен с (5.99). Различие в этих двух методах наиболее существенно, когда от итерации к итерации сильно искажается форма рассчитываемых траекторий. Систематических сравнительных экспериментальных данных по таким подходам не имеется, но, по-видимому, следует отдать предпочтение релаксации по плотности тока. Оригинальный и достаточно эффективный алгоритм итераций по объемному заряду предложен Начамкиным и Хенкоком [140] для самосогласованных задач с ограничением тока пространственным зарядом и бесконечной эмиссионной способностью катода. Идея его заключается в следующем. 238
Обозначим через /? плотность тока в точке ri0 эмиттирую- щей поверхности, определяемую в соответствии с (5.10) по распределению очередного приближения для потенциала фп(г): i=l 2, ..., NT, (5.108) где предполагается С = 4-"д/-^-> фо = 0, а <рп(п) — потенциал в точке о, расположенной на расстоянии d по нормали от точки г/о эмиттера. Функцию фп определяем из решения краевой задачи для уравнения Пуассона Дфя=—4яр\ (5.109) где рп — распределение плотности заряда, вычисленное на основе плотностей тока /f"1 и траекторий частиц в поле фЛ-1(г). Решение уравнения (5.109) представим в виде суммы где ф1 — решение уравнения Лапласа с исходными граничными условиями для потенциала, а <рп — решение уравнения (5.109) при соответствующих однородных граничных условиях. Пусть \л]1~{\ = maxflyf"1!}. В качестве очередного приближе- / ния для плотности тока возьмем ]? = а]Г\ /=1, 2, ..., NTf 7 o))/f-1, /1=1, 2,..., 0<(о<1, (5.110) где значение а выбирается из условия удовлетворения закону Чайльда—Ленгмюра в окрестности точки г^: Вводя обозначение а = р3, приводим последнее уравнение к виду Р3Ф"М - РУ - \rk) + <pt(r*) = 0. (5.111) Здесь значения ф^(г^) и фп~1(г^) положительны (в противном случае происходило бы полное запирание тока), а величина $n(rk) отрицательна в силу ее определения. Поэтому уравнение (5.111) имеет единственный положительный корень р. Найдя его, мы из (5.110) определяем плотность тока для последующей итерации. Очевидно, что в этом методе итерации потенциала ф/г = Ф/, + осфп будут неотрицательны. Проведенные авторами алгоритма эксперименты свидетельствуют о хорошей скорости сходимости, причем рекомендуется брать в (5.110) со = 1 на первой итерации и со = 2/3 — на последующих. Отметим, что близкий алгоритм был рассмотрен Г. Т. Головиным в'работе [47], где коэффициент а линейной комбинации полей ф^ и фп подбирался из условия равенства нулю напряженности поля на катоде. Для одномерного плоского диода удается доказать сходимость и дать оценку скорости сходимости для следующего алгоритма. 239
Рассматриваемую задачу можно записать в виде Ф«=/Л/ф. 0<х<Ь, <р(0) = 0, ф) = У, (5.112) где константа / из условия фя-(0) = 0 равна а= -^—гг- и может быть представлена как поскольку само решение при этом равно Итерационный процесс по объемному заряду представляется в форме ф^/^/Уср7-11, (5.114) где только требует уточнения величина /п. В качестве начального приближения для плотности тока и потенциала мы полагаем /о = О, ф°(л:) = Vx/b. Введем вспомогательные величины /«, фЛ: Непосредственно из решения краевой задачи (5.115) для п=1 следует Отсюда видно, что если мы положим j\= -j^- ~\/-гЪ> то из (5.114) получим Пусть теперь для произвольного п распределение потенциала имеет вид Тогда из (5.115) мы имеем- Отсюда получаем, что при распределение потенциала на следующей итерации выражается формулой % xrt = 2 - Xn-i/2. (5.117) 240
Легко видеть, что последовательность кп при х0 = 1 сходится к пределу х = 4/3, причем имеет место соотношение х -и, =.!..(_-l.)", n = l,2,... (5.118) Функция ошибки я-го приближения для потенциала в таком итерационном процессе убывает по закону ф) — уп(х) = gn(x) (х — хп), gn(x) = -^г(Ь*кпх«»-х - **■)> xJeLl], (5.119) 6 6" L ° J откуда следует оценка тах{|ф(х)-фя(х)|}<е/2я, G = sup max {I £*(*)!}. (5.120) Из выражений (5.118), (5.119) следует очень важное свойство алгоритма: последовательные итерации <рп(х) дают двусторонние приближения к точному решению. Для доказательства этого необходимо показать знакопостоянство gn(x), что действительно имеет место для достаточно больших я, поскольку b ^ xhxJ>1. Отсюда следует, что в процессе итераций мы можем контролировать погрешность решения с помощью неравенства | фс) — цп(х) К | ф„ + \(х) — ц)п(х) |. Несложный анализ выражений (5.119) устанавливает возможность ускорения сходимости итерационного процесса (5.114), (5.115), (5.116) при помощи линейной комбинации соседних приближений. А именно, для функций справедлива оценка Характер рассмотренного алгоритма не привносит принципиальных трудностей для применения его к двумерным или трехмерным самосогласованным задачам. В работах Ю. И. Мокина [131, 135] рассматривался еще один метод расчета плотности тока в режиме ограничения пространственным зарядом, основанный на дискретизации интегрального уравнения (5.17), в предположении, что траектории частиц известны. Однако возникающая при этом необходимость решения вспомогательных краевых задач и применения регуляризующих алго-^ ритмов приводит к сомнению в его практической конкурентоспособности с вышерассматриваемыми методами, которые дают хорошие результаты и без использования каких-либо специальных регуляризации. 16 В П Ильин 241
§ 5.6. Примеры расчетов сильноточных пучков В данном параграфе мы приведем результаты решения двух самосогласованных задач, полученных с помощью пакета программ Эра, описанного в последней главе. В качестве примера решения достаточно сложной практической задачи мы приведем некоторые результаты расчетов высоковольтного импульсного источника релятивистского электронного пучка ЭЛИТ-ЗА для генерации СВЧ колебаний в системе электронно- позитронного инжектора ускорительного комплекса ВЭПП-4, разработанного в ИЯФ СО АН СССР. Схема рассматриваемой осе- симметричной электронно-оптической системы дана на рис. 29а. Общая длина расчетной области составляет 1430 мм, радиус катода равен 15 мм. Система включает 3 магнитные линзы, каждая Рис. 29а. \\ 7 x\ 1 \ 1 ^^ —J—V—"^ \ V - 6 ^ \ i i /\s i *\г | ! 4 1500 1620 2000 2750 Г Рис. 296. Рис. 29в. из которых расположена в подобласти с практически нулевой напряженностью электрического поля. Распределение компоненты В2 магнитной индукции'на оси симметрии приводится на том же рисунке, максимальная амплитуда составляет около 400 Гс. 242
Вдоль всей системы расположено 36 электродов с монотонно возрастающими значениями потенциалов от 0 до 1,65 МэВ для обеспечения относительно равномерного распределения поля. Конструкцию в целом можно представить состоящей из катодного узла, 4-х ускоряющих модулей и тракта для вывода пучка. На рис. 296, в изображена схема катодного узла и 1-го модуля, разделенных эквипотенциальной сеткой, которая считается прозрачной для электронов. Расчет системы проводился поэтапно: сначала катодный узел, затем 1 -й модуль, далее 2-й и т. д. На границах разделения подобластей ставилось условие равенства нулю осевого компонента электрического поля. Распределение плотности тока эмиссии и величина полного тока (/^56 А) найдены из расчета катодного узла в режиме ограничения тока пространственным зарядом. В каждом последующем модуле начальные данные для электронов брались из результатов расчетов предыдущего модуля. Электронный пучок моделировался 120 трубками тока. В каждой из расчетных областей использовались сетки с числом узлов около 2500. Разностные уравнения Пуассона решались блочным методом верхней релаксации с автоматическим выбором оптимальных итерационных параметров и точностью проведения итераций е— 10 (при 8= 10 наблюдались существенные искажения формы траекторий). В каждой подобласти проводилось около 10 итераций по объемному заряду с параметрами релаксации со я^ 0,3, что обеспечивало достаточную точность. Например, при расчете катодного узла значения полного тока эмиссии принимали следующие значения в итерациях: 169,7; 95,8; 71,1; 62,0; 58,4; 56,9; 56;3; 56,1; 56,0; 56,0. При моделировании пучка учитывались азимутальная компонента собственного магнитного поля и все компоненты внешнего поля (последние рассчитывались с помощью ряда Шерцера и аппроксимации осевого распределения Bz кубическим сплайном). Основные требования к данной электронно-оптической системе заключались в минимизации потерь тока на протяжении всей области формирования (из условия электрической прочности токо- осаждение на стенках больше 1% уже недопустимо) и в минимизации фазового объема пучка на выходе. Экспериментальные численные исследования, выполненные В. М. Свешниковым и В. М. Радченко, показали хорошее согласование с результатами физических измерений. На рис. 30 показан примерный характер электронных траекторий в 1-м модуле. Наиболее характерная особенность пучка, обнаруженная в расчетах,— это отсутствие какой-либо ламинарности потока, начиная со 2-го модуля. Рассмотрим пример реальной задачи о формировании плазменной границы, решение которой было выполнено В. М. Свешниковым и В. А. Панибрацким [152]. Моделируемая электронно-ионная оптическая система источника электронов для высоковольтного тлеющего разряда изображена на рис. 30. Плазма локализована У анода и имеет равный с ним потенциал ср = О. Изображенная 16* 243
штриховой линией плазменная граница является эмиттером положительных однозарядных ионов молекулярного азота, которые летят на холодный катод, находящийся под потенциалами Ф=—20 кВ. С бомбардируемого участка катода эмиттируется Рис. 30. электронный поток, пронизывающий плазму. Электронная температура и ионная плотность прианодной плазмы принимались равными Теж3 эВ, tiittlO9 см . По формуле Бома ja = 0,43nie(2kTe/mi)l/\ это дает плотность ионного тока с плазменной границы / = = 5» 10~~5А/ см2. Кроме того, в рассматриваемой модели было принято, что с участка поверхности, бомбардируемой электронным пучком, вследствие разогрева плазмы плотность тока в десять раз больше — / = 5- 10~4А/см2. Плотность объемного заряда электронного потока считалась пренебрежимо малой, поскольку скорость ионов в расчетной области намного меньше, чем у электронов. Конфигурация плазменной границы при получаемой неравномерной плотности тока эмиссии определялась из условия, что на малом расстоянии d справедливо одномерное приближение закона Чайльда—Ленгмюра (напомним, что это соответствует равенству нулю начальных скоростей ионов и нормальной производной потенциала на поверхности плазмы). Расчеты проводились на сетке с числом узлов около 3000. Ионный поток моделировался 16 трубками тока. Итерации по объемному заряду проводились с параметром релаксации со = 0,25. В процессе итераций проводилось варьирование плазменной границы по следующему алгоритму. Пусть г?, /=1,2, ..., N, радиус-векторы начальных точек N ионных траекторий, рассчитанных при распределении потенциала Фп(г). Соответствующую'форму плазменной границы определяем, проводя через точки г?так называемый дискретный интерполирую- 244
щий параболический сплайн Г„, обладающий свойствами монотонной аппроксимации [96]. Найдя при данном положении эмиттера решение самосогласованной задачи фп(г), координаты новых точек границы рассчитываем по формуле г?+х = г? + где п? — нормаль к границе Г„ в точках rg (ф<*)Г— значение потенциала во внутренней точке расчетной области, расположенной на расстоянии d вдоль нормали от rf и определяемой с помошью интерполяции по сеточным значениям фп; (фл)/ = ((9/4)/;d2)3/2 — «ленгмюровское» значение потенциала в той же точке; ц — релаксационный параметр, выбираемый экспериментально между нулем и единицей. Величина d берется примерно равной шагу сетки около эмиттера. На рис. 30 изображены начальное (прямолинейное) и конечное положения плазменной границы, найденные после 16 итераций с т] = 0,6, на каждой из которых делалось 4 итерации по объемному заряду. Итерации продолжались, пока относительное различие (ф<*)Ги (фл)/ не превышало 5% для всех L На том же рисунке изображены рассчитанные ионные и электронные траектории. Результаты расчетов достаточно хорошо согласуются с экспериментально наблюдаемой формой плазменной границы. Отметим в заключение, что эффективным средством ускорения расчетов самосогласованных задач, как и для линейных уравнений, является применение вспомогательных редких сеток. Достаточно действенным приемом является использование одной вспомогательной сетки, вложенной в основную и имеющей вдвое большие шаги. Соответственно для двумерного случая вспомогательная сетка имеет примерно вчетверо меньше узлов. На такой сетке можно быстро найти приближенное решение самосогласованной задачи. При этом и число трубок тока достаточно взять вдвое меньше, чем это необходимо для обеспечения заданной точности. После этого с помощью интерполирования по найденным распределениям потенциалов и объемного заряда вычисляется начальное приближение этих величин на густой сетке. Тогда уточнение решения требует ул^е, как правило, незначительного количества итераций по объемному заряду. Наконец, немаловажное значение имеет согласование счетных параметров внешних итераций по объемному заряду и внутренних — для решения уравнения Пуассона. Очевидно, на первых внешних итерациях расчет потенциала с высокой точностью не требуется. Однако здесь тоже надо сохранять осторожность, так как в некоторых электронно-оптических системах малые отклонения потенциалов могут привести к сильному расхождению траекторий, что может вызвать значительное увеличение итераций по объемному заряду. В целом следует признать, что решение сильноточных самосогласованных задач пока что является искусством и готовых рекомендаций на все типы задач не имеется. Имеющиеся резуль- 245
таты численных экспериментов говорят о принципиальной возможности расчетов таких приборов с приемлемыми затратами машинных ресурсов. Но проблема оптимизации алгоритмов, особенно важная для автоматизированного проектирования новых устройств с заданными свойствами, остается открытой. В качестве одного из математических вопросов можно еще привести разностную аппроксимацию уравнения Пуассона в задачах с ограничением тока эмиссии пространственным зарядом. При нулевых начальных скоростях эмиттируемых частиц плотность объемного заряда в окрестности катода имеет особенность. Поскольку асимптотическое поведение решения здесь известно, то можно провести аддитивное выделение особенности, как это делалось в предыдущей главе. При использовании обычных же разностных схем сам вопрос сходимости приближенного решения уравнения Пуассона к точному теоретически не изучен. К этой проблеме примыкают обсуждавшиеся алгоритмы расчета плотности катодного тока. При этом всегда используется параметр d толщины прикатодного «погранслоя» и в многомерных областях задача его оптимального выбора полностью не решена.
Г лм в а 6 ЧИСЛЕННЫЕ МЕТОДЫ РАСЧЕТА ПОЛУПРОВОДНИКОВЫХ ПРИБОРОВ Последние десятилетия являются периодом бурного развития микроэлектроники, основанной на использовании замечательных свойств полупроводниковых материалов. За короткий срок были разработаны и нашли широчайшее применение самые разные виды новых приборов: униполярные и биполярные транзисторы, резисторы, приборы с зарядовой связью (ПЗС), различные элементы типа металл-диэлектрик-полупроводник (МДП структуры). Наряду с огромным потоком работ физического аспекта в литературе появляется большое количество статей, посвященных численному моделированию полупроводниковых приборов. Достаточно сказать, что последнему вопросу посвящена также специальная международная конференция NASECODE, труды которой издавались в 1979 и 1981 гг. Математические модели физических процессов в полупроводниковых приборах представляют широкий спектр трудоемких и малоисследованных задач вычислительной математики. В различных приближениях здесь возникают и задачи со свободной границей, и уравнения с малыми коэффициентами при старших производных, и особенности, связанные с сильной нелинейностью решений. Актуальные постановки включают задачи как двумерные, так и трехмерные, как стационарные, так и нестационарные. § 6.1. Математическая постановка процессов переноса заряда в полупроводниковых приборах Мы рассмотрим двумерную модель транзистора, достаточно полно отражающую нестационарные процессы переноса заряда и широко применяемую для численных расчетов. В этой постановке решение сводится к следующей системе нелинейных дифференциальных уравнений в частных производных (см. [145, 175]): n — \inngrad <p), jp= — q(Xpgrad p + \ip p grad ф), (6.1) /=/ + /P-eoeJ-grad<p. 247
Здесь ф — потенциал электрического поля; пир — соответственно плотность электронов и дырок; К и Хр — коэффициенты диффузии электронов и дырок; \хп и \хр — коэффициенты, подвижности электронов и дырок; е0 и 8 — диэлектрическая проницаемость вакуума и относительная проницаемость полупроводника; jn и jp — плотности тока электронов и дырок; / — полный ток; / — заданная функция координат, описывающая суммарную плотность зарядов примесей (доноров и акцепторов) в полупроводнике; q — заряд электрона; gnn gp — члены уравнений, описывающие процессы генерации и рекомбинации для электронов и дырок. Для функций \кп, Мт» ^«» V 8п и gp берутся следующие зависимости от п, р и ф __/' / I Мтпах \\ V J ' (6.2) и ф: gn = gp = где / означает п или р, \Е\ = Igrad <p|, а величины фт, щ, пи рь тр, тЛ, n4in, ^л4ах, /о/, £"о/, а/, Р/ суть постоянные, определяемые физическими свойствами полупроводника (фг — термодинамический потенциал, П[ — так называемая собственная концентрация электронов в полупроводнике, тЛ и тр — время жизни электронов и дырок). Переходя к безразмерным величинам n' = n/niy p' = p/nif n[ = = ni/niy pi=p\/rii, ф/ = ф/фг> f/==f/nh систему (6.1) запишем в декартовых координатах следующим образом (штрихи здесь и далее для краткости опускаем): дхг dtjz ч г i/у дп д Г.. f дп _____ _ . __ Здесь a = | (/1/1//(ео8фт)—введенная для удобства физическая положительная постоянная, ее значение, например, для кремния, равно 0,0009642. Решение уравнений (6.3) требуется найти в областях, характерный вид которых приведен на рисунках 31а, б. Здесь можно выделить так называемые подобласти полупроводника /г-типа (/^0, обозначим ее через Qn) и р-типа (/^0, обозначим ее через Qp). Как правило, подобласти р-я-переходов, лежащие в окрестности изолинии f(x, у) = 0у имеют очень большие по модулю градиенты функций f, я, р, ф. Заретушированные участки границы означают контакты полупроводника с металлическими электродами, имеющими постоянные (не зависящие от пространственных координат ху у) 'потенциалы, которые, возможно, меняются со временем. Линии АВ, CD представляют собой плоскости 248
симметрии, на которых заданы однородные условия Неймана На линии В\С\ контакта полупроводника с вакуумом для простоты также считаем заданными однородные условия Неймана (в общем случае здесь ставятся неоднородные условия Неймана, что не очень существенно влияет на ход построения алгоритмов). На рис. 31а изображен так называемый униполярный транзистор Рис. 31а. с одним д-р-переходом, т. е. одна внутренняя граница (штриховая линия) между полупроводниками п- и р-типа; на рис. 316 приведен биполярный транзистор с двумя я-р-переходами. Характерный вид распределения концентрации примеси для примера на рис. 31а имеет вид ' Nc-Npexp{-(6y/a)% x>by (6.4) NC~NP exp{-(6i//a)2} erf с {10(6 -x)/b\ x<b. Здесь Nc, Np — физические константы, причем Np/Nc&l04. На металлических контактах ставятся условия термодинамической) равновесия и нейтральности: пр=\, n — p — f = O. (6.5) Из последних равенств, в зависимости от знака /, определяются следующие равновесные значения плотности п0 (напомним, что Ро==\/по): -{ f/2 + V(f/2)2+l, f>0 (и-область), (р-область). 4/2+ V(//2)2+l, Система уравнений (6.3) с помощью функций tyn = q) — In лг, я|?р=—ф + 1пр, (6.6) 249
называемых квазипотенциалами Ферми, может быть представлена в виде w = где плотности п, р выражаются через квазипотенциалы Ферми формулами /i = exp(q> — i|)n), p = exp( — (p+i|v). (6.8) Через распределения ф(/, х, у), п(х, t, у), р(ху t, у) могут быть выражены все необходимые характеристики полупроводникового прибора. Одними из определяющих являются значения токов Ik, проходящих через контактные поверхности Sk различных металлических электродов: /*(/)= \ j(t,x,y)dS. Sk Самостоятельное значение имеет расчет стационарных режимов приборов, которые можно трактовать как установившиеся решения систем (6.3) или (6.7), при постоянных граничных значениях потенциала, или как решения соответствующих систем, получаемых при отбрасывании членов dn/dt и dp/dt. Если Sm есть поверхность контакта электрода с полупроводником, то граничное условие для потенциала можно записать в виде ^)4П (6.9) где V$ есть контактная разность потенциалов между металлом и полупроводником, обусловленная различной работой выхода электронов в этих материалах, a Vfep) — приложенный извне потенциал, определяемый характеристиками электрической цепи, в которую вклк^чен рассматриваемый прибор. При решении нестационарных задач требуются начальные распределения потенциала и плотностей зарядов, которые, как правило, неизвестны. В таких случаях обычно используют в качестве начальных данных приближенные решения соответствующих стационарных задач. Особенностью решений рассматриваемых систем уравнений, при исходных данных, соответствующих реальным приборам, является наличие больших неоднородностей плотностей: п^>р — для областей я-типа и р^>п—для областей р-типа, причем различия могут достигать нескольких десятичных порядков. Как правило, суммарная плотность объемного заряда р = п — р — / намного меньше величины п-\-ру и небольшие отклонения от нейтральности приводят к огромным градиентам электрического потенциала. 250
Это означает, что уравнения переноса зарядов (при их соответствующей нормировке) в некоторых подобластях имеют очень малые коэффициенты при старших производных, притом меняющие знак. Как известно, такие уравнения наиболее трудны для численного решения. Эти ситуации характеризуются наличием пограничных слоев (в данном случае их положение заранее неизвестно) , в окрестности которых решение резко меняется, что требует использования специальных приемов для обеспечения численной устойчивости. Кроме того, наличие сильной нелинейности членов уравнения ставит специальную проблему надежно сходящихся итерационных алгоритмов. При этом очень большое значение имеет также выбор достаточно хорошего начального приближения. Имеющийся экспериментальный опыт показывает, что для многих практически важных режимов без уделения должного внимания этим вопросам алгоритмы или вообще не дают сходящегося решения, или требуют очень больших ресурсов ЭВМ. Один из основных подходов к численному моделированию рассматриваемых приборов заключается в построении иерархии более экономичных моделей, основанных на упрощающих физических предположениях [107, 129, 202]. В одних случаях простая модель может дать достаточно хорошее приближение к искомому решению, а в других — обеспечить хорошее начальное приближение к искомому решению для более сложной постановки. Если приближенные потенциалы на электродах нулевые, т. е. ф| 5 = у$, то вполне допустимо предположение о равенстве токов нулю: откуда следуют соотношения п = е*9 р = е~\ (6.10) которые дают, в частности, связь между равновесными значениями концентраций п\Г\ Дт) вблизи электрода Sm и контактной разностью потенциалов: V^ = lnn{r)=-\np\r\ < (6.11) Из последнего соотношения, а также из (6.5) следует, что при условиях равновесия на металлических контактах и ненулевых приложенных потенциалах для квазипотенциалов Ферми выполняются граничные условия = VW. (6.12) 251
При выполнении равенств (6.10) задача сводится к решению одного уравнения Пуассона с нелинейной правой частью: ДФ = а(еф —<?-* — /). (6.13) В ряде случаев стационарная постановка сводится к задаче о неизвестных свободных границах. Физически такая ситуация формулируется следующим образом. В окрестности р-я-перехода образуется область Йр пространственного заряда, плотность которого р можно считать приближенно постоянной; часть границы этой области, лежащую в Qrt, обозначим через Гп, а часть, лежащую в Qp — через Тр. В подобластях Qn и Qp, не принадлежащих йр (обозначим их через Q'n и Q'p), плотности зарядов можно считать нулевыми, а потенциалы — постоянными. Тогда для примера на рис. 31а при V\ = Vz задачу можно сформулировать следующим образом. Требуется найти кривые Тп, Тр и распределение потенциала ф, удовлетворяющие следующим условиям: Аф = р, Vx < ф, у) < V2, (x, у) 6 QP, l = n9 р, (6.14) дп I r« dn I l> v# При этом на электродах Si, S3, S2 подразумеваются заданными значения потенциалов К1 = У3 и К2, а на остальной части границы — однородные условия Неймана. Очевидно, при этом будем иметь также ф= V\ в Q'n и ф=Уг в Q£. Для последней задачи существует эквивалентная вариационная формулировка [193] как проблема минимизации соответствующего энергетического функционала при ограничениях V\^ ^Ф^Кг (здесь мы для определенности положили V\>V2)- Ее решение существует и единственно. Однако данная модель имеет узкую область применимости и не справедлива при так называемых прямых смещениях, т. е. при таких прикладываемых потенциалах, которые приводят к сглаживанию профилей концентраций электронов и дырок в окрестности р-я-перехода и к увеличению плотностей электронного и дырочного токов. В этом случае можно использовать следующее приближение, основанное на предположении постоянства квазипотенциалов в каждой из областей п- и р-типа. Пусть, например, для ситуации на рис. 31а V(\np)=V^ip)=Vu V^np)=V2^ Тогда рассматриваемая постановка сводится к решению одного нелинейного уравнения Пуассона: Дф = а(вф-^-в-(р+^-/), . (6.15) где Vk=V\ в подобласти, Qn и Vk=V2 — в Qp. Как показано в работе [155], такая модель дает качественно правильную картину и для средней величины прямых смещений,
за исключением режимов с большими плотностями токов. В действительности в цитируемой статье описывается несколько более грубая модель с пренебрежением плотности неосновных носителей зарядов, т. е. в подобласти Qn полагается р^О (в (6.15) опускается член £~ф+к*), а в Qp считается /г^О (в (6.15) опускается член е4"-^). Дальнейшим развитием такого подхода является переход от использования кусочно-постоянных значений квазипотенциалов в уравнении Пуассона к применению более лучших аппроксимаций грп, г|)р, получаемых из приближенного решения стационарных уравнений переноса. Тогда задача заключается в решении уравнения Дф = а(е»-1* —*-ф+*5 —f), (6.16) r котором величины г|)л, i|){J находятся предварительно из соотношений - V \х°ппо V ф2 = g°, - V \i°ppo V г|>? = g°. (6.17) Здесь функции \in, \iP, n°> р°, g° могут быть взяты при каких-либо физических допущениях. Например, в первом приближении плотности Яо, ро можно вычислять по соотношениям (6.5) из условий равновесия и нейтральности, а распределение потенциала в формулах (6.2) для [Хп, |ip, g° брать как ф = 1гшо+ V\np) с соответствующими значениями приложенных потенциалов в каждой подобласти. Несколько более упрощенный подход к выбору начальных данных по квазипотенциалам для уравнения (6.16) рассматривался в работе [139]. В соответствии с упомянутым принципом иерархии моделей значения цЯ, \i% g° могут быть также найдены с помощью решения уравнения (6.15). В общем случае решение стационарной задачи определяется системой нелинейных уравнений 0, (6.18) в которых для краткости введены обозначения ап = ЦпСф, г|?я, г|)р) л(ф, я|?я), ар = \хр{ц, г|?я, г|?р) р(ф, г|)р). Отметим в заключение, что мы рассматриваем только модели изолированных полупроводниковых элементов с заданными приложенными напряжениями. В общем случае данная задача является только частью проблемы расчета интегральных схем, куда входят данные элементы. Ряд вопросов для такого рода постановок рассматривался в работах [130, 128, 201]. 253
§ 6.2. Разностные методы решения уравнений переноса зарядов в полупроводниках Вычислительные задачи, сформулированные в предыдущем параграфе, не являются сугубо специфичными и встречаются в самых различных областях математической физики. Например, к задачам со свободной границей сводятся многие постановки в термоупругости и гидрогазодинамике. Хорошо известны также из других приложений трудности решения задач с малыми параметрами при старших производных, или, другими словами, с большими коэффициентами при конвективных членах, особенно при смене их знака (так называемые задачи с точками поворота). Тем не менее, для построения эффективных алгоритмов рассматриваемых задач при использовании общих вычислительных подходов зачастую большое значение имеет учет специфики искомых решений. Мы остановимся только на разностных методах, не имея в виду их превосходство в данном случае перед методами конечных элементов, которые тоже достаточно широко используются при численном моделировании полупроводниковых приборов, см., например, [102, 150, 157], а также обзор в [9]. По поводу особенностей рассматриваемых задач можно сделать следующие замечания. Расчетные области, как правило, близки по форме к прямоугольным, и здесь можно успешно использовать кусочно-равномерные сетки, на которых наиболее просто реализуются конечно-разностные аппроксимации. С другой стороны, в ряде задач возникают относительно небольшие подобласти с сильно преобладающими градиентами решений, и такие эффекты можно схватывать хорошо сеткой из конечных элементов с локальными сгущениями. Для конечного вывода о преимуществе того или другого метода расчета определенного типа приборов необходимы систематические численные эксперименты. 6.2.1. Решение задач со свободными границами. Численные методы решения задач со свободными границами имеют широкое приложение (см., например, [25, 187, 193] и цитируемую там литературу) . Мы остановимся только на одном алгоритме, наиболее простом, но, однако, высоко эффективном при реализации постановки (6.14). Метод был предложен Крайером в 1971 году [104] и может применяться как для конечно-разностных, так и для конечно-элементных аппроксимаций. Идея метода — в применении обычной последовательной верхней релаксации с учетом на каждой итерации имеющихся ограничений на решение. Пусть требуется найти решение системы пятиточечных конечно- разностных уравнений — а //Ф/-1,/ — Ьцуц-1 — С//Ф/+1,/ — йцуц +1 + ецщ = 1ц + р«/, (6.19) аппроксимирующих уравнение Пуассона в йр и уравнение Лапласа в й„ и Йр при каких-то в'ыбранных границах Г„, Гр (предполагается, что коэффициенты и /// в правой части вычислены с учетом 254
граничных условий на границе Q = Qp-\-Qn-{-Qp). Если узел (/,/) лежит в Qp, то р(/ включает заряд, величину которого полагаем равной произведению р на объем ячейки разностной сетки, в противном случае р;/ = 0. Можно было бы строить разностные аппроксимации более точные с учетом детальной формы кривых Гп, Тр. Однако для рассматриваемой задачи это не обязательно, так как данная модель является приближенной. Итерационный процесс в нашем случае можно записать следующим образом: ^ На//ф№ (620) —со)Ф/), { Vu если ф!}+1 = 1 ЧРЙ+1, если V2, если Здесь со — итерационный параметр, который может определяться аналогично, как для обычной верхней релаксации. Если матрица системы уравнений симметричная и положительно определенная, то последовательные приближения ф$ в методе (6.20) сходятся при любом начальном приближении (доказательство см. в [104]). Теоретических оценок скорости сходимости таких итераций не имеется, но численные эксперименты показывают, что, как правило, количество итераций требуется не больше, чем при обычном решении соответствующей системы линейных уравнений. Подчеркнем, что наша система (6.19) является нелинейной, поскольку в правой части pt/ зависит от решения. 6.2.2. Решение нелинейного уравнения Пуассона. Данный вопрос имеет самостоятельное значение при реализации моделей, описываемых уравнениями (6.13), (6.15) или (6.16), а также является частью алгоритма при решении полной системы уравнений (6.18). В рассматриваемых задачах оказывается очень эффективным применение итерационного метода Ньютона — Канторовича, обеспечивающего квадратичную скорость сходимости итераций по нелинейности, поскольку обычно несложно подобрать достаточно хорошее начальное приближение для потенциала. Например, для уравнения (6.16) итерации осуществляются по формулам 1"*--е"ф/+*'-/). (6.21) При численной реализации метод Ньютона применяется к алгебраической системе, аппроксимирующей уравнение (6.21), На каждой итерации для вычисления ф +1 надо решить линейную систему с пятидиагональной матрицей вида A = Ah — aDf где Ah — рассмотренный в главе I разностный оператор Лапласа, a D/ — 255
диагональная матрица с положительными элементами {еф'(/ ^" + _j_£-<p<7+^j Очевидно, что матрица А невырожденная. Если для каждого / применить метод верхней релаксации или какой-либо из методов переменных направлений, то в целом получаем двухступенчатый итерационный процесс. В силу положительности элементов D матрица А обусловлена лучше, чем Да и «внутренние» итерации будут сходиться лучше, чем просто при решении уравнения Пуассона. Для минимизации общего объема вычислений целесообразно выработать стратегию выбора количества внутренних итераций на каждом из внешних шагов. Очевидно, например, что на первой внешней итерации нет^ необходимости добиваться той точности, с какой требуется найти окончательное решение. В качестве приемлемого практически проверенного варианта можно взять такой алгоритм. Пусть гп означает критерий окончания внутренних итерадий по условию {Iq/1'*41 — ф |}<еп, где k — номер внутренней итерации, и пусть для окончательного решения требуется еоо = 10~5. Тогда определим гп = тах{ео/х\ Ю~5}, где е0 — некоторый аналогичный критерий точности, а % характеризует степень уточнения итераций на каждом внешнем шаге. При ео=1О~~3, х=2 обычно требуется 5—10 внешних итераций для определения окончательного решения, если в качестве начального приближения для потенциала взять решение уравнения Лапласа. На рис. 31а мы приводим характерный вид эквипотенциалей для униполярного транзистора при нулевых приложенных напря- женностях (У1=20,0; К2= — 15,4; V3 = 6,1 — контактные разности потенциалов) и функции распределения примесей f(x, у) вида (6.4). В уравнении (6.21) в этом случае <фя = 'ф/, = О. При гп = = тах {10~3/ 2п~\ 10~5} количество внутренних итераций на каждом шаге метода Ньютона — Канторовича оказывается равным соответственно 22, 36, 49, 76, 78, 56, 1, 1. В данном эксперименте число узлов сетки равно 40X40. Внутренние итерации проводились с помощью блочной последовательной верхней релаксации. Если искомое решение сильно отличается от решения уравнения Лапласа, то метод Ньютона — Канторовича может или плохо сходиться, или вообще расходиться. В этом случае можно эффективно применить метод непрерывного приближения по параметру [155]. Идея его заключается в следующем: если нам известно решение при некоторых исходных данных, а требуется найти при других, то специальным образом организуется серия вспомогательных задач с постепенным изменением переменных параметров. Формально это выглядит следующим образом. Пусть нам требуется решить нелинейное уравнение F(<p) = O. Введем некоторый параметр t таким образом, что уравнение имеет решение ф(/)_при 0*</<1, причем ф(0) известно (или легко вычисляется), a F(q>, 1) = /7(ф). С помощью дифференцирования 256
По t мы получаем уравнение Fydy/ dt+Ft = 0. Тогда решение ф(1) при начальных данных ср(О) мы можем вычислить с помощью какого-либо алгоритма интегрирования обыкновенных дифференциальных уравнений, например, самого простейшего — метода Эйлера. Для исключения возможного накопления ошибок можно после нахождения приближения ф* на каждом k-м шаге делать коррекцию, решая исходное уравнение /*(ф) = О методом Ньютона — Канторовича со значением ф* в качестве начальной итерации. Если шаг At = tk+l — tk выбрать достаточно малым, то такие итерации будут быстро сходиться. Пусть, например, нам известно решение уравнения (6.16) и требуется решить аналогичную задачу с другими квазипотенциалами хрЛ» typ. Тогда составим уравнение ) = Аф - а{ехр{Ф — fyi — (1 — t)ty°n} - откуда для разностной аппроксимации первой производной {ц>к^1—ф*)/ At « dq>/ dt получаем соотношение {A-a{exp{q>*-/*i|>i-(l -**)ф2}- -ехр{-Ф = а{ехр{Ф* - tk^n - (1 - tk)y°n}+ Отметим, что при аппроксимации этого уравнения обусловленность матрицы системы получается по крайней мере не хуже, чем у разностного оператора Лапласа. 6.2.3. Разностное решение одномерного уравнения переноса. Одномерные модели процесса переноса зарядов в полупроводниковых структурах, хотя мы их специально и не рассматриваем, нередко имеют самостоятельное значение при анализе основных характеристик приборов. Главной целью данного пункта является выделение тех особенностей алгоритмов решения уравнений переноса зарядов, которые сохраняют силу и для многомерных задач. Предполагая, что распределение потенциала является заданной функцией координат, мы рассмотрим параболическое уравнение вида 1(5Ь <6-22) Здесь мы останавливаемся на линейном случае, т. е. функции ф и g считаем заданными; /i, /2 — некоторые операторы граничных условий, которые мы пока не конкретизируем. 17 В п Ильин 257
Разностное решение будем определять на сетке с переменными временными шагами xk = tk+\ — tk, k = 0, 1,2, ..., и кусочно-постоянными шагами hi = Xi+\—xiy / = 0, 1, 2, ..., N, т. е. при й-*0 считаем число смен шагов конечным (Л = max hi). Предполагаем также, что при h-^-О все шаги являются величинами одного порядка, т. е. max {A,-}/mjn Щ < С. Здесь и далее буквами С, в том числе с разными индексами, обозначаются не зависящие от h постоянные. Известно, что если величины дц>/ дх достигают относительно больших значений, то построение разностных схем путем непосредственных аппроксимаций производных приводит к сильным ограничениям на шаги сетки. При аппроксимации производной первого порядка дп/ дх односторонней разностью (правой или левой — в зависимости от знака дц>/ дх) мы получаем монотонную схему, но с погрешностью первого порядка. Если же использовать центральную разность, то погрешность есть величина О(А2); но при достаточно больших h нарушается свойство монотонности уравнений, а это приводит к потере устойчивости, что особенно опасно при наличии крутых профилей решения. При делении уравнения (6.22) на максимальное значение Зф/ дх в нем появляется малый коэффициент при старшей производной. Для таких случаев разработан ряд специальных разностных аппроксимаций. Хорошо известны разностная схема А. М. Ильина и ее дальнейшие модификации [68,200,177,3]. Ряд способов построения монотонных разностных аппроксимаций для уравнения параболического типа с первыми производными предложен А. А. Самарским [165]. Отметим также работу [89], в которой для уравнения дивергентного вида с помощью интегро-интерполяционного метода построена монотонная разностная схема с погрешностью O(t + /i2) на равномерной сетке. Проведем построение монотонных разностных уравнений, следуя работе [82], на основе применения интегрального тождества Г. И. Марчука [119]. Интегрируя уравнение (6.22) по интервалу (jc/_i/2, X/4-1/2), после несложных преобразований получаем соотношение J1+1/2-Ji-x/2= Т(ж ~ e)dx> [ = 1>2, ...,#, (6.23) которому точно удовлетворяет решение п(х, t). Заменяя далее интегралы и производные соответственно квадратурными формулами и конечными разностями, приходим к системе уравнений 258
для разностного решения /г* = {«?}: ,k) k) __ п?+ iexp{-(ф?+1 -<pf)/2}- /if ехр{- (ф?~ ф?+ 0/2} = 0, 1,2,...; /=1,2, ..., yV; 0<a<l; ni={hi + hi+l)/ 2. Для замыкания этой системы надо добавить соотношения, аппроксимирующие граничные условия. Мы на этом специально останавливаться не будем; отметим только наиболее простой, но типичный для рассматриваемых задач случай однородных условий Неймана. Если при этом мы сетку возьмем так, чтобы граничные точки х=а, Ь попадали в середины интервалов, то будем иметь / 0 ^+1/2 = 0. Из (6.24) с помощью разложения в ряд Тейлора в окрестности точки (xi, tk+1/2) легко показать, что если решение задачи (6.22) имеет ограниченные четвертые производные по а: и третьи по ty погрешность разностного решения zh = {n(xiy tk) — я?} удовлетворяет системе уравнений (zf +l - zf)ht = xk[aA%+ V+ 4(1- o)A^zk + $%, (6.25) где V = {tff} есть вектор погрешности аппроксимации, предста- вимый в виде ф?=т*(а - 1 /2)Фки + тШ + (hi - й/_ ,)O.i- + h№i. (6.26) Здесь функции Ф*- удовлетворяют неравенствам max {Ф*}^ С/, / = 1, 2, 3, 4. Значения г|)? есть величины второго порядка по т при а=Г/2 (это соответствует схеме Кранка — Николсона) и первого — в остальных случаях. Величины г|)? имеют первый порядок по А в общем случае (из-за предпоследнего члена в (6.26)). Поскольку мы сетку выбрали кусочно-равномерную, то число таких членов конечно, и справедливо следующее важное свойство: их Легко заметить, что трехдиагональные матрицы А^ имеют отрицательные диагональные и неотрицательные внедиагональные элементы и обладают свойством диагонального преобладания по столбцам. Следовательно, матрицы D — aAf\ где D — диагональная положительно определенная матрица, а а — положительное чисро, являются монотонными, т. е. они невырождены и обратные к ним матрицы имеют положительные элементы. Систему уравнений (6.24) можно записать в векторной форме: + g4 (6.27) 17* 259
где H = {hi} — диагональная матрица. Несложно проверить, что при выполнении условий ^i } {ЬЦ ] (6.28) матрица перехода (Я—ткоА(н+х))~{ [Я+т*(1 — о)А(н)) имеет неотрицательные элементы, т. е. разностная схема является монотонной. На основании свойств монотонных матриц и особенностей структуры вектора погрешности аппроксимации можно показать (см. доказательство в [81]), что для вектора погрешности решения при условии (6.28) справедлива оценка / Здесь используется дискретный аналог нормы в пространстве L\\ Таким образом, чисто неявная схема (а=1) является абсолютно монотонной и сходящейся, а ее погрешность есть О(т + /г2). Схема К Н Кранка — Николсона — условно сходящаяся, но ее погрешность — О(т2 -f- h2). На каждом временном шаге, за исключением чисто явной схемы (а = 0), необходимо решать систему трехточечных уравнений вида (Bn)i=—aini-x + bini — cinijr{=fi, /=1,2, ..., JV, (6.29) Последнее неравенство означает свойство диагонального преобладания матрицы системы (6.29) по столбцам, а не по строкам, как это обычно бывает в разностных схемах. По этой причине мы рассмотрим специальный метод прогонки, устойчивый для данного случая. Выпишем предварительно коэффициенты уравнений (6.29): 2 k+i k+i k+i k+i (6.30) = щ -a Отсюда видно, что разностные коэффициенты удовлетворяют условиям a,/a/+i<l + p/tf, d/d-x^l-N, (6.31) за исключением, быть может, конечного числа уравнений, при N -+ оо (р — не зависящая от N постоянная). 260
Обозначим через cos последовательно пронумерованные под- интервалы отрезка (а, &), на каждом из которых производная ду/дх не меняет знак (5=1, 2, ..., L). Пусть, например, на совокупности нечетных подынтервалов W^i = coi U toeU ••• U <^l величина дер/ дх положительная, а на совокупности №2 остальных интервалов — отрицательная. Тогда имеют место неравенства c//a/+i<l, is=W\; a£/c:l--i<l, it=W2. (6.32) Рассмотрим в качестве вспомогательной задачи подсистему (B(s)n)i = — щщ-1 + bitii — dni+1 = f/, где /s, 4+i.— номера узлов сетки, отделяющих подынтервалы (<Ds-b ©s) и (o)s, a>s+i) соответственно (/i=0, /L+i — Л^+1)- В зависимости от знака ду/дх на cos рассматриваем два варианта прогонки с разными направлениями счета для (osGfi R = Qt'+1 2 = aiZi-l-\-fi / = /s+l, /s + 2, ..., /s+i —1, (6.33) ^i+i + 2/, /=/s+1 — 1,/5Н-1 — 2,...,/s+l; для Мы проведем анализ устойчивости алгоритмов (6.33), (6.34) к погрешностям округления, исследуя характер изменения вариаций бр/, 6z/, б/i/. По индукции легко показать, что в формулах (6.33), (6.34) все значения р,- меньше единицы. Далее, из этих же формул легко получить, что с точностью до вариаций первого порядка справедливы следующие неравенства: для (6.33): 261
для (6.34): Ci-2 Отсюда следует, что при выполнении условий (6.31), (6.32) вариации 8|3„ 6z(, Ьщ в обоих случаях остаются ограниченными, что и обозначает устойчивость алгоритма (некоторый рост ошибок, вообще говоря, допускается). Решение уравнений (6.29) будем проводить, используя формулы прогонки (6.33) для o)sg1Fi и (6.34) —для (ds^W2. При этом предварительно проводим редукцию полной системы, формируя уравнения, содержащие только неизвестные с номерами i\, /2, ...,*'i- Для этого в подобласти cos определим решение из принципа суперпозиции в следующем виде: щ = nisv[s) + nia+, v\s) + w\s\ i ее o)s, (B(s Vs)> = 0, v\f = 1, vft, == 0, (B(sVs)> = 0, i#>= 0, v<£l, = 1, (6.35) (B^w{s))i = //, w^= w^l, = 0. Каждая из функций a(s), y(s), ш(5) устойчиво вычисляется по формулам (6.33) или (6.34) в зависимости от четности 5. Подставляя далее nit_u nit+\ в разностные уравнения для i = i\, h, ••-, iu получаем редуцированную систему порядка -rfVi «wrW^t^+V^i • « = К. - Л^Ь (6.36) имеющую трехдиагональный вид как и исходная^ Ее решение существует и единственно, поскольку матрица (В)~~1 является главной подматрицей матрицы В"1 исходной системы (6.29), которая невырождена. Ее порядок в практических задачах будет меньше десяти (он определяется числом перемен знака производной потенциала), и ее решение не представляет вычислительных трудностей. Таким образом, алгоритм в целом имеет следующий вид: а) вычисляются вспомогательные сеточные функции u^s\ i/s), w(s) во всех подобластях cos с помощью формулы вида (6.33) или (6.34) в зависимости от знака ду/дх; б) формируется редуцированная система (6.36), и с помощью какого-либо из методов прогонок находится решение в узлах /j, /2, ..., iL\ в) по формулам (6.35) вычисляется решение во всех остальных узлах сетки. Такой метод устойчив'при любом числе перемен знака функции дар/ дх в исходном уравнении. Он сложнее логически в програм- 262
мной реализации, чем «классический» метод прогонки, см. §1.4, однако практически не требует дополнительных арифметических действий и памяти ЭВМ. В качестве примера аппроксимационных свойств рассматриваемых разностных уравнений для данного типа задач мы приведем численные эксперименты по решению модельной задачи с известным решением. Рассмотрим уравнение dt дх дп_ дх с периодическими граничными условиями n(0) = n(L) и постоянным коэффициентом с. Соответствующее точное решение имеет вид Как видно из этой формулы, с ростом значений с задача становится более трудной, поскольку увеличиваются производные от решения, что приводит к увеличению погрешности аппроксимации. В табл. 28 приведены точные значения решения пт и численное решение п для разных моментов времени t. Использовалась чисто Таблица 28 N. t С N. пт 1 5 10 10 0,8851 0,8841 0,8754 0,8750 20 0,7840 0,7817 0,7667 0,7654 30 0,6945 0,6912 0,6718 0,6694 40 0,6145 »0,6111 0,5881 0,5861 60 0,4823 0,4777 0,4513 0,4490 80 0,3783 0,3735 0,3461 0,3440 100 0,2966 0,2919 0,2654 0,2631 неявная схема с погрешностью О(т + /г2). Более конкретно даются максимальные величины nm(t) = max {п(х, t)} для значений с = 1, X 5, 10, А = 57 при величинах шагов т= 1/ 32, h = 57/ 72 (отметим, что в аналитическом решении nm(f) от с не зависит). Как видно из результатов, погрешность численного решения растет с увеличением t и с. Для повышения точности при больших с надо существенно уменьшать шаги по х и по t. Рассматриваемую разностную схему, для которой приведены эти данные, следует считать достаточно эффективной, поскольку, например, при этих же условиях результаты, полученные с помощью разностных уравнений из работы [3], дают в несколько раз большую погрешность. 6.2.4. Разностное решение полной системы (стационарный случай). В данном пункте мы остановимся коротко на итерационных методах решения системы нелинейных уравнений (6.18). Наиболее простой подход заключается в поочередном решении уравнения Пуассона и уравнений переноса — это так называемый метод Гуммеля [57]. Сначала при выбранных каким-нибудь 263
образом квазипотенциалах г|)„, i|)p (которые можно определить из какой-либо описанной в § 6.1 приближенной модели) решается уравнение Пуассона, для чего эффективно применяется итерационный процесс Ньютона — Канторовича в форме (6.21). Затем по значениям ф, я|)л, г|эр вычисляются начальные приближения для плотностей по формулам (6.8) и находятся новые значения п, р. Формально этот этап можно представить как выход на установление при / -> оо решений двух последних уравнений в системе (6.3). Имеющиеся нелинейные зависимости в \хп, \xp, g можно обойти — для этого берем соответствующие члены с предыдущей итерации. Тогда уравнения для пир решаются независимо друг от друга, что намного упрощает численную реализацию. Затем по формулам (6.6) с имеющимися на данный момент ф, я, р еще раз вычисляют квазипотенциалы г|)п, г|>р, снова решается нелинейное уравнение Пуассона и т. д. Как отмечается в ряде работ (см. [155]), такой алгоритм для ряда практических задач проявляет хорошую эффективность, но в некоторых случаях сходимость итераций оказывается плохой. Увеличить скорость сходимости в таких ситуациях можно путем применения итерационного метода Ньютона — Канторовича непосредственно к системе (6.18). Эти уравнения можно переписать в другом виде, взяв в качестве неизвестных функций ф, я, р: Ф{ (ф, л, р) = ф2 (ф,я,р)= Ф3 (ф,я,р)= — а(п — р — /) = 0, (6.37) Тогда в векторном виде метод Ньютона — Канторовича записывается как дф дп дФ2 дФ2 дФз дп дФ3 дп дФ1 dp дФ2 dp дФ3 dp Афл Ank Ф. (Ф*, п\ рк) Ф2 (Ф*, nk, pk) Фз (ф*, п\ рк) (6.38) Здесь элементы матрицы Якоби вычисляются на каждом шаге при значениях искомых функций из предыдущей итерации. При решении уравнений Аф , &nk, Apk мы должны на каждой итерации решать систему линейных уравнений порядка 3L, где L — число узлов сетки (это, естественно, более трудоемкая операция, чем трехкратное решение систем порядка L, как в методе Гуммеля). Имеющиеся на сегодняшний день экспериментальные результаты [102] не позволяют дать окончательных рекомендаций по выбору наиболее экономичного алгоритма. 264
6.2.5. Разностное решение системы уравнений для стационарного случая. В данном пункте мы рассмотрим разностный метод решения системы уравнений (6.3) при известных начальных данных и граничных условиях, рассмотренных в § 6.1. Для аппроксимации дифференциальных уравнений строим прямолинейную сетку с переменными шагами hf = Xi+\—xiy Щ = у/+1 — \}\А = 0, 1,...,/ + 1; / = 0, 1,...,/+1, xo = O,Xj+i=a, уо = Оу yJ+l — b, ik = tk — tk-\ (расчетная область рассматривается для простоты прямоугольная) и применяем метод интегральных тождеств Г. И. Марчука аналогично тому, как это делалось в п. 6.2.3 для одномерного случая. При этом для потенциала ria каждом временном шаге получаем пятиточечные разностные уравнения = a(nll-plj-h)9 (6.39) коэффициенты которых стандартным образом (см. гл. 1) выражаются через шаги сетки, являются положительными и удовлетворяют условиям диагонального преобладания. Неявные аппроксимации уравнений переноса принимают вид К - л?,-')Л* = И>(ф>* + М<р>% + gfh (6 40) f rf1 ** *% i 'w^j-/ Af+Af_i [ й?(еФ«+1.,+еФ,.о Af_l(e^+e*-.o J' l- = 4 Г Мы предполагаем, что в уравнениях (6.39), (6.40) значения Ф, п, р в граничных точках (для /=0, /+1; / = 0, /+1) исключены с помощью разностных аппроксимаций граничных условий. Элементы матриц А\, A-i, В\, В2 зависят от ф, их внедиагональные элементы являются неотрицательными, а диагональные — отрицательными. Легко также проверить, что эти матрицы обладают свойством диагонального преобладания по столбцам. Вводя векторы размерности /X/, систему разностных уравнений запишем в 265
векторном виде: (n) (p) + g> (pp) где А=А\+А2, В — В[-\-В2 — пятидиагональные матрицы, элементы которых зависят от значений ф§. Для реализации каждого временного шага необходимо решать систему уравнений относительно <р*, пк, рк. Поскольку их значения с предыдущего временного шага являются хорошим начальным приближением, здесь целесообразно использовать итерационный процесс. По аналогии с самосогласованными задачами из предыдущей главы можно применить итерации по объемному заряду с релаксацией: (6.42) = (0^'+ 4(1- <»)рл/, /**•'+' = (опк-1+ 4(1- <о)лл/, Если для какого-то / соседние приближения уже совпадают с необходимой точностью, то полученные значения берутся в качестве ф\ nk, pk. При каждом / решение любого из трех уравнений (6.42) требует проведения внутренних итераций, для чего можно использовать, например, попеременно-треугольный метод с чебышевским ускорением (см. гл. 1). Мы не будем останавливаться на доказательстве сходимости разностных решений, определяемых соотношениями (6.41), (6.42) (см., например, [81]). Особенностью задачи является наличие нелинейности в членах со старшими производными, что приводит к условной сходимости даже для чисто неявной схемы: должно выполняться соотношение т = О(/г2). Поэтому, возможно, на практике будет более экономичным использование явной схемы, когда в правых частях формул (6.39) — (6.41) индекс к меняется на k — 1. Вероятно, для обеспечения устойчивости тогда придется брать меньшие временные шаги, но зато мы освободимся от итераций. Теоретические оценки разрешить здесь вопрос оптимальности алгоритмов не смогут из-за их качественного и асимптотического характера. Для решения этой проблемы необходимы систематические численные эксперименты, которых пока в достаточном объеме не имеется. Перспективным представляется также использование для уравнений переноса неявной схемы Писмана—Ракфорда с продольно-поперечными прогонками [164]. В данном случае вместо 266
второго уравнения из (6.42) имеем Аналогичным образом надо заменить и третье уравнение из (6.42). Нетрудно проверить, что такая разностная схема имеет второй порядок погрешности по т. Реализация каждого из полушагов в (6.43) может осуществляться с помощью устойчивого алгоритма прогонки, рассмотренного в предыдущем пункте.
Г л а в а7 МЕТОДОЛОГИЯ ПАКЕТОВ ПРОГРАММ ДЛЯ ПРОЕКТИРОВАНИЯ ЭЛЕКТРОФИЗИЧЕСКИХ УСТРОЙСТВ Современное понятие численного метода в широком смысле этого слова включает его реализацию в составе программного обеспечения ЭВМ. Это становится вполне естественным, если алгоритмы рассматривать как средство решения практических задач, зачастую требующих для обеспечения необходимой точности выполнения миллиардов арифметических действий. Отсюда следует, прежде всего, что под численными методами подразумеваются «машинные» методы, поскольку «ручные» вычисления в задачах математической физики выглядят бессмысленными. Это приводит к тому, что отменяется вся технология расчетов сравнительно недавних пор, основанная на использовании таблиц, номограмм, логарифмических линеек и т. д. Если «классическое» понимание эффективности алгоритма связывалось фактически только с количеством арифметических операций, необходимых для обеспечения заданной точности, то теперь не меньшее значение приобретают особенности программной реализации, необходимый объем оперативной или внешней памяти и сама технология прохождения задач на ЭВМ. При этом экономичность методов решения какого-то класса задач зависит от конфигурации технических средств ЭВМ, состава системного и прикладного программного обеспечения, т. е. совокупности всех компонентов, составляющих вычислительную систему. В силу массового характера расчетов на ЭВМ понятие эффективности уже сводится к чисто экономическим критериям, связанным с оценками стоимости машинного времени, трудозатрат на разработку и сопровождение программ, обработку результатов и т. д. Достигнутый уровень развития численных методов и средств вычислительной техники ставит на повестку дня переход от проведения отдельных расчетов к созданию системы автоматизированного проектирования (САПР) широкого класса электрофизических устройств. При этом непосредственная реализация алгоритмов решения дифференциальных или интегральных уравнений становится одним из элементов технологической линии. Класс задач можно определять с различных профессиональных точек зрения. Его может определять тип рассчитываемых электрофизических устройств. В качестве характерных примеров можно назвать высоковольтные устройства, трансформаторы, электрические машины, магнитные линзы, спектроаналитические приборы, 268
электронно-оптические преобразователи, ускорители, электронные или ионные пушки различного назначения, приборы СВЧ электроники и т. д. Другая классификация связана с математической постановкой: размерность расчетной области и форма ее границы, вид дифференциальных или интегральных уравнений, граничные и начальные условия. Третьего типа разбиение зависит от используемых алгоритмов: методы конечных разностей, конечных элементов, коллокаций и т. д. Мы рассмотрим гипотетическую систему автоматизации проектирования класса задач, включающего все виды математических постановок и алгоритмов, исследованных в предыдущих главах. При этом в физическом плане охватываются все типы перечисленных выше устройств. Такой глобальный подход оправдывается тем, что, как мы увидим ниже, программная реализация алгоритмов допускает единообразную технологию, основанную на модульном представлении вычислительного процесса и компоновки сложного комплекса из достаточно автономных программных единиц. Рассматриваемая «суперсистема» может предполагать разработку достаточно автономных подсистем для расчетов отдельных электрофизических устройств. Такие подсистемы могут создаваться независимо в рамках общих требований к структуре данных и вычислительных модулей. § 7.1. Функциональные требования к программному обеспечению САПР Мы рассмотрим технологическую цепочку процесса разработки, функционирования и развития программного обеспечения САПР, изображенную схематически на рис. 32, см. также [74]. \Лроектное\ у решение \ Математическая модель Объект проектирования Рис. 32. Отправной точкой является проектируемый объект. Это может быть некоторое электрофизическое устройство, для которого задаются исходные данные и указываются требуемые характери- 269
стики. В простейшем случае ставится задача анализа, в которой необходимо количественно определить указанные характеристики при заданных исходных условиях. Например, расчеты высоковольтных конструкций в основном требуют знания максимальных величин напряженностей электростатических полей при фиксированных конфигурациях и потенциалах металлических электродов с известной формой изоляционных промежутков и их диэлектрических свойств. Основной же проблемой при конструировании новой электрофизической аппаратуры является нахождение таких геометрических и электрических параметров устройства, которые обеспечивают его необходимые эксплуатационные свойства. Для упомянутых высоковольтных конструкций зачастую требуется найти геометрию электродов при некоторых ограничениях на габариты, когда модуль напряженности поля не превышает критической величины, опасной для возникновения пробоя. Таким образом, мы приходим к задаче синтеза, или оптимизации, которая и составляет основу процесса проектирования. Для рассматриваемого объекта формулируется физическая модель, в которой определяется, какие физические эффекты необходимо учитывать при моделировании и какими особенностями можно пренебречь. При исследовании полей магнитных линз это означает, например, нужно или нет учитывать анизотропные свойства ферромагнетика, можно ли пренебречь влиянием отдельных конструктивных деталей и т. д. Следующим этапом является математическая постановка задачи: описываются интегральные или дифференциальные уравнения, форма границы расчетной области, граничные условия и начальные данные, указывается требуемая точность решения. Для простых моделируемых объектов стадии физической и математической постановок могут фактически сливаться, однако в сложных ситуациях требуется тщательное исследование адекватности моделей. Далее требуется разработать (или выбрать из известных) численные методы решения поставленной математической задачи. Это подразумевает конкретизацию способа дискретизации расчетной области, аппроксимации исходных дифференциальных или интегральных уравнений и алгоритмов решения получаемых алгебраических задач. Основная проблема при этом — выбрать счетные параметры (например, шаги сетки) так, чтобы обеспечить необходимую точность решения при экономичном использовании вычислительных ресурсов. Одним из самых трудоемких процессов является разработка программ. Серьезность вопросов программной реализации быстро возрастает с увеличением объема программного комплекса. Здесь самостоятельное значение приобретают этапы предварительного планирования работы, непосредственного написания программ, их отладки, тестирования, документирования и последующего технического сопровождения. Мы касаемся только прикладного 270
программного обеспечения, связанного непосредственно с классом задач, обусловленного математической моделью проектируемого объекта. Хотя, конечно, серьезные прикладные разработки требуют хорошего знания, квалифицированного использования, а иногда и развития компонентов системного программного обеспечения. Самостоятельным и важным этапом для пользователя прикладных программ является непосредственное проведение расчетов. В тривиальном случае это подразумевает рутинную перфорацию исходных данных, формирование пакета перфокарт и передачу его на счет, анализ полученных с ЭВМ цифровых распечаток. Однако такая «технология» быстро приходит к насыщению: при росте вычислительных мощностей, позволяющем резко увеличить количество и сложность решаемых задач, «ручной» способ подготовки данных и обработки результатов приводит к разбуханию человеческого персонала и сводит на нет преимущества использования ЭВМ. Здесь уже наряду с эффективностью математических методов не меньшее значение приобретает оперативность задания исходной информации и наглядность представления результатов расчета. На основе анализа данных численного счета принимается какое-либо решение о дальнейших операциях. Сами расчеты могут проводиться или одиночными вариантами, или сериями с перебором исходных параметров. Наиболее эффективными для задач проектирования являются оптимизационные расчеты, когда автоматизирован (хотя бы частично) процесс поиска значений варьируемых величин, обеспечивающих требуемые характеристики исследуемого объекта. Такой режим возможен только при наличии специальных технических и программных средств для обеспечения управления вычислительным процессом в диалоге пользователя с ЭВМ. Результаты численного моделирования, как правило, тщательно тестируются или на методических примерах с известными точными решениями, или по данным физических экспериментов. После этого может оказаться необходимым повторить частично или полностью технологический цикл: изменить физическую модель, сменить математическую постановку, откорректировать алгоритмы, переделать программы. Для обеспечения функционирования рассмотренной схемы необходимо построение развитой информационной базы САПР, которая может включать сведения о реальных объектах, об их моделях, алгоритмах, программах и т. д. Конечной целью всего этого процесса является проектное решение, которое может быть выдано с ЭВМ в виде конструкторской документации. Мы рассмотрели только основные моменты организации вычислительных работ на вычислительных системах. Методологическим вопросам этой проблемы посвящено большое количество работ, например, монографии [98, 172, 189, 199]. 271
Назначение системы, автоматизированного проектирования заключается в замене физического моделирования численным, что позволит оперативно просматривать различные варианты устройств, избежать (хотя бы частично) создания натурных опытных образцов и- в конечном счете — сократить сроки разработок и повысить качество проектируемых объектов. Подчеркнем, что мы касаемся в первую очередь только вопросов прикладного программного обеспечения САПР. Ее эффективность и возможности в значительной степени будут зависеть от используемых средств технического и общесистемного обеспечения ЭВМ: устройств ввода-вывода цифровой и графической информации, дисплеев и других внешних устройств, универсальных систем программирования, или операционных систем, включающих трансляторы с алгоритмических языков, редакторы текстов, средства работы с архивами и организации библиотек. САПР в целом представляет собой сложную структуру и определяется как комплекс средств технического, математического, программного, информационного, методического и организационного обеспечения автоматизации проектирования, взаимосвязанных с необходимыми подразделениями проектной организации или коллективом специалистов (пользователей системы), выполняющих автоматизированное проектирование. Прикладное программное обеспечение САПР электрофизических устройств, в силу достаточной сложности математических постановок, может составлять десятки тысяч операторов или машинных команд; объем одновременно обрабатываемых данных — сотни тысяч чисел, а расчеты требуют пропуска большого количества вариантов со значительными затратами времени и ресурсов ЭВМ. Разработка и функционирование программного обеспечения САПР — длительный и непрерывный технологический процесс, требующий особого внимания к методологии построения программ, их эксплуатации и сопровождения. В силу своего производственного характера математическое и программное обеспечение САПР должно удовлетворять достаточно жестким требованиям, которые можно сформулировать следующим образом: а) полнота физической и математической моделей, охватываемых составом разработанных программ; б) эффективность реализованных алгоритмов, определяемая в первом приближении количеством машинного времени, необходимого для получения решения с заданной точностью. При более строгих оценках необходимо учитывать стоимость затрачиваемых на расчеты всех ресурсов ЭВМ и трудовых затрат на разработку программ; в) простота и удобство в эксплуатации: оперативность пропуска задач на 3BM,# наглядное и экономичное представление исходной информации и результатов счета, доступность общения с ЭВМ (диалоговые средства или в пакетном режиме со- 272
общения об ошибках и промежуточных результатах), полнота и строгость документации; г) надежность алгоритмов и программ: высокая степень отла- женности и безотказности, обеспечение требуемой точности, наличие разнообразных тестов; д) расширяемость состава алгоритмов и программ, возможность оперативного изменения или расширения математической модели без существенной модернизации программного обеспечения; е) адаптируемость программного обеспечения к изменению конфигурации вычислительной системы. Перечисленные пункты являются частью общей проблемы качества программного обеспечения. Исчерпывающее исследование этих вопросов проведено в монографии [115]. Важным моментом является допустимость различных уровней использования прикладного программного обеспечения САПР. Наиболее массовым его применение должно быть для проведения тиловых расчетов по заранее подготовленным стандартным схемам. С другой стороны, немаловажное практическое значение имеет возможность оперативного подключения новых компонентов, которые позволяли бы или оптимизировать численные методы, или расширять класс физических и математических моделей. Рассмотренные особенности выдвигают особое требование к программному обеспечению как продукту, отторгаемому от его разработчика,— качество технической документации и, более того, структурирование ее в зависимости от предполагаемого характера эксплуатации. Прикладное программное обеспечение САПР, удовлетворяющее в той или иной степени данным требованиям, фактически представляет так называемый пакет прикладных программ, который определяется как совокупность программ, совместимых по структуре данных и способам управления и объединяемых общностью функционального назначения как средства решения класса задач определенным кругом пользователей [63]. § 7.2. Технология пакетов прикладных программ Проблемы разработки прикладного программного обеспечения САПР фактически сводятся к вопросам методологии пакетов прикладных программ (ППП), имеющим общий характер как для задач электрофизики, так и для других проблемных областей: гидро- и газодинамики, термоупругости, ядерной физики и т. д. В этом параграфе объектами нашего внимания будут два вопроса: первый — что такое пакеты прикладных программ, второй — как их создавать. Эти проблемы последние годы интенсивно дискутируются. Поэтому мы попытаемся избегать излишней формализации рассуждений, останавливаясь на содержательных и очевидных, на наш взгляд, сторонах дела. Во избежание чрезмерного 18 В П Ильин 273
количества ссылок можно рекомендовать читателю библиографический указатель литературы [153]. 7.2.1. Что такое пакеты прикладных программ? Начнем с двух определений (одно из них ближе к прикладным программистам, а другое— к системным). а) Пакет прикладных программ — средство автоматизации решения класса прикладных задач. б) Пакет прикладных программ — форма существования проблемно-ориентированного программного обеспечения. Эти определения являются эквивалентными и основное достоинство их заключается в краткости. Попытки же дополнить и формализовать определение пакета приводят к спорным утверждениям, не увеличивая информативности. Чтобы раскрыть понятие пакета прикладных программ, надо разобраться в существе проблемно-ориентированного программного обеспечения: что понимается под классом прикладных задач, каковы содержание и средства автоматизации прикладного программирования. Уже на заре программирования в машинных кодах появились простейшие средства автоматизации решения прикладных задач. На первых ЭВМ типа М-20 это были библиотеки стандартных программ, содержащие, в частности, программы ввода-вывода данных и средства отладки. Языки программирования фортран, алгол и другие значительно повысили скорость описания алгоритмов. Построенные на их базе системы программирования, кроме того, включают такие немаловажные компоненты, как библиотеки процедур, средства ввода и вывода разных типов данных, диагностику ошибок. Большой популярностью на БЭСМ-6 пользуется универсальная система программирования МС Дубна [118] (сделанная в качестве надстройки над операционной системой), которая позволяет организовать общие и личные библиотеки подпрограмм, написанных на фортране, алголе и автокодах, включает редактор текстов, средства управления вычислительным процессом, динамической загрузки модулей и прямого доступа к внешней памяти. Кроме тоГЪ, системы машинной графики, диалоговые системы отладки, комплексы средств хранения и редактирования данных с документатором делают БЭСМ-6 достаточно оснащенной инструмен- тариями для прикладного программирования. Развитие штатного, или базового, системного обеспечения обусловливается эволюцией и потребностями прикладного программирования. Помимо роста количества прикладных программистов и программ, за последние 10 — 15 лет произошло — в силу резкого увеличения сложности и трудоемкости решаемых задач — качественное изменение характера прикладного математического обеспечения, как по объему программных текстов и информационных потоков, так и их внутренней структуре. Как следствие этого, серьезные программные разработки становятся продуктом коллективного труда разработчиков. 274
Принципиальное значение имеет также развитие специализации пользователей ЭВМ, которых можно условно разбить на три группы. К первой группе относятся специалисты в своей прикладной области, назовем их инженерами, которым, в силу их профессиональной классификации, не нужны, даже «вредны» обширные знания в программировании, а требуется только умение пользоваться готовыми программами с минимальными инструкциями. Для них программное обеспечение является идеальным в качестве «черного ящика»: соответствующие инструкции указывают его назначение, способ задания исходных данных и форму представления результатов. В этом случае не требуется никакой информации о внутренней структуре программного обеспечения. Вторая группа включает специалистов (инженеры-математики), знающих не только конкретную прикладную область, но также свойства применяемых математических методов и способы их программной реализации. Такие пользователи могут наиболее эффективно применять разработанное математическое обеспечение, но от них требуется знание структуры алгоритмов и программ. Третья группа (математики-программисты) — это разработчики качественного проблемно-ориентированного программного обеспечения, рассчитанного на массовую эксплуатацию другими пользователями. Последняя категория по квалификации приближается к системным программистам — разработчикам базового обеспечения ЭВМ (операционные системы, трансляторы и т. д.). Надо сказать, что специализация пользователей ЭВМ является тенденцией, но далеко не везде свершившимся фактом, и зачастую в одном лице сочетается «и швец, и жнец», иногда за счет уникальности специалиста, а чаще — в ущерб профессиональным качествам. Другим историческим моментом в прикладном программировании является переход к массовому характеру производства. Поскольку применение ЭВМ в самых различных отраслях является действительностью и стало не только показателем прогресса, но и его двигателем, а стоимость математического обеспечения составляет большую часть стоимости ЭВМ, то затраты на разработку программ уже рассматриваются с экономической точки зрения. Поэтому вопросы технологии, их стандартизации, избежания параллелизма и дублирования, обеспечения преемственности между разработчиками программ и пользователями, развития математического обеспечения и его тиражирования приобретают качественно новый смысл. В программировании ситуация сейчас такая, что она является давно пройденным этапом в конструкторской сфере. Инженеру не приходится заново проектировать не только гайки, но и многие довольно сложные, но типовые узлы; технология разработок регламентирована ГОСТами по конструкторской документации; функционируют развернутые информационная и патентная службы. 18* 275
Характерной чертой современного подхода является переход от решения отдельных задач к решению класса задач. Класс задач — это совокупность прикладных проблем, характеризуемых некоторым множеством частных задач, достаточно многочисленных, но обладающих общностью применяемых алгоритмов и информационных массивов. Средством автоматизации их решения и является создание пакета прикладных программ. Это подразумевает разработку программ, позволяющих проводить расчеты для широкого круга задач, при сохранении достаточной экономичности в решении каждой из них. Предпосылкой к этому является тот факт, что многие задачи с различным внутренним научно-техническим содержанием описываются формально одинаковыми или близкими математическими постановками и могут решаться алгоритмами из одного класса. Целью же такого подхода является разработка математического обеспечения, которое имело бы достаточно массовое и интенсивное использование, могло бы непрерывно развиваться и было бы конкурентоспособным в течение нескольких лет. Это означало бы высокую окупаемость программного продукта и заменило бы разработку различными авторами более мелких программ для частных задач, зачастую повторяющихся или перекрывающих друг друга. Основным принципом построения пакетов является модульная архитектура. Предполагается, что само моделирование задач из данного класса основывается на модульном принципе: выделяются математические модули, представляющие отдельные подзадачи, каждую из которых можно определить по виду исходных данных, результатам и используемым алгоритмам. Тогда решение отдельной задачи заключается в выполнении в фиксированной последовательности определенных модулей. Качество модульного анализа класса задач зависит от выполнения следующих требований. Модуль должен быть «актуальным», т.е. используемым по возможности в большем числе задач. Если, например, какой-то алгоритм в целом используется только для одной задачи, но имеет фрагменты, применяемые в других задачах, то эти фрагменты целесообразно объявить модулями, составляющими этот алгоритм. Модуль должен быть по возможности «содержательным», решающим нетривиальную подзадачу, с тем чтобы решение задач можно было представить ограниченным набором модулей. Два сформулированных требования в принципе являются противоречивыми. Удовлетворение только первому приводит в предельном случае к объявлению модулем любой операции, реализуемой алгольным или фортрановским оператором. Другая крайность заключается в определении модуля как реализации целой самостоятельной задачи. «Оптимальное размодулирование» класса задач является некоторым компромиссным решением, которое количественно можно охарактеризовать двумя числами: Nm и N3/Nm, где Nm — общее количество модулей, доставляющее математическое обеспечение класса, состоящего из N3 задач, a Nm — среднее число 276
модулей, используемых в решении отдельной задачи_из данного класса. Очевидно, нужно стремиться к уменьшению Nm и увеличению N3/Nm. Эти критерии лишь частично характеризуют экономичность модульной структуры. С другой стороны, более «глобальное» определение оптимальности как «минимум экономических затрат на разработку математического обеспечения данного класса задач» является трудно формулируемым и включает слишком много параметров. Программное обеспечение класса задач (пакет программ) также базируется на модульном принципе. В первом приближении пакет программ можно считать совокупностью программных модулей и средств управления их работой. Программным модулем можно в принципе объявить любой программный компонент, который определяется своими входами, выходами, исходными данными, результатами и функциональным назначением. Модулем может быть программный блок, функция, процедура или их совокупность. Естественно сопоставить каждому математическому модулю из данного класса программный модуль; но это не обязательно, поскольку целесообразность определения программного модуля может следовать не из математических, а чисто «технических» категорий, как, например, особенностей транслятора или средств доступа к внешней памяти. Модульная структура позволяет преодолеть противоречие между требованиями универсальности и эффективности пакета программ. Этого можно достичь разработкой богатой и даже избыточной библиотеки модулей, чтобы ее состав обеспечивал, с одной стороны, решение широкого класса задач, а с другой — позволял для конкретной задачи выбирать наиболее экономичный алгоритм. Другое достоинство модульности — это возможность экономить суммарный объем программных текстов пакета и сокращать таким образом накладные расходы универсальности. Действительно, зачастую алгоритмы решения различных задач, принадлежащих одному классу, при программной реализации имеют значительную часть совпадающих текстов. Если эти фрагменты объявить модулями, то это позволит во многих случаях избежать дублирования. И, наконец, если модули автономны по структуре, то это намного облегчает задачу модернизации и развития пакета. Вопрос заключается в том, что модификация готовых модулей или включение новых должно проводиться максимально удобным и оперативным способом без изменения основных компонентов пакета. 7.2.2. Организация пакетов прикладных программ. Основными компонентами пакетов программ являются следующие [64]: а) библиотека модулей, определяющая проблемную ориентацию пакета; б) средства управления процессом решения задач; в) средства работы с данными; г) средства общения пользователя с пакетом. 277
В зависимости от характеристики отдельных компонентов различными авторами делаются попытки классификации пакетов. Однако на практике разработанные пакеты содержат различные сочетания принципов реализации компонентов. Поэтому нагляднее будет рассмотреть структуры пакетов на примерах конкретных характерных систем. Простейшим способом реализации пакета является разработка подпрограмм или процедур на алгоритмическом языке, например фортране, обеспечивающих в совокупности решение задач рассматриваемого класса. Процесс решения отдельной задачи в этом случае формулируется пользователем в виде текста управляющей программы с использованием «штатных» возможностей операционной системы по организации библиотек, операций с информационными массивами и ввода-вывода данных. Такая схема представляет относительную независимость разработчикам модулей, но в пределах установленных заранее стандартов на структуру данных и языки реализации отдельных программ. Успешный опыт такой разработки представляет CLUB MODU- LEF, объединяющий усилия 40 организаций из нескольких стран по решению уравнений в частных производных методами конечных элементов [153]. Базовый состав модулей по автоматическому построению триангуляции, аппроксимации функционалов, формированию систем алгебраических уравнений и методам их решения позволяет членам клуба реализовать сложные задачи математической физики, расширяя постоянно круг решаемых проблем. Отдельные модули, предназначенные для автоматизации обработки описаний краевых задач и обеспечения графического отображения результатов, являются процессорами к транслятору с фортрана. Другим примером такого пакета «простой структуры» является набор процедур решения задач линейной алгебры на языке алгол [184]. Пакеты такого типа обычно называются библиотеками программ, и ряд актуальных проблем их конструирования рассмотрен в работе [7]. Противоположный подход заключается в разработке пакетов программ по принципу «черного ящика». В этом случае от пользователя скрыта внутренняя структура алгоритмов и информационных потоков. Назначением такого пакета является проведение многократных и сравнительно однотипных расчетов, а достоинством является минимальность требований к программистской квалификации пользователя, от которого нужно только знание инструкций по подготовке исходных данных и понимание выводимых результатов. Отличительной особенностью таких систем является автоматический выбор необходимой конфигурации программ для конкретной задачи на основе «управления данными», когда по заданной исходной информации реализуется та или иная заранее фиксированная последовательность работы программных блоков. Аналогичный принцип управления заложен в системе PDEL решения уравнений в частных производных [87] (здесь описание диф- 278 -
ференциальных уравнений производится на языке естественного типа, а анализ проводится препроцессором к транслятору PL/1). Среди более поздних разработок, основанных на таких же принципах, можно назвать пакеты программ для задач математической физики [1, 20, 169]. С точки зрения режима использования модулей в процессе решения задачи имеются два способа: компиляция и интерпретация. В первом случае проводится сборка полной программы из имеющихся модулей и дальнейшее ее исполнение, а во втором — счет ведется управляющей программой, которая проводит последовательной вызов отдельных модулей. Примером первого способа является система автоматизированной генерации программ, разразработанная в НИВЦ МГУ (см. [33]). Инструментом работы здесь является аппарат макрогенерации на языке фортран, включающий языки макфор, комфорт, флан для включения в банк алгоритмов макромодулей (являющихся образами, или шаблонами процедур), их хранения и организации запросов на компиляцию. С помощью этой системы созданы пакеты (не программ, а специальных макромодулей) для задач численного анализа: линейной алгебры, решения обыкновенных дифференциальных уравнений и др. Однако, по-видимому, использование только техники компиляции затруднительно при решении больших задач, когда сборка всех необходимых модулей в одну программу требует слишком большого объема оперативной памяти. В системе Фихар [66] (автоматизация расчетов физических характеристик атомных реакторов) на принципе интерпретации успешно решена проблема совмещения модулей, представляющих собой большие программы, реализованные на разных языках разными авторами в разное время. Иногда встречается комбинирование техники компиляции и интерпретации, когда модули, вызываемые из головной программы, предварительно подвергаются редактированию или сборке из модулей (фрагментов), принимая свой окончательный вид, необходимый для счета конкретной задачи. Такой подход реализован, например, в системах КСИ-БЭСМ [70] для решения задач электрооптики и Сафра [54] (расчеты плазменных процессов), а также в экспериментальном пакете программ [90] для задач математической физики. Одним из определяющих вопросов для пакетов является проблема определения структуры модуля и организации библиотеки модулей. Как уже отмечалось, простейший подход заключается в представлении модуля как процедуры на принятом в пакете языке реализации. Расширение возможностей допустимо в разрешении использования разноязычных модулей (написанных на имеющихся в операционной системе алгоритмических языках) и хранения их как в виде модулей загрузки — для оперативного счета, так и в текстовой форме — для редакционных работ. Более того, при проведении 279
серии однотипных расчетов целесообразно хранение уже скомпонованных из модулей объектных программ для расчетов конкретных задач. Другая сторона проблемы связана с тем, что для достаточно большого класса задач тексты различных модулей могут иметь одинаковые части. Это особенно важно, когда разрабатывается избыточная библиотека алгоритмов с целью выбора оптимального алгоритма — из имеющихся — для решения отдельных подзадач В этом случае становится целесообразным хранение модулей не только в виде цельных процедур, но и их отдельных фрагментов; тогда вызов модуля предусматривает до его выполнения этап компиляции (условная макрогенерация, управляемая исходными данными). Автоматизация выбора оптимальных методов может быть решена путем объединения модулей, решающих по-разному одну подзадачу, в группу (макромодуль) и включения в пакет способа определения имени нужного модуля из группы — на основе анализа данных к решаемой задаче. Такая методология рассматривается, например, в [72, 49]. В последнее время получает распространение идея определения модуля как совокупности самого программного текста и паспорта, содержащего информацию об используемых в модуле переменных, языке реализации, других вызываемых модулях, требуемых ресурсах и др. [64]. Наличие в библиотеке паспортов позволяет ставить задачи автоматизации интерфейса между модулями, управления процессом решения, оптимизации режима загрузки и обменов данными с внешней памятью. Для обеспечения работ с модулями в пакет включается библиотечный комплекс (программа-библиотекарь), назначением которого является включение новых модулей или исключение старых, редактирование, выдача на печать и т. д. Одним из путей повышения уровня автоматизации проблемно- ориентированного программирования является специализация данных: вводятся так называемые стандартные переменные, используемые в решении данного класса задач. Стандартные переменные могут определяться своими именами, структурой, априорными значениями, форматами ввода и вывода. На основе таких каталогизированных данных упрощаются вопросы описания спецификаций, ввода исходной информации (в том числе с использованием принципа умолчания), согласования модулей и операции обменов. Если в простейшем случае стандартные переменные могут быть буквально описаны как допустимые объекты базовых алгоритмических языков (алгол, фортран), то дальнейшим шагом является конструирование данных специальной структуры, удобной для описания информационной модели рассматриваемого класса задач. Более того, могут указываться отношения между величинами типа «х вычисляется по у». Такими средствами являются «граф предметной облас1ги» — в системах Фихар и Тензор [14] (задачи линейной алгебры) и язык утопист для описания «вычис- 280
лительных модулей» — в системе Приз [95] (система модульного программирования с автоматическим синтезом алгоритма по описанию задачи). Этот аппарат уже имеет отношение к другой проблеме — управлению процессом решения. Это включает определение порядка выполнения модулей или последовательности задач с возможными обменами данными между ними. Средства управления в базовом обеспечении являются различными для конкретных систем программирования, зачастую также машинно-зависимыми и требуют от пользователя излишних технических деталей. Развитый пакет должен иметь возможность понимания задания пользователя на уровне формулировки задач или указаний о необходимых результатах и режиме счета, что требует автоматизации управления процессом. Простейший способ управления основан на написании пользователем управляющей программы на алгоритмическом языке, основными функциями которой является вызов процедур в нужной последовательности. В системе Сафра предусмотрено хранение набора управляющих программ для отдельных задач в виде модулей специального типа (схема счета, или Scheme). Аналогичный подход используется в КСИ-БЭСМ и проекте МОПР [49, 72], причем в последнем случае для написания управляющей программы (блок-схемы) используется специальный язык, являющийся расширением фортрана. Дополнительные средства включают параметрическую макрогенерацию, унифицированный вызов модуля (независимый от его структуры и языка реализации), арифметические действия над массивами и операции с архивом для стандартных переменных. Дальнейший уровень автоматизации управления (упомянутые системы Фихар, Тензор, Приз, а также метасистема ИСП [125] для генерации проблемно-ориентированных языков и систем программирования) основан на использовании в составе пакета «планировщика» — программы, которая на основе анализа информационной модели задачи («графа предметной области» или «вычислительной модели») формирует управляющую программу. Если иметь в виду возможность различных уровней использования пакета, то, по-видимому, целесообразно иметь и языковые возможности для «ручного» написания блок-схемы решения, и автоматическое планирование, которые в совокупности могут составить иерархию управляющих средств пакета. В ряде работ развивается также формализованная постановка задачи управления пакетами, основанная на теории автоматов. Достаточно общий анализ задачи планирования рассмотрен также в статье [160]. Эффективность эксплуатации пакета значительно повышается при наличии контроля работы пользователя, анализа встречающихся ошибок и выдачи диагностических сообщений. При соответствующих технических возможностях дальнейший прогресс интеллектуального развития пакетов состоит в переходе от пакет- 281
ного режима работы к диалоговому, когда пакет на промежуточных этапах решения задачи выдает сообщения о ходе процесса, запрашивает пользователя о дальнейших операциях, вносит задаваемые изменения в информационные массивы или тексты модулей и т. д. , В качестве примеров таких разработок можно назвать ППП Зеркало [195] для задач упругости и диалоговую систему оптимизации Дясо-2 [30]. Ряд общих вопросов по диалоговым пакетам для задач математической физики рассмотрен в [62]. Степень автоматизации решения прикладных задач в значительной степени определяется характером общения пользователя с пакетом программ. Сюда относятся, в частности, языки описания исходных данных. В задачах математической физики, например, без специальных средств может вызвать серьезные затруднения подготовка информации по геометрии сложных двумерных и трехмерных областей, виду граничных и начальных условий, типу решаемых уравнений и т. д. Пакет, ориентированный на пользова- теля-«инженера», очевидно, должен быть оснащен возможностями для формулировки задания в мнемоничном и экономичном представлении желательно с использованием лексики, естественной для данной прикладной области. Другая сторона вопроса — вывод результатов расчета и их обработка. Средствами для этого являются организация наглядных буквенно-цифровых распечаток и машинная графика. С точки зрения пользователя существует-два основных способа общения с ППП — пакетный и диалоговый. Для содержательных прикладных задач со сложно формализуемыми постановками и недетерминированным управлением, куда как раз и относится проектирование электрофизических устройств, диалоговый режим позволяет наиболее эффективно использовать вычислительную систему и опыт квалифицированного пользователя в данной предметной области. Некоторые технологические вопросы реализации и применения диалоговых средств для задач математической физики рассмотрены в работе [62]. Немаловажное значение для больших пакетов программ имеет его собственное информационное обеспечение. В простейшем случае это просто документация на бумажных носителях, но наиболее перспективными являются самодокументируемые ППП и даже самообучающие. Примером может служить пакет программ Зеркало для решения задач упругости [195], в котором работа пользователя по формулировке задачи и заданию исходной информации происходит в форме ответов на анкетные вопросы, задаваемые ЭВМ. Как правило, развитые пакеты программ решения больших задач включают специализированные средства для работы с данными (архивные службы или банки данных). Различные подходы к реализации имеются, например, в системах Фихар, КСИ-БЭСМ, Сафра, Hydra [43] (автоматизация обработки фильмовой информации с ускорителей заряженных частиц) и ЭОС [180] (много- 282
целевая система обработки результатов экспериметов). Эти разработки имеют целью создание динамически распределяемой памяти на фортране, обеспечение простых обращений к архиву из прикладных программ, защиту информации, независимость работы с данными от физической природы их носителей, быстрый поиск информации во внешней памяти и т. д. Одним из интересных решений в этом плане является организация виртуальной памяти в рамках мониторной системы Дубна на БЭСМ-6 [91]. Компоненты ППП с точки зрения их проблемной ориентации или связи с предметной областью пакета можно разделить на две основные части: функциональное наполнение и системное наполнение — в соответствии с предложенной в [92] терминологией. Первая часть по содержанию полностью определяется классом решаемых прикладных задач, а по форме — принятой структурой модулей и дисциплиной программирования. Системное наполнение имеет целью устранить выявленные недостатки штатного программного обеспечения: либо добавление каких-либо новых возможностей, либо подмену универсальных, но не эффективных средств для данного класса задач. Развитая системная часть должна обеспечить, во-первых, эффективность пакета в эксплуатации, а во-вторых, повышение производительности труда программистов при его разработке. Однако подчеркнем, что собственная системная часть пакета программ может отсутствовать. А именно, достаточно «хороший» с точки зрения пользователя пакет программ может быть создан и только на основе штатных системных компонентов. 7.2.3. Задачи автоматизации разработок пакетов. Проблема внедрения технологии разработок пакетов программ ставит комплекс вопросов, которые можно разбить на две основные группы: относящиеся к системным программистам и прикладным математикам-программистам. В первой группе, прежде всего, можно отметить задачу разработки специализированного системного инструментария. Назначением его является эффективная реализация проблемно-ориентированных системных надстроек или дополнений к штатному программному обеспечению. Поскольку создание развитых пакетов зачастую связано с использованием специализированных языков или расширением существующих, то это требует наличия развитых макрогенераторов или языков системного программирования. В принципе этим целям отвечают некоторые имеющиеся системы, такие как РТК [42], Мультитранс [154], реализации языков ярмо [48], сигма [176]; перспективным также представляется применение языка «сверхвысокого уровня» сетл [112]. Вопрос здесь заключается в основном в накоплении опыта использования таких средств, поскольку сейчас имеются только немногочисленные примеры эффективного их применения. Другие «системные» задачи можно в целом сформулировать как развитие и специализацию служебных компонентов базового программного обеспечения: средств организации библиотек, бан- 283
ков данных, редакторов текстов, средств отладки модулей, отображения графической и буквенно-цифровой информации, диалогового интерфейса с ЭВМ. Определенный уровень практических требований покрывается функционирующей на БЭСМ-6 монитор- ной системой Дубна [118] и операционными системами Единой Серии ЭВМ [109]. Однако необходимо отметить, что даже при наличии' самых развитых операционных систем может оказаться оправданной разработка проблемно-ориентированных надстроек для сложных классов задач. Достаточно развернутый анализ инструментальных систем для автоматизации разработок ППП имеется в работах [15, 16, 153]. Что касается такого находящегося традиционно в компетенции системных программистов вопроса, как разработка трансляторов с алгоритмических языков, то здесь с точки зрения экономичности расчетов являются идеальными «крупномодульные» реализации, допускающие разнообразные режимы работы: отладочные версии, трансляторы для задач с большим временем счета и малой памятью, или наоборот, возможно — даже настройка уровней оптимизации разных этапов трансляции (или выбор конфигурации транслятора) в зависимости от характера задачи. Задачи прикладных математиков-программистов в отношении развития пакетов заключаются в унификации технологии этапов проектирования, реализации и документирования прикладных программ. В первую очередь, успех разработки определяется качеством проектирования, что обычно недооценивается. Если для данного класса задач уже определены физическая и математическая модели и совокупность применяемых алгоритмов, то дальше необходим модульный анализ всей проблемы (определение математических модулей и их взаимосвязей в схемах решения отдельных характерных задач). Хотя этот этап должен решаться математиком, но он уже требует погружения в инженерные аспекты программирования. Даже само понятие эффективности алгоритма в современном плане должно подразумевать определенный способ программной реализации и класс применяемой ЭВМ (в предельном варианте алгоритм, совершенно не применимый из-за особенностей машины или транслятора, может оказаться очень эффективным в другом случае). После детализации математической постановки формируются информационная база и модульное наполнение пакета: определение программных модулей по функциональному назначению и способам реализации, описание структуры входных, выходных и промежуточных данных, информационных потоков и блок-схем для решения различных задач. На этом этапе делаются оценки объема ресурсов (оперативная память, барабаны, диски, ленты, машинное время), необходимых для расчетов на выбранной вычислительной системе, и принимаются решения по использованию компонентов базового программно- 284
го обеспечения (трансляторов, средств работы с внешней памятью, редакторов, общих или личных библиотек, систем машинной графики и т. д.). На основе этого проектируются (при необходимости) системные надстройки: входные языки и трансляторы с них, специализированные библиотеки, средства отладки, базы или банки данных, средства управления решением задач и интерфейса с базовым обеспечением. Затем следуют работы непосредственно с программными текстами: написание и отладка системных компонентов, прикладных модулей, проведение тестовых расчетов, подготовка описаний программ. В зависимости от характера планирования разработки происходит внедрение пакета, т. е. передача его пользователю. Это можно провести единовременно или поэтапно по мере завершения очередных уровней реализации. Последняя стратегия вполне естественна для крупных проектов. В таком случае даже после внедрения частичного круга задач из данного класса или частичной системной конфигурации на различных стадиях разработки могут находиться как новые численные алгоритмы, так и системные расширения пакета. Необходимо отметить, что к настоящему времени этапы разработки программ и их документирование в значительной степени регламентированы Единой Системой Программной Документации (ЕСПД). ЕСПД — это комплекс взаимоувязанных стандартов, устанавливающих общие положения, виды программ и программных документов, правила разработки, оформления, обращения программ и программной документации. Цель системы программной документации — обеспечивать единство правил выполнения и оформления документации на программные средства для одинакового понимания ее на различных предприятиях страны, возможность промышленного производства программных средств по документации, изготовленной на другом предприятии, без ее дополнительной переработки. Это в целом должно существенно повысить производительность труда программистов и снизить затраты на разработку программного обеспечения, доля которых в общей стоимости ЭВМ постоянно увеличивается и по имеющимся прогнозам к 1985 году возрастет до 85%. Согласно ЕСПД, разработка программного обеспечения осуществляется по стадиям, на которых характер работ в применении к пакетам прикладных программ можно определить следующим образом. А. Разработка технического задания. — Постановка задачи и обоснование необходимости разработки программы. — Определение основных характеристик и требований к программе: назначение и область применения программ; используемые алгоритмы; требования к программе по языкам реализации, структуре входных и выходных данных, точности счета, 285
используемым ресурсам ЭВМ, способам общения пользователя с программой; требования к техническим средствам и штатному программному обеспечению; использование ранее разработанных программ. — Определение основных стадий, сроков разработки и состава необходимых документов. Б. Разработка эскизного проекта. — Описание постановки задачи и применяемых алгоритмов. Содержательный анализ решаемых задач. — Определение состава основных фукциональных и сервисных программных модулей. Разработка и обоснование схем их выполнения в различных режимах решения задач. — Предварительная разработка и обоснование структуры массивов входных и выходных данных программных модулей. — Оценка эффективности и надежности алгоритмов и программ. — Разработка и обоснование средств модернизации и развития состава программных модулей. — Уточнение этапов и сроков разработки и документирования программы в целом и ее основных компонентов. В. Разработка технического проекта. — Конкретизация постановки задачи и описания используемых алгоритмов; определение тестовых задач. — Определение состава программных модулей, их структуры и организации библиотеки модулей. — Определение состава и формы представления входных, выходных и промежуточных данных программы в целом и отдельных программных модулей; средства ввода, вывода и хранения информации. — Описание способов управления вычислительным процессом при решении задач. — Разработка инструкции по применению программ, по модернизации или наращиванию состава модулей и класса решаемых задач. — Окончательное определение конфигурации технических средств и используемого штатного программного обеспечения. — Составление плана мероприятий по разработке и внедрению программы и ее отдельных компонентов. Г. Разработка рабочего проекта. — Программирование отдельных модулей и их автономная отладка. — Комплексная отладка программ. — Составление программной документации. — Опытная эксплуатация программы. Проведение испытаний программы и корректировка программной документации. В зависимости от объема и характера разработки допускается объединять, исключать» или добавлять отдельные этапы работ и (или) их содержание. Установленные для разработки 286
этапы работ и их содержание указываются в техническом задании. Отнюдь не риторическим является вопрос, кто должен делать пакеты прикладных программ. Очевидный ответ: «системными проблемами пакетов должны заниматься системные программисты, а прикладными — математики и прикладные программисты», приводит к новому вопросу, где надо делать пакеты. Вполне возможным представляется разделение труда по профессиональным коллективам, когда в одних подразделениях реализуются специализированные системные разработки, ориентированные на какие-то типы структур данных или вычислительных процессов, а в других — на основе базового программного обеспечения осуществляется содержательное наполнение средств решения класса задач (личные библиотеки, файлы, или записи, типовые управляющие программы и т. д.). Взаимосвязь здесь необходима хотя бы на том уровне, что «системщикам» нужно «принизиться» до понимания, формализации и систематизации пусть частных, но насущных практических проблем, а «прикладники» для получения качественного программного продукта должны достаточно хорошо знать возможности и эксплуатационные характеристики различных компонентов системного базового обеспечения: аппарат управления вычислительными процессами и потоками данных, изобразительные средства языков и особенности трансляторов, условия работы с имеющимися редакторами, библиотеками, архивами, средствами машинной графики и т. д. Однако осуществление уникальных проектов, связанных с разработкой проблемно-ориентированных системных средств для классов задач со сложными функциональными связями, большими объемами программ и информационных массивов, может оказаться целесообразным в смешанных рабочих группах с внутренней профессиональной дифференциацией, но принимающих совместные решения по представлению модулей, структуре данных, схемам управления, по соотношению между используемой конфигурацией системного обеспечения и проектируемыми специализированными разработками. Нельзя также упустить такой момент, что группа должна иметь обеспечение оформительской работы, поскольку квалифицированное документирование в силу своей трудоемкости и важности требует специальной ответственности. В заключение можно сказать, что сущность вопроса о развитии пакетов состоит в том, что понятие «пакет программ» является выражением, или символом, процесса, содержание которого заключается в переходе прикладного программирования от кустарного производства к индустриальному. Если первый этап связан с натуральным характером «программных хозяйств» и практическим отсутствием «внешнего рынка», то принципиальным качеством нового этапа является «обобществление» продуктов программного производства на основе унификации технологии решения прикладных задач и разделения коллективов разработчиков и поль- 287
зователей. Этот процесс является неизбежным, поскольку он определяется градиентом функционала (объем программной продукции/объем экономических затрат) и характеризует в целом производительность труда математиков-программистов. § 7. 3. Проблемы автоматизации построения алгоритмов в задачах электрофизики Один из самых трудоемких этапов — это расчет двумерных и, особенно, трехмерных полей в областях со сложной конфигурацией границы. Причем сложности многократно возрастают, когда методы необходимо реализовать в составе универсального ППП, рассчитанного практически на произвольную- геометрию области. Такие задачи требуют больших затрат как машинных ресурсов (количество арифметических действий и объем памяти), так и человеческих (сложная логика алгоритмов и схемы их программирования). Возникающие проблемы носят однотипный характер для разных методов: разностных, конечных элементов и интегральных уравнений. По этой причине мы проведем в п. 7.3.1 общий лна- лиз численного решения краевых задач. После этого будет дано краткое описание некоторых разработанных в Вычислительном центре СО АН СССР пакетов прикладных программ для различных электрофизических задач. 7.3.1. Модульный анализ решения краевых задач. Решение краевых задач математической физики и возникающие при этом технологические вопросы разработки алгоритмов и ППП можно представить с помощью следующих основных этапов [76, 77]. А. Подготовка исходных данных. Сюда включается описание типа дифференциального уравнения (или системы уравнений), вида его коэффициентов, конфигурации расчетной области, граничных условий и начальных данных. Для задач оптимизации дополнительно указываются варьируемые параметры, их ограничения и целевая функция (минимизируемый функционал). Если пакет программ предусматривает возможность использования различных методов, то задание может содержать описание нужных алгоритмов или их счетных параметров (тип сетки, количество узлов, вид сеточных уравнений, метод их решения и т. д.). Наконец, сюда же могут включаться требования к содержанию и форме представляемых пользователю результатов или сообщений о ходе вычислительного процесса. Если ППП рассчитан на узкий класс задач, например, на решение конкретной системы уравнений в областях простой формы с помощью фиксированного набора алгоритмов, то структура входных данных, как правило, проста, и для их ввода достаточно средств алгоритмических языков типа фортрана или алгола, трудности могут состоять только в большом объеме числовых массивов. Однако для универсальных пакетов, особенно ориентированных
на пользователей-специалистов в своих проблемных областях (но не в программировании), эффективность эксплуатации определяется в значительной степени наличием специализированного входного языка, наглядностью и развитостью его средств. Например, в двумерных и трехмерных задачах с границей сложной конфигурации имеет самостоятельное значение проблема автоматизации описания краевых задач. Б. Дискретизация дифференциальной зада- ч и. Данный этап заключается в построении сетки и формировании сеточных уравнений, аппроксимации дифференциальных или интегральных уравнений и граничных условий, формировании матриц и векторов получаемых систем алгебраических уравнений. Эти проблемы легко реализуются для областей простой формы (прямоугольник, параллелепипед) и достаточно гладких решений, когда вполне удовлетворительными являются равномерные прямоугольные сетки и простейшие способы аппроксимации. Однако при наличии криволинейной границы построение сетки, например, триангуляция области в методе конечных элементов, представляет собой нетривиальную математическую задачу, требует трудоемкого тщательного учета специфики задачи и контроля качества сетки. В подобластях с резким изменением решения сетка должна быть гуще, углы между линиями сетки не должны быть меньше определенной величины и т. д. В окрестностях особых точек (углы границы, смена граничных условий или скачки коэффициентов уравнения) аппроксимации должны строиться с учетом локального поведения решения. Проблема определения оптимальных или автоматизация построения «хороших» сеток в общем случае не решена и вряд ли может быть полностью формализована. Построение сеток, по-видимому, надо проводить на основе анализа априорной информации о задаче или предварительно вычисленного грубого приближения к решению. Более того, в некоторых нестационарных задачах неизбежно применение сеток, меняющихся со временем. В многомерных задачах актуальным является вопрос о способе представления и хранения элементов операторов и функций. Решение этого вопроса может быть различным на разных ЭВМ, поскольку здесь имеет большое значение соотношение объема оперативной памяти и скорости вычислений. По-видимому, бессмысленно говорить о возможности построения единого алгоритма дискретизации на все случаи жизни. Однако модульный принцип позволяет в этом многообразии вопросов выделить фрагменты методов, эффективно реализующие отдельные особенности задачи, и путем их различных сочетаний обеспечить достаточно экономичное решение широкого класса задач. В. Решение сеточных уравнений. В нестационарных задачах решение сводится к вычислению сеточных функций для последовательности временных интервалов, в стационарных применяются или итерационные, или прямые методы решения 19 в п Ильин 289
алгебраических уравнений, которые имеют ярко выраженную специфику в силу ленточной структуры формируемых матриц. Прямые методы типа Гаусса или Холесского приемлемы по числу арифметических действий, но требуют запоминания больших числовых массивов. Например, при решении уравнения Пуассона в кубе на сетке с числом узлов NX NXN при простейшей семиточечной аппроксимации нужно хранить примерно N5 элементов матриц. Для больших N реализация таких методов возможна только при интенсивном использовании внешней памяти, что не только существенно увеличивает время счета, но и усложняет структуру программы. Итерационные алгоритмы (методы верхней релаксации или переменных направлений с приемами ускорения сходимости) легко реализуются в пакетах программ и для многих практических задач дают хорошие результаты. Решение становится «дорогим», если коэффициенты дифференциальных уравнений сильно отличаются в области по абсолютной величине или по соображениям точности сетки приходится Строить с большим числом узлов и сильно неравномерными шагами. Современные эффективные подходы к решению сеточных задач основаны на комбинации прямых и итерационных методов. Эффективными являются подходы типа альтернирующего метода Шварца, когда расчетная область разбивается на подобласти с поочередным вычислением последовательных приближений к решению в каждой из них. При использовании в простых подобластях равномерных сеток особенно экономичными являются методы быстрого преобразования Фурье или циклической редукции (см. § 1.4). Особо следует отметить возможность существенного выигрыша за счет применения последовательности сеток. Сначала приближенное решение ищется на вспомогательных редких сетках, затем производится интерполяция в узлы густой сетки, и на ней далее решение уточняется. При этом можно добиться значительного сокращения объема вычислений, а путем комбинирования решений на разных сетках еще и повысить порядок точности (известная экстраполяция Ричардсона). Надо отметить, что формирование состава модулей необходимо проводить с учетом чисто программистских нюансов. Например, напрашивается объявить модулем процедуру реализации метода «одномерной» прогонки и использовать ее в различных многомерных задачах. Однако если процедура рассчитана на переменные коэффициенты системы трехточечных уравнений и используется в решении двумерных уравнений методом продольно-поперечных прогонок (пусть его решение представляется двумерным массивом, а разностные коэффициенты тоже как-то хранятся), то операции выборки сеточных функций и передачи параметров процедуры понизят на порядок эффективность всего алгоритма. Развитые универсальные пакеты должны иметь достаточно богатый набор алгоритмических модулей, чтобы для каждой конк- 290
ретной задачи можно было выбрать, с учетом ее особенностей, наиболее экономичный алгоритм. Например, для итерационных методов целесообразно иметь разные программные реализации. Одна — универсальная — должна обеспечивать решение уравнений с переменными коэффициентами, а другая даст существенную экономию вычислений для случая постоянных коэффициентов. Г. Обработка и анализ результатов. Непосредственным результатом решения сеточных уравнений являются числовые массивы, которые для многомерных задач дают необозримое море информации. Пользователю, как правило, требуются значения решения в отдельных точках и на некоторых линиях или же обработанные данные: величины экстремальных значений и координаты соответствующих точек, изолинии, векторные поля градиентов, различные функционалы от решения. Немаловажную роль играет наглядность результатов, для чего используются рисунки, таблицы, различные форматы чисел, заголовки и текстовые пояснения. Намного повышает удобство эксплуатации пакетов вывод промежуточных данных: сообщения о ходе выполнения этапов вычислительного процесса, диагностика о допущенных ошибках пользователя с рекомендациями по их устранению, оценки погрешности расчетов (если их можно получить). Для всех этих целей разрабатываются специальные алгоритмы и программные модули или используются средства базового программного обеспечения, в том числе машинной графики. Средства вывода должны обеспечить в целом оперативность и полноту анализа. На основе полученных данных могут быть приняты решения об изменении математической постановки задачи, численных методов или модификации программы, если пользователя не устраивает точность или экономичность расчетов и если он имеет квалификацию на уровне разработчика пакета. В других случаях, при исследовании свойств или оптимизации решения поставленной задачи, расчеты проводятся по одному или нескольким вариантам в зависимости от их трудоемкости, и по результатам анализа формируется изменение данных или схемы вычислений для следующей серии. Для этих целей, естественно, наиболее эффективно использование режима диалога, если это позволяет программное и техническое обеспечение ЭВМ. Основные функциональные модули ППП легко усматриваются из проанализированных выше этапов решения краевых задач. К первой группе следует отнести модули обработки входных данных. Вопрос здесь заключается в том, что информацию об исходной задаче целесообразно иметь в двух формах. Первая рассчитана на максимальный комфорт пользователя при описании задачи и основные требования заключаются в лаконичности, наглядности и гибкости информации, которую нужно подготовить. Средства описания данных в такой форме можно назвать входным языком, который хотелось бы видеть в идеале 19* 291
языком естественного типа. Однако и на более простом уровне можно придумать ряд эффективных приемов: употребление терминов, привычных для пользователей-специалистов в своих «непрограммистских» областях, использование аппарата умолчаний и т. д. Второе представление исходных данных (назовем его условно внутренним языком) ориентировано на экономичную их обработку модулями, реализующими непосредственно сами алгоритмы. Наличие такого внутреннего языка позволяет разрабатывать и модифицировать вычислительные модули независимо от состояния внешнего интерфейса пакета с пользователем. Модуль перевода информации со входного языка на внутренний по своим функциям является транслятором, а его фактическая сложность определяется уже уровнем выразительных средств, которые он должен реализовать. Надо сказать, что можно разрабатывать пакеты и без всяких специальных трансляторов, поскольку развитые базовые системы программирования тоже имеют достаточно удобные средства ввода. В качестве же альтернативного примера можно назвать входной комплекс по описанию двумерных краевых задач (система ПГ2М, см. [78]), который из единообразной исходной символьной информации формирует данные для трех различных пакетов прикладных программ, реализующих методы конечных элементов, конечных разностей и интегральных уравнений. Назначение второй группы модулей — построение сетки. По данной проблеме имеется достаточно обширная литература и разработаны алгоритмы, умеющие в двумерных и трехмерных областях автоматически строить сетки, удовлетворяющие основным необходимым требованиям. Конечными результатами этих модулей являются координаты сеточных узлов (соответствующим образом упорядоченных, что тоже является небезразличным), определение их положения относительно границы и своих «соседей», а также другая информация, необходимая для работы третьей группы модулей, реализующих построение сеточных уравнений. Основной их особенностью (если пакет рассчитан на решение различных уравнений в сложных областях) является проведение кропотливого геометрического анализа, сочетание многочисленных логических проверок и арифметических выкладок. Трудности реализации при этом существенно увеличиваются, если используются аппроксимации повышенной точности. Модули решения сеточных уравнений несут значительную вычислительную нагрузку, поскольку они, как правило, выполняют перевычисление сеточных функций для большого количества итераций и (или) временных шагов. По своей структуре эти модули чаще всего простые, так как основные логические и геометрические операции целесообразно выполнять на предыдущих этапах. Ситуация, конечно, меняется, если на каждом временном или итерационном шаге приходится иметь дело с массивами большой размерности. Одними из актуальнейших вопросов в таких случаях являются 292
сегментация информационных массивов и организация рациональных обменов с внешней памятью. Программная реализация модулей этой группы должна выполняться экономично, что возможно только с учетом особенностей алгоритмических языков. Здесь не рекомендуется увлекаться сложными языковыми конструкциями, так как при их трансляции, как правило, в текстах объектных модулей появляются дополнительные машинные команды. Простейший пример: программирование многомерных сеточных уравнений удобней и наглядней с использованием соответствующих многомерных массивов, однако выборка значений из них большинством трансляторов осуществляется гораздо сложнее, чем из одномерных. В развитых пакетах многочисленную группу могут образовывать всевозможные сервисные модули, реализующие обработку и вывод результатов, контроль работы пользователя и самого пакета, а также вспомогательные операции для обеспечения работы модулей-вычислителей. 7.3.2. Пакет программ Эра для расчета двумерных сильноточных пучков. А. Назначение. Пакет программ Эра предназначен для расчета стационарных сильноточных релятивистских пучков в двумерных (плоских или осесимметричных) полях. Б. Постановка задачи. Рассматривается задача о расчете электростатического поля, траекторий заряженных частиц, распределения плотности зарядов и токов.- Решение проводится в самосогласованной постановке, описываемой системой уравнений (5.1) — (5.10) из гл. 5. Распределение потенциалов описывается уравнением Пуассона в декартовой или цилиндрической системах координат. Расчетная область является ограниченной и может иметь границу практически произвольной формы, отдельные участки которой представляются отрезками прямых или кривых второго порядка. На различных граничных отрезках могут задаваться граничные условия 1-го, 2-го или 3-го рода. Допускается наличие нескольких подобластей с разными диэлектрическими свойствами, на линиях раздела которых ставятся условия непрерывности потенциала и скачка нормальной производной. В расчетной области могут моделироваться несколько пучков частиц с различными зарядами и массами. Начальные плотности токов могут описываться или заданной функцией координат и скоростей, или определяться условием ограничения тока объемными зарядами. При движении частиц учитываются азимутальный компонент собственного магнитного поля и все компоненты внешнего магнитного поля, задаваемого значениями на оси или плоскости симметрии. При сильных ускоряющих напряжениях проводится учет релятивистских эффектов. Важной особенностью пакета является ориентированность на пользователя-инженера, что обеспечивается специализированными средствами описания сложных краевых задач и начальных 293
данных для частиц, автоматизации построения алгоритмов и вывода результатов счета в наглядном буквенно-цифровом и графическом виде. В. Численные методы. Решение уравнения Пуассона проводится описанными в гл. 1 конечно-разностными методами на прямоугольных сетках с кусочно-равномерными шагами. Аппроксимации проводятся на пятиточечных или девятиточечных шаблонах. Для околограничных узлов используются аппроксимации граничных условий всех указанных выше типов, в том числе на криволинейных границах (формулы (1.34) — (1.41)). Погрешность решения разностных уравнений в общем случае есть О (И) при наличии криволинейных границ с граничными условиями, содержащими производные. Если участки границы с условиями Неймана параллельны координатным линиям, а внутренние границы отсутствуют, то погрешность решения есть О (/г2) для пятиточечных уравнений и О (/г4) для девятиточечных. Значительную часть пакета составляют алгоритмы автоматизации построения разностных уравнений, включающих трудоемкий анализ положения узла сетки относительно границы: является он внешним или внутренним по отношению к расчетной области, каковы расстояния до границы вдоль координатных линий, что за типы краевых условий на примыкающих к узлу участках и т.д. Для околограничных узлов при учете граничных условий с производными проводятся автоматически необходимые геометрические построения (проведение нормалей к границе, вычисление координат точек их пересечения с линиями сетки, выполнение интерполяционных и других арифметических преобразований). Существенным моментом с точки зрения экономичности алгоритмов является способ представления и хранения коэффициентов разностных уравнений. В пакете Эра вычисленные коэффициенты и правые части запоминаются только для околограничных узлов (для каждого узла хранятся по 6 чисел в случае пятиточечных шаблонов и по 10 — в случае девятиточечных). В процессе итерационного решения разностных уравнений для регулярных узлов, т.е. внутренних неоколограничных, коэффициенты вычисляются по простым формулам через шаги сетки, а для околограничных используются их ранее вычисленные значения, что позволяет избежать громоздкого геометрического анализа на каждой итерации. Хранение разностных коэффициентов для всех узлов позволило бы сократить время итерационного решения уравнений, но существенно увеличило бы объем используемой оперативной памяти, что привело бы к жестким ограничениям на допустимое общее число узлов сетки. Решение разностных уравнений может проводиться одним из имеющихся в пакете алгоритмов: поточечной верхней релаксации, верхней релаксации с прогонками по линиям или с помощью продольно-поперечных прогонок. Реализация итераций во всех методах предполагает для 'упрощения логики проведение циклов по всем узлам сетки, в том числе внешним. 294
В каждом узле проводится определение его типа (соответствующая кодировка узлов выполняется во время геометрического анализа и расчета коэффициентов). Для внешних узлов счет обходится, а для внутренних вычисляются последовательные приближения, так что за счет вида разностных коэффициентов для околограничных узлов при однородной схеме вычислений автоматически учитываются граничные условия для произвольного вида границы, в том числе многосвязной. Расчет траекторий заряженных частиц проводится с помощью балансного метода интегрирования уравнений движения «в импульсах» по формулам из § 5.3. Вычисление плотностей токов и объемных зарядов осуществляется, как это описано в § 5.4, с проведением «внешних» итераций по объемному заряду. Внешнее магнитное поле определяется с помощью сплайновых аппроксимаций по значениям Hz на линии симметрии. Решение самосогласованных задач может проводиться на последовательности вложенных сеток, когда сначала на вспомогательной редкой сетке (с числом узлов вчетверо меньшим от исходной) находится грубое приближение, а потом на основной сетке проводится уточнение результатов. Г. Входные данные. Основной по сложности исходной информацией является описание краевой задачи. Для ее задания служит входной язык ПГ2М, на котором возможно представление сложной границы и граничных условий в наглядной и экономичной форме. Включенный в пакет Эра транслятор с этого языка переводит символьный текст в числовые массивы, обрабатываемые впоследствии вычислительными модулями. Исходные данные о краевой задаче задаются в виде списков, содержащих описания отдельных типов информации и имеющих соответствующие мнемонические наименования. — ТОЧКИ: в данном списке указываются координаты точек, являющихся концами граничных отрезков, отличающихся или уравнением своей линии, или характером граничного условия; описание каждой точки заключается в скобки и сопровождается ее номером; при задании координат можно использовать принцип умолчания — если для какой-то точки не указана одна из координат, то за ее значение берется соответствующая координата предыдущей точки; описание каждой точки заключается в круглые скобки и после него ставится точка с запятой; разные координаты одной точки разделяются запятой; в примере на рис. 296 список точек можно представить следующим образом: ТОЧКИ: 1(0,0); 2(1500,79); 3(1620,144); 4(2750); 5(,394); 6(2000,394); 7(0,250); 8(0,14000); Здесь координата по z 4-й точки берется по умолчанию равной Zs= 144, аналогично г5 = ^4 = 2750. — ГРУС: этот список служит для перечисления всех встречающихся в краевой задаче граничных условий (при этом производится их нумерация); семантика и синтаксис этого описания 295
очевидны из примера для того же рисунка ГРУС: 1: £/' = 0; 2: U = 0; 3: U = 3700; здесь первое граничное условие — равенство нулю нормальной производной, а второе и третье содержат заданные значения потенциалов. Далее следуют списки, содержащие описания граничных отрезков, которые могут представляться в виде прямолинейных отрезков, окружностей и квадратичных сплайнов. Все отрезки одного вида задаются отдельными списками. Один элемент каждого списка описывает один граничный отрезок с указанием номера соответствующего граничного условия (если номер отсутствует, то берется граничное условие с предыдущего отрезка). Описание прямолинейного отрезка содержит номера точек, являющихся его концами. Описание отрезка окружности включает, кроме того, номер точки — центра окружности. Для рассматриваемого примера описание граничных отрезков состоит из следующих двух списков: ОТР: 1 (1,7); (4,5); 2(2,3); (3,4); 3(5,6); ОКР: 2(2,1,8); (6,7,10); В описание краевой задачи включаются также списки с заданием шагов сетки по х, у (для цилиндрической системы координат это соответствует переменным г, z). Для каждой переменной перечисляются границы зон с равномерными шагами, а между ними (в круглых скобках) число разбиений каждой зоны. Вторая группа исходных данных относится к «траекторией» части пакета. Для расчета движения пучка заряженных частиц необходимо задание таких параметров, как геометрия поверхности входа пучка в расчетную область (начальный фронт пучка), энергетические и угловые характеристики частиц, режимы работы эмиттера, компоненты внешнего магнитного поля, информация по выводу траекторий, некоторые величины, используемые в численных алгоритмах. При описании этой информации в пакете Эра используется следующий подход. Весь набор исходных данных в результате модульного анализа разбивается на информационные модули, каждый из которых включает в себя семантически однотипные параметры. Для обработки какого-либо модуля разрабатывается вспомогательная подпрограмма на фортране. Суть работы подпрограммы заключается в том, что информация, содержащаяся в рассматриваемом модуле, поступает через ее параметры, обрабатывается и засылается в некоторый «стандартный» массив, который состоит из последовательности чисел, «понятной» вычислительным модулям. «Стандартный» массив предварительно заполняется числами, представляющими собой наиболее часто используемые значения параметров. Таким образом, при данном подходе появляется возможность широко использовать принцип умолчания. 296
Задание всей исходной информации о пучке заключается в том, что пользователем на языке фортран пишется подпрограмма с именем INCOND, в которой производятся необходимые обращения к вспомогательным подпрограммам, каждая из которвгх служит для задания одного информационного модуля. При этом фактически параметрами вспомогательных подпрограмм могут быть числа, идентификаторы переменных, вычисляемых в основной подпрограмме, идентификаторы подпрограмм-функций, словом, при обращении к подпрограмме допускаются все те возможности, которыми богат фортран. В качестве примеров мы дадим описания нескольких служебных процедур, к которым надо обратиться из подпрограммы INCOND. Вызовом процедуры EMITL (NTR, XH, YH, XK, YK, SINOR) описывается эмиттер, представляющий собой отрезок прямой. В качестве фактических параметров задаются следующие значения: NTR — количество интервалов разбиения эмиттера (равное числу рассчитываемых частиц), XH, YH, XK, YK — координаты точек начала и конца эмиттера, SINOR— признак, равный +1, если при проходе отрезка от начала к концу расчетная область находится справа, и равный —1 в противном случае. Если эмиттер представляет собой отрезок окружности, то он задается вызовом аналогичной процедуры EMITR (NTR, XH, YH, XK, YK, ±R, SINOR) Здесь все параметры, кроме предпоследнего, имеют тот же смысл, что и ранее. Величина R при вызове задается равной значению радиуса окружности. Знак « + » перед R соответствует тому случаю, когда центр окружности находится справа от луча, проведенного от начальной точки к конечной, и « — » в противном случае. Фактические параметры процедуры EMIS(EM, UC) задают значения плотности тока на катоде и его потенциал. Процедура ENGR(NEN,VI, VIK) используется при необходимости учета энергетического распределения эмиттируемых частиц, где NEN означает количество энергетических групп, а VI, VIK суть числовые массивы со значениями средних скоростей и относительного «веса» (по току) каждой группы. Мы здесь ограничиваемся изложением только основной исходной информации. Полное описание входных данных пакета Эра представлено в работах [53, 94]. Д. Структура пакета. ППП представляет собой совокупность согласованных по структуре данных подпрограмм (модулей), написанных на фортране, алголе, автокоде и выполняющихся под управлением головной программы пакета в рамках мониторнор системы Дубна на БЭСМ-6. Все модули пакета можно разбить на следующие группы. 297
— УМ: группы управляющих модулей, каждый из которых предназначен для управления вычислительным процессом одного из типов задач; по характеру физических постановок задачи делятся на полевые (определение только распределения потенциалов), траекторные (расчет траекторий без учета объемного заряда) и самосогласованные, по методам решения — расчет на фиксированной сетке и на последовательности сеток, по организации счета — без записи на магнитную ленту, с записью (только для самосогласованных задач) промежуточных результатов на ленту и с продолжением ранее проведенных расчетов. — PG2M: транслятор с языка описания краевой задачи, осуществляющий формирование числовых массивов для последующих модулей и выполняющий диагностику ошибок пользователя. — GEOM: группа подпрограмм, реализующих обработку геометрической информации, кодировку узлов сетки и вычисляющих коэффициенты разностных уравнений. — ITER: модули итерационного решения разностных уравнений. — BEAM: группа модулей для расчета траекторий, плотностей токов, объемных зарядов и магнитных полей. — SERV: сервисные модули для выдачи результатов счета в наглядной буквенно-цифровой или графической форме; обычно выводятся значения потенциалов в узлах сетки, координаты и скорости траекторий, плотности токов на эмиттере, рисунки расчетной области, эквипотенциалы и т.д. При решении наиболее трудоемких самосогласованных задач основную вычислительную нагрузку несут модули из групп ITER и BEAM. Управляющие модули в этом случае организуют поочередный их вызов и проведение «внешних» итераций по объемному заряду с релаксацией. Более полное описание ППП Эра приведено в работе [53]. 7.3.3. Пакет программ Эстамп для расчета магнитостатических полей методом конечных элементов. А. Назначение. ППП Эстамп предназначен для расчетов двумерных магнитостатических полей (плоских или осесиммет- ричных) с учетом нелинейных свойств изотропных ферромагнитных материалов [185]. Б. Постановка задачи. Задача сводится к решению краевой задачи в ограниченной области (уравнения (2.7) или (2.8)) для компоненты векторного потенциала (в осесимметрич- ном случае это азимутальная компонента). Граница области может быть многосвязной и состоять из различных прямых или кривых второго порядка. На отдельных частях границы области допускаются произвольные граничные условия 1-го, 2-го или 3-го рода. Допускается наличие в области произвольного числа катушек с заданными плотностями токов и магнитопроводов разных конфигураций, состоящих из нескольких типов ферромагнитных материалов, магнитные свойства которых задаются координатами точек В-Н-характеристик. Требуется вычислить значения компо- 298
нентов напряженности и их производных на заданных линиях, а также распределение индукции и магнитного потока в расчетной области. В. Численные методы. Рассматриваемые краевые задачи решаются методом конечных элементов. Расчетная область триангулируется следующим образом. Вся область представляется условно как криволинейный четырехугольник, за вершины которого принимаются какие-либо четыре точки границы. Противоположные стороны четырехугольника делятся на равные количества ветвей LL и ММ (одна ветвь может состоять из нескольких геометрически разных отрезков) таким образом, что при соединении их концов некоторыми криволинейными ломаными область разбивается на подобласти (макроэлементы) Gu (/ = 1, 2, ..., LL, J= 1, 2, ..., MM), каждая из которых есть криволинейный четырехугольник. Макроэлементы строятся таким образом, чтобы границы области и линии раздела физически отличающихся сред (катушек с током, разного типа ферромагнетиков и др.) проходили по границам построенных подобластей. Далее в каждом макроэлементе строим сетку, топологически эквивалентную прямоугольной, причем на общих сторонах соседних подобластей узлы берем совпадающими. Для сложных макроэлементов в пакете используется метод генерации сеток из работы [126]. Если же подобласть — выпуклый четырехугольник, то сетка строится соединением прямыми линиями соответствующих узлов сетки на противоположных сторонах. Окончательно триангуляция области производится проведением диагонали в каждом четырехугольнике, соединяющем соседние узлы сетки. При построении сетки производится контроль качества сетки, например, не должно быть слишком малых углов в треугольниках. Аппроксимация исходной задачи проводится в пространстве кусочно-линейных функций, что приводит к системе нелинейных семиточечных сеточных уравнений для значений компонент векторного потенциала. Решение нелинейных уравнений проводится итерационным методом ПВР-Ньютона (2.72). Для повышения эффективности используется предварительный расчет на вспомогательной редкой сетке с вдвое более крупными шагами, после чего производится интерполяция в узлы основной сетки и «доитерирование» полученного приближения. При учете нелинейных свойств ферромагнетиков В-Н-характеристики по заданным точкам аппроксимируются сплайнами третьего порядка. Для получения хорошего начального приближения нелинейной задачи вначале решаются линейные уравнения, соответствующие постоянной магнитной проницаемости ферромагнетика (эта постоянная выбирается из априорных физических предположений). В пакете Эстамп для расчета полей магнитных линз реализован также, метод итераций по подобластям в следующем варианте. Сначала вычисляется поле в неферромагнитной среде, причем на 299
границе с «железом» ставится однородное условие Неймана. Затем решаются сеточные уравнения в «железе» с граничными условиями Дирихле, полученными из предыдущего решения. Таким образом, мы получаем первое приближение, и далее итерации продолжаются аналогично, с чередованием типа используемых граничных условий. При расчете поля в подобласти «воздух + катушки с током» на границе итерируемых подобластей ставится каждый раз условие Неймана со значением нормальной производной, определяемым по предыдущему приближению в «железе». Для некоторых типов магнитных линз (когда значения v много меньше единицы) уже первая итерация дает достаточно хорошее приближение. При расчете магнитных полей электронно-оптических систем, как правило, требуется вычислять с высокой точностью компоненты напряженности только на линии симметрии. В таких случаях проводится уточнение решения методом «фокусировки». Выбирается некоторая прямоугольная подобласть («окно»), включающая интересующий отрезок линии, на ее границе берутся граничные условия, полученные из решения основных сеточных уравнений. Далее в «окне» строится густая равномерная прямоугольная сетка, <на которой уточненное решение может быть вычислено достаточно быстро. Г. Входные данные. Исходная информация к ППП Эстамп включает описание краевой задачи, задание способов триангуляции области, данные о В-Н-характеристиках ферромагнетиков (если их нет в архиве пакета) и указания по режиму счета и выдаче необходимых результатов. Основные данные задаются на входном языке ПГ2М, модифицированном по сравнению с приведенным в описании пакета Эра в том плане, что добавлены списки, необходимые для построения сетки метода конечных элементов. Для всех сторон подобластей Gjj указывается, из каких граничных отрезков они состоят и на сколько частей они делятся. Для каждой подобласти указывается способ построения сетки, вид зависимости коэффициента магнитной проницаемости и значение плотности тока. Кроме того, во входном задании указываются значения релаксационных параметров, требуемая точность и признаки режима счета (при необходимости — запись промежуточных величин на магнитный барабан, вывод результатов — на графопостроитель и т. д.). Д. Структура пакета. ППП Эстамп представляет собой совокупность подпрограмм на фортране, согласованных по структуре данных и выполняемых под управлением одной головной программы, в рамках мониторной системы Дубна на БЭСМ-6. Исключение составляет транслятор со входного языка, реализованный на расширенном алголе [78]. Функционирование модулей проводится по следующей схеме: — ввод данных на языке ПГ2М, перевод их во внутреннее представление, диагностика ошибок пользователя; 300
— построение сетки и контроль ее качества с выдачей сообщений при наличии нерегулярности, малости углов и т. д.; — вычисление коэффициентов сплайновой аппроксимации В-Н-характеристики; — итерационное решение сеточных уравнений для компонент векторного потенциала (данный этап вычислений наиболее трудоемкий и содержательный по внутренней логике; расчеты могут вестись на последовательности сеток, итерациями по подобластям, при различных значениях релаксационных параметров); — уточнение (при необходимости) решения на линии симметрии методом фокусировки; — обработка результатов и вывод необходимых физических характеристик в буквенно-цифровой или графической форме. 7.3.4. Пакет программ Эфир для решения интегральных уравнений теории потенциала. А. Назначение. ППП Эфир предназначен для расчета двумерных (плоских или осесимметричных) электростатических полей с помощью интегральных уравнений для потенциала простого слоя (см. [79]). Кроме того, данный пакет позволяет рассчитывать возмущения полей осесимметричных электронно-оптических систем (ЭОС) и проводить их оптимизацию путем минимизации заданного функционала от решения при варьировании потенциалов или геометрических параметров электродов и указанных линейных или нелинейных ограничений. Б. Постановка задачи. Рассматривается уравнение Лапласа в декартовой или цилиндрической системах координат. Требуется найти решение в ограниченной или неограниченной области с границей (возможно, многосвязной), состоящей из отрезков прямых или кривых второго порядка. Допускается наличие в области «внутренних границ», на которых задается условие непрерывности решения и скачка его производной по нормали. На различных участках границы могут быть заданы граничные условия 1-го, 2-го или 3-го рода. Соответствующая система интегральных уравнений для потенциала простого слоя имеет вид (3.27). При расчетах электронно-оптических систем на алгоритмы налагаются довольно жесткие требования по обеспечению высокой точности: расчет потенциала и его производных до 3 — 4-го порядков должен выполняться с 4 — 5 верными знаками. Для уравнения Лапласа в цилиндрической системе координат рассматривается следующая постановка о неосесимметричных возмущениях первого порядка. Пусть осесимметричная поверхность Г с заданным на ней потенциалом v подвергается следующим неосесимметричным вариациям: сдвигам относительно осей г, z соответственно на величины б, х, поворотам относительно осей соответственно на углы р, у и «эллиптическому» искажению со степенью эллиптичности 8. Последняя величина определяется следующим образом: если круг радиусом R превращается в эллипс с длинами полуосей а, Ь и 301
таким же периметром (a = R(\ +e), b — R(l — е), 2/? = a+fe), то 8 = = (a — 6)/(a + ft); если же получаемый эллипс касается круга изнутри (a = R, b = R(l— е)), то г = (а — Ь)/а. Поскольку мы рассматриваем только возмущения первого порядка относительно малых параметров 8, б, у, х, р, то можно записать ф(г, z, в) = фо(г, zJ + et Разложим каждую из функций г|)е, г|)в, г|)Т) г|)н в ряд Фурье вида (3.75); для гармоник возмущения получаем А-ф(60) = Л i-фб = Л 1^7 = A2^(e2) = А11^Э = О, ^б\Г = — Ф?, ^vlr = — 2ф?, г|зх|г = —ф?, сор|г = — 2ф?. Здесь для любой из гармоник подразумевается, что на возмущенных границах задаются нулевые граничные условия 1-го рода, а операторы Дь А2 определяются в соответствии с (3.76). Гармоники возмущений г|эт, удовлетворяющие уравнениям kmtym = 0, определяются с помощью интегрального представления )= \ Q)dS, г Отсюда, используя граничные условия для г|эш(Р) получаем для от интегральные уравнения 1-го рода, ядра которых имеют вид (3.78) — (3.80). Задача оптимизации электростатических полей рассматривается в постановке^ аналогичной рассмотренной в п. 1.7.4. Пусть р = {pi,..., pN}— вектор параметров возмущений электронно-оптической системы, среди которых jci,..., xLi L ^ N, относятся к потенциальным вариациям, а хь+и ..., xN — к геометрическим. Соответствующие функции влияния будем обозначать через фг.} В ППП Эфир допускаются следующие типы геометрических вариаций: сдвиг участка границы вдоль заданного вектора, поворот участка границы вокруг неподвижной точки, продольное растяжение (сжатие) прямолинейного отрезка с заданной закрепленной точкой, изменение радиуса отрезка окружности с одной фиксированной точкой на границе. Кроме того, рассматриваются взаимосвязанные вариации, когда, например, поворот одного отрезка влечет к сдвигу или сжатию других и т. д. Электрод формально определяется как совокупность связанных граничных отрезков, имеющих одинаковый постоянный потенциал. Обозначим через Г/, /= 1,2, ..., L, группу электродов с одним и тем же потенциалом, одинаково варьируемый на всех граничных участках этой группы (Vi*= V? + р/, где V?—исходное значение потенциала). Тогда соответствующая функция влияния ф, пред- 302
ставляет собой решение уравнения Лапласа в исходной области, соответствующее нулевому граничному значению на Г/ и однородным граничным условиям — на остальной части границы. Геометрические функции влияния ф/, / = L + 1, . . ., N, определяются следующим образом. Пусть Гу — группа электродов, подвергающихся взаимосвязанным вариациям. Это означает, что разные граничные отрезки могут, вообще говоря, подвергаться разным типам вариаций, но все они зависят только от одного параметра pj. Геометрическая функция влияния может быть представлена с помощью вариации интеграла от потенциала простого слоя: = \(a(Q)8Gj(P, Q) + 6oj(Q)G(P,Q)dSQ. Здесь Sa(Q), SGy(P, Q) — вариации плотности и ядра, обусловленные вариацией параметра 8ph a o(Q) и G(P, Q) — «невозмущенные» плотность потенциала и ядро. На основе последнего соотношения формируется система интегральных уравнений относительно 8а/, которая может быть решена после вычисления невозмущенной плотности. Мы не будем останавливаться на формулах для 8Gj и граничных условиях для ф;: соответствующие выражения для осесимметричных электронно-оптических систем приведены в [137]. В. Численные методы. Мы остановимся сначала коротко на наиболее простой задаче — вычислении решения уравнения Лапласа при заданных граничных условиях. Искомая гармоническая функция представляется в виде потенциала простого слоя (формулы (3.11), (3.15)). Для поверхностной плотности из граничных условий формируется система интегральных уравнений вида (3. 27). При наличии особых точек на границе проводится учет асимптотического поведения плотности по формуле (3.42). Граничные отрезки разбиваются на подынтервалы. На каждой связной части границы плотность аппроксимируется с помощью В-сплайнов (допускается использование В-сплайнов до 7-го порядка). Для коэффициентов сплайнового разложения формируется система линейных алгебраических уравнений по условиям удовлетворения сплайнов исходным интегральным уравнениям (принцип коллокации), а также дополнительным граничным условиям на сплайн. При этом вспомогательные интегралы по каждому из граничных подынтервалов рассчитываются по квадратурным формулам Гаусса различных порядков. Эллиптические функции первого и второго родов для осесимметричных задач аппроксимируются с помощью выражений (3.62), ошибка которых не превышает 10~8. Система алгебраических уравнений решается методом ортого- нализации с автоматическим контролем устойчивости вычислений и апостериорной оценкой погрешности результата. 303
После нахождения поверхностной плотности искомый потенциал определяется из аппроксимации исходного интегрального представления с помощью используемых В-сплайнов и квадратурных формул. Производные потенциала вычисляются из выражений, получаемых дифференцированием интегрального представления потенциала! Расчет неосесимметричных возмущений электронно-оптических систем проводится с помощью интегральных уравнений для отдельных гармоник. Граничные условия для них находятся из решения исходной задачи, а алгоритмы решения строятся аналогично — на основе аппроксимации вспомогательных плотностей от В-сплайна- ми и на принципе коллокаций. Особенности таких задач, связан- < ные со спецификой ядер, описываются в § 3. Облегчающим обстоятельством при их решении является тот факт, что точки кол- локаций остаются теми же, что в исходной задаче. Это позволяет существенно экономить реализацию алгоритмов, поскольку в универсальных программах, рассчитанных на произвольную геометрию, основная трудоемкость связана не столько с арифметическими вычислениями, сколько со сложными логическими построениями и геометрическим анализом. Остановимся теперь на проблеме оптимизации полей. Цель расчетов формулируется как минимизация функционала от решения краевой задачи при заданных в виде равенств или неравенств ограничениях на варьируемые параметры (линейные ограничения) или на некоторые другие функционалы от решения (нелинейные ограничения) (см. п. 1.7А). Эта задача решается с помощью метода модифицированных функций Лагранжа [191] (реализованного Г. И. Забиняко), в котором с помощью введения «штрафов» последовательно формируются вспомогательные задачи безусловной минимизации, для которых применяется метод сопряженных градиентов. Минимизируемый функционал Ф (ф, р) определяется как сумма взвешенных квадратичных отклонений некоторых функциональных характеристик Fk электронно-оптической системы от их целевых значений Fb NF Ф(Ф,Р)= 2 ak[Fk{<v,p)-Fl]\ где ctk — весовые множители, a NF — количество оптимизируемых характеристик. В предположении малости возмущений каждая из характеристик рассматривается как следующая функция параметров: где ф(0) — невозмущенное распределение потенциала, а ф[0) — функция влияния параметра pi при исходных данных краевой задачи. 304
Производные функционала в процессе минимизации вычисляются по формуле дФ/dpi ~ 2 v ak\Fk(4, р) - По)| V По), /е- I где разности первого порядка V Fk определяются для исходного значения потенциала из выражения р(о) ^ч1"' /}Y"' - /v"+<v , />'р—/;*(<Г'. p{'\ , pi1"—6., . //;") ^ри некотором достаточно малом шаге изменения параметра б/. Особенность данной задачи состоит в том, что наиболее трудоемкой частью алгоритма является вычисление функций влия- \ ия ф,. В связи с этим процесс оптимизации реализуется двухступенчатым образом. Сначала проводится минимизация функционала Ф(ср, р) с использованием «начальных» функций влияния ф}()) в формулах для дФ/dpj. После завершения этого этапа, который можно назвать локальной минимизацией, вычисляются новое распределение потенциала ф(1) и новые функции влияния ф[1} из решения краевых задач с новой конфигурацией границ и новыми граничными условиями, соответствующими найденным «квазиоптимальным» значениям параметров р\]\ Затем делается второй шаг локальной оптимизации, в котором при вычислении производной функционала вместо ф(0), ф/0), р,(0) используются найденные ранее значения ф(1), ф,(1), р\Х). Процесс таким образом продолжается, пока не будет найден «глобальный» минимум, т. е. результаты двух соседних «локальных минимизаций» совпадут с требуемой точностью, или пока не завершится заданное количество шагов счета. Необходимо заметить, что здесь реализован достаточно универсальный алгоритм минимизации абстрактного функционала с ограничениями общего вида. Однако в различных электронно- оптических системах встречаются функциональные характеристики с сильно отличающимися свойствами, которые заранее неизвестны. Поэтому эффективное проведение процесса оптимизации для конкретного класса приборов требует определенного экспериментального опыта для выбора счетных параметров и самого режима счета. Для включения тех или других характеристик прибора в качестве целевых функций в состав пакета должны быть внесены соответствующие процедуры. Конкретно в ППП Эфир включены функциональные характеристики (около 10), отражающие качества изображений, формируемых в электронно-оптических системах (увеличение, коэффициенты аберраций и т. д.). В силу специфики этих вопросов мы на них останавливаться не будем. Г. Входные данные. Исходная информация о краевой задаче в ППП Эфир задается на входном языке ВК, являю- -0 Н I! И unit! ill.")
щимся развитием языков, которые используются в пакетах Эра и Эстамп. Некоторые отличия заключаются в наличии списков для описания данных, специфических для метода интегральных уравнений. Для каждого граничного отрезка, помимо его геометрических параметров и граничных условий, необходимо задать дополнительно количество подынтервалов разбиения, порядок используемого В-сллайна и порядок гауссовских квадратур для вычисления вспомогательных интегралов. Указывается также тип задачи: плоская внутренняя, плоская внешняя, осесимметричная. Имеются специальные средства, описывающие, какие величины и в каких точках должны быть вычислены и выведены на печать или график. Если решается задача расчета неосесимметричных возмущений ЭОС, то с помощью специального списка указывается, какого типа возмущения (эллиптическая деформация, сдвиг или перекос оси симметрии) имеются на тех или других граничных отрезках. Задачи оптимизации ЭОС формируются с помощью специальных списков, описывающих минимизируемый функционал, линейные и нелинейные ограничения, а также потенциальные и геометрические вариации электродов. Минимизируемый функционал записывается в форме арифметического выражения алголь- ного типа с фиксированными именами используемых функциональных характеристик. Список линейных или нелинейных ограничений задается перечислением равенств, а также односторонних или двусторонних неравенств. Для независимых варьируемых параметров употребляются фиксированные имена xl, х2, хЗ и т. д. Каждая цифра означает номер потенциальной или геометрической вариации, зависящей от данного параметра. Номера вариаций задаются в соответствии с порядком следования их описаний в специальном списке вариаций. Каждый элемент такого списка содержит мнемонический указатель типа вариации: потенциальная, сдвиг, сжатие, поворот и т. д.; необходимые числовые параметры (направление сдвига, указатели фиксируемых точек и т. п.), а также перечисление граничных отрезков, участвующих в данной вариации. Подчеркнем, что при изменении одного независимого параметра различные связанные отрезки могут подвергаться разным типам геометрических возмущений. Во входном языке ВК для задания любой величины вместо ее значения можно использовать так называемые идентификаторы- параметры с фиксированными именами. Это позволяет автоматизировать расчет серии вариантов, для чего достаточно в головной программе организовать последовательный вызов модулей с предварительным переприсваиванием соответствующих переменных. Если в исходной информации есть величины, представляемые функциями независимых переменных, то для их описания в ВК 306
можно использовать арифметические выражения алгольного типа. При наличии более сложных функциональных зависимостей допускается употреблять имена внешних процедур, которые в этом случае должны быть написаны самим пользователем. Д. Структура пакета. ППП Эфир реализован полностью (в том числе и транслятор со входного языка) на фортране и адаптирован на БЭСМ-6 и ЕС ЭВМ. Состав модулей пакета можно по функциональному назначению разбить на следующие основные группы: обработка входной символьной информации и ее первичный анализ с диагностикой ошибок, управление вычислительным процессом, формирование систем линейных алгебраических уравнений (достаточно трудоемкая и логически сложная часть), решение систем, решение задачи минимизации с ограничениями, обработка и вывод результатов. Управляющий блок на основе анализа исходных данных определяет вид сформулированного задания: просто решение краевой задачи, расчет неосесимметричных возмущений или решение задачи оптимизации. Он же проводит необходимые обмены с внешней памятью при наличии связей между различными сеансами счета. Формирование матриц алгебраических систем проводится единообразно для различных ядер и правых частей интегральных уравнений, соответствующих разным типам задач. Блок вывода результатов обеспечивает формирование наглядных буквенно-цифровых распечаток, таблиц и рисунков. 7.3.5. Пакет программ Эдип для расчета собственных частот и гармоник электродинамических систем. А. Назначение. Пакет программ Эдип предназначен для расчета основной или нескольких первых собственных частот и соответствующих гармоник электродинамических систем, а также для определения их основных физических характеристик. Пакет Эдип позволяет также рассчитывать двумерные (плоские и осе- симметричные) поля, описываемые краевыми задачами вида (4.40). Рассматриваются двумерные задачи о свободных колебаниях и волнах, сводящиеся к проблеме собственных значений для уравнения Лапласа (4.38) — (4.39) в ограниченной области Q с кусочно-гладкой границей Г. В физической постановке расчетная область Q при а = 0 (декартова система координат) представляет собой поперечное сечение регулярного волновода, а при а=1—часть меридиональной плоскости аксиально-симметричного резонатора. Граничные условия Дирихле или Неймана для тех или иных видов колебаний ставятся в предположении идеальной проводимости стенок (см. § 4.1): в случае расчета осесимметричных резонаторов и = 0 для Я-колебаний, -^-=0 — для f-колебаний; при расчетах плоских волноводов — наоборот. 20* 307
Компоненты электрических и магнитных полей выражаются через решение проблемы собственных значений краевой задачи (4.38) — (4.39) по-разному в зависимости от типа физической постановки (см. (4.34) — (4.37) в § 4.1). В случае плоских волноводов мы имеем для Я-волн: — 1 ди F — ~* ди И —И —F — О- -r—y ty — —, Hx-Hy-bz-i), X дх' для £-волн (электрические колебания): В случае аксиально-симметричных резонаторов (а=1 в (4.38)) ситуация другая. Для Я-колебаний: Р и тт 1дм И £— I ди р р и л. при расчете электрических колебаний: тт U р 1 ди р 1 ди тт тт р г\ пч> — —> z~ TF~dF' г~~~ ТГ~дгу Пг — пг — £у — \д. Из решения исходной задачи определяются различные физические характеристики электродинамических систем: длины волн, коэффициенты усиления полей, характеристические сопротивления и т. д. (см. § 4.4). Вопросам программной реализации рассматриваемого класса задач посвящены работы многих авторов, см., например, обзор в [37], использовавших как методы конечных элементов, так и конечных разностей. Требования к разработке рассматриваемого пакета программ Эдип заключались в обеспечении высокого качества различных эксплуатационных характеристик: высокую точность и экономичность численных методов; надежность результатов, контроль и диагноз возможных ошибок пользователя; удобство и наглядность средств подготовки рассчитываемых задач при минимальной программистской подготовке; автоматизация обработки результатов и вывода их в буквенно-цифровом или графическом виде, естественном для разработчика приборов. Б. Описание алгоритмов. Для решения рассматриваемой проблемы собственных значений (4.38) — (4.39) или же для решения краевой задачи (4.40) для уравнения Пуассона применяются конечно-разностные методы, описанные в гл. 4. Исходное дифференциальное уравнение аппроксимируется системой пятиточечных разностных уравнений, коэффициенты которых в окрестности особых точек вычисляются автоматически с учетом асимптотического поведения искомого решения. 308
В расчетах используется последовательность вложенных сгущающихся прямоугольных кусочно-постоянных сеток. Максимально допустимый размер сетки — 15000 узлов. Для уточнения разностных решений используется экстраполяция Ричардсона, при которой комбинация решений на двух сетках позволяет получать погрешность до О(й4). Естественно, при этом повышается экономичность расчетов, поскольку при решении задачи на сетке йл/2 в качестве начального приближения берется близкое решение с сетки Qh. Решение алгебраической проблемы собственных значений для системы разностных уравнений проводится различными итерационными алгоритмами, описанными в § 4.3. Если вычисляются только минимальное собственное число и соответствующий собственный вектор, то наиболее надежным и экономичным оказывается применение алгоритма Руэ (4.88) на основе процесса последовательной верхней релаксации с автоматическим выбором «почти оптимального» релаксационного параметра. При этом трудоемкость вычисления собственного числа и собственного вектора примерно такая же, как при решении уравнения Пуассона (при тех же требованиях к оперативной памяти). При наличии нулевого собственного числа (это имеет место, когда на всей границе задается условие Неймана) алгоритм модифицируется путем введения процесса ортогонализации каждого итерационного вектора к вектору, состоящему из одинаковых компонент, например из единиц (это будет собственный вектор, соответствующий нулевому собственному числу). Для расчета нескольких основных собственных частот и гармоник эффективно применяется метод итераций в подпространствах (4.93), естественно, трудоемкость такой задачи существенно выше. С помощью найденных гармоник вычисляются компоненты электрических и магнитных полей путем аппроксимации приведенных выше формул конечными разностями с погрешностью второго порядка. В. Входные и выходные данные. Особенностью ППП Эдип является наличие двух независимых способов задания исходных данных, построенных на различных принципах. Первый подход заключается в описании информации с помощью символьного текста в естественной форме аналогично тому, как это делается в пакетах программ Эра, Эстамп и Эфир. Различными списками с мнемоническими заголовками задаются характерные точки границы, прямолинейные или криволинейные отрезки контура области с указанием типов граничных условий, информация по сетке, счетным параметрам и описанию необходимых для вывода результатов расчета. Обработка таких описаний и перевод их во внутренний язык, представляющий фактически совокупность числовых массивов, «понятных» алгоритмическим модулям, осуществляет специальный транслятор. В данном случае он реализован на языке алгол 309
ГДР с интенсивным использованием средств работы над строковыми переменными. Мы остановимся несколько подробней на другом способе задания исходных данных, главное преимущество которого заключается в том, что его реализация осуществляется средствами штатных алгоритмических языков и не требует разработки никакого транслятора. Идея заключается в создании фиксированного для данного пакета набора вспомогательных процедур, каждая из которых фактически является описателем граничного отрезка с указанием присваиваемого номера и типа граничного условия на нем. Это может быть отрезок прямой, окружности или эллипса. Каждая процедура имеет мнемоническое описание. Например, описание DLINE (N, XI, Yl, X2, Y2, А) характеризует отрезок прямой, которому присвоен номер N, начальная и конечная точки которого имеют соответственно координаты XI, Y1 и Х2, Y2, и на котором задано условие Дирихле со значением функции А — это может быть число или арифметическое выражение от переменных X, Y. Для описания отрезков с условием Неймана служит аналогичная процедура с именем NLINE. Для описания отрезков окружности или эллипса служат аналогичные процедуры с необходимыми дополнительными параметрами (координаты центра, радиус и т. д.). При задании каждого отрезка соблюдается соглашение, что при движении от начальной точки к конечной расчетная область расположена справа. Для описания границы области и граничных условий пользователь должен в исходных данных описать специальную процедуру BOUND по правилам языка фортран, которая состоит из вызовов подпрограмм, описывающих отдельные отрезки. Будучи внешне только описателем краевой задачи, процедура BOUND при обращении к ней из пакета формирует числовые массивы, необходимые для работы остальных алгоритмических модулей (см. подробнее [37]). В результате работы пакета по указанию пользователя выдаются на печать и (или) на графопостроитель таблицы, графики, рисунки с необходимыми текстовыми комментариями. Это могут быть значения гармоник или компонент напряженности в узлах сетки, частоты, длины волн, характеристические сопротивления электродинамических систем и т. д. При наличии ошибок пользователя в исходных данных печатаются диагностические сообщения. Г. Структура пакета. Алгоритмы расчета электродинамических систем реализованы в виде программных модулей на языках фортран, алгол ГДР и автокоде мадлен в рамках мо- ниторной системы Дубна для ЭВМ БЭСМ-6. Модули пакета Эдип по функциональному назначению можно разбить на следующие основные группы: обработка исходных данных (в частности, перевод символьной информации на «внутренний язык»), автоматизация построения разностных уравне-
ний и формирование матрицы системы, решение алгебраических уравнений или проблемы собственных значений, сервисное обеспечение и вспомогательные операции. Организация вычислительного процесса осуществляется управляющей программой, которая на основе исходных данных проводит последовательный вызов модулей и интерфейс между ними, обращение к внешней памяти, вывод и т. д. Отметим, что все специализированное системное обеспечение реализовано штатными программными средствами: транслятор со входного языка написан на алголе и является рядовым модулем пакета, автокодными средствами осуществлено динамическое распределение оперативной памяти, средствами мониторной системы Дубна осуществляется редактирование и сегментация программных модулей в динамическом и статическом режимах.
Приложение РАСПАРАЛЛЕЛИВАНИЕ АЛГОРИТМОВ В ЗАДАЧАХ ЭЛЕКТРОФИЗИКИ Проблема проектирования электрофизических устройств независимо от типа постановок, рассмотренных в предыдущих главах, требует многократного решения трудоемких вычислительных задач. Оптимальный режим автоматизированного проектирования прибора предполагает диалог конструктора с вычислительной системой при оперативном анализе результатов численного моделирования различных вариантов Такой характер работы эффективен только при высокой скорости расчетов История, однако, показывает, что постоянный рост быстродействия ЭВМ сопровождается одновременным повышением требований к точности моделирования. Это приводит к увеличению числа точек дискретизации и, следовательно, к быстрому росту трудоемкости задач. При таких обстоятельствах представляется, что кардинальное решение проблемы не может быть получено путем развития однопроцессорных ЭВМ, поскольку, достигнув сейчас быстродействия в несколько миллионов операций в секунду, они уже приближаются к пределу, определяемому конечностью скорости распространения электрического сигнала. Главным резервом повышения быстродействия ЭВМ и скорости решения прикладных задач является распараллеливание вычислений на многопроцессорных вычислительных системах. В настоящее время ведутся интенсивные исследования, направленные на создание параллельных вычислительных систем. Часть таких проектов предусматривает разработку универсальных вычислительных средств. Примерами могут служить системы PHOENIX [1], ПС-2000 [2] (см. также обзор в [3]). Другое направление связано с созданием проблемно-ориентированных систем, архитектура которых специализируется на определенный класс прикладных задач или используемых вычислительных алгоритмов, что позволяет значительно повысить эффективность для своей области применения. К такому типу систем относится, в частности, высокопроизводительный процессор DAP [3], ориентированный на решение системы уравнений в частных производных для прогноза погоды. В работах [4, 5J описано семейство сеточных процессоров, в котором принципы специализации и модульности позволяют достичь высокой производительности для широкого класса задач математической физики. Распараллеливание вычислений на многопроцессорных ЭВМ требует разработки новых алгоритмов или пересмотра старых с точки зрения эффективности их реализации. В настоящее время уже имеется значительное число публикаций, посвященных как общим вопросам распараллеливания алгоритмов (см. [6—11] и цитируемые там работы), так и «параллельной» реализации различных типов задач: численных методов линейной алгебры (см. достаточно полный обзор в [12, 13]), обыкновенных дифференциальных уравнений [14], уравнений в частных производных [15—18] и др. Формальный анализ всех рассмотренных в книге алгоритмов позволяет выделить в них следующие основные крупные вычислительные фрагменты: сеточные (конечно-разностные или конечно-элементные) методы решения эллиптических краевых задач, методы решения параболических уравнений в частных производных, решение интегральных уравнений теории потенциала, методы решения обыкновенных дифференциальных уравнений, вспомогательные арифметические и логические действия, различные информационные и сервисные операции. Рассмотрим эффективности распараллеливания таких алгоритмов и начнем с лежащих в их основе алгебраических операций. 312
Арифметические действия предполагаем выполняемыми на вычислительной системе со многими процессорами, каждый из которых реализует одновременно одну операцию (одинаковую для всех процессоров) над разными числовыми данными. Это так называемая система SIMD (single instruction, multi data). Длительность выполнения одного арифметического действия будем обозначать через т, не делая при этом, ради простоты, различия во времени исполнения различных операций (это может изменить только коэффициенты в наших оценках). Исследуем основные общепринятые критерии эффективности для различных задач и алгоритмов. Через ТР(А) (или просто Тр) обозначим количество характерных временных тактов т, необходимых для реализации алгоритма А с помощью р процессоров. Величина RP(A) = Т\(Л)/ТР(Л)' означает коэффициент ускорения параллельных вычислений по отношению к однопроцессорной ЭВМ. Минимальное количество процессоров, необходимое для максимально возможного распараллеливания (RP(A) максимально), будем обозначать через М(Л). Мы также введем в рассмотрение коэффициент эффективности распараллеливания Ep(A) — Rp(A)/p, характеризующий интенсивность загрузки процессоров (очевидно, что ЕР(А) ^ 1). Проблема оптимизации распараллеливания алгоритмов может ставиться по- разному в зависимости от практических требований. Если необходимо добиться наискорейшего решения задачи, независимо от эффективности использования процессоров ЕР(А) и от их количества, то мы приходим к задаче максимизации коэффициента ускорения RP{A). В общем случае естественно сформулировать следующую постановку оптимизации распараллеливания алгоритмов для некоторого класса задач G. Пусть {А}— множество алгоритмов, которые мы можем применять для решения какой-либо задачи из G с использованием не более Р процессоров при условии, что коэффициент эффективности распараллеливания не ниже заданной величины Ет. Тогда оптимальным параллельным алгоритмом Ао назовем такой, для которого выполняется условие RP(AO) = sup {max [RP(A)}}, p= 1, 2, ..., P; EP(AO) > Em. (П.1) P Эта оптимизационная задача с ограничениями может иметь, вообще говоря, несколько решений. Из них целесообразно выбрать то, для которого или р минимально, или Ер максимально. П.1. Некоторые алгоритмы линейной алгебры По данному вопросу имеется обширная библиография (см. [12, 13]), и мы не ставим целью освещение полного круга проблем, ограничиваясь только некоторыми алгоритмами, которые могут быть непосредственно эффективно использованы для рассматриваемых электрофизических задач. П.1.1. Сложение векторов. Мы начнем с рассмотрения простейшей задач1Г— сложения векторов, каждый из которых имеет размерность га: Y = Xi + Х2 + ... + Хп, Xi = (xiu xi2, .... хш). (П.2) Очевидно, с помощью т процессоров эта операция может быть выполнена за п — 1 тактов, и мы будем иметь Tm = n — \, Rm = m, Em=\. (II.3) Увеличивая количество процессоров р, мы можем ускорить решение этой задачи при некотором уменьшении коэффициента загрузки Е. Пусть, например, п = 2\ где r — целое число. Тогда для р = т2г~1 с помощью простой пирамидальной схемы задача (П.2) может быть реализована за г временных тактов: на первом вычисляются п/2 сумм различных пар слагаемых, на втором — п/4 сумм полученных пар чисел и т. д. В этом случае на первом такте используются все р процессоров, на втором только р/2, на третьем р/4 и т. д. В итоге имеем *-=£;*■ с^^±- '-г- <"■"> 313
Если же число п не является целой степенью двойки, то аналогичные результаты получаем при р = т(п/2). Здесь (а) означает ближайшее сверху к а делое число, т. е. (а) =[а— 1]ц+ 1, где [а]ц есть просто целая часть числа а. В этом случае остаются в силе соотношения (П.4), только величину Iog2ft надо везде заменить на <log2ft>. Рассмотренный алгоритм обеспечивает максимальное распараллеливание, т. е. М = т(п/2). Для промежуточных значений р, т<Ср <M,ib разных частных случаях можно применять различные алгоритмы распараллеливания, приводящие к величинам Т, R, Е, промежуточным между (П.З) и (П.4). Если же число процессоров меньше т, то степень распараллеливания уменьшается, но на таких случаях мы останавливаться не будем. П.1.2. Вычисление скалярного произведения векторов. Для реализации формулы а = (X, Y) = х\у\ + *2#2 + ... +xmym максимальное распараллеливание достигается при р = гп: 4^ ^i- (П-5) Коэффициент использования процессоров увеличивается практически вдвое при р=(пг/2), а количество тактов в этом случае больше Тт только на единицу. П.1.3. Умножение матрицы на вектор. Пусть А ={ац)—квадратная матрица порядка т. Тогда /-я компонента вектора У = АХ равна щ = (Ли X), где Л,- — 1-я строка матрицы Л. Отсюда для плотной матрицы максимальное распараллеливание рассматриваемой операции получается при р = т2, а значения Тт2, Emi оказываются равными соответственно Тт> Ет из (П.5): т(2т—\) 2—1/т ±-—J-- Em = - <log2m> + 1 ' т <log2m> + 1 * Если же р = т, то вычисление Y замедляется, но коэффициент использования процессоров становится равным единице: Гж = 2m — l, Rm = m, Ет=\. (П.6) Для редких матриц, имеющих не более г ненулевых элементов в каждой строке, ситуация меняется. Например, при р = т имеем Тт = 2г — 1, Rm = my Em=i\. (П.7) Максимальное распараллеливание теперь достигается при р = тг: -;)1. е.- <lo2g-\"+1.(п.8) П.1.4. Перемножение матриц. Поскольку каждый элемент а,ц матрицы А=ВС есть скалярное произведение /-й строки Л/ матрицы А на /-й столбец В' матрицы В, то для данной задачи при р = т3 величины Ттг, Етъ совпадают с Тт, Ет из (П.5): Если р = т, то Гт = т(2т —1), Rm = m, Em=\. (П 10) Интересно отдельно рассмотреть перемножение редких матриц, у которых количество ненулевых элементов в каждой строке не более г и расположены они симметрично относительно главной диагонали. Максимальное распараллеливание тогда достигается в общем случае при р = т2г: 314
Если же матрица-произведение имеет только п <С т2 ненулевых элементов, то при р = пг можно получить т. е. количество требуемых временных тактов оказывается тем же при меньшем числе используемых процессоров. П.1.5. Вычисление рекуррентных последовательностей. Рассмотрим задачу вычисления векторов Yk: при заданных числах ak и векторах Xk. Непосредственно из рекуррентной формулы можно получить Отсюда видно, что все произведения akak-\, akak-iak-2, akak-\...a2 вычисляются с помощью qk = ((k/2) -\-\) (k/2) процессоров по крайней мере за (Iog2&> тактов. Далее, умножение векторов Х\,..., Xk-i на найденные скалярные множители при т{к— 1) процессорах выполнимо за один такт. И, наконец, сложение всех векторов на tn(k/2) процессорах делается за (Iog2&) тактов. Отсюда получаем, что любой из векторов Yk с помощью rk = max{qk, rn {k/2)} процессоров может быть вычислен за 2(log2&) + l тактов. Если же проводить параллельное вычисление всех Yk, то мы можем получить следующий результат: rs = 2<log2rt> + I, s = q2 + q3 + ■ ■ + Qn, (П.13) 2(п-\) 2(п-\) * l ' s ( Последняя задача имеет одно существенное отличие от предыдущих. Если раньше мы проводили распараллеливание непосредственно исходного алгоритма, то в данном случае ускорение вычислений достигнуто за счет замены само^ рекуррентной формулы на другую. При этом мы фактически проводим много лишних вычислений, поэтому требуется достаточно большое число процессоров, а величина Es оказывается малой. Аналогичные результаты получаются при вычислении рекуррентных последовательностей с матричными коэффициентами: YX=XU Yk=AkYk-i+Xkt /г = 2,3,..., п. Пусть Ak — ленточные квадратные матрицы порядка т, у которых в каждой строке не более г ненулевых элементов, расположенных симметрично относительно главной диагонали. Тогда для максимального распараллеливания всех матричных произведений в Yk требуется в общем случае m2rqk процессоров (на самом деле величину т2 можно заменить на меньшую с учетом того, что различные произведения матриц Ak имеют много .нулевых элементов). При этом вычисление любого из Yk выполняется по крайней мере за <log2£> (<log2r> +2) + ( <log2r> + 1) тактов, здесь последняя скобка соответствует умножению матрицы на вектор. При параллельном вычислении всех векторов рекуррентной последовательности число временных тактов остается тем же, с заменой в последнем выражении к на п, только требуемое количество процессоров оказывается равным m2r(<72 + ?3+... +qn). При более тщательном анализе алгоритма можно сократить оценку числа процессоров за счет использования повторяющихся множителей в различных произведениях Л*, но мы на этом вопросе останавливаться не будем. П.1.6. Решение трехдиагональных систем уравнений. Рассмотрим алгоритм четно-нечетной редукции без обратного хода для решения систем линейных 315
алгебраически-х уравнений с трехдиагональной матрицей: -akXk-i + bkXk-chxk+x=fk, *= 1,2, ...,#; щ = сы = 0. - (П-14) Проведем исключение из системы (П. 14) нечетных xk с помощью соотношений где введены обозначения В результате получим редуцированную подсистему порядка -cHhk-2 + bVxk-Wxk+2 = fi\ k = 2, 4,.... коэффициенты которой определяются формулами Если N четно, то последнее уравнение редуцированной подсистемы просто совпадает с последним уравнением из (П.14). Аналогично из исходной системы мы можем исключить четные неизвестные и получим вторую редуцированную подсистему порядка N^ = N — N\l\ На этом заканчивается 1-й этап редукции. Далее мы можем каждую из подсистем разбить на две подсистемы примерно вдвое меньшего порядка и так продолжать процесс редукции, пока в каждой из подсистем не останется по одному неизвестному. Каждый из этапов редукции описывается аналогично первому следующими формулами. Пусть после r-го этапа какая-нибудь из подсистем имеет вид fir\ (П. 15) Тогда вначале вычисляются ортонормированные коэффициенты а затем подсистема (П. 15) разбивается на две подсистемы того же вида (надо только заменить везде г на г + 1) с коэффициентами, определяемыми форму+■> = Общее количество этапов редукции не превосходит, очевидно, величины <g^). При использовании N процессоров один этап редукции может быть выполнен, как легко подсчитать по формулам (П.16), (П. 17), за 13 тактов. Таким образом, для полного решения системы (П. 14) имеем TN= ( Здесь необходимо сделать оговорку, что величины RN и EN вычислены в предположении, что на однопроцессорной вычислительной системе выполняется этот же самый алгоритм. На самом деле в этом случае целесообразно применять обычный метод прогонки, который требует проведения 8W арифметических действий. Реализацию рассмотренного алгоритма можно ускорить при увеличении количества процессоров_за счет распараллеливания операций в формулах (П.16), (П. 17). Максимальное ускорение получается при 4N процессорах. Непосредственные подсчеты дают следующие результаты: 7W = 4<log2JV>, R4N=l3N/4, £w= 13/16. (И i«>, П.1.7. Метод Гаусса-Жордана для решения систем линейных алгебраических уравнений. Пусть требуется решить систему Ax=f с невырожденной квадратной матрицей А = {ац} порядка М. Мы рассмотрим поэтапно реализацию метода Гаусса-Жордана [13], в предположении, что он для данной системы является устойчивым, и без выбора ведущих элементов. 316
la) Делим 1-е уравнение на аи, полученные новые коэффициенты обозначаем через cfif. 16) Умножаем полученное .уравнение на ап и вычитаем его из соответствующего /-го уравнения (/ = 2, 3, ..., Af). Полученные коэффициенты новых уравнений обозначаем через a[f\ 2а) Делим новое 2-е уравнение на а$. 26) Умножаем полученное 2-е уравнение на affi и вычитаем его из /-го уравнения (/=1,3, ..,N). Полученные коэффициенты новых уравнений обозначаем через a\f\ За) Делим новое 3-е уравнение на af$. Процесс далее повторяется очевидным образом. Каждая пара этапов /а и /б производит зануление /-го столбца матрицы, за исключением диагонального элемента, который становится равным единице. После 2N таких этапов полученные значения компонент правой части представляют решение системы. Каждый из этапов /а реализуется за один такт на N процессорах, а /б — за 2 такта на N(N — 1) процессорах (вообще говоря, с ростом номера / количество фактически требуемых процессоров уменьшается, что ухудшает коэффициент использования Е). Поскольку на одном процессоре данный алгоритм выполняется за Т\ ~ N3 временных тактов (мы отбрасываем количество операций, пропорциональное второй степени от N и ниже), то мы получаем М = N(N- 1), Тм = 3W, RM ~ N2/3, EM ~ 1/3. (П.20) П.2. Сеточные методы решения дифференциальных уравнений Проведем формальное рассмотрение сеточных алгоритмов, общее для конечно-разностных и конечно-элементных методов. Основанием к такому объединению является аналогия вычислительных этапов: построение сетки, вычисление коэффициентов сеточных уравнений, аппроксимирующих исходную задачу, решение полученной алгебраической системы. Существенно, что в обоих случаях матрицы систем являются редкими и ленточными. При большом числе узлов сетки наиболее трудоемким этапом является именно решение алгебраических систем. Вычисление же коэффициентов сеточных уравнений может проводиться одновременно для всех узлов, и распараллеливание проводится совершенно естественно, причем количество временных тактов здесь оказывается не зависящим от числа узлов сетки. Алгоритмические вопросы могут возникнуть только при оптимизации схемы расчетов, когда число процессоров меньше числа узлов сетки (или наоборот, в несколько раз больше, и проводится «внутреннее» распараллеливание арифметических операций для каждого узла). Мы будем также единообразно описывать итерационные алгоритмы для эллиптических (стационарных) и методы решения параболических (нестационарных) задач, поскольку здесь легко устанавливается формальное соответствие между итерационными параметрами и временными шагами, а также между номером итерации и номером временного шага. Решение рассматриваемых нами стационарных или нестационарных задач методами конечных разностей или конечных элементов приводит к вычислению последовательностей сеточных функций, которые можно описать следующим образом: CnUn+i=Anun + Bnfn, я = 0, 1,2,... (П.21) Здесь u0, fn — заданные, un — искомые сеточные функции (векторы), Лп, Вп, Сп — сеточные операторы (матрицы), которые могут быть заданы заранее или вычисляются по значениям ип (нелинейные задачи). Сеточные методы являются явными, если Сп представляются диагональными или треугольными матрицами, и их реализация проводится с помощью простых рекуррентных вычислений. Реализация же неявных методов требует для каждого п решения систем алгебраических уравнений итерационными или прямыми методами, причем они значительно упрощаются, если Сп представляются в виде произведения легко 317
обращаемых матриц, например, трехдиагональных. Наиболее легко вычисляются стационарные последовательности, когда Лп=Л, Вп = В, Сп = С, т. е. матрицы одинаковы для всех п. П.2.1. Методы одновременных смещений. Наиболее естественно осуществляется распараллеливание для явных сеточных методов одновременных смещений, когда Сп — диагональные матрицы. Очевидно, что арифметические действия для всех узлов при фиксированном п могут выполняться одновременно. Кроме того, можно осуществить распараллеливание операций для каждого отдельного узла. Пусть, например Cn = /, Bnfn = [gi\, un={u% а ненулевые элементы 1-й строки матрицы Лп равны аи, аи+к, ..., ац+кг, 1= 1,2, ..., L, где L — число неизвестных компонент (индексы ku • Mr означают номера узлов сеточного шаблона). Тогда типичная для сеточных методов последовательность u + +r + gly (П.22) /=1,2, ...,L, /i = 0,l,..., представляет или какой-либо итерационный процесс одновременных смещений (например чебышевского ускорения), или явную схему решения сеточных параболических уравнений. Индекс п означает соответственно или номер итерации, или номер временного шага, а тп суть итерационные параметры или величины временных шагов. Если эта задача реализуется на L процессорах, то, очевидно, при распараллеливании по всем узлам для фиксированного п будем иметь TL = 2r + 3, #L = L, EL=\. (П.23) Максимального ускорения вычислений можно здесь достичь, если распараллелить реализацию выражения в скобках в соответствии с п. П. 1.2. В этом случае требуется p = {r-\-\)L процессоров, и мы получаем = (r+\)L, rM = <log2(r+l)>+3, RM= <log^+3j+3 • (П.24) Коэффициент загрузки процессоров Ем в этом случае меньше 2/3. Пусть теперь в последовательности (П.22) ац, хп, gi — заданные функции /, /, п (сюда включается и нелинейный случай, когда значения аи и gi определяются по u1_^k.). Если мы не будем углубляться в распараллеливание вычислений а«, тп, gi и'обозначим через t\, fa, /3 количество тактов для их определения (ради простоты будем считать, что объем вычислений для каждого ац одинаков), то при p = L получим /?L = L, EL=\, (П.25) т. е. эффективность распараллеливания максимальна, как и в случае постоянных коэффициентов. Так же, как и в предыдущем случае, при использовании {r-\-\)L процессоров можно ускорить вычисления за счет распараллеливания выражения в скобках (П.22). К последней задаче относятся формально и итерационные градиентные методы. Однако коэффициент ускорения R при этом падает, поскольку fa включает время расчета скалярных произведений, требующего <log2L> тактов. П.2.2. Методы последовательных смещений. Эффективность распараллеливания существенно падает при реализации методов последовательных смещений, когда в формуле (П. 14) матрицы Сп являются треугольными. Для эллиптических сеточных уравнений примером может быть итерационный метод верхней релаксации, который для обозначений из (П. 15) можно записать в следующем виде: u?+l = $'ац_к.и4±\, + аии?+ 2//ал/ + Л"И;+*")т« + ё>- (П 26) Здесь k', k" — некоторые целые величины. В отличие от методов одновременных смещений значение и?+] может быть вычислено только после определения новых значений неизвестных компонент с меньшими номерами. Поэтому в данном случае целесообразно проводить распараллеливание не только по индексу /, но и по п. При этом возможны различные реализации алгоритма для 318
частных задач, когда одновременно различные группы процессоров обслуживают разные группы узлов. Существенное ускорение счета в методе верхней релаксации получается при «шахматной» упорядоченности узлов, когда вычисления ведутся сначала для узлов с четной суммой номеров / + / координатных линий двумерной сетки, а затем для остальных (в каждой группе действия могут быть выполнены одновременно для всех узлов). В этом случае на (L/2) процессорах коэффициент ускорения достигает L/2. Известны также и другие способы упорядочивания узлов с целью повышения эффективности распараллеливания методов верхней релаксации. Так, для двумерных пятиточечных сеточных уравнений Пуассона возможны одновременные вычисления для узлов, лежащих на одной диагонали сетки. В работе [19] предложены асинхронные итерации, в которых на каждом п-м шаге вычисления распараллеливаются на каком-то подмножестве узлов Ln. Другой путь к реализации методов последовательных смещений основан на распараллеливании рекуррентных соотношений, к которым фактически сводится формула (П.26). Основная техническая трудность заключается в том, что в от^ личие от п. П. 15 в многомерных задачах рекуррентные последовательности не одномерные. Однако принципиальных отличий здесь не имеется и очевидно, что при наличии достаточно большого числа процессоров реализация соотношения (П.26) при фиксированном п возможна для всех узлов за число тактов порядка (log2L). П.2.3. Неявные сеточные методы. Рассмотрим на примере описанных в гл. 1 пятиточечных разностных уравнений на прямоугольной сетке с числом узлов уу, х N2 = L, итерационную схему Писмана — Ракфорда: (П.27) /=1,2, ..., #,, /=1,2, ..., N2. Эти формулы можно также интерпретировать как метод интегрирования соответствующего параболического уравнения, величины т„ в последнем случае представляют собой значения временных шагов. Реализация каждого из полушагов в (П.27) сводится к решению систем трехточечных уравнений вида (11.14), для чего можно применить рассмотренный в п. П. 1.6 метод четно-нечетной редукции без обратного хода. В этом случае выполнение одного полушага на L=NiXN2 процессорах (с учетом того, что формирование каждого уравнения вида (П. 14) из формул (П.27) требует 9 арифметических действий) возможно за 9+13 <log2W> тактов. Здесь и ниже введено обозначение N=max(Nu N2). Таким образом, для полного шага метода Писмана — Ракфорда получаем rL = 2(9+13<log2W>), RL = L, EL=\. (П.28) Поскольку максимальное распараллеливание алгоритма редукции достигается на М процессорах, мы приведем соответствующие оценки для метода Писмана — Ракфорда, в которых используется распараллеливание операций для формирования трехдиатональных систем уравнений: 4L (+<g>), R _ 9+13(log2AQ _ 13<log2AQ+9 ' «4L- 4(1+ <log2tf>) ' 4L~ 16(<log2AO + l)- (Г129) 4(1+ Такой же характер эффективности распараллеливания имеет место и для других неявных схем, например, для трехмерного случая или для более сложных дифференциальных уравнений. Сравнение с результатами из п. П.2.1 показывает, что реализация одного шага неявного метода распараллеливается хуже, чем в явных методах одновременных смещений. С другой стороны, полное решение исходной задачи с требуемой точностью при использовании неявных алгоритмов можно получить за мень- 319
шее число шагов. Для окончательного суждения о преимуществе явных или неявных методов на многопроцессорных вычислительных системах необходимо делать детальные количественные оценки объема операций для каждого отдельного класса задач П.2.4. О прямых методах решения сеточных уравнений. Рассмотрим вопросы распараллеливания прямых методов на примере решения пятиточечных сеточных уравнений Пуассона на прямоугольной сетке с числом узлов L = N\XN2 В случае переменных коэффициентов целесообразно остановиться на методе Гаусса — Жордана, реализуемом с учетом того, что матрица системы порядка L = NiXN2 имеет ленточную структуру с шириной полосы 2Л^+1. По сравнению с общим случаем, описанном в п П 1 7, это приводит только к уменьшению количества процессоров, необходимых для максимального распараллеливания, и мы получаем М = 2N2{N2 + \), Тм = SN{N2. Сравнение с итерационными методами показывает, что при больших числах узлов последние выполняются быстрее, поскольку время выполнения одной итерации или не зависит от Nu N2y или пропорционально min (\0g2Ni) (в неявных мето- i дах), а количество итераций пропорционально или min{W/), или min {\og2Ni). Следует, однако, заметить, что если требуется решить несколько систем с одной матрицей и несколькими заданными правыми частями, то все решения могут быть вычислены одновременно за то же количество тактов при числе процессоров M = 2N2(N2-\-k), где к — количество правых частей. Как известно, при решении уравнений, допускающих разделение переменных, наиболее экономичны методы быстрого преобразования Фурье, циклической редукции или их комбинаций. Эти алгоритмы также допускают эффективное распараллеливание, и обширная соответствующая литература приведена в обзорах [12, 13]. Мы не будем детально описывать реализацию этих алгоритмов на многопроцессорных вычислительных системах, а остановимся только на основных принципах. Метод быстрого преобразования Фурье реализуется с помощью N\N2 процессоров за число тактов, пропорциональное max <log2Art). Отметим, что такое же по порядку вре'мя требуется для выполнения даже простого преобразования Фурье или, как он обычно называется, метода прямых. На простом примере напомним коротко, в чем он заключается. Пусть ищется решение системы Аи\ — и2 = /i — ui-i -f Am — Ui+i = ft, i = 1, 2, ..., N1 — 1, - uNx_x + AuNl =fNl, где Mj, ft — векторы размерности N2, A — положительно определенная матрица того же порядка. Умножая каждое из этих уравнений на матрицу Р, столбцы которой являются собственными векторами матрицы А (прямое преобразование Фурье), приходим к новой системе: - Dux — й2 = fu У - ui-i + Dui - й/+, = %, i = 1, 2,..., W, - 1, — uNi_{ + DuN] = fNi, где щ = {ui,} = Ptii, ft = Pui, U — диагональная матрица с элементами, равными собственным числам матрицы А. Полученная система для каждого фиксированного / представляет собой трехдиагональную систему уравнений порядка N\ После решения N2 таких систем окончательный результат получаем с помощью обратного преобразования Фурье: щ = Р~{т = Р'щ. Каждое из преобразований Фурье представляет собой умножение N\ векторов размерности N2 на матрицу Р или Р' В соответствии с п. 11.1 3, такая* операция может быть выполнена с помощью N\N2 процессоров за количество тактов, равное <log2^2) + l. Решение N2 трех- диагональных систем порядка N\ может быть выполнено одновременно на AN\N2 320
процессорах за 4<log2^i) тактов (см. (П.19)). Таким образом, общее время реализации задачи оказывается равным 2( <log2jV2> + 1+2 (log2Wi) ). Что касается метода циклической редукции, то в нем как прямой ход, так и обратный, сводятся к решению систем с матрицами, являющимися полиномами от трехдиагональных матриц Л. После факторизации этих полиномов алгоритм сводится к многократному решению трехдиагональных систем, что может быть выполнено с помощью четно-нечетной редукции. В итоге мы получаем примерно те же оценки для числа процессоров и количества тактов, что и для быстрого преобразования Фурье П.З. Методы интегральных уравнений теории потенциала Коротко схема вычислений в методах интегральных уравнений для решения задач теории потенциала выглядит следующим образом: формирование алгебраической системы, аппроксимирующей исходное интегральное уравнение; решение полученной системы алгебраических уравнений; непосредственное вычисление потенциала, его производных или других характеристик в заданных точках. Остановимся ради конкретности на алгоритмах решения интегральных уравнений потенциала простого слоя для двумерных задач, рассмотренных в § 3.2. В других типах методов характер эффектов распараллеливания остается примерно таким же. Пусть у нас имеется N точек коллокаций на границе, где плотность по- N тенциала аппроксимируется финитными ^-сплайнами, a(t) = 2 CiBt{t), где ct — коэффициенты и / — параметр длины граничного контура, а конечной целью является вычисление /(значений потенциала или его производных внутри расчетной области. Тогда основной объем вычислений на 1-м этапе состоит в определении элементов матрицы системы Ax — g, где Л={а,-у}, * = {с,-}, g = {gi}, i= 1,2, ..., N> *-$ G(ti, t') В ft') dt''. Здесь G(t, t')—ядро интегрального уравнения (в общем г случае несимметричное), конкретный вид которого сейчас нам несуществен, но расчет значений которого может требовать достаточно большого числа арифметических действий. Вычисления всех значений ац> очевидно, можно вести одновременно. Поэтому при использовании N2 процессоров определить их (а также и значения gi) можно за количество тактов Си не зависящее от порядка дискретизации (здесь существен тот факт, что сплайны В\ отличны от нуля на конечном числе интервалов разбиения границы). Решение сформированной системы линейных уравнений при этом же числе процессоров, в соответствии с п. П. 1.7, можно выполнить с помощью метода Гаусса — Жордана за 3N временных такта. Теперь, после фактического нахождения плотности потенциала, вычисления значений потенциала или его производных можно выполнить за число временных тактов С2 + (\0g2N). Здесь Сг не зависит от N и /(", если К не больше или, по крайней мере, порядка N. Таким образом, для полной реализации метода мы получаем следующие результаты: Оценки для R, Е можно было бы несколько уточнить, но главное состоит в том, что эффективность распараллеливания в различных случаях может лимитироваться или решением алгебраической системы, или непосредственным вычислением потенциала. В общее же количество временных тактов основной вклад при больших N вносит именно решение системы. При относительно небольших N могут большое значение иметь величины Си Сг, определяемые сложностью ядер и аппроксимациями плотности. В этом случае большое значение имеет «внутреннее» распараллеливание вычислений вспомогательных интегралов на границе области. 21 В П.Ильин 321
Сравнивая критерии эффективности распараллеливания для сеточных методов решения краевых задач и интегральных уравнений теории потенциала, можно обнаружить, с учетом оценок необходимого числа итераций для сеточных уравнений, что общий объем вычислений, поскольку число узлов сетки L и количество точек коллокаций на границе N связаны примерно соотношением Nжл/Т", примерно одинаков при реальных порядках дискретизации. Преимущества того или другого алгоритма для конкретной задачи можно добиться за счет выбора наиболее экономичной модификации метода и его качественной реализации. П.4. Особенности распараллеливания решения прикладных задач В предыдущих пунктах приложения мы рассмотрели несколько идеализированные, или абстрактные вычислительные задачи. При расчетах практических электрофизических устройств, связанных с процессом их проектирования, полный вычислительный эксперимент включает большое количество чисто информационных, сервисных и прочих фрагментов, занимающих значительную долю ресурсов вычислительной системы. В значительной степени это связано с требованиями к пакетам прикладных программ, ориентированным на достаточно сложные и широкие классы практических проблем (нетривиальные двумерные и трехмерные конфигурации, различные физические эффекты и т. д.), с необходимостью высокого уровня автоматизации алгоритмов обработки и средств визуализации результатов, рассчитанных на пользователя, не являющегося профессиональным программистом. В первую очередь здесь можно отметить этап трансляции с универсальных алгоритмических или специализированных входных языков. Далее, автоматизация процессов дискретизации исходной задачи и формирования алгебраической системы для любого из типов используемых методов связана с решением большого количества геометрических, логических и прочих вспомогательных задач, занимающих больший объем вычислений, чем непосредственная реализация арифметических формул для коэффициентов дискретизированных уравнений. Решение самих алгебраических уравнений, в соответствии с описанной в гл. 7 методологией, освобождено в значительной степени от анализа исходных даннных и включает главным образом арифметические задачи, эффективно распараллеливаемые рассмотренным выше образом. После решения систем остается выполнить «только» обработку и вывод результатов, однако этот этап может «содержать ряд достаточно простых, но трудоемких операций: построение изолиний, векторных полей, различных функциональных кривых. Самостоятельную и содержательную проблему представляет задача вывода графических данных на средства визуализации, поскольку при большом общем метраже кривых на рисунках алгоритмы анализа линий и подготовки информации могут составлять основной объем машинного времени. Таким образом, автоматизация проектирования ставит вопрос о распараллеливании дополнительных видов обработки данных. Первый этап связан с разработкой «параллельных» языков или техники распараллеливания трансляции. Эти проблемы относятся к теоретическому или системному программированию, по ним имеется своя достаточно обширная литература, не входящая в круг наших интересов. Вопрос об анализе геометрии области и расчете коэффициентов алгебраических уравнений не представляет принципиальных трудностей для распараллеливания, поскольку вычисления для всех точек дискретизации могут вестись одновременно как для методов сеток, так и для интегральных уравнений. Поэтому, если число используемых процессоров равно количеству точек L, то выполнение данного этапа требует порядка 0(1) временных тактов. Увеличение числа процессоров может ускорить время реализации за счет распараллеливания «внутренних» операций для каждого узла. Наконец, этап обработки и визуализации данных связан в значительной степени с задачами интерполяции, численного дифференцирования и интегрирования функций нескольких переменных. Эти операции также могут эффективно распараллеливаться с коэффициентом ускорения, близким по порядку к числу точек дискретизации. Данные вопросы требуют, конечно, детальной проработки, но в целом последний этап не представляется узким местом в полном процессе проектирования с точки зрения эффективности распараллеливания. 322
Что касается собственно вычислительных этапов, то мы до сих пор останавливались на решении алгебраических уравнений, возникающих в методах сеток или интегральных уравнений Рассмотрим теперь коротко особенности алгоритмов решения задач, которым посвящены гл. 4—7. Расчет собственных частот и гармоник электродинамических систем после дискретизации задачи сводится к алгебраической проблеме собственных значений. При использовании для ее' решения итерационных алгоритмов вычислительная схема формально почти та же, что и при решении уравнений. Поэтому критерии эффективности распараллеливания будут близки к тем, которые рассмотрены выше Конкретные особенности распараллеливания различных методов для проблемы собственных значений можно найти в работах, указанных в обзорах [12, 13]. Основной особенностью расчетов сильноточных электрофизических устройств является необходимость численного интегрирования обыкновенных дифференциальных уравнений, описывающих движение заряженных частиц в электромагнитном поле. Расчеты одного шага траектории для каждой из частиц на одной итерации по объемному заряду могут делаться одновременно. Возникающие при этом задачи вычисления плотностей токов, объемных зарядов и компонентов напряженностей электрических и магнитных полей также естественно распараллеливаются. Только переход от одной точки траектории к другой должен выполняться последовательно. Поэтому при использовании достаточного количества процессоров время расчета траекторий и объемных зарядов не зависит от числа частиц. Эффективность распараллеливания будет хорошей, когда число частиц и узлов сетки одно и то же. Ускорение счета при увеличении количества процессоров может быть достигнуто за счет «внутреннего» распараллеливания операций в формулах численного интегрирования и других сопутствующих арифметических действий (нахождение узлов ячейки сетки, где находится частица, вычисление производных потенциала и т. д.). Общее количество тактов, необходимое для решения в целом самосогласованной задачи, будет определяться числом узлов сетки, величиной временного шага при моделировании движения частиц и количеством итераций по объемному заряду. Остановимся, наконец, на распараллеливании алгоритмов решения задач, рассмотренных в гл. 6. При этом из описанных там моделей полупроводниковых .приборов выберем одну из самых характерных, которая связана с решением системы дифференциальных уравнений Пуассона — для потенциала и переноса — для плотности электронов и дырок (ради определенности пусть будет нестационарная постановка). В таком случае для каждого момента времени решается уравнение Пуассона и делается по одному шагу интегрирования для уравнений переноса электронов и дырок. Если используемое количество процессоров равно числу узлов сетки L, то эти промежуточные этапы выполняются последовательно, но каждый из них эффективно распараллеливается. В итоге решение задачи в целом будет реализовываться с коэффициентом ускорения RL = L. Если количество процессоров в несколько раз увеличить, то можно при этом же значении R добиться ускорения вычислений за счет распараллеливания арифметических операций для каждого узла сетки. Если еще в три раза увеличить количество процессоров, то можно во столько же раз ускорить расчет каждого временного шага, если вычисления потенциала и плотности электронов и дырок делать не последовательно, как это описано в гл. 6, а одновременно. Это требует несложной переформулировки разностных уравнений, и при этом можно использовать как явные, так и неявные схемы. Во всех предыдущих случаях мы полагаем, что число процессоров достаточно велико, т. е. равно числу узлов сетки или больше. Стоит остановиться отдельно также и на случае дефицита процессоров, например, когда их в несколько раз меньше, чем узлов. В этом случае естественно применять разбиение расчетной области на подобласти, и распараллеливаемый шаг вычислительного процесса выполнять последовательно по подобластям. Размеры сеточных подобластей естественно определять в зависимости от количества процессоров. Скорость расчетов при. этом, конечно, будет уменьшаться, но сама эффективность распараллеливания остается неизменной, т. е. коэффициент использования процессоров Е не ухудшается. Более того, итерационные процессы по подобластям при решении стационарных задач являются зачастую не вынужденной мерой, а представляют 21* , 323
собой эффективный подход к решению дифференциальных уравнений в областях со сложными конфигурациями границ и краевыми условиями. В заключение скажем несколько слов о реально достижимых быстродействиях многопроцессорных вычислительных систем при расчетах практических электрофизических устройств. Типичные требования к точности численного моделирования приводят к необходимости использования сеток с числом узлов в несколько десятков (30—100) вдоль каждого измерения. Это означает несколько тысяч узлов для двумерных задач и несколько десятков или сотен тысяч — для трехмерных. Отсюда следует, например, что если мы распараллелим решение относительно небольшой задачи с тысячью узлов сетки при использовании такого же количества процессоров, каждый из которых имеет быстродействие миллион операций в секунду, то достигается производительность вычислительной системы в миллиард операций в секунду. При уменьшении или увеличении количества " узлов и соответственно процессоров в рассматриваемом диапазоне быстродействие, согласно приведенным оценкам, практически изменяется линейно. Разработка многопроцессорных систем и организация вычислительного процесса на них, конечно, ставят большое количество новых проблем. Рекордная производительность многопроцессорной вычислительной системы достигается только при пиковой загрузке ее компонентов, и отсюда возникает вопрос формирования необходимого потока задач. Сама техническая реализация сталкивается с проблемой обеспечения надежности, поскольку при росте числа процессоров резко увеличивается количество связей и объем всего оборудования. Что касается самой архитектуры многопроцессорной системы, то помимо вопросов памяти, логики, управления и т. д. имеется проблема оптимизации, или выбора, для разных классов задач самих принципов распараллеливания: конвейерного, векторного, матричного или их комбинаций. Не вдаваясь в суть этих интересных, но не являющихся предметом наших рассмотрений вопросов, мы можем констатировать, что имеющийся опыт и тенденции развития высокопроизводительных вычислительных систем показывают, что распараллеливание алгоритмов является революционным этапом в плане резкого повышения эффективности автоматизированного проектирования широкого класса электрофизических устройств.
СПИСОК ЛИТЕРАТУРЫ 1. Абрамов А. А., Бур а го Н. Г. и др. Пакет прикладных программ LTPBVP.— В кн.: Пакеты прикладных программ. Алгоритмы и алгоритмические языки. М.: Наука, 1982, с. 18—23. 2. Аксельсон, Густавсон (Axelsson О., Gustafsson I.) Preconditioning and twolevel multigrid methods of arbitrary degree of approximation.— Nij- megen: Mathematische institut, 1981. 3. АлексеевскийМ. В. О разностной схеме для сингулярного возмущенного параболического уравнения.— Ученые записки. Изд-во Ереван. Гос. Универс. Естественные науки, 1980, № 1, с. 3—13. (?) Алексидзе М. А. Решение граничных задач методом разложения по неортогональным функциям.— М.: Наука, 1978. 5. Алексидзе М. А. К решению методом сеток уравнений эллиптического типа с краевыми условиями, содержащими производные.— Тр. ВЦ АН ГССР, 1960, 1, с. 201—210. 6. Антоненко О. Ф. Численное решение задачи Дирихле для незамкнутых поверхностей вращения.— В кн.: Вычислительные системы. Новосибирск: Изд-во ИМ СО АН СССР, 1964, № 12, с. 39—47. 7. А р у ш а н я н О. Б. Центральные проблемы конструирования библиотек - программ общего назначения.— В кн.: Пакеты прикладных программ. Алгоритмы и алгоритмические языки. М.: Наука, 1982, с. 117—123. 8. Астраханцев Г. П. Об одном итерационном методе решения сеточных эллиптических задач.— ЖВМиМФ, 1971, И, № 2, с. 439—448. Q) А ф о н ц е в С. А., Григорьев Н. И., Кунилов В. А., Петров Г. В. Использование двумерных численных моделей для анализа и моделирования полупроводниковых приборов.— Зарубежная радиоэлектроника, 1975, № 8, с. 64—87. 10. Б а д, Вильсон (Bath К. J., Wilson E. L.) Numerical methods in finite element analysis.— New Jersey: Prentice Hall, 1976. 11. Балд и но (Baldino P. R.) An integral equation solution of the mixed problem for the laplacian in R3.— Paris: Ecole Polytechnique, 1979, № 48. 12. Бахвалов Н. С. О сходимости одного релаксационного метода при естественных ограничениях на эллиптический оператор.— ЖВМиМФ, 1966, 6, № 5, с. 861—883. 13. Б а х в а л о в Н. С, Ж и д к о в Е. П., К а д а н ц е в а Е. П. и др. Численное моделирование движения плотного сгустка электронов в неоднородной структуре.— ЖВМиМФ, 1982, 22, № 3, с. 685—689. 14. Б е ж а н о в а М. М. Системная программа ТЕНЗОР.— Труды ВКП-2, сек. Н. Новосибирск: Изд-во ВЦ СО АН СССР, 1970, с. 33—40. 15. Беж а но в а М. М. Проектные спецификации пакетов прикладных программ.—Новосибирск, 1980.—45 с. (Препринт/ВЦ СО АН СССР; 225). 16. Беж а нова М. М., Москвина Л. А. Инструментальные системы для построения пакетов прикладных программ.— Новосибирск, 1982.— 38 с. (Препринт/ ВЦ СО АН СССР; 360). 17. Берез и н Ю. А., Вшивков В. А. Метод частиц в динамике разреженной плазмы.— Новосибирск: Наука, 1980. 18. Б и р к г о ф ф и др (Birkhoff G., Varga R., Joung D.) Alternating direction implicite methods.— Advances in Comput, 1962, 4, p. 190—274. 19. БлейвасИ. М, Зелинский Э. М., Ильин В. П. Эффективный метод ускорения сходимости процесса последовательных приближений при решении самосогласованных задач электронной оптики.— В кн.: Методы 325
расчета электронно-оптических систем. М.: Изд-во ЦНИИ Электроника, 1974, с. 16—17. 20. Богданова М. С, Голубева А. А. и др. Комплекс программ для решения разностных эллиптических краевых задач.— В кн.: Пакеты прикладных программ. Алгоритмы и алгоритмические языки. М.: Наука, 1982, с. 24—35. 21. Болдасов В. С, Гласко В. Б., Свешников А. Г. и др. О методике решения некоторых задач оптимизации плазмооптических систем на основе концепции регуляризации по Тихонову.— В кн.: Вычислительные методы и программирование. Вып. 36. М.: Изд-во МГУ, 1982, с. 194—206. 22. Б ол д а с о в В. С. Определение формы плазменного эмиттера методом установления.— В кн.: Вычислительные методы и программирование. Вып. 36. М.: Изд-во МГУ, 1982, с 206—213. 23 Бугаев С. П., Ильин В. П., Кошелев В. И. и др. Формирование сильноточных релятивистских электронных пучков для мощных генераторов и усилителей СВЧ.— В кн.: Релятивистская высокочастотная электроника Горький: Изд-во ИПФ АН СССР, 1979, с. 5—75. 24. Бьювенс, Куэнон (Beauwens R., Quenon L.) Existence criteria for partial matrix factorizations in iterative methods.— SIAM J. Numer. Anal., 1976, 13, № 4, p. 615—643. 25. Вабищевич П. Н. О решении задачи со свободной границей для эллиптических уравнений.—ЖВМиМФ, 1982, 22, № 5, с. 1109—1117. 26. Вазов В., Форсайт Д. Разностные методы решения дифференциальных уравнений в частных производных.— М.: ИЛ, 1963. 27. В а й н ш т е й н Л. А. Электромагнитные волны.— М.: Сов. радио, 1957. 28. Варга (Varga R S) Matrix Iterative Analysis.—New Jersey, 1962. 29. Василенко В. А., Ковал ков А. В., Зюзин М. В. Библиотека программ «LIDA» для аппроксимации функций и обработки данных. Вариант АЛГОЛ-БЭСМ-6.—Новосибирск, 1981.—39 с. (Препринт/ВЦ СО АН СССР; 270). 30. Весел о в Е. Н. и др. Диалоговая система оптимизации ДИСО-2.— В кн.: Пакеты прикладных программ. Алгоритмы и алгоритмические языки. М.: Наука, 1982, с. 46—58. 31. В л а с о в А. Г., Ш а п и р о Ю. А. Методы расчета эмиссионных электронно- оптических систем.— Л.: Машиностроение, 1974. 32. Воронин В В., Цецохо В. А Численное решение интегрального уравнения 1 рода с логарифмической особенностью методом интерполяции и коллокации,—ЖВМиМФ, 1981, 21, № 1, с. 40—53. 33. Вычислительные методы и программирование.— М.: Изд-во МГУ, 1974. 34. Гаврилин А. В. Конечно-разностная аппроксимация задачи Дирихле в областях с угловыми точками.— Новосибирск, 1981.— 23 с. (Препринт/ ВЦ СО АН СССР; 78). 35. Г а в р и л и н А. В. Автоматизация решения задач электродинамики.— Новосибирск, 1980.—29 с. (Препринт/ВЦ СО АН СССР; 268). 36. Г а в р и л и н А. В., Ильин В. П. Об одном итерационном методе для решения частичной задачи на собственные значения.— Новосибирск, 1981.— 18 с. (Препринт/ВЦ СО АН СССР, 85) 37. Г а в р и л и н А. В., Ильин В. П. Пакет программ ЭДИП для автоматизации решения задач электродинамики.— Автометрия, 1982, № 4, с. 74—79. 38. Гантмахер Ф. Р. Теория матриц — М.. Наука, 1966 39. Г а т р и ч В. Н., Свешников В. М. Расчет электростатических полей сложных изоляционных конструкций в пакете прикладных программ ЭРА.— Новосибирск, 1983.— 23 с. (Препринт/ ВЦ СО АН СССР; 443) 40 Гинзбург В. Л. Об исключении продольного электромагнитного поля из гамильтоновской функции.—ЖЭТФ, 1939, 9, вып. 8, с. 981—983. 41. Гловински, Маррокко (Glowinski R., Marrocco A.) Finite element approximation and iterative methods of solution for 2—D non—linear magneto- static problems.— Proc. of Compumag, 1976, p. 112—139. 42. Г л ушков В. М., Вельбицкий И. В. Технология программирования и проблемы ее автоматизации.— Управляющие системы и машины, 1976, № 6, с. 75—92. 326
43. Г о в о р у н Н. Н., Д о р ж Л., И в а н о в В. Г., Л у к ь я н о в А. Ф. Модульная система программ обработки экспериментальных данных.— В кн.: Программирование и математические методы решения физических задач. Дубна: Изд-во ОИЯИ, 1974, с. 555—564. 44. Годунов С. К., Прокопов Г. П. О решении разностного уравнения Лапласа.— ЖВМиМФ, 1969, 9, № 3, с. 462—468. 45. Г о д у н о в С. К., Р я б е н ь к и й В. С. Разностные схемы.— М.: Наука, 1977. 46. Головин Г. Т. Об одном итерационном методе решения диодных задач.— В кн.: Разностные методы математической физики. М.: Изд-во МГУ, 1980, с. 40—51. 47. Головин Г. Т. Один итерационный метод интегрирования стационарных систем уравнений электродинамики, связанных с учетом объемного заряда.— В кн.: Вычислительные методы и программирование. Вып. 31. М.: Изд-во МГУ, 1979, с. 42—84. 48. Гол ол обо в В. И., Чеблаков Б. Г., Чинин Г. Д. Машинно-ориентированный язык высокого уровня для ЭВМ БЭСМ-6.— В кн.: Развитие программного обеспечения БЭСМ-6. М.: Изд-во ВЦ АН СССР, 1975, с. 50—51. 49. Гололобова С. П., Ильин В. П., Плотникова Г. А. Система модульного программирования МОПР. Общее описание.— Новосибирск, 1982.— 23 с. (Препринт/ВЦ СО АН СССР; 409). 50. Голубцов Б. И., Ильин В. П. О разностной аппроксимации уравнения Пуассона на неравномерных прямоугольных сетках.— Сибирский математический журнал, 1978, XIX, № 3, с. 566—570. 51. Горбенко Н. И., Ильин В. П. Сплайновое решение задачи Дирихле в двумерных областях.— В кн.: Вариационно-разностные методы в математической физике.— Новосибирск: Изд-во ВЦ СО АН СССР, Л978, с. 71—80. 52. Горбенко Н. И., Ильин В. П. О градиентных методах переменных направлений.— В кн.: Некоторые проблемы вычислительной и прикладной математики. Новосибирск: Наука, 1975, с. 207—213. 53. Горбенко Н. И., Ильин В. П., Попова Г. С, Свешников В. М. Пакет программ ЭРА для автоматизации электрооптических расчетов.— В кн.: Численные методы решения задач электронной оптики. Новосибирск: 1979, с. 34—60. 54. Горбунов-Посадов М. М., Карпов В. Я., Корягин Д. А. и др. Пакет прикладных программ САФРА. Системное наполнение.— М.,Л977.— 27 с. (Препринт/ИПМ АН СССР; 85). 55. Г р а д ш т е й н И. С, Рыжик И. М. Таблицы интегралов, сумм, рядов и произведений.— М.: Физматгиз, 1962. 56. Г р и н б е р г Г. А. Избранные вопросы математической теории электрических и магнитных явлений.— М.: Изд-во АН СССР, 1948. 57. Гумм ель (Gummel H. К.) A Self-Consistent Iterative Scheme for One Dimensional Steady State Transistor Calculations.— IEEE Trans. Electron Devices, 1964, ED-11, p. 455—465. 58. Дирмикис, Биртлес (Dirmikis D., Birtles A. B.) An investigation of methods suitable for electron trajectory tracing in digital programms.— Inter- nat. J. Electronics, 1975, 39, № 4, p. 441—453. 59. Дойников Н. И., Симаков А. С. Численное моделирование линейных магнитостатических полей.—ЖВМиМФ, 1971, 11, № 1, с. 137—143. 60. Д о р р (Dorr F. W.) The direct solution of the discrete Poisson equation on a rectangle.— SIAM review, 1970, 12, № 2, p. 248—263. Дьяконов Е. Г. Разностные методы решения краевых задач. Вып. 1.— М.: Изд-во МГУ, 1971. 62. Ерофеев А. В., Ильин В. П., Урванцев А. Л., Фишелев В. И. Диалоговые и графические средства в пакетах прикладных программ для задач математической физики,— Новосибирск, 1980.— 26 с. (Препринт/ ВЦ СО АН СССР; 261). 63. Е р ш о в А. П., Ильин В. П. Пакеты программ как методология решения прикладных задач.— В кн.: Пакеты прикладных программ. Алгоритмы и алгоритмические языки. М.: Наука, 1982, с. 4—18. 327
64. Е р ш о в А. П., Ильин В. П. Пакеты программ — технология решения прикладных задач.— Новосибирск, 1978.— 23 с. (Препринт/ВЦ СО АН СССР; 121). 65. Завьялов Ю. С, Квасов Б. И., Мирошниченко В. Л. Методы сплайн-функций.— М.: Наука, 1980. 66. Загацкий Б. А., Зизин М. И., Тем но ев а Т. А., Ярославце- в а Л. Н. ФИХАР — система для решения задач расчета физических характеристик атомных реакторов.— В кн.: Труды 1-й Всесоюзной конференции по программированию, сер. Д. Киев: Изд-во ИК АН УССР, 1968, с. 137—146. 67. 3 а х а р о в А. В., С а м а р с к и й А. А., С в е ш н и к о в А. Г. Применение метода больших частиц к расчету движения заряженного пучка в электромагнитном поле с учетом пространственного заряда пучка.— В кн.: Вычислительные методы и программирование. Вып. 16. М.: Изд-во МГУ, 1971, с 225—243 68. Ильин А. М. Разностная схема для дифференциального уравнения с малым параметром при старшей производной.— Матем. заметки, 1969, 6, № 2, с. 237—248. 69. И л ь и н В. П. Разностные методы решения эллиптических уравнений.— Новосибирск: Изд-во НГУ, 1970. 70. Ильин В. П. Численные методы решения задач электрооптики.— Новосибирск: Наука, 1974. 71. И л ь и н В. П. О некоторых оценках для метода сопряженных градиентов.— ЖВМиМФ, 1976, 16, № 4, с. 847—855. 72. И л ь и н В. П. Об одном варианте системы модульного программирования.— Новосибирск, 1976.—25 с. (Препринт/ВЦ СО АН СССР; 9). 73. Ильин (Il'in V. P.) Gradient alternating—direction methods,— Lecture notes in mathematics, 1977, № 703, p. 160—169. 74. Ильин В. П. О математическом и программном обеспечении САПР ЭОС— Автометрия, 1980, № 3, с. 77—88. 75. Ильин В. П. Об итерационных методах приближенной факторизации.— Новосибирск, 1982.— 17 cv (Препринт/ВЦ СО АН СССР; 98). 76. Ильин В. П. Вопросы технологии пакетов программ для задач математической физики.— В кн.: Разработка пакетов прикладных программ. Новосибирск: Наука, 1982, с. 113—129. 77. Ильин В. П. Сравнительный модульный анализ алгоритмов решения краевых задач.— В кн.: Пакеты прикладных программ. Вычислительный эксперимент. М.: Наука, 1983, с. 102—118. 78. И л ь и н В. П., Катетов В. А. Автоматизация решения двумерных краевых задач.—Новосибирск, 1979.—24 с. (Препринт/ВЦ СО АН СССР; 173). 79. Ильин В. П., Катетов В. А. Пакет программ ЭФИР для расчета потенциалов и их возмущений.— Автометрия, 1982, № 4, с. 67—74. 80. Ильин, Кузнецов (IPin V. P., Kuznetsov Ya. A.) Iterative methods in numerical solution of differential equations.— Lecture notes in mathematics, 1977, № 704, p. 23—36. 8Ь Ильин В. П., Куклина Г. Я. О численном решении уравнений переноса зарядов в полупроводниковых приборах.— В кн.: Вычислительные алгоритмы в задачах математической физики. Новосибирск, 1983, с. 67—78 82 Ильин В II, Перекресюва Г Я Об одной разностной схеме для параболического уравнения с первой производной.— Новосибирск, 1981.— 17 с. (Препринт/ВЦ СО АН СССР; 79) 83. Ильин В. П., Петров Е. Н. О некоторых вариантах и результатах численного моделирования самосогласованного электрического поля в плоском диоде с температурным распределением начальных скоростей электронов.— Радиотехника и электроника, 8, № 3, 1973, с. 617—623. 84. Ильин В. П., Попова Г. С. Сравнительный анализ матодов численного интегрирования уравнений движения заряженных частиц.— Новосибирск, 1978.— 13 с. (Препринт/ВС СО АН СССР; 104). 85. И м а м о в А. А., Р о м е н с к и й В. П. Метод сплайн-коллокаций для уравнения Пуассона в прямоугольной области.— В кн.: Вычислительные системы. Новосибирск, 1978, № 78, с. 56—67. 328
86. Канторович Л. В., Крылов В. И. Приближенные методы высшего анализа.— М.: Физматгиз, 1962. 87. Карденас (Cardenas A. F.) A problem oriented language and a translator for partial differential equations.— Los Angeles: California University, 1968. 88. К а р л и н е р М. М. и др. LANS — программа для вычисления электромагнитных полей и собственных частот аксиально-симметричных резонаторов.—Новосибирск, 1979.—20 с. (Препринт/ИЯФ СО АН СССР; 59). 89. Карет к ин а Н. В. Безусловно устойчивая разностная схема для параболических уравнений, содержащих первые производные.— ЖВМиМФ, 1980, 20, № 1, с. 236—240. 90. Карначук Б. И., Коновалов А. Н. Применение модульного подхода к разработке программ в пакетах математической физики.— В кн.: Пакеты прикладных программ. Алгоритмы и алгоритмические языки. М.: Наука, 1982, с. 35—46. 91. Кар н ачук В. И., Ш у сто в Г. В. Система виртуальной памяти.— Новосибирск, 1980.—33 с. (Препринт/ ИТПМ; 6). 92. К а р п о в В. Я., К о р я г и н Д. А., С а м а р с к и й А. А. Принципы разработки пакетов прикладных программ для задач математической физики.— ЖВМиМФ, 18, № 2, 1978, с. 458—467. 93. К а сч и ев а В. А., Касчиев М. С, Федосеев А. И. Численное моделирование аксиально-симметричных резонаторов методом конечных элементов.—Дубна, 1981.— 10 с. (Препринт/ОИЯИ). 94. Кате шов В. А., Свешников В. М. Автоматизация описания краевых задач и начальных условий в пакете прикладных программ ЭРА.— Новосибирск, 1980.—21 с. (Препринт/ВЦ СО АН СССР; 226). 95. К а х р о М. И., Калья А. П., Ты угу Э. X. Инструментальная система програмирования ЕС ЭВМ (Приз).—М.: Финансы и статистика, 1981. 96. Квасов Б. И. Дискретные итерационные параболические сплайны и их применение к задаче численного дифференцирования.— Новосибирск, 1982.— 15 с. (Препринт/ВЦ СО АН СССР; 97). 97. К и р ш т е й н П. Т., К а й н о Г. С, У о т е р с У. Е. Формирование электронных пучков.— М.: Мир, 1970. 98* Козлов Н. И. Организация вычислительных работ.— М.: Наука, 1981. 99. Compumag—76. Proceeding of conference on the computation of magnetic fields.—Oxford, 1976. 100. Compumag—78. Digests of the papers of conference on the computation of magnetic fields.— Grenoble: Laboratoire d'Electrotechnique, 1978. 101. Кондратьев В. А. Краевые задачи для эллиптических уравнений в областях с коническими или угловыми точками.— Тр. Моск. матем. общ., 1967, 16, с. 227—313. 102. Коттрель, Бутула (Cottrell P. E., Butula E. M.) Two—Dimensional Static and Transient Simulation of Mobile Carrier Transport in a Semiconductor.— In: Numerical Analysis of Semiconductor Devices. Dublin: Boule Press, 1979, p 31—52. 103. Кочетов И. И., Рахматулина А. X. Решение некоторых краевых задач для эллиптических уравнений с помощью интегральных уравнений 1-го рода.— ДАН СССР, 1974, 215, № 3, с. 532—534. 104. Крайер (Сгуег С. W.) The solution of a quadratic programming problem using sistematic overrelaxation.— SIAM J. Control, 1971, 9, № 3, p. 385—392. 105. Крайсингер (Kreisinger V.) Iterative methods for the solution nonlinear magnetic fields.—Acta Technica CSAV, № 3, p. 277—298. 106. КулыгинВ. М., Свешников А. Г., Семашко Н. Н., Я к у ш и н С. А. Задачи оптимизации систем до ускорения интенсивных потоков заряженных частиц.—ЖВМиМФ, 1981, 21, № 5, с. 1333—1339. 107. Курата (Kurata M.) Hybrid Two—Dimensional Device Modeling.—In- Numerical Analysis of Semiconductor Devices and Integrated Circuits. Dublin: Boule Press, 1981, p. 88—112. 108. Куттлер (KuttlerJ. K.) Finite difference approximations for eigenvalues of uniformly elliptic operator.— SIAM J. Numer. Anal., 1970, 7, № 2, p. 206—232. 329
109. Лебедев В. И., Соколов А. П. Введение в систему программирования ОС ЕС— М.: Статистика, 1978, с. 58—62. 110. Лебедев В. И. Итерационный метод с чебышевскими параметрами для определения наибольшего собственного значения и соответствующей собственной функции.—ЖВМиМФ, 1977, 17, № 1, с. 100—109. 111. Л е б е д е в В. И. Об оптимизации алгоритма внутренних и внешних итераций в задачах на собственные значения.— М., 1981. (Препринт/ОВМ АН СССР; 3). 112. Л е в и н Д. Я. СЕТЛ — язык программирования весьма высокого уровня.— Новосибирск, 1976.—20 с. (Препринт/ВЦ СО АН СССР). 113. Ленгмюр (Langmuir J.) The effect of the space charge and initial velocities on the potential distribution and thermionic current between parallel plane electrodes.— Phys. Review, 1923, 21, p. 419—435. 114. Летав и н М. И. О задаче управления пучками заряженных частиц с учетом собственного заряда.—ЖВМиМФ, 1980, 20, № 2, с. 517—522. 115. Липаев В. В. Качество программного обеспечения,—М.: Финансы и статистика, 1983. 116. Л о п у х и н В. М. Возбуждение электромагнитных колебаний и волн электромагнитными потоками.—М.: ГИТТЛ, 1953. 117. Людке вич И. В., Гордийчук В. И., Бакалец В. А., Марты- ню к Л. О. Численное решение пространственных задач теории потенциала.— Львов: Изд-во Львовск. Гос. Универс, 1979. 118. Мазный Г. Л. Программирование на БЭСМ-6 в системе «Дубна».— М.: Наука, 1976. 119. Map чу к Г. И. Методы вычислительной математики.— М.: Наука, 1980. 120. Марчук Г. И., Агошков В. И. Введение в проекционно-сеточные методы.—М.: Наука, 1982. 121. Марчук Г. И., Кузнецов Ю. А. Итерационные методы и квадратичные функционалы.— Новосибирск: Наука, 1972. 122. Марчук Г. И., Шайдуров В. В. Повышение точности решений разностных схем.—М.: Наука, 1979. 123. Мацокин А. М. Метод фиктивных компонентов и модифицированный разностный аналог метода Шварца.— В \кн.: Вычислительные методы линейной алгебры. Новосибирск, 1980, с. 66—77. 124 Мейеринк, ван дер Ворст (Meijerink J. A., van der Vorst H. A.) Guidelines for the using of incomplete decomposition in solving sets of linear equations as they occur in practical problems.— J. of computational physics, 1981, 44, p. 134—155. 125. Мельников И. А., Мяртин К. О., П р у у д е н Э. В. и др. Метасистема для создания информационно-связанных специализированных систем программирования.— Кибернетика, 1974, № 6, с. 69—73. 126. Мещеряков Ю. П. О геометрическом методе построения разностных сеток.—Новосибирск, 1978.—16 с. (Препринт/ИТМ СО АН СССР; 12). 127. Митчелл Э., Уэйт Р. Метод конечных элементов для уравнений с частными производными.— М.: Мир, 1981. 128. Мок (Mock M. S.) On Numerical Simulation of Coupled Semiconductor Devices in Arbitrary Space Dimensions Plus Time.— The International Journal for Computation and Mathematics in Electrical and Electronic Engineering, 1982, 1, №> 1, 1—5, p. 1—5. 129. Мок (Mock M S.) The Charge—Neutral Approximation and Time Dependent Simulation.— In: Numerical Analysis of Semiconductor Devices. Dublin: Boule Press, 1979, p. 111 — 121. 130. Мок (Mock M. S.) Time—Dependent Simulation of Coupled Devices.— In: Numerical Analysis of Semiconductor Devices and Integrated Circuits. Dublin: Boule Press, 1981, p. 113—131. 131. Мокин Ю. И. Алгоритм определения плотности тока эмиссии в задаче о фокусировке пучка.—ЖВМиМФ, 1980, 20, № 3, с. 671—681. 132. Мокин Ю. И. Математические модели нестационарного движения пучка электронов в вакуумном волноводе.— В кн.: Разностные методы математической физики. М.: Изд-во МГУ, 1979, с. 107—129. 133. Мокин Ю. И. Об условиях сходимости метода макрочастиц и метода трубок тока.— ЖВМиМФ, 1979, 19, № 2, с. 444—457. 330
134. Мокин Ю. И. О двух моделях стационарного движения заряженных частиц в вакуумном диоде.— Матем. сб., 1978, 106 (148), № 2(6), с. 234 264. 135. М о к и н Ю. И. Особенности некорректно поставленных задач, возникающих при исследовании движения электронов в электромагнитном поле.— ЖВМиМФ, 1980, 20, № 1, с. 133—146. 136. Мокин Ю И. О сходимости и точности метода макрочастиц.— ЖВМиМФ, 1979, 18, № 3, с. 665—674. 137. Монастырский М. А. Интегральные уравнения в задачах оптимизации электронно-оптических систем. Общие соотношения.— В кн.: Численные методы решения задач электронной оптики. Новосибирск: Изд-во ВЦ СО АН СССР, 1979, с. 108—121. 138. МолоковскийС. И., СушковА. Д. Интенсивные электронные и ионные пучки.— Л.: Энергия, 1972. 139. Мулярчик С. Г., Абрамов И. И. Выбор начального приближения в задаче численного анализа биполярных полупроводниковых приборов.— Изв. вузов. Радиоэлектроника, 1981, 14, № 4, с. 49—56. 140. Начамкин, Хенкок (Nachamkin J., Hancock J.) A new way estimating currents in space—charge limited electronics calculations.— IEEE transactions on electron devices, 1981, ED-28, № 7, p. 875—878. 141. Невский П. В., Овчаров Т. Т. Расчет электростатических формирующих систем клистронов.— Электронная техника, сер. 1: Электроника СВЧ, 1969, вып. 7, с. 62—70. 142. Неделек (Nedelec J С.) La methode des elements finis appliquee aux equations integrales de la physique. Actes du 1-er colloque AFCET-SMF,— Paris: Ecole Polytechnique, 1978, 1, p 181 — 190. 143. Никольский В. В. Электродинамика и распределение радиоволн.— М.: Наука, 1973. 144. Новик Я. А. Численный расчет магнитного поля методом конечных элементов в электрических машинах с учетом насыщения стали.— Изв. АН Латв ССР, 1974, № 5, с. 96—104. 145 Н о с о в Ю. Р., П е т р о с я н ц К. О., Ш и л и н В. А. Математические модели элементов интегральной электроники.— М.: Сов. радио, 1976. 146. Обэн Ж.—П. Приближенное решение эллиптических краевых задач.— М.: Мир, 1977. 147. О в с я н н и к о в Д. А. Математические методы управления пучками.— Л.: Изд-во ЛГУ, 1980. 148. Овчинников А. В. Метод анализа потоков заряженных частиц.— Зарубежная радиоэлектроника, 1979, № 5, с. 26—40. 149. Оганесян Л. А., Руховец Л. А. Вариационно-разностные методы решения эллиптических уравнений.— Ереван," 1979. 150. Оку то и др. (Okuto Y., Ohno Y., Fukuma M.) Device Process Designing Aids for MOS LSIs.— In: Numerical Analysis of Semiconductor Devices and Integrated Circuits. Dublin: Boule Press, 1981, p. 132—154. 151. О рте г а Дж., Рейнболт В. Итерационные методы решения нелинейных систем уравнений со многими неизвестными.— М.: Мир, 1975. 152. ПанибрацкийВ А., Свешников В. М. Расчет электронно-оптических систем с плазменным эмиттером.— Новосибирск, 1983.— 15 с. (Препринт/ ВЦ СО АН СССР; 432). 153. Пакеты прикладных программ. Библиографический указатель литературы.— Новосибирск: Изд-во ВЦ СО АН СССР, 1981. 154. Перчук В. Л., Березовский М. А., Каминский П. Г. и др. Многоязыковая система программирования МУЛЬТИТРАНС.— В кн.: Машинная графика и ее приложения. Владивосток: Изд-во ИАПУ, 1975, с. 47—56. 155. Пол а к и др. (Polak S. J., Wachter A., Vaes H. M. J., Beer A., Heyer С.) A continuation method for the calculation of electrostatic potentials in Semiconductors.— In: Numerical Analysis of Semiconductor devices. Dublin: Boule Press, 1979, p. 132—160. 156. Положий Г. Н. Численное решение двумерных и трехмерных краевых задач математической физики и функции дискретного аргумента.— Киев: Изд-во КГУ, 1962. 331
157. Польский, Римшанс (Polsky В. S., Rimshans J. S.) Numerical simulation of transient processes in 2-d bipolar transistors.— Solid-State Electronics, 1981, 24, № 12, p. 1081 — 1085. 158. Попова Г. С, У рев М. В. Расчет магнитного поля по его значениям на оси симметрии.— В кн.: Численные методы решения задач электронной оптики. Новосибирск: Изд-во ВЦ СО АН СССР, 1979, с. 89—98. 159. Пьеронне (Perronnet A.) The Club Modulef. Proc. Troisieme colloque international sur les methodes de calcul scientifique thechnique. — Versailles — Rocquencourt, IRIA, 1977, p. 145—160. 160. Райков Л. Л. Решеточные методы построения оптимальных простых цепочек модулей с именованными входами.— В кн.: Пакеты прикладных программ. Алгоритмы и алгоритмические языки. М.: Наука, 1982, с. 97—117. 161. Рошаль А. С. Моделирование заряженных пучков.—М.: Атомиздат, 1979. 162. Pye (Ruhe A.) Iterative eigenvalue algorithms based on convergence splittings.—J. Сотр. Phys., 1975, 19, p. 110—120. 163. РухадзеА. А., БогданкевичЛ.С, РосинскийС. Е.,РухлинВ. Г. Физика сильноточных релятивистских пучков.— М.: Атомиздат, 1980. 164. Самарский А. А. Введение в теорию разностных схем.— М.: Наука, 1971. 165. Самарский А. А., АндреевВ. Б. Разностные методы для эллиптических уравнений.— М.: Наука, 1976. 166. Самарский А. А., Николаев Е. С. Методы решения сеточных уравнений — М Наука, 1978. 167. Сандер С. А. Некоторые варианты метода редукции.— В кн.: Вычисления с разряженными матрицами. Новосибирск: Изд-во ВЦ СО АН СССР, 1981, с. 123—133. 168. Сандер С. А. Модификация алгоритма Шварца для решения сеточных краевых задач в областях, составленных из прямоугольников и прямоугольных параллелепипедов.— Новосибирск, 1981.— 21 с. (Препринт/ ВЦ СО АН СССР; 83). 169. СапаговасМ. П. и др. Пакет программ для решения нелинейных эллиптических дифференциальных уравнений.— В кн.: Пакеты прикладных программ. Алгоритмы и алгоритмические языки. М.: Наука, 1982, с. 68—77. 170. С а улье в В. К. О вычислении собственных векторов матриц методом двойных итераций.—ЖВМиМФ, 1963, 3, № 6, с. 1112—1113. 171. Свит (Sweet R. A.) A cyclic reduction algorithm for solving block tridiagonal systems of arbitrary dimension.— SIAM J. Numer. anal., 1977, 14, № 4, p. 706—720. 172. Сергиенко И. В. Методы организации вычислительного процесса на вычислительных машинах.— Киев: Изд-во ИК АН УССР, 1971. 173. Сильвестр, Шари (Silvester P., Chari М. V.) Analysis of turboalterna- tur magnetic fields by finite elements.—IEEE, 1971, PSA-90, № 2, p. 454— 464. 174. С мел об В. В. Обоснование итерационного процесса по подобластям для задач теории переноса в нечетном Р2л/+1'пРи^лижении-—Новосибирск, 1980.—27 с. (Препринт/ВЦ СО АН СССР; 71). 175. Смит Р. Полупроводники.— М.: Мир, 1982. 176. Степанов Г. Г. Алгоритмический язык СИГМА.— В кн.: Системное и теоретическое программирование. Новосибирск: Изд-во ВЦ СО АН СССР, 1973, с. 83—102. 177. С той а н (Stoyan G.) On a maximum norm stable monotone and conservative difference approximation of the one-dimensional diffusion — convection equation.— Beitrage zur Wissenchaftlichen Konferenz. Dresden, 1979, p. 139—160. 178. Стреттон Дж. А. Теория электромагнетизма.— M.: Гостехиздат, 1948. 179. Стрэнг Г., Фикс Дж. Теория метода конечных элементов.— М.: Мир, 1977. 180. Т и х о н о в А. Н., А р с е н и й В. Я., Д у м о в а А. А. и др. О многоцелевой проблемно-ориентированной системе обработки результатов экспериментов,— М., 1976.—22 с. (Препринт/ИПМ АН СССР; 142). Ш
181. Тозони О. В. Математические модели для расчета электрических и магнитных полей.— Киев: Наукова думка, 1964. \ 182. Тихонов А. Н., Самарский А. А. Уравнения математической физики.—М.: Наука, 1972. 183. Уилкинсон Дж. Алгебраическая проблема собственных значений.— М.: Наука, 1970. 184. Уилкинсон Дж., Р а й н ш Н. Справочник Алгоритмов на языке АЛГОЛ. Линейная алгебра.— М.: Машиностроение, 1976. 185. Урванцев А. Л. О расчете магнитных полей методом конечных элементов.— В кн.: Численные методы решения задач электронной оптики. Новосибирск: Изд-во ВЦ СО АН СССР, 1979, с. 77—88. 186. У рев М. В. О продолжении магнитного поля с оси симметрии в пространство.— Радиотехника и электроника, 1983, 28, № 4, с. 772—779. 187. Ф are Д. М. О приближенном решении задач со свободными границами.— В кн.: Численные методы в математической физике. Новосибирск, 1979, с. 10—15. 188. Фаддеев Д. К., Фаддеев а В. Н. Вычислительные методы линейной алгебры.— М.: Физматгиз, 1960. 189. Фатеев А. Е., Ройтман А. И., Фатеева Т. П. Прикладные программы в системе математического обеспечения ЕС ЭВМ.— М.: Статистика, 1978. 190. Федоренко Р. П. О сходимости одного итерационного процесса.— ЖВМиМФ, 1964, 4, № 3, с. 559—564. 191. Федоренко Р. П. Приближенное решение задач оптимального управления.— М.: Наука, 1978. 192. Фрязинов И. В. Разностные схемы для уравнения Лапласа в ступенчатых областях.—ЖВМиМФ, 1978, Л8, № 5, с. 1170—1185. 193. Форсайт Дж. Е., Мол ер К. Численное решение систем линейных алгебраических уравнений.— М.: Мир, 1969. 194. Хэмминг Р. В. Численные методы.— М.: Наука, 1972. 195. Цай В. А., Шустов Г. В. Об одном подходе к организации пакетов прикладных программ.— В кн.: Математические методы решения прямых и обратных задач геофизики. Новосибирск: Изд-во ВЦ СО АН СССР, 1981, с. 140—154. 196. Цвик Л. Б. Обобщение алгоритма Шварца на случай областей, сопряженных без налегания.—ДАН СССР, 1975, 224, № 2, с. " 309— 312. 197. Чухлебов А. Н. Решение трехмерной задачи электростатики с выделением особенности в ядре интегрального уравнения.— В кн.: Повышение качества электронно-лучевых приборов. Киев: Наукова думка, 1981, с. 96—100. 198. Шаманский В. Е., Гринькова Г. В. О применении модификации метода Ньютона для расчета двумерных электромагнитных полей.— В кн.: Методы расчета электронно-оптических систем. Новосибирск: Изд-во ВЦ СО АН СССР, 1970, с. 204—210. 199. Шараев Д. Я. Организация больших программ.— Свердловск: Изд-во УГУ, 1977. 200. Шишкин Г. И. Численное решение эллиптических уравнений с малым параметром при старших производных.— ДАН СССР, 1979, 245, № 4, с. 804—808. 201. Энгль, Диркс (Engl W. L., Dirks H.) Functional Device Simulation by Merging Numerical Building Blocks.— In: Numerical Analysis of Semiconductor Devices and Integrated Circuits. Dublin: Boule Press, 1981, p. 34—62. 202. Энгль, Диркс (Engl W. L., Dirks H.) Numerical Device simulation guided by physical approaches.— In: Numerical Analysis of Semiconductor Devices. Dublin: Boule Press, 1979, p. 53—81. 203. Я н г (Young D. M.) On the accelerated SSOR method for solving large linear systems.—Advances in mathematics, 1977, 23, p. 215—271. 204. Я н е н к о Н. Н. Методы дробных шагов решения многомерных задач математической физики.— Новосибирск: Наука, 1967. 333
СПИСОК ЛИТЕРАТУРЫ К ПРИЛОЖЕНИЮ 1. Аксенов В. П., Бочков С. В., Мошков А. А. Структура и характеристики высокопроизводительных ЭВМ и систем.— Зарубеж. радиоэлектрон, 1982, ч. I, № 3, с. 35—53; ч. II, № 4, с. 33—57. 2. Прангишвили И. В. Архитектурные концепции высокопроизводительных параллельных вычислительных систем 80-х годов.— Вопр. кибернетики, М., 1981, № 79, с. 3—14. 3. Г о л о в к и н Б. А. Параллельные вычислительные системы.— М.: Наука, 1980. 4. И л ь и н В. П., Ф е т Я. И. Параллельный процессор для решения задач математической физики.— Новосибирск, 1979. (Препринт/ВЦ СО АН СССР; 217). 5. И л ь и н В. П., Ф е т Я. И. Распараллеливание неявных сеточных методов на универсальном матричном процессоре.— М., 1982. (Препринт/ОВМ АН СССР; 27). 6. М i r a n k е г W. L. A survey of parallelism in numerical analysis.—SIAM Rev., 1971, 13, № 4, p. 524—547. 7. К u с к D. J. Parallel processing of ordinary programs.—Adv. Comput., 1976, 15, p. 119—179. 8. Глушков В. М., Капитонова О. В., Летичевский А. А. Об одном подходе к реализации параллельных вычислений в многопроцессорных вычислительных системах.— В кн.: Прикладное программирование и высокопроизводительные системы. Ч. I. Новосибирск: ВЦ СО АН СССР, 1980, с. 5—20. 9. М а р ч у к Г. PL, Котов В. Е. Проблемы вычислительной техники и фундаментальные исследования.— Автоматика и вычисл. техника, 1979, № 2, с. 3—14. 10. Kung H. Т. The Structure of Parallel Algorithms.— Advances in Computes, 1980, 19, p. 65—112. 11. Воеводин В. В. Некоторые машинные аспекты распараллеливания вычислений.—М., 1981. (Препринт/ОВМ АН СССР; 22). 12. Ф а д д е е в а В. Н., Ф а д д е е в Д. К. Параллельные вычисления в линейной алгебре.— Кибернетика, 1977, № 6, с. 28—40. 13. Фаддее в а В. Н., Фаддеев Д. К. Параллельные вычисления в линейной алгебре. Ч. 2.—Л., 1981. (Препринт/Ленинград, отд. МИАН СССР; Р-6). 14./ Franklin M. A. Parallel solution of ordinary differential equations.—IEEE Comput., 1977, C-26, № 9, p. 838—847. 15. G i 1 m о г е P. A. Numerical solution of partial differential equations by associative processing.—AFIPS Confer. Proc, FJCC, 1971, 39, p. 411—418. 16. Pa kef Y. Application of microprocessor networks for the solution of diffusion equation.—Math, and Comput. in Simul., 1977, XIX, № 1, p. 226—244. 17. M а г с h u k G. I., I l'i n V. P. Parallel computations in grid methods for solving mathematical physics problems.— In: Proceedings of IFIP Congress. North- Holland publishing company, 1980, p. 671—676. 18. Яненко Н. Н. Вопросы модульного анализа и параллельных вычислений в задачах математической физики.— В кн.: Параллельное программирование и высокопроизводительные системы. Ч. I. Новосибирск: Изд. ВЦ СО АН СССР, 1980, с. 135—144. 19. В a u d e t G* N. Asynchronus iterative methods multiprocessor.— J. Assoc. Comput. Mach., 1978, 25, p. 226—244.
Валерий Павлович Ильин Численные методы решения задач электрофизики Редактор Л Г Силкова Художественный редактор Т Н Кольченко Технический редактор Е В Мооозова Корректор И Я Кришталь И Б № 32260 Сдано в набор 26 09 83 Подписано к печати 08 05 85 Т-07478 Формат 60X90 '/|б Бумага офсетная Литературная гарнитура Офсетная печать Уел печ л 21 Уч-изд л 23,2 Тираж 3600 экз Заказ 3274 Цена 3 р 80 к Ордена Трудового Красного Знамени издательство «Наука» Главная редакция физико-математической литературы 117071 Москва В-71, Ленинский проспект, 15 2-я типография изд-ва «Наука» 121099 Москва Г-99, Шубинский пер., 6
ИЗДАТЕЛЬСТВО «НАУКА» ГЛАВНАЯ РЕДАКЦИЯ ФИЗИКО-МАТЕМАТИЧЕСКОЙ ЛИТЕРАТУРЫ 117071 Москва В-71, Ленинский проспект, 15 Готовится к печати Бабенко К. И. ОСНОВЫ ЧИСЛЕННОГО АНАЛИЗА. Книга написана на основе курса лекций, читаемого в течение многих лет на механико-математическом факультете Московского государственного университета. В ней содержится теоретическое обоснование и подробное изложение основных численных методов. Каждая глава и почти все параграфы сопровождаются большим числом задач и примеров как теоретического, так и прикладного характера.