Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Вычислительные методы в физике плазмы

..pdf
Скачиваний:
52
Добавлен:
25.10.2023
Размер:
18.53 Mб
Скачать

§ 2. Прямые методы

167

Можно показать, что соотношения (44) — (47) алгебраически иден­ тичны более простым соотношениям (41) и (42). Дополнительная

привлекательность новых

рекуррентных

соотношений состоит

в том,

что и прямой, и

обратный ход рекурсии записываются

в одной и той же форме (а именно В~ХР +

Q), и многие вычисли­

тельные операции можно использовать совместно.

На

каждом шаге прямой и обратной

редукции приходится

решать

21 трехдиагональных систем уравнений. Каждая такая

трехдиагональная система решается методом рекурсивной цикли­ ческой редукции, описанной в п. 3, в. В методе DCR, как и в ме­ тоде FAGR, необходима только одна сетка, которая используется как для заданного заряда, так и для неизвестного потенциала.

б. Подсчет числа операций и быстродействие

Рассмотрим разностную сеть из п рядов по т узлов в каждом. Общее число операций на 1-м уровне прямой и обратной редук­ ции определяется их числом в квадратных скобках выражений

(44)

и (46),

умноженным на п/21. Это составит І8тп/21 операций.

■Суммируя

по

I от

1

до бесконечности, получаем (с точностью

не

хуже

1%

при

п >

128) 18?шг операций.

 

На 1-м уровне нужно дважды для каждого ряда (во время

прямой

и

обратной редукции) решить 2(1~ѵ> трехдиагональных

вистем. Решение одной трехдиагональной системы уравнений требует примерно 6т операций. Решение всех систем на 1-м уровне требует 2 -6т •2<г-1>-п/21 = Qmn операций. Число необходимых уровней зависит от типа граничных условий в ^-направлении. При заданном потенциале на границе (ІВСХ — 1) нужно log2 п—1

уровней, а при периодических граничных условиях (ІВСХ =

3)

их нужно log2 п.

 

 

 

 

 

Полное число операций в методе DCR, таким образом, соста­

вит

 

 

 

 

 

6пт [loga п +

2],

ІВСХ =

1,

 

 

6ш?г [log2 п +

3],

ІВСХ =

3.

^

'

Соответствующий подсчет для метода FACR из и. 3, е дает

Ъпт [log2 п +

0,3],

ІВСХ =

1,

 

 

2,Ъпт [loga п +

2,4), ІВСХ =

3.

^49

Интересно также привести число операций в очевидном методе двумерного преобразования Фурье с последующим делением и обратным двумерным преобразованием Фурье [15]. Для такого метода нетрудно написать программу, располагая лишь библио­ течной подпрограммой преобразования Фурье. Назовем этот

168

Гл. 4. Методы расчета потенциала

 

метод DFA и, пренебрегая делением, запишем число операций:

 

 

10пт [log2 пт — 3,2],

ІВСХ = IBCY — 1,

 

 

Ъпт [log2 пт — 2,8],

ІВСХ = IBCY — 3.

'

Проведенное выше сравнение показывает, что в случае перио­ дических граничных условий метод FACR может в 2 раза пре­ взойти метод DCR по быстродействию, а при заданном значении потенциала на границе — лишь на 20%. В последнем варианте граничных условий метод DCR в 3 раза превосходит метод DFA, а для периодических условий на 50%.

Часть этих преимуществ теряется при учете вспомогательных операций. В этом отношении метод DCR гораздо предпочтитель­ нее, чем FACR, ввиду простоты программы. Программа Бунемана, применяющая метод DCR, состоит из единственной под­ программы и содержит 59 операторов языка Фортран (2464 байта), в блоке, решающем уравнение Пуассона. Этому следует сопо­ ставить 428 операторов Фортрана (11 120 байтов) и 14 подпро­ грамм в написанной Хокни по методу FAGR программе РОТ1. Общие выводы, основанные на подсчете числа операций, довольно хорошо подтверждаются значениями фактического машинного времени, сведенными в табл. 5.

Таблица 5

Сравнение различных прямых методов решения разностного уравнения Пуассона

Время в секундах для IBM 360/67-1

при использовании второго варианта

компилятора '

(уровень H)

с Фортрана.

 

 

 

Сетка

DCR °

PACK 6

FACR 8

DFA 8

32X32

0,297

0,219

0,265

0,529

64x64

1,363

0,879

1,113

2,155

128x128

6,152

3,527

4,711

9,021

256x256

27,488

14,539

20,187

38,359

а

Подпрограмма Бунемана XYPOIS при ІВСХ = 1 , IBCY = l.

6

Подпрограмма POTI при ІВСХ =

3, IBCY =

I .

8

Подпрограмма POTI при ІВСХ =

I, IBCY =

I.

eПодпрограмма POT3 при ІВСХ = 3, IBCY — 3.

в. Выбор алгоритма

Для решения большой задачи на ЭВМ с большим объемом памя­ ти, по-видимому, предпочтителен алгоритм FACR. При этом могут быть удовлетворены увеличенные требования к объему

§ 2. Прямые методы

It,9

памяти и одновременно приобретаются преимущества в скорости от 20 до 90%, что при решении крупных задач может означать значительную экономию машинного времени. Алгоритм DCR становится оптимальным для малых ЭВМ с ограниченным объемом памяти (например, для IBM 1800 с памятью в 4096 слов или IBM ИЗО с памятью в 8000 байтов), так как, по-видимому, это единственный прямой метод, который может быть приспособлен к таким системам. В любом случае задачи, решаемые на малых ЭВМ, должны быть небольшими, так что более длительное время действия алгоритма DCR несущественно.

5. Оптимальный метод FACR (?)

Обобщим метод FACR, включив в него /-кратную нечетно­ четную редукцию перед выполнением разложения Фурье, и назо­ вем такой метод методом FACR (/). Во второй главе описан метод FACR (1) с однократной редукцией, а метод DCR можно рас­ сматривать как метод FACR (log2 п). Кроме того, метод FACR (0)г т. е. метод FACR без применения нечетно-четной редукции, был использован Веронисом [16] в связи с задачей о ветровых цирку­ ляциях океана.

Как мы видели, метод FACR (1) требует меньшего числа опе­ раций, чем DCR, и нетрудно убедиться, что он экономнее, чем FACR (0), поэтому встает вопрос о существовании оптимального уровня редукции.

Будет

показано, что оптимальный уровень достигается при

/ = 1 или

I = 2 и что проблема переполнения не возникает при

использовании для редукции простых рекуррентных соотно­ шений (41) и (42). Как и раньше, рассмотрим сетку (п X т} по координатам (х , у) с разложением Фурье в ^-направлении.

Преобразование свободного члена по формуле (41) требует выполнения 1,5пті + пт (1 — 2~1) операций. В результате полу­ чим т!21 уравнений, которые решаются методом разложения Фурье с последующей циклической редукцией, для чего необхо­ димо соответственно 2пт [2,5 log2 п — 3,5п]/2г и ЬптІ21 операций. На стадии обратной редукции необходимо 2пт [1 — 2~1] опера­ ций для формирований свободных членов и 3пті операций для решения трехдиагональной системы.

Полное число операций на один узел сетки в методе состав­

ляет

 

3 + 4 ,5 /+ (51 ° у —4).

(51)

На фиг. 6 показана зависимость числа операций на один узел сетки от числа уровней редукции / для типичного случая п = 128. Неглубокий минимум достигается при двукратной

170 Гл. 4. Методы расчета потенциала

редукции, и оценки показывают, что введение следующего уровня редукции в подпрограмму РОТ1 может привести к повышению числа операций на 10%.

Очевидно, что оптимальный уровень редукции зависит от отно­ сительной эффективности используемых подпрограмм разложения Фурье и циклической редукции. Ключевой вопрос состоит в том, как быстрее решить систему Ві1)х = Ъ — разложением Фурье дли циклической редукцией. По мере увеличения I и заполнения

»5s

5S

«

I

У

£cd

и-

§

I

•5

а

<0

5S

to

•Ф и г. 6. Количество операций на один узел сетки 128 х 128 для алгорит­ мов FACR (I), DFA и DCR.

Дано также эквивалентное (по затратам времени) число итераций для метода SOR в пред­ положении, что число операций в одном узле на одну итерацию составляет наименьшее значение, равное 7. Во всех случаях граничные условия выбраны в форме, наиболее благоприятной для данного алгоритма. Заметим, что минимальное число операций дости­ гается при I = 2 .

