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

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

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

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

157

Неизвестные, связанные между собой одним уравнением, обозна­ чены точками на фиг. 4, а. На этой фигуре четные ряды узлов показаны сплошными линиями, а нечетные — пунктирными.

Переходим к описанию отдельных этапов алгоритма FAGR.

а. Нечетно-четная редукция

Рассмотрим три последовательных уравнения

фг-2 +

+ ф і

= ф

г 1 - i

 

 

ф«-і + ^фі + фж

= q t,

t — четно,

(16)

 

Фt + Aq>t+i + фг+2 = q<+i•

 

Умножая промежуточное четное уравнение на —А и складывая все три уравнения, получаем

Ф< - 2 + (2/ И2) ф( + фг+2 = ф*, t — четно,

(17)

где свободные члены четных уравнений модифицированы

q* = q?-i Aqt + 4t+i, 0 < t (четное) < N Y .

(18)

В новые уравнения (17) входят неизвестные только с четных рядов сетки. Неизвестные, связанные одним уравнением, указаны на фиг. 4, б точками. Процесс нечетно-четной редукции сводится, таким образом, к модификации свободных членов qf во всех четных узлах по формуле (18). Модифицированное значение свободного члена после вычисления записывается на место старого значения.

Эта модификация выполняется подпрограммой RHSE и тре­ бует

2,5 -N X -N Y

(19)

операций.

б. Разложение Фурье на четных строках

На четных строках разложение в конечную сумму Фурье выполняется по формуле

 

фз, t =

1

1

t ( — 1)S +

 

Y

Фо, t+ -П - фіѴХ/2,

,

N X / 2 -1

Г c

2nks , s

. 2nks 1

-er

 

h=i

 

N X

( 20)

 

 

 

 

 

 

 

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

где коэффициенты Фурье заданы выражениями

 

2

N X - 1

 

2n k s

с

-чгп

 

Фh. t = JfX

2j

Ф*- 1C0S NX

 

 

s=0

 

( 21)

 

N X - 1

 

 

2

s=0

 

ю Г

Щ, t = ~NX

S

^ .(S in

2nks

 

Ваналогичной форме представляются величины q*,u q°h’t, %, f Это преобразование не содержит обрывания бесконечных рядов

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

Подставляя разложение (20) в уравнения для четных строк (17) и используя разностные соотношения ортогональности, полу­ чаем

 

 

4>k,t-z + kk4>h,t + 4 k.t+2 — <lh,u

г—четно,

(22)

где

ф и

q* — коэффициенты

при синусах

или

косинусах и

 

 

 

4 = - 2

( 8 - 8 c o S -^L + c o s ^ J ) .

(23>

Так как выбранные синус- и косинус-гармоники являются

собственными векторами матрицы А, выражения (22) дают

N X

независимых систем из NYI2 уравнений, по системе для каж­

дого

из

N X коэффициентов

Фурье (NX — 1

коэффициентов

при синусах и N X + 1

коэффициентов при косинусах). На фиг. 4, в

показаны узлы, связанные этими уравнениями.

Этот этап выполняется подпрограммой FOUR67, и он требует

0,5 -NX -NY [2,5 log2 N X - 3,5]

(24)

операций.

в. Рекурсивная циклическая редукция

Уравнения для коэффициентов Фурье можно сокращенно пере­

писать в виде

 

Фг_2 + Яфг + фг+2 = qt, t — четно,

(25)

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

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

150

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

Входящие в уравнение (25) переменные со смежных узлов сетки можно исключить с помощью той же процедуры, которая использована на этапе нечетно-четной редукции. Нужно лишь заменить матрицу А в уравнениях (16) — (18) скаляром Я. Перво­ начально система содержит NY/2 неизвестных (только величины четных строк), а после однократной редукции остается N Y!4 неизвестных. Эта система уравнений по-прежнему имеет трехдиагопальную форму и сохраняет вид исходной системы. Един­ ственное отличие состоит в величине центрального коэффициента. Таким образом, процесс циклической редукции можно повторять,,

получая

системы

для ІѴУ/8

неизвестных,

N Y / 16

неизвестных

и наконец единственное уравнение.

 

 

 

 

На уровне редукции I уравнения имеют вид

 

 

 

Ф4_2г +

^(г)Фг +

Ф(+2г:==^ 0’

* = 2г шаг 2£

до N Y — 21,

(26)

а

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

соотношения

для

центрального

коэффициента

и свободного члена суть

 

 

 

 

 

 

 

№ » = 2 - ( Щ * ,

 

 

+

 

(27)

с

начальными значениями

 

 

 

 

 

 

 

 

 

,-ДІ)

_

 

 

(28)

 

 

 

 

4t

—4t, h-

 

 

Последнее уравнение, получающееся при l = L = log2 N Y — 1, связывает неизвестные в узлах t = N Y 12 с неизвестными в t — О и t — NY. Значения в двух последних узлах известны из гра­ ничных условий. Следовательно, центральная неизвестная опре­ деляется путем деления:

I n Y/2 Фо

Ф-ЛГУ

(29)

ФЛГУ/2 =

 

В случае периодических граничных условий или условий с нуле­

вой

производной

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

до уровня

I =

= L — log2 NY. При этом для определения неизвестных на

гра­

нице используется симметрия граничных условий.

 

 

Для

IBCY =

3 при I = log2 N Y имеем

 

 

 

 

 

ф - А ' У + Я(ІЭфо + ф д г у = g'L),

 

 

но

фо =

ф-іѵу =

Фіѵу вследствие периодичности,

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

Фо Я(Ь)+2

160

 

Г л . 4 .

М е т о д ы

р а с ч е т а п о т е н ц и а л а

 

С другой

стороны,

если

IBCY = 2,

то при l = log2 N Y

полу­

чаем уравнения как для ф0,

так и для ф^у:

 

ф- N Y +

^ Ф о + фіѴУ =

 

Фо + ^(І,)фіѴУ + Ф2 ІѴУ = 0.NY-

 

Однако из

условия обращения в

нуль производной

имеем

Ф-іѵу = Ф^у

и фгіѵУ = Фо. поэтому

 

 

 

^ Ф о + 2фѴУ = q№>, 2ф0 -f- X^(fiNY ?ivY’

 

Решения этих уравнений запишутся в виде

 

 

 

k (LV oL) — 2 9 ;v y

 

 

—2qiL)+ kéxY

 

Фо =

^(0)2 _ 4

CpNr=

(^0)2 _ 4 •

 

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

Ф* = (5*°—Ф*-2* —Ф*+2*)

Г l = L -

1........ 1,

(30)

і t = 2l

шаг 2г+1 до N Y —2г.

 

В правую часть входят только известные величины, вычис­ ленные на предыдущем уровне рекурсии.

Если нигде на границе не заданы значения неизвестных (ІВСХ ,

IBCY Ф

1).

то система

уравнений

для

нулевой гармоники

Фол (0 <

* <

NY) вырождается. Одно из

уравнений

системы

оказывается

лишним, так

как при

таких

граничных

условиях

на решение уравнения Пуассона накладывается дополнительное физическое требование: полный заряд внутри рассматриваемой области равен нулю. При этом потенциал определен с точностью до константы и на решение задачи можно наложить дополни­ тельное линейное ограничение. В подпрограмме Р0Т1 мы из сооб­

ражений удобства

выбрали

 

Фо, о = 0

если IBCY = 3 и

фо, о + фо, ny = О,

 

если IBCY =

2.

Такое допущение подразумевает, что уровень потенциала подобран так, чтобы средний потенциал на линии t = О (или на линиях t = 0 и t ~ NY, если IBCY = 2) был равен нулю. Если полный заряд на сетке оказался не равным нулю, то реше­ ние по подпрограмме Р0Т1 предполагает, что добавлен постоян­ ный заряд, обращающий полный заряд в нуль. Этот постоянный заряд добавляется во всех узлах самого нижнего ряда (t = 0)

 

 

§ 2 .

П р я м ы е м е т о д ы

161

при

IBCY =

3 или во всех узлах верхнего и нижнего

рядов

(t =

0 и t =

7VF) при IBCY

= 2.

 

Для решения системы п уравнений методом циклической редукции требуется примерно 6п операций. А поскольку остав­ лены лишь четные ряды, полное число операций составляет

3 -NX -NY.

(31)

Уравнения решаются подпрограммой GRED.

г. Обратное преобразование Фурье на четных рядах

Решение уравнения (25) методом рекурсивной циклической редукции дает амплитуды всех гармонических составляющих потенциала на четных рядах разностной сети. Чтобы определить значение потенциала в этих рядах сетки, в них с помощью под­ программы FOUR67 выполняется обратное преобразование Фурье.

Необходимое для этого число операций составляет

0,57VX -NY [2,5 log2 N X - 3,5].

(32)

Этим этапом достигается стадия, указанная на фиг. 4, г.

д. Решение на нечетных рядах сетки

Значение потенциала в нечетных рядах можно найти из исход­ ных нечетных уравнений (13), подставляя в правую часть изве­ стные значения потенциала в соседних четных рядах.

Эти уравнения имеют вид

А% = q< — фг-1 — <р*+і> г —нечетно.

(33)

Так как матрица А образует трехдиагональную систему вида (25) с Я = — 4, для определения потенциала в нечетных рядах можно вновь применить подпрограмму циклической редукции CRED. Предварительно нужно преобразовать свободные члены уравне­ ний, что выполняется подпрограммой RHSO. Полное число операций, необходимое для вычисления потенциала в нечетных строках, составляет

4 -NX -NY. (34)

е. Полное число операций

Полное число операций равно

2,5 -NX -NY [log2 N X + 2,4].

(35)

Заметим, что полное число операций пропорционально количе­ ству узлов сетки (NX-NY), если не считать очень слабой лога-

11-01236

162

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

рифмической зависимости. Взяв N X = N Y = 128 и 2 мкс на опе­ рацию, получаем 3,8-ІО5 операций и 0,77 с. Фактическое время счета на CDC 6600 составило 0,75 с.

Приведенные выше оценки относятся к случаю периодических по координате х граничных условий ІВСХ — 3, который наиболее удобен для применения разложения Фурье. Для условий с задан­ ными значениями на границе или с нулевым градиентом (ІВСХ = = 1 или ІВСХ = 2) необходимое для преобразования Фурье время примерно в 2 раза больше и число операций принимает значение

5N X -NY [log2 N X + 0,3].

(36)

Однако, как уже упоминалось, путем усовершенствования программы, выполняющей преобразования Фурье, это число, по всей вероятности, можно приблизить к соответствующему числу в периодическом случае (35).

ж. Полный объем памяти

На всех этапах расчета а д вновь вычисленные величины можно записывать на место тех, из которых они получены. Сле­ довательно, в основной памяти хранится сама сетка из N X -NY узлов. Кроме того, в программе преобразования Фурье исполь­ зуется 3N X вспомогательных ячеек (для хранения массивов У, Z, INDEX, SI) и еще N X ячеек для хранения коэффициента каждой гармоники (массив АКХ), что составляет всего

N X -NY + 4NX машинных слов.

(37)

з. Время расчета

Втабл. 3 дано машинное время для сетки 128 X 128 при всех девяти возможных типах граничных условий. В колонке ошибок дано максимальное отклонение известного точного решения разностных уравнений от решения, найденного подпрограммой РОТ1. Точное решение лежит в пределах от —Ѵ2 до Ѵ2. Найден­ ная ошибка примерно в 500 раз превышает точность представ­ ления чисел на CDC 6600. Это примерно согласуется с ожидае­ мым результатом случайного сложения 3,8 НО5 ошибок округле­

ния х), поскольку Y 3,8 НО5 = 618.

Табл. 4 дает затраты машинного времени в зависимости от размера сетки при фиксированном типе граничных условий. Время счета растет несколько медленнее, чем линейно, с ростом числа узлов сетки. Хорошо оправдывается следующая грубая оценка: время счета составляет 50 мкс на один узел сетки.

В При N — 128 требуется 3,8 -ІО5 арифметических операций.

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

163

Таблица 3

Затраты машинного времени и величина ошибки при использовании подпрограммы РОТ1 на сетке 128x128 для различных типов граничных условий

 

CDC

6 6 0 0 а

IB M

3 6 0 /6 7 6

І В С Х

I B C Y

 

 

О ш и бк а 8

 

В р ем я , с

О ш и бк а 8

В р ем я , с

1 или 2

1

0,91

2,0-10-1''

4,71

 

2

0,94

2,2-10-12

4,85

 

3

0,93

1,4-10-12

4,79

3

1

0,75

1,6-10-12

3,53

 

3,64

 

2

0,77

3,7-10-12

 

3,58

 

3

0,76

1,4-10-12

 

 

а А в т о к о д C O M P A SS .

0,8-10-4

2,2-10-4

К*

to

н* О1

1,2-10-4

1,9-10-4

3,2-10-4

6

В т о р о й в а р и а н т (у р о в ен ь Н ) к ом п и л я то р а с

Ф ор тр ан а XV

д л я м о дел и 6 7 - 1 .

в

Р а з л и ч и е в в е л и ч и н е ош и б о к о т р а ж а е т р а з

н и ц у в д л и н е

сл ова обы ч н ой точ н ости

у р а с с м а т р и в а е м ы х м аш и н .

Таблица 4

Машинное время, необходимое для решения двумерного уравнения Пуассона методом FACR на сетках различного размера

при использовании подпрограммы РОТ1

для І В С Х = 3, I B C Y = 1

 

 

 

 

СХЭС 6 6 0 0 а

 

 

 

IB M

3 6 0 /6 7

6

С етка

В р е м я , с

О ш и бк а

В р ем я , с

 

О ш и бк а

 

 

3 2 x 3 2

0

, 0

5

6

1 , 7 - 1 0 - 1 3

0

, 2

1

9

4 , 5 - 1 0 - 5

6 4 x 6 4

0

, 1

9

6

4 , 4 - 1 0 - 1 3

0

, 8

7

9

6 , 5 - 1 0 - 5

1 2 8 x 1 2 8

0

, 7

4

6

6 , 7 - Ю - і з

3

, 5

2

7

 

1 , 1 - 1 0 - 4

2 5 6 X 2 5 6

2

, 9

5

4

1 4 , 5 3 9

 

5 , 4 - 1 0 - 4

а А в т о к о д C O M P A SS .

 

 

 

 

 

 

 

6 В т о р о й

в а р и а н т

(у р о в ен ь

Н ) к о м п и л я то р а с

Ф о р т р а н а

д л я м одел и

6 7 -1 .

4. Метод DCR Бунемана

а. Алгоритм

Бунеман [13] разработал интересное обобщение процесса нечетно-четной редукции — метод двойной циклической редук­ ции (DCR). Он заметил, что уравнения для четных рядов тожё

11*

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

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

Переобозначим для удобства исходные разностные уравнения

на некотором ряде сетки:

 

Фяі ~ В<0>(Рі + Фя-і = — 2рГ т

(38)

где ВЫ — трехдиагональная матрица с элементами {—1, 4, —1},

апропорционально известному свободному члену.

Первый шаг нечетно-четной редукции приводит к новой систе­ ме уравнений для четного ряда узлов сетки,

фу-2— £ ШФ/ + Фя-2= —2p)1\

(39)

Где ВЫ = (5(°>)2 - 21 и = В») p f + р<°Л +

р<•%.

Новое уравнение (39) имеет ту же форму, что и уравнение (38), и, следовательно, процесс можно повторять по рекурсивной формуле

ф і-г^-В ^ф і+ ф і+ г1— — 2р(^,

(40)

1 Б<Ч-і>= (5<«))*_ 2/|

log2 n'

 

 

 

 

рГ

^

рР + р^

+ рЙ -,..

(41)

где I — уровень редукции,

а п — исходное количество

рядов

сетки.

 

редукции

сводится к модификации

Алгоритм однократной

свободного члена р® по формулам (41), до тех пор пока не оста­ нется единственное уравнение. На фиг. 5 показаны ряды, свя­ занные на различных уровнях редукции, в случае 16 узлов.

Для получения решения уравнения (40) определим обратный шаг алгоритма рекуррентной формулой

Фі = (B(0)_1 [2pf + фі+2г + Фі_2*] Для Z= log2«, . . 0 .

(42)

Отметим, что значения

потенциала в правой части известны,

так как они были вычислены на предыдущем уровне.

 

Матрицы 5® быстро

заполняются ненулевыми

элементами

(#(°) — трехдиагональна,

ВЫ — пятидиагональна,

ВЫ — девя-

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

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

165

рекурсии. Процедура, однако, существенно упрощается, если представить В<г> в виде произведения 2l трехдиагональных

I

о

!

г

з

Ф

Х

Х

Х

Х

Х

Х

Х

Ф

ф

 

 

 

 

X

 

X

 

 

 

 

 

 

X

 

 

 

Ф и г . 5. Столбцы, связанные на различных уровнях редукции в алгоритме

DCR.

С толбцы н еи зв ест н ы х вел и ч и н п о к а за н ы к р ести к ам и ,

а р я ды

и зв естн ы х гр ан и ч н ы х зн а ­

 

 

чен и й — к р у ж к а м и .

 

 

 

 

матриц:

- 4

1

0

0 ..,. 0

 

0

0

 

 

В ш =

1

- 4

1

0 .,.. 0

 

0

0

0

1 - 4

1 . .. 0

0

0

 

о ’

о •

о .

о •

о ■

1

•‘äf . і ■

Сначала рассмотрим матрицу

 

 

 

 

 

 

В а>=

2 і = (jgcw + у 2 1 ) (Вш - У

2І),

которая является произведением двух трехдиагональных матриц. Затем рассмотрим

В ш = (Я11’)2 - 21 = (Ваі + У 21) (Ва) У Щ =

 

= ((Вт)2— (2 — У 2)1) ((Bw>)2— (2 + У 2) I).

(43)

Следовательно, матрица

Б (2> = (Вт - у У ‘2,У 2 1) {Bw - V 2 — Ѵ 2 I) х

X (В<т-{-У2 У~2 I) { В ^ - Ѵ 2 + У 2 І )

будет произведением четырех трехдиагональных. Очевидно, что процесс повторяется, и нужно лишь вычислять и запоминать

166

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

диагональные элементы матриц-сомножителей. Элементы верхней и нижней диагоналей всегда равны —1. Общая формула такого факторизованного представления была дана Базби и др. [14].

Диагональный элемент матрицы Z?« быстро возрастает и имеет

порядок 42*. Для сетки 128 X 128 I = 7 и диагональный эле­ мент будет иметь порядок ІО78, что приведет к переполнению для некоторых вычислительных машин (например, для серии IBM 360 с максимальным представимым числом ~ 1075). Во всяком случае, для весьма небольших п переполнение произойдет на любой из существующих ЭВМ, если в ней использована встроенная длина действительного числа. (В GDC 6600 с максимальным вещественным числом ~10307 переполнение случится для сетки 512 X 512.) Можно хранить показатель экспоненты в виде отдель­ ного целого числа и иметь специальную подпрограмму для пере­ множения чисел в форме с плавающей запятой, однако лучше использовать исправленную форму рекуррентного соотношения, которое содержит умножение на матрицу, обратную к В, вместо бамой матрицы В. В этом случае может произойти скорее обра­ щение величины в машинный нуль, чем переполнение, что не создает трудностей, так как в большинстве ЭВМ обратившаяся в нуль величина автоматически заменяется точным нулем и вычис­ ления продолжаются.

Примененные Бунеманом [13] исправленные рекуррентные соотношения должны на каждом уровне редукции строить пере­

менные

 

 

<*>

 

„(г-i)

<г-1)

со I

 

 

 

 

 

 

 

Р?+1) = :(Я<0)-Ч2рУ

-Pj-ft

— Pj+ft

+Vi-2h +

 

 

 

+ P;+2ft— P j- 3 f t +

Pj+3ft] +

1

(44)

 

 

rn®

„ ( И

I

„Й

 

при 1 =

1, .

. ., IP; — P j-ft

PjJ-/(

+

P j - 2 f t +

Pj+2/iJ

 

 

 

log2 n, где

h

=

2<!-1>,

 

 

 

P? = ( В ^ Г 1[2pn

+

[pf- 1+ Ря-i]

при l = 0.

(45)

Если

для

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

имеются раздельные

сетки,

то можно использовать несколько более простую форму этих рекуррентных соотношений.

Неизвестные значения потенциала вычисляются во время

обратного хода

рекурсии по соотношению

 

— Pi+ft*]

(46)

(В№)

 

\-h

при I45'=log2 п,1 [2. р.^-.,^-j—ф7-_2Н —Н ФЛ-2Л.] + [ р ^ — Р

 

 

1, где h = 2(1_15

 

 

 

Здесь' опять на всех стадиях значения потенциала, входящие

в правую часть,

известны. При 1 = 0 используются исходные

уравнения

 

 

 

 

45' = ( В <0>) 1 [2 р )0) 4- 45'-і -|- 45-и] •

(47)

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