книги из ГПНТБ / Вычислительные методы в физике плазмы
..pdf
|
|
|
|
§ 2. |
Прямые методы |
|
|
|
|
|
147 |
|||
|
|
|
1. |
Описание программы |
|
|
|
|
|
|
||||
Вычисления проводятся на прямоугольной сетке х, у (NX Ф |
||||||||||||||
Ф NY), причем шаги сетки могут |
быть неравными (Н Х Ф HY). |
|||||||||||||
В расчетах |
может |
использоваться |
N — 1, |
N или N + 1 |
|
узлов |
||||||||
в зависимости |
от рода граничных условий, но в любом случае |
|||||||||||||
|
|
Заданный |
граничный потенциал (IBCY=1) |
|
|
|
|
|||||||
NY=8 Г- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 + |
+ |
+ |
|
|
|
|
|
|
|
|
|
|
|
|
I |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
і |
+ |
+ |
|
|
|
|
|
|
|
|
|
; |
Ö |
|
ß + |
|
|
|
|
|
|
|
|
|
|||||
I |
|
|
|
|
|
|
|
|
|
|
|
r |
|
|
+ |
+ |
|
|
|
HX |
|
|
|
|
! |
I |
|||
5 + |
|
|
|
|
|
|
|
|||||||
|
|
|
+ r |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
4 i |
+ |
+ |
|
|
|
HY |
|
|
|
|
|
1 ^ |
||
|
|
|
„ -L |
+ |
+ |
+ |
+ |
|
||||||
|
|
|
|
|
+ ^ |
|||||||||
I |
|
|
|
|
|
|
|
|
|
|
|
! |
I |
|
3 t |
+ + |
+ |
+ |
+ |
-*- + |
+ + + |
+ |
+ |
+ |
+ |
1 |
Qj |
||
! |
§ |
|||||||||||||
|
|
|
Заданный |
заряд (Неизвестный потенциалj |
|
|||||||||
|
|
|
|
|
|
|
L . |
|
\ |
|
|
|
|
|
Ф и г . 1. Примерный вид задачи, решаемой с помощью подпрограммы РОТ1.
Сетка периодически продолжена в х-направлении (І В С Х = 3), а на границе по коорди нате у потенциал принимает заданные значения (1BCY — 1). Число узлов по направле
ниям ж и у не совпадает (IQX |
= 4, |
I Q Y = 3), так что |
основная ячейка сетки имеет |
форму прямоугольника ( НХ ф |
HY). |
Вначале значения |
потенциала заданы в обозна |
ченных точками узлах сетки, а значения зарядов — в узлах, обозначенных крестиками.
Подпрограмма |
заменяет |
эти значения зарядов |
на вычисленные |
значения потенциала |
|
|
|
в тех же узлах. |
|
|
|
число N |
должно |
быть степенью |
основания |
2 |
(NX = 2ІС?Х, |
N Y = 2z<2y). Это |
ограничение упрощает программу |
разложения |
|||
Фурье, в особенности при использовании метода быстрого преоб разования Фурье [7—9]. Оно упрощает также процесс рекурсив ной циклической редукции на шаге «в» в подпрограмме решения уравнения Пуассона. По координате х программа допускает три различных типа граничных условий, задаваемых параметром ІВСХ, и аналогично три различных типа граничных условий, определяемых параметром IBCY, допускается по координате у. Возможны все девять комбинаций этих граничных условий. При
10*
148 |
Гл. 4. Методы расчета потенциала |
этом |
допустимые граничные условия задаются следующим |
образом.
IВ СХ = 1. Потенциал на границе принимает заданные зна
чения, сведенные |
в массивы ф0, t |
и Фіѵх.ю перед входом в под |
|||||||
программу РОТ1. |
По зарядам qlt t ■■■ |
<> заданным в узлах |
|||||||
1 . . . (NX — 1), программа вычисляет потенциал в этих |
|
точках. |
|||||||
ІВСХ = 2. Поле равно нулю |
при s = 0 и s = NX. |
|
Выпол |
||||||
нение этого |
условия достигается |
предположением |
о симметрии |
||||||
Фі, t = ф_і, і |
и фіѵх+і, t = ^ nx-i, t- |
Заданное сначала |
в |
узлах |
|||||
О . . . N X |
распределение зарядов |
q0 . . |
. qnx. t программа |
преоб |
|||||
разует в значения потенциала. |
|
|
|
|
|
|
|||
ІВСХ = |
3. Все функции периодичны по х, т. е. ф_8, t — q>Nx-s, t- |
||||||||
Заданные перед входом в программу |
в узлах 0 . . . N X — 1 |
||||||||
значения |
зарядов |
q0, t . . . qNx-\ |
t |
преобразуются |
в |
значения |
|||
потенциала. |
|
|
|
|
|
|
|
|
|
Аналогично определены возможности IBCY = 1, 2, 3.
Для обращения к этой программе необходимо задать вели чины IQX, IQY, HX, HY, ІВСХ, IBCY и распределение заря дов, а в случае ІВС = 1 — граничные значения потенциала. Для примера на фиг. 1 показана сетка задачи при IQX = 4,
IQY = 3, ІВСХ = 3, IBCY = 1.2
2.Программа разложения Фурье
Все, за единственным исключением, прямые методы вычисле ния потенциала основаны на преобразовании Фурье с конечным числом членов. Поэтому мы сначала опишем подпрограмму FOUR67, предназначенную для выполнения вещественного фурьепреобразования заданной в п узлах вещественной сеточной функции.
Идея метода восходит к Рунге [10] и заключается в том, что члены с общим множителем группируются прежде, чем выпол няется умножение. Процесс группировки содержит только опера ции сложения и вычитания, и его можно интерпретировать как перегибание пополам графика заданной сеточной функции, после чего совместившиеся значения функции складываются или вычи таются. Хокни [11] систематизировал этот процесс. В прило жении А дана программа FOUR67 на языке Фортран IV. Пере гибание сеточной функции осуществляется подпрограммами TFOLD и TFOLD1. Такое перегибание продолжается до тех пор, пока синусоидальные функции сохраняют свойство симметрии, после чего коэффициенты Фурье выражаются существенно уко роченными суммами. В этих укороченных суммах уже нельзя избежать перемножений, и они вычисляются подпрограммой KFOLD с помощью рекурсивной процедуры, аналогичной алго ритму быстрого преобразования Фурье. Подпрограмма FOUR67
§ 2. Прямые методы |
149 |
имеет два входных параметра IQ и ІВС, которые задают коли чество узловых точек задачи и граничные условия аналогично тому, как это определялось параметрами подпрограммы РОТ1.
ІВС — 1. Прямое или обратное синус-преобразование опре деляется формулой
71=1 |
|
Y k = ^ Zss i n ( ~ ) , l < Ä < r a — 1. |
(4) |
S = 1
Переход к фурье-образу и обратный переход по этой формуле приводят к умножению исходной сеточной функции на га/2.
ІВС = 2. Прямое или обратное косинус-преобразование опре деляется формулой
|
П |
|
|
|
П = |
2 E(s, |
ra)2Zsc o s ( - ^ ) , OCfcCra, |
(5) |
|
где |
s—О |
|
|
|
|
|
|
|
|
|
Г 1/ |
У 2 , |
если і = О, |
|
Е (і, |
і) = \( . 1 . |
в остальных случаях. |
|
|
Последовательный переход к фурье-образу и обратно по формуле
(5) приводит к умножению исходной функции на га/2.
ІВС = 3. Разложение в ряд Фурье определяется формулами
Y h = 2 2 Е (к, I ) Zsc o s ( - ^ ) , |
OCAC - J - , |
(6) |
Y h = 2 2 Z,sin |
+ l < f c < n - l . |
|
s=0 |
|
|
ІВС = 4. Переход от коэффициентов Фурье к исходной функ ции определяется формулой
|
п/2 |
|
|
cos I12nsk j 1 |
|
|
У ,= |
2 2 Е |
(»■ - г ) 1 |
|
|||
71-1 |
k=Q |
|
|
|
|
|
|
Г2ns (к—■п/2) П |
0</s<;ra— 1. |
|
|||
2 |
|
(7) |
||||
ZhSin L |
п |
|
||||
ft=n/2+l |
|
|
|
|
|
|
Последовательное применение операций разложения в ряд Фурье
(6) и суммирования ряда (7) приводит к умножению исходной функции на 2га.
150 |
Гл. 4. Методы расчета потенциала |
Перегибание сеточной функции осуществляется подпрограм мой TFOLD в соответствии с формулами
Л /с |
__ у(0 |
у(^) |
y(t+1)_ |
у'(0 |
+ z^_ |
— L i о |
----- z > m — |
Лтп—S |
^ |
||
|
|
=0, 1, |
m |
|
(8) |
|
|
1 Г |
|
Выполнение перегибания сеточной функции, состоящей из чи стых гармоник (а в виде линейной комбинации последних пред ставима любая функция), показано на фиг. 2. Мы рассматриваем
Ф и г . 2. Разделение гармоник с помощью перегибания.
Показано изменение содержания массива Z при разложении в ряд по 16 точкам. Во избе жание путаницы на каждом уровне изображено только несколько первых гармоник.
L — размер складки.
периодический случай (ІВС = 3). Первое перегибание отделяет синусоидальные составляющие от косинусоидальных. Последую-
§ 2. Прямые методы |
151 |
щие перегибания и тех и других компонент постепенно разделяют гармоники на группы. Первая группа состоит из гармоник с нечет ными номерами, вторая — из гармоник с номерами, образован ными умножением нечетного числа на два, затем на четыре, на восемь и т. д. Когда гармоника уже не допускает дальнейшего перегибания, она принимает одну из двух форм:
/і-і |
( я ks \ |
|
/і-і |
|
|
t |
ks \ |
|
2 |
ИЛИ |
■ чгі |
a° |
/ J |
||||
а*81. П( т і Г ) |
|
|
||||||
s—0 |
|
|
Zi |
|
COS[ - r — ) ’ |
|||
|
|
s—О |
|
|
|
|
||
|
О <Ск |
(нечетное) < |
2h. |
|
(9) |
|||
Эти суммы гораздо короче чем исходные, а область измене ния аргументов синусов или косинусов измеряется полуцелым значением л.
Такие укороченные суммы вычисляются с помощью рекурсив ной процедуры, сходной по замыслу и скорости с алгоритмом быстрого преобразования Фурье. Однако эта процедура имеет некоторые особенности, так как она была разработана для непо средственного вычисления вещественных сумм (9) по интервалам, измеряемым полуцелыми значениями я, минуя вычисление ком плексных сумм по интервалам, кратным 2я, которые входят
валгоритм быстрого преобразования Фурье. Введем рекуррентные соотношения
S?+i) (к) = S ? (к) + {cos(Ѳ) S%hK2m) (к) + sin (Ѳ) C%h/(2m) (к)},
Sf+m2m) (4/n — к) = — Sf'* (к) + (аналогично), |
|
|||||
C(rt+1) (к) = |
(к) + (cos(0) Cf+hK2n) {к) - |
(10) |
||||
|
|
— sin (Ѳ) <Sf+/i/(2m) (Щ, |
|
|||
Сг+л/(2т) №т — к) = |
(к) — (аналогично) |
|
||||
для t = 0, 1 . . . Т — 1, где |
Т — log2 h. |
t. |
||||
Параметры |
m |
и Ѳ зависят |
от |
уровня рекурсии |
||
|
|
in — 2l, |
Ѳ |
як |
|
|
|
|
Тѣ ’ |
|
|||
|
|
|
|
|
|
|
соотношения |
(10) |
применимы |
для |
|
|
|
г = 0, |
1, |
— |
1, |
1<;/Ь (нечетное)< ;2т — 1. |
||
Начальные условия задаются значениями S° (1) и С® (1). Если S™ = IS'“’ = 0, то результатом применения рекуррентных
152 Гл. 4. Методы расчета потенциала
соотношений |
будет |
|
|
|
|
|
|
Л-1 |
|
|
|
s p |
№ = |
2 |
№ |
. (1) + CT (1)) sin ( - f £ ) , |
|
|
|
s — 0 |
|
|
|
|
|
Л -1 |
|
|
|
C<T>(*) = |
2 |
( - |
^ s(l) + C r ( l ) ) c o s ( - ^ ^ ) , |
(H) |
|
|
|
s = 0 |
|
|
|
|
|
l<;/c |
(нечетное) <12h—1. |
|
|
Подходящим выбором начальных условий можно получить любые требуемые суммы. В случае периодических граничных условий
1
У ровень t
|
|
|
|
Ф ( * ) |
|
|
|
|
|
|
Ф ( к ) |
|
|
|
|
|
||
г |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
0 |
1 |
2 |
3 |
4 |
|
5 |
6 |
7 |
|
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
m |
|
•— г — |
ff |
1tNi |
|
•—г — ».------ h / 2 т------ |
|
1 |
|||||||||||
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 т - к |
|
|
|
/г |
|
|
|
4 т ~ к |
|
|
||
1 |
1 |
1 |
1 |
1 |
3 |
3 |
3 |
3 |
1 |
1 |
1 |
1 |
3 |
|
3 |
3 |
3 |
|
г |
1 |
I |
7 |
1 |
3 |
1 |
|
1 |
/ |
I |
|
1 |
3 |
|
1 |
5 |
1 |
|
1 |
7I |
3I |
5 5 |
1/і |
7 7; |
|
31 |
5; |
г |
|||||||||
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4
3 |
/ 1 / 5 19 |
3 1/5 5 111 / 1 / 5 7 1 9 3 113 5 111 |
|
НС ум7нм ы |
п о Нс и н у с а мн нС ум мны по к оНс и н уса мн |
Ф и г . 3. Формирование и хранение сумм для различных значений к при рекурсивном обращении к соотношениям (1 0 ).
Целые числа в центральной части означают величину h в суммах на различных уровнях рекурсии, а стрелки указывают позиции, объединяемые в частичные суммы на каждом уровне.
суммы по синусам и косинусам для выделенного набора гармоник могут быть получены одновременно однократным применением рекуррентных соотношений.
Эти рекуррентные соотношения использованы в подпрограмме KFOLD, и на фиг. 3 показано, каким образом сочетается хра нение переменных в машинной памяти на разных уровнях рекур
сии. На всех уровнях новые значения записываются на место старых.
Количество вещественных арифметических операций (т. е. операций сложения, вычитания, умножения и деления), необ
§ 2. Прямые методы |
15» |
ходимых для получения образа Фурье от заданной в N точках вещественной сеточной функции, определяется следующим обра зом.
Синус-преобразование:
ІВС = 1, |
5 # log2 N - 8N + |
6, |
N > 4 . |
||
Косинус-преобразование: |
|
|
|
|
|
ІВС = 2, |
5N log2 N — 8N + 12, |
N > |
4. |
||
Разложение в ряд: |
|
|
|
|
|
|
ІВС = 3 |
или 4 |
|
|
|
2,5N log2 N - 3,5N + |
21og2 N + |
5, |
N > |
8. |
|
Однако в последующих оценках с достаточной точностью' можно ограничиться первыми двумя членами приведенных выра жений.
Сравним число операций для периодических граничных усло вий с аналогичной характеристикой обычного быстрого преоб разования Фурье (см. [12]). Взятая из этой работы оценка дает 2,5N log2 N — 1,25# арифметических операций для ^-точечной вещественной сеточной функции и показывает, что подпрограмма FOUR67 может оказаться значительным шагом вперед по сравне нию с обычным алгоритмом для преобразования Фурье веще ственной сеточной функции. Однако на практике это преиму щество может быть утрачено ввиду крайней сложности алго ритма.
Проведенное недавно усовершенствование метода быстрого преобразования Фурье, как сообщил автору Кули, показало, что синус- и косинус-преобразования требуют не больше времени, чем разложение в полный ряд. В этом случае оценки числа опе раций и времени счета, данные ниже для программы решения уравнения Пуассона с периодическими граничными условиями, справедливы и для произвольных граничных условий.
При использовании CDG6600 время, необходимое для разло
жения |
в ряд |
Фурье |
по |
подпрограмме FOUR67, определяется |
(с точностью до 5%) |
выражением (2N log2 N + 500) мкс, а факти |
|||
ческое |
время |
разложения |
по 1024 точкам составило 0,021 с. |
|
Для достижения такой скорости пришлось наиболее важные части программы программировать в машинных кодах (на авто коде COMPASS). Вариант подпрограммы, составленный целиком на Фортране, работал в 5,7 раза медленнее и потребовал 0,125 с для того же самого расчета.
В табл. 1 приведено машинное время, необходимое для разло жения в ряд Фурье (ІВС = 3) при различных количествах задан ных точек, а в табл. 2 — машинное время для 1024 точек при различных типах допустимых граничных условий.
154 |
Гл. 4. Методы расчета потенциала |
Таблица 1
Машинное время (в секундах), необходимое для разложения в ряд Фурье ( І В С = Ъ ) с помощью подпрограммы FOUR67 при различном числе узловых точек
|
|
CDC 6600 |
IBM Фортран IV а |
||
« |
COMPASS |
Фортран |
360/67 |
Ошибка |
|
|
|||||
32 |
7,57-10-4 |
__ |
3,64-Ю -з |
2,9-10-8 |
|
64 |
1,32 |
-10-з |
6 ,0 0 -Ю-з |
7,46-Ю-з |
3,6-10-8 |
128 |
2,42 |
-10-3* |
1,20-10-2 |
1,58-10-2 |
3,4-10-8 |
256 |
4,90-Ю -з |
2,40-10-2 |
3,40-10-2 |
5,8-10-в |
|
516 |
1,01-10-2 |
5,20-10-2 |
7,44-10-2 |
6,2-10-6 |
|
1024 |
2,15-10-2 |
1,06-Ю -і |
1,61-Ю -і |
7,4-10-6 |
|
° Использован второй вариант (уровень Н) компилятора для модели 67-1.
Таблица 2
Машинное время (в секундах), необходимое для разложения в ряд Фурье и фурье-синтеза
по 1024 узловым |
точкам при применении подпрограммы |
|
FOUR67 и различных граничных условиях |
||
ІБС |
6600 а |
360/67 6 |
1 |
0,170 |
0,281 |
2 |
0,170 |
0,281 |
3 |
0,106 |
0,161 |
4 |
— |
0,166 |
° CDC Фортран IV.
6 Программа на Фортране IV; второй вариант (уровень Н) компиля тора для модели 67-1.
3. Метод Хокни (FACR)
Прямой метод фурье-анализа с применением циклической редукции (FACR) основан на разложении Фурье по одной коорди нате (например, по координате х), что позволяет затем решать гармонические уравнения по другой координате, пользуясь циклической редукцией. Если граничные условия достаточно просты, как, например, в случаях, допускаемых подпрограммой
§ 2. Прямые методы |
155 |
POTI, то синусы и косинусы являются собственными функциями рассматриваемого оператора и гармонические уравнения распа даются. При этом гармонические уравнения могут быть решены раздельно и достаточно быстро. В результате алгоритм принимает следующий вид: фурье-преобразование заданного распределения зарядов для получения гармонических составляющих заряда; решение гармонических уравнений для определения гармони ческих составляющих потенциала по гармоническим составляю щим заряда; после этого искомый потенциал определяется обрат ным преобразованием Фурье.
В случае простых граничных условий по у (аналогичных условиям по х) можно было бы выполнить фурье-преобразование и по координате у и опять-таки получить распадающиеся урав нения для гармоник. Тем не менее мы предпочли ограничиться фурье-преобразованием в одном измерении по двум причинам. Во-первых, установлено, что при двойном преобразовании Фурье число арифметических операций возрастает примерно на 50%. Во-вторых, если не проводить фурье-преобразование по второй координате, можно решать более общие задачи. Например, если ограничиться фурье-преобразованием по координате z или Ѳ, то методом FACR можно решить уравнение Пуассона в коорди натах (г, 2) или (г, Ѳ) соответственно. Мы не будем, однако, углуб ляться здесь в эту тему. Уравнения Пуассона в этих координатах имеют вид
<92 ф |
. д 2 ф |
1 |
З ф |
dz2 |
dr2 |
г |
дг |
3 2ф |
3 2 ф |
|
|
Ж |
+ Г2 дг2 |
|
|
— 4яр(г, Z),
( 12)
— 4яг2р(г, Ѳ).
При решении разностных уравнений по методу FAGR можно еще более уменьшить количество арифметических операций, использовав циклическое свойство разностных уравнений. Это свойство дает возможность исключить из рассмотрения все нечет ные строки сетки. Описанный процесс, который мы называем нечетно-четной редукцией, образует систему уравнений для чет ных строк сетки, более сложную, чем исходная. Тем не менее уравнения на четных строках сохраняют ту же симметрию, что и исходные уравнения, и допускают описанный выше метод реше ния с помощью преобразования Фурье. После того как найдено решение на четных строках, на нечетных строках решение можно получить из исходных уравнений для этих строк. Причем нечет ные уравнения можно решать независимо, поскольку решение на промежуточных четных строках уже найдено.
Для упрощения математического описания метода допустим,
что сетка квадратная (H X = HY) и что |
по координате х нало |
жены периодические граничные условия, |
а на границе по коорди- |
156 Гл. 4. Методы расчета потенциала
нате у потенциал принимает заданные значения. Исходную раз ностную систему уравнений можно записать в виде
фг_! + Ифг + фі+1 = — AnptHX2 = qt, 0 < t < N Y , |
(13) |
где векторы ф( и qj — потенциал и свободный член для t-то ряда
а) Исходные |
6) После нечетно- |
в) После преобразования |
уравнения |
четной редукции |
Фурье |
г) После циклической |
д)Решение на нечетных |
редукции и обратного |
рядах |
преобразования Фурье |
|
Ф и г . 4. Различные стадии алгоритма FACR.
Точками показан шаблон разностного оператора на каждой стадии. Четные ряды узлов сетки изображены сплошными линиями, а нечетные — пунктирными.
узлов сетки
|
Фо. t |
Qo. |
t |
|
фг |
4>i. і |
Qi, |
t |
(14) |
q« |
|
|
||
|
Ф іѵх_і,г/ |
\ Q n |
x - i , t., |
|
Матрица А определяет пятиточечныи разностный оператор
/ ~ 4 |
1 |
0 . |
|
0 |
1\ |
1 |
- 4 |
1 |
|
|
0 |
0 |
1 |
|
|
|
(15) |
А |
|
|
|
|
|
• |
|
|
1 |
|
0 |
|
|
|
|
||
0 |
|
1 |
- 4 |
|
1 |
V 1 |
0 |
0 |
1 |
|
- V |