матрицы B {h ненулевыми элементами разложение Фурье стано­ вится все более и более подходящим методом решения. Выбрав метод разложения Фурье на 1-м уровне, получаем алгоритм FACR (I). Во время разработки исходного алгоритма FACR (1) на IBM 7090 [6] Голуб и Хокни обсуждали желательность сле­ дующего шага нечетно-четной редукции, однако затем эта возмож­ ность была отвергнута, так как тщательный хронометраж имев­ шихся тогда программ разложения Фурье и циклической редук­ ции показал, что алгоритм FACR (2) будет более медленным.

Алгоритм типа FACR (I) можно применять для более общих уравнений, чем рассмотренные выше. Всесторонний математиче­ ский обзор таких обобщений был дан Базби и др. [14] при описа­

§ 2. Прямые методы

171

нии семейства алгоритмов GORF (методы циклической нечетно­ четной редукции и факторизации).

Установлено (см., например, [17]), что выгодно использовать девятиточечную аппроксимацию уравнения Пуассона (см. [18]). Последняя имеет более высокий порядок точности по сравнению с пятиточечной схемой, и ее применение может оказаться необхо­ димым, когда используется крупная сетка. Описанные выше прямые методы можно применять и для девятиточечных уравне­ ний. Объем вычислений и машинное время для них возрастают по сравнению со случаем пятиточечной аппроксимации.

6. Учет электродов

Может показаться, что описанные здесь прямые методы реше­ ния уравнения Пуассона имеют довольно ограниченную сферу

применения, в

частности при расчете электронной пушки, так

как

в рассмотренной задаче электроды не могут находиться

во

внутренней

области, хотя они, конечно, могут образовывать

ее границу. Один из возможных способов обхода этого ограни­ чения [19] состоит, например, в предварительном вычислении матрицы емкости С, связывающей потенциал и заряд в некото­ ром числе точек во внутренней области. Эти точки следует рас­ сматривать как электроды, на которых поддерживается заданный потенциал, и вычислить поверхностный заряд, индуцированный на этих электродах окружающим пространственным зарядом. После этого результат будет определен путем двукратного реше­ ния уравнения Пуассона следующим образом. Сначала уравнение Пуассона решается при нулевом заряде на электродах и запоми­ нается отклонение потенциала на электродах от требуемого значения. Умножив это отклонение на матрицу емкости и на —1, определяют искомый поверхностный заряд в каждой точке элек­ трода. Уравнение Пуассона решается снова с найденными значе­ ниями поверхностного заряда, и это решение будет правильным всюду, включая и точки на электроде.

Для определения матрицы емкости строят сначала обратную матрицу А = С-1. Каждый столбец матрицы А находят, помещая единичный заряд по очереди в каждую точку электрода (при нуле­ вом заряде в остальных точках электрода) и решая уравнение Пуассона. Значения потенциала в точках электрода образуют элементы столбца матрицы А. Матрица емкости вычисляется путем обращения матрицы А, и это ограничивает применимость метода 100—200 точками для CDC 6600. Матрица емкости сим­ метрична, так что для I точек электрода необходимо I (I + 1)/2 ячеек памяти. Так как матрица емкости зависит только от гео­ метрии задачи и не зависит от распределения зарядов, ее доста­ точно вычислить только один раз в начале расчета и затем хранить

172 Гл. 4. Методы расчета потенциала

в памяти. Время умножения отклонения на матрицу С пренебре­ жимо мало, следовательно, машинное время, необходимое для определения потенциала, удваивается, если электроды учиты­ вать указанным способом. Если электроды не проходят через узловые точки, то описанную процедуру удается уточнить.

Если количество точек электрода слишком велико,

чтобы

можно было вычислить и хранить

в памяти матрицу емкости,

то поверхностный заряд можно

искать итерационным

путем

по локальному отклонению в точках электрода, решая уравнение Пуассона по-прежнему прямым методом. С другой стороны, можно совсем отказаться от прямых методов и применить итерационный метод на всей сетке. Использование итераций только в точках электродов имеет то преимущество, что ошибки в вычислении потенциала концентрируются вблизи электродов, т. е. вне обла­ сти пространственного заряда, в то время как применение итераций по всей сетке распределяет ошибки более однородно и, следовательно, приводит к внесению больших ошибок в область пучка электронной пушки.

Если потенциал задан на границе области (ІВС = 1), те часто бывает удобно свести этот случай к случаю с нулевыми граничными условиями. Этого можно достичь, добавив слой с эквивалентным зарядом во все узлы сетки, соседние с грани­ цей. Модифицированный заряд в этих точках определяется выра­ жением

9?

= ?с—ф*.

(52)

где qc — начальный заряд,

а ф* — заданное

значение потен­

циала на границе. Подставив (52) в разностное уравнение с нуле­ выми граничными условиями, можно убедиться в том, что он» совпадает с уравнением исходной задачи.

7. Неограниченная задача

Для решения уравнения Пуассона в некоторой области необ­ ходимо, чтобы границей области служили электроды с заданным распределением потенциала или чтобы на границе выполнялись некоторые предположения о симметрии потенциала. Следова­ тельно, когда такие условия действительно имеются, решение уравнения Пуассона служит идеальным методом определения потенциала. Однако существуют задачи, в которых требуется найти потенциал, созданный изолированной системой зарядов

вотсутствие каких-либо электродов или симметрии. В этом случае единственным граничным условием служит требование поведенияпотенциала на бесконечности должным образом (логарифмически

вдвумерных задачах). Эффективный метод решения такой задачисостоит в предварительном определении точного значения потен­

§ 3. Итерационные методы и сходимость

173

циала вне границы некоторой области на основании каких-либо других методов, с последующим применением внутри области программы решения уравнения Пуассона, которое теперь допол­ нено необходимыми граничными условиями. Хокни [3] и Холл [20, 21] использовали этот метод для численного моделирования изолированной галактики из звезд-стержней.

Значение потенциала на границе определялось по разло­ жению

СО

 

<p(Z)=Re[a0log24 + 2 i S r ] ’

(53)

i=i

где Z = X + іУ — координаты границы относительно центра

прямоугольника и R = X 2 + У2; L — произвольная константа, которую удобно выбрать равной стороне прямоугольника.

Это разложение справедливо при условии, что все заряды расположены внутри прямоугольника, и в практических расче­ тах мы ограничивались двенадцатью слагаемыми. Комплексные коэффициенты разложения щ вычислялись как различные мо­ менты распределения зарядов в соответствии с определением

N X - 1 N Y - 1

a i= 2

2 { ( 5- ^ ) Я Х +* ( г— ^ - ) H Y } l qs, t . (54)

s — 1

1

Так как суммирование выполняется на регулярной сетке, можно уменьшить число арифметических операций, использовав симметрию. Если N X = N Y = N, то имеется восьмикратная симметрия и число операций, необходимых для вычисления ZMaKC

коэффициентов, можно уменьшить

до (2ZMaKC +

3) N 2.

Вычисле­

ние

рядов

в граничных узлах требует 10ZMaKC./V

операций. При

1Макс

= 1 2 ,

N = 48 полное число

операций составит

6,8-104.

Взяв в качестве среднего времени выполнения одной арифмети­ ческой операции на IBM 7090 20 мкс, получим, что время вычис­ ления граничных условий составит 1,35 с. Фактически затра­ ченное время оказалось равно 1,4 с. Таким образом, счет этих внешне немного измененных граничных условий отнимает в 1,6 раза больше времени, чем решение уравнения Пуассона во всей внут­ ренней области. Однако этот метод согласования граничных условий использует значительно меньший объем памяти и дей­ ствует примерно в 2,8 раза быстрее, чем метод преобразования

Фурье, который будет описан ниже (см. § 4,

и. 2 и табл.

7).

§ 3. И т е р а ц и о н н ы е мет оды и

сходим ост

ь

Итерационные методы решения уравнения Пуассона широко распространены, поскольку они легко программируются. Кроме того, интуитивно понятно, что следует извлекать максимальную

174

Гл. 4. Методы расчета потенциала

пользу из имеющейся информации, а такая информация содер­ жится в потенциале, вычисленном на предыдущем шаге по вре­ мени, который служит хорошим приближением для начала ите­ раций на следующем шаге. Ниже мы излагаем известные резуль­ таты о сходимости наиболее распространенного метода — метода последовательной верхней релаксации (SOR).

1. Итерационный процесс метода SOR

Возьмем в качестве контрольной задачи решение уравнения Пуассона в квадратной области с заданным нулевым потенциалом на границе. Покроем эту область разностной сеткой и X и и исполь­ зуем пятиточечное разностное уравнение

 

фі-1» j + фг+1, 7 + фг. 7-1 +

фг, 7+1 — 4 ф і,

j =

 

=

—4ярг, jh? = qi, і

при

K i ,

— 1,

(55)

где фг, j = 0 при і — 0, п или j =

0, п. Этатак называемая «модель­

ная задача»

подробно изучена

в литературе по численным мето­

дам. Ее преимущество состоит в возможности получения точных аналитических выражений для собственных функций, скорости сходимости и нормы погрешности. Приведенные ниже резуль­ таты взяты нами из монографий Варги [22], а также Вазова и Форсайта [18] и принадлежат ряду авторов, в первую очередь Янгу, Кагану, Голубу и Шелдону.

Метод SOR состоит в систематическом пересчете значений потенциала в каждом узле сетки. При этом необходимо исполь­

зовать две сетки — одну

для

свободных членов quj

и другую

для значений потенциала

ф г,^ .

В этом заключается

отличие от

прямых методов, для которых нужна лишь одна сетка. Сначала

в каждом узле вычисляется

поправка

 

R — Фі-і, 7 + фг+і. 7 + Фг

7-1+ Фг 7-+1—4фг.7 —9г.7,

(56)

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

, нов „стар

I / к> \ и

/ к п \

фг,7=фі,3

+ \ ~ г ) Я ,

(57)

где со — параметр верхней релаксации, который можно изменять для улучшения сходимости процесса. Для «модельной задачи» можно показать [22], что наилучшая асимптотическая сходимость

§ 3. Итерационные методы и сходимость

175

достигается при со = <жь, где

с о ь =

2

и, = cos—

(58)

 

1 + (1 — р2)1/2 ’

*

п

 

Для того чтобы изучить сходимость, определим среднеквад­ ратичную ошибку (пропорциональную норме в Ь г) после t-ж итерации:

71—1

І|е(і)ІІ = ^ г ( 2 (Ф 6-Ф ?.І)2) Ѵ\

(59)

г, j=1

 

где (p*’j — точное решение разностных уравнений. Вектор ошибки на t-ж итерации можно рассматривать как результат действия матричного оператора M (t) на вектор начальной ошибки е<0), т. е.

 

 

g№ = Л/ОТе(°).

 

 

 

(60)

В некоторых процессах,

например

в SOR,

М й)

представляет

собой результат

^-кратного

оператора,

следовательно,

=

= (Ма)У. В других процессах, например

в методе Чебышева,

М (и является полиномом

от

М а\

 

 

 

 

 

Взяв норму

справа и

слева,

получим

 

 

 

 

 

II ею II =

II М

I

I

< II

II Ив<°> II.

 

(61)

Таким образом,

||М (<>||

является

точной

верхней

гранью

мно­

жителя, который характеризует уменьшение начальной ошибки после t операций. Неравенство (61) обеспечивает выполнение двух условий. Во-первых, вне зависимости от начального при­ ближения (и, следовательно, от е<0>) норма ошибки уменьшается по крайней мере в || М ф || раз после t итераций. К сожалению, (61) обеспечивает также существование и некоторого начального приближения, для которого коэффициент уменьшения строго равен всего лишь ||M (t)||.

Чтобы показать, насколько неутешителен этот результат, мы приводим на фиг. 7 зависимость || М а) || от t для итерационного процесса SOR на сетке 128 X 128, в котором узлы во время ите­ раций берутся в нечетно-четном порядке. Это означает, что сначала корректируются значения потенциала во всех нечетных узлах [т. е. в узлах, для которых (і + j) нечетно], а затем во всех четных. Такой порядок аналогичен выбору сначала всех белых, а затем

всех

черных полей

шахматной доски. Для этого случая || М {і) ||

можно

вычислить

аналитически [22]:

 

 

 

IIм т и= { т + ( ■ + 1) ' } к ' ■-1 >"2 •

(62)

 

 

 

где

р =

cos я In.

 

 

176

Гл. 4. Методы расчета потенциала

Фиг. 7 показывает, что для сетки 128 X 128 во время первых 20 итераций ошибка может вырасти в 30 раз по сравнению с ее первоначальным значением и что нужно п ( — 128) итераций для уменьшения ошибки до начальной величины. Чтобы обеспе­ чить уменьшение ошибки до ~1%, необходимы 233 итерации,

Ф и г . 7. Теоретические границы изменения максимальной возможной нормы вектора ошибок (по отношению к его начальному значению) в зависимости от числа итераций.

Оценки даны для методов SOR, Гаусса — Зайделя и Чебышева при использовании нечетно-четного порядка пересчета на сетке размером 128 х 128.

а для уменьшения ее до ІО-6 — 432 итерации. Эту зависимость следует сравнить с прямым методом, который дает решение с ошиб­ кой 10-12 за время пяти-шести итераций метода SOR.

Результат будет другим, если узлы корректируются в порядке, отличном от нечетно-четного. Естественнее и проще пересчитывать значение потенциала в узлах один за другим построчно, в той же последовательности, в которой расположены слова на странице книги (так называемый «машинописный порядок»), однако автору неизвестны аналитические оценки для || М а) || в этом случае.

Программа процесса SOR была написана для CDC 6600. Ее внутренний цикл был тщательно запрограммирован на автокоде COMPASS и целиком содержится в быстром восьмисловном бло­

Соседние файлы в папке книги из ГПНТБ