книги из ГПНТБ / Вычислительные методы в физике плазмы
..pdf
|
§ 2. Физические свойства ступенчатых |
распределений |
107 |
вых — в |
области А. Так как внутренние кривые модулированы |
||
сильнее |
внешних, они в большей мере |
определяют поведение |
|
системы. Из уравнения (12) следует, что в предельном устойчивом случае потери кинетической энергии пропорциональны і/ѵ2—1/щ, где Ѵі и уг — скорости соответственно на внешних и внутренних кривых.
Неустойчивость может возникнуть только в случае, если возможно такое отклонение от равновесия, которое не меняет полной энергии. В рассматриваемом случае потери кинетической энергии на внутренних кривых при «падении» жидкости из обла сти А в область В компенсируются частично за счет энергии поля и частично за счет увеличения кинетической энергии на внешних кривых. И действительно, в этом случае возникает неустойчивая мода, линейное приближение которой имеет вид, аналогичный показанному на фиг. 2.
В случае двух тепловых потоков внешние кривые играют не существенную роль в возникновении неустойчивости. Из типа модуляции скорости на внешних кривых [см. (7) и (12)] видно, что эти кривые экранируют заряды, генерированные внутренними кривыми, как объяснено в § 2, п. 2. Однако, чем более они разде лены в пространстве скоростей, тем менее эффективно экраниро вание, как следует из уравнения (8). В случае такого разделения, когда внешними кривыми можно пренебречь, система полностью характеризуется полостью в фазовом пространстве между кривы ми С2 и С3. Следовательно, эту задачу можно рассматривать как задачу эволюции полости в электронной фазовой жидкости. Показано [25], что такое рассмотрение совершенно эквивалентно эволюции одномерной гравитационной системы, для которой функция распределения постоянна между С2 и С3 и равна нулю в любом другом месте.
Фиг. 7 иллюстрирует нелинейные эффекты в задаче с двумя потоками, рассчитанные на ЭВМ [21]. Полость перерождается в устойчивые структуры в фазовом пространстве, которые ана логичны одномерным звездам [22]. В приближении, когда внеш ними контурами можно пренебречь, анализ единственной полости показывает, что она устойчива. Однако можно ожидать, что система полостей будет неустойчива, так как полости должны притягиваться друг к другу. На фиг. 7 можно видеть структуры двух полостей в процессе слияния из-за этих сил притяжения. Наличие внешних кривых не меняет существенно интерпретации, так как они только экранируют силы притяжения. Поэтому под системой, показанной на фиг. 7, можно понимать систему грави тирующих звезд, притягивающихся друг к другу в соответствии с дебаевским (или мезонным) потенциалом, который удовлетво ряет уравнению, аналогичному (8). Из фиг. 7 видно, что за выче том мест около острых пиков две внешние кривые изменяются
108 Гл. 3. Модель «водяного мешка»
адиабатически и только экранируют положительные заряды поло стей в противоположность неадиабатическому изменению внут ренних кривых.
Проведенный анализ двухпотоковой неустойчивости остается в силе и в случае непрерывных распределений; расчеты на ЭВМ для непрерывных распределений привели к аналогичным резуль татам [11, 8].
Шаг Z50 |
Ш аг 350 |
Ф и г . 7. Эволюция полости в случае двухпотоковой неустойчивости.
6. Вихри в фазовом пространстве
Так как полость заряжена положительно, она окружена по тенциальной ямой, в которую попадают электроны с близлежащи ми скоростями. В окрестности полости фазовая жидкость вращает ся по часовой стрелке. В фильме, снятом с помощью ЭВМ путем расчета траекторий частиц, каждая полость выглядит как вихрь в жидкости [21]. Таким образом, вихри в фазовой жидкости при тягивают друг друга, и, что очень интересно, аналогично ведут себя вихри конечного размера в реальной несжимаемой жидкости в двумерном случае. Расчеты постоянно совершенствуются, так что можно надеяться на прогресс в понимании этого явления.
§ 3. Численные методы |
109 |
§ 3. Ч и с л е н н ы е методы
В наших расчетах каждый контур Cj аппроксимировался цепочкой лагранжевских точек Pjt г, соединенных друг с другом прямолинейными отрезками (сегментами), как показано на фиг. 8. Соседние точки должны быть расположены достаточно близко друг от друга, чтобы сумма площадей трапеций с хорошей точно стью аппроксимировала постоянную площадь внутри контура. Чтобы включать или исключать точки, когда сегменты вдоль контура оказывались слишком длинными или короткими, в про цессе расчетов использовалась разработанная техника вычисле ний, которая описана в § 3, п. 2.
Точки Pi, і представлялись в виде целых констант с фиксиро ванной запятой, так как в задачах с периодическими граничными условиями слежение по координатам в этом случае оказывается особенно эффективным. Жидкость в верхней половине фазовой
V
Ф и г . 8. Численная аппроксимация непрерывного контура.
Точки соединены прямолинейными отрезками; стрелки показывают направление цепочки.
плоскости постоянно движется направо, так как ѵ > 0, а в ниж ней половине — налево, что приводит к возникновению горизон тального течения. Таким образом, кривая, которая сначала цели ком лежит внутри области с основным периодом 0 ^ х < L, в кон це концов может пересечь левую или правую границы несколько раз. Использование целых констант для представления координат без труда позволяет спроектировать точку Pj, г на основной период. Для этого нужно лишь дешифровать номер периода, который хранится в самой важной части координатного кода. Это означа ет, что нет необходимости проверять для каждой частицы, пере секла ли она границу периода или нет. Более подробно этот вопрос обсуждается в п. 1.
HO Гл. 3. Модель «водяного мешка»
Уравнение Пуассона или интегральная форма этого уравне
ния — теорема Гаусса — определяют |
электрическое |
поле: |
|
||||||
|
|
9 |
m+1 |
|
= |
|
|
|
|
Е (%т+\ |
%т) |
д Н f |
dx\ |
|
|
|
|
||
|
|
|
хт |
|
|
|
|
|
|
|
|
2 |
|
хт+і |
|
{%т+1 >^m) |
A z J , |
(17) |
|
|
|
=5 -[2j —Л^2 ухтJ\_2 ^ f j A j |
|||||||
|
|
|
|
dxVj{x) — Ax^ = |
|
|
|
||
где А/j = |
fj — /j_! — скачок / на контуре j и Aj |
(a, b) — площадь |
|||||||
области между контуром / и осью х |
на участке между точками |
||||||||
X — а ж X = Ъ с учетом |
знака (а > |
Ь). |
|
|
|
|
|||
Точки |
жт |
определяют |
фиксированную сетку Эйлера и делят |
||||||
фазовую |
плоскость |
на |
вертикальные |
полосы |
хт ^ х < |
хт+1 |
|||
равной толщины Аж. Чтобы из уравнения (17) определить электри ческое поле, необходимо вычислить площадь Aj,m между конту ром j и осью X для каждой эйлеровской полосы т. Для этого рассматриваются по порядку точки на С;- и для каждой пары соседних точек определяется площадь трапеции. Если площадь выходит за пределы одной эйлеровской полосы, то для каждой полосы вычисляется связанная с ней площадь. Без какой-либо дополнительной проверки этот метод автоматически обеспечивает правильность вычислений для контура произвольной формы, включая кривые с многими значениями ѵ при данном х. Для контуров в виде многоугольников этот метод точен.
Если поле в эйлеровских точках хт вычислено, то поле в каж дой лагранжевскойточке Р/, t можно определить, используя линей ную интерполяцию между концевыми точками эйлеровского интервала, внутри которого лежит точка x t. Затем рассчитывает ся эволюция во времени формы контура с помощью метода «с пере шагиванием» второго порядка:
x t Цге + 1)Аг] = Хі [(re—\)At] -f- 2Ѵі [nAt]At,
Vi [(re + 1)Аг] = Vi [(re—1))Аг] + 2E t [nAt]At.
Этот метод вычислений рассматривается в § 4, где показывается, что он неустойчив. Однако это слабая неустойчивость, и можно добиться устойчивости, если периодически синхронизовать кон туры, связанные с нечетными и четными шагами по времени.
Для диагностики очень полезной оказалась усредненная функ
ция распределения (1IL) \f(x,v)dx для данного момента времени.
§ 3. Численные методы |
111 |
Она рассчитывается с помощью простой операции перебора точек, во многом схожей с методом определения распределения заряда. Подробно вопрос рассматривается в п. 5.
Недостаток нашего метода интегрирования состоит в том, что контуры могут неограниченно удлиняться. Как уже упоминалось, мы можем, вводя в рассмотрение по мере необходимости новые точки, сохранять точность расчета; но в конце концов либо не хватит памяти ЭВМ, либо счет станет слишком медленным и его придется прекратить. Чтобы избежать этой катастрофы, можно «подправить» диаграмму на фазовой плоскости, устранив области с тонкой волокнистой структурой, которые имеют тенденцию эволюционировать, и соединив разорванные концы кривых. Участки памяти ЭВМ с координатами кусков кривой, которые были устранены, присоединяются к общему полю свободной памя ти ЭВМ, и расчеты можно продолжать. Если на ЭВМ имеется устройство, позволяющее с пульта вмешиваться в работу про граммы, то эта операция «подправления» дает исследователю в руки замечательную возможность изменять время от времени топологию контура в процессе счета. В п. 4 настоящего параг
рафа |
мы |
рассмотрим существующие операции «подправления», |
а в |
§ 5 |
приведем результаты расчета с использованием этих |
операций. |
|
|
1. Представление координат и скоростей в виде целых констант
Координаты и скорости точек на контурах представляются целыми константами. Так как система периодична с периодом L , то каждой точке с координатами (хи vt) в памяти ЭВМ в действи тельности соответствует бесконечное число физических точек с координатами
|
(xt -f- KL, vt), |
К — |
0, ± 1 , |
± 2 , . . . |
|
(19) |
|
Разделим каждый период на L = 2х эйлеровских интервалов еди |
|||||||
ничной |
длины, |
где I — целая |
константа, и будем |
использовать |
|||
разные |
участки |
кодового |
слова для |
представления |
а) |
периода, |
|
б) номера т эйлеровского интервала внутри этого |
периода, |
||||||
в) положения внутри интервала. |
|
|
|
||||
Это можно сделать, если использовать запись |
|
|
|||||
|
|
Х = Ах + Р = А |
+ |
+ |
|
(20) |
|
где |
|
|
|
|
|
|
|
0 < f < A , 0 < m < L , А — 2а, L = 2 l , Р = 2 Р.
112 |
Гл. |
3. |
Модель «водяного мешка» |
|
Типичные |
значения |
в |
случае 48-разрядного |
кода х) следующие: |
а = 30, I = 6, р = 46. Целая константа р выбирается большой, |
||||
чтобы в памяти ЭВМ |
координата X всегда |
оставалась положи |
||
тельной, как бы далеко не сдвинулась точка. Это делается для того, чтобы арифметические операции не зависели от способа представления отрицательных чисел в любой конкретной ЭВМ. Имеется несколько преимуществ в использовании степеней 2. Например, становится легче использовать операции типа MASK в Фортране (если они имеются в применяемом варианте языка) или перейти на автокод ЭВМ, чтобы наиболее трудоемкие участки программы считать как можно быстрее. Восьмеричная запись легко интерпретируется. Показатель а характеризует точность, с которой можно определить координату. Имеется несколько свободных разрядов для согласования между тремя частями «а»,
«б», и «в» |
кода, но |
практически |
этот метод так же |
точен, как |
|||
и метод, использующий числа с плавающей запятой. |
|
||||||
Перед |
вычислениями |
все точки |
лежат в |
исходном периоде |
|||
(Р ^ X < |
Р + AL), |
а |
затем |
они |
изменяют |
свое |
положение |
в соответствии с |
разностными уравнениями |
|
|||||
Х г [(п + |
1) Д*]= |
|
1(п - |
1) At] + |
Vi |
[nAt], |
|
Ѵі [(тг + |
1) At] = |
Vi [(n - |
1) At] + |
Ri |
\nAt], |
(21) |
|
где V и R — целые константы, представляющие соответственно 2vAt и ArАР, а г — ускорение. Такое представление позволяет избежать всех ненужных умножений. По истечении некоторого времени большинство точек выйдет за пределы начального периода через одну из его границ х = 0, L и попадет в соседний период. Однако нет необходимости проверять этот уход точек (на что понадобилось бы машинное время), так как для расчета плотности заряда, электрического поля и ускорения частиц мы просто про ектируем координаты на основной период 0 ^ X < AL, затирая все значащие разряды, кроме а + I последних. Это можно сделать на Фортране с помощью оператора
IXFUND = IXTRUE. AND. MASK, |
(22) |
|
где MASK = 2a+l — 1, |
IXTRUE — истинная |
координата |
и IXFUND — координата |
внутри основного периода. Маскиру |
|
ющие операторы присваивания очень удобны при решении задач, подобных задаче Власова или других, где имеют дело с частицами, так же как и при манипуляциях с цифрами. К сожалению, этих операторов нет на всех ЭЕМ и нет в ASA FORTRAN.
*) Программа была написана для CDC 3600 в Калифорнийском универси тете Сан-Диего и переработана для ICL KDF9 в Калэмской лаборатории. Обе машины используют 48-разрядный код. Программа также использова лась на CDC 6600 в Лоуренсовской радиационной лаборатории (Ливермор). У этой ЭВМ 60-разрядный код. Все три варианта Фортрана очень схожи.
§ 3 р Ч и с л е н н ы е м е т о д ы |
ИЗ |
Для расчета эйлеровского интервала, внутри которого лежит точка, используется деление целых чисел в версии Фортрана. Так как делитель — степень двух, то такое деление эквивалентно логическому сдвигу вправо на а разрядов, при котором зати рается дробная часть координаты. Если используется автокод ЭВМ. то применяются стандартные операции MASK и SHIFT. Очевидно, что решение уравнений движения (21) занимает малую долю полного времени счета. Основное время тратится на расчет распределения заряда, что обсуждается в и. 3.
2. Образование цепочек
Постоянно приходится иметь дело с двумя типами кривых: с кривыми, образующими замкнутую петлю на фазовой плоскости (тип 1), и с кривыми, которые являются непрерывными функция
ми при изменении аргумента х |
от —оо до +оо (тип 0). |
Кривая |
каждого типа определяется цепочкой последовательных |
точек: |
|
{%Ві Ев)> (З-сі» Ѵ<х) ••• |
(*£р1 Ѵр), (Хеі Ѵе)і |
(23) |
где символы В и Е относятся соответственно к начальной и конеч
ной точкам цепочки. За точкой (хв , |
ѵЕ) следует точка (хв, ѵв) |
в случае цепочки типа 1 и точка (хв + |
L , ѵв) — в случае цепочки |
типа 0, где L — длина периода. Условимся считать, что замкну |
|
тые петли (тип 1) имеют направление по часовой стрелке, а беско нечные кривые (типа 0) направлены слева направо. Это согла шение инвариантно относительно топологических преобразований фазовой плоскости. Если же кривые надо разрезать и соединить заново, чтобы получить новые замкнутые петли, то направление
некоторых |
участков кривых приходится менять на обратное |
(см. и. 5). |
|
Точки хранятся в памяти ЭВМ в ячейках со случайными номе
рами: |
|
|
|
^В> |
• • |
• ) Ірі ІЕ- |
(24) |
Введем функцию, определяющую преемственность точек |
|||
|
Sin = Г. |
(25) |
|
Эта функция определяет номер |
ячейки I" для точки, |
следующей |
|
в цепочке за точкой Г, и три массива bj, е$, rij, которые определяют соответственно номера ячеек для первой и последней точек на кривой і и число точек. Все неиспользованные точки объединяются, и из них образуется кривая о, или список «свободных мест», который характеризуется величинами Ъ0, е0, п0.
С течением времени каждая кривая вытягивается, и если мы хотим, чтобы точность расчета оставалась неизменной, то необ-
8 -0 1 2 3 6
114 |
Г л . 3 . М о д е л ь «в о д я н о г о м е ш к а » |
ходимо вводить новые точки. Мы можем ввести точку у между точками а и ß следующим образом:
Z7: = b0, b0: — S (b0), n0: = n0 — 1, nf. = tij + 1 |
(26) |
(изъять первую ячейку из списка «свободных мест» и включить ее в число ячеек, в которых хранятся точки кривой Cj) и
S (Іа): = Zv, S (1У): =./р |
(27) |
(вставить новую ячейку между ячейками Іа и Zp в цепочке). Новая точка у размещается в середине сегмента (а, ß), т. е. в общем случае
Xy: = j ( X a + Xf>), F7: = y ( F a + Fß). |
(28) |
Нужна некоторая осторожность в случае, если сегмент совпадает с (Е , В), но мы этого касаться не будем.
Точку ß, которая лежит между а и у на кривой /, можно изъять, а ячейку, в которой она хранилась, включить в список «свобод ных» мест:
В (Za): — ly, |
. —■Tij |
1, В (e0). — Zp, |
. — Zß, ^o* ■— |
1 * |
|
|
|
|
(29) |
|
3. |
Расчет электрического поля |
|
|
Чтобы рассчитать плотность заряда, нужно сначала вычислить |
||||
интеграл |
|
|
|
|
|
|
j / (X, v) dv |
|
(30) |
как функцию X. Так как фазовая плоскость поделена на области постоянной плотности, то / (х 0, ѵ) — ступенчатая функция ѵ для каждого значения х 0. Пусть контур Cj разделяет две области Rj и Zij-i с фазовыми плотностями fj и /;-_4. Область Rj должна оставаться справа, если двигаться по контуру Сj в положительном направлении. Определим
Mi — ij fj-1- |
(31) |
Предположим, что Сj пересекает вертикальную линию х = х0 произвольное число раз (возможно, и ни разу) в точках Vj,q, и определим функцию Sj,q, которая равна + 1 , если контур пере секает эту линию в направлении увеличения х, и равна —1 в про тивном случае. Тогда
f (х0, v) = — |
vj,q) Sj, q, |
(32) |
3 |
9 |
|
§ |
|
3. Численные методы |
115 |
||
где Ѳ (V) — ступенчатая |
функция Хевисайда |
|
|||
Ѳ (ѵ) = 1, |
V > |
О, |
Ѳ (к) = 0, V < 0, |
(33) |
|
и интеграл принимает |
вид |
|
|
|
|
/ (аг0. |
ѵ) = |
2 |
2 A/jty. Ä . g- |
(34) |
|
39
Врасчетах мы будем предполагать, что каждая кривая — много
угольник, т. е. ломаная линия. Нам нужно вычислить интеграл
хт+і |
|
j dv j dxf(x, v) |
(35) |
xm
в каждом из интервалов
Xm -А Ж Xm+ii 0 YTT<d L* |
(36) |
Добавляя новые точки в случае, если сегмент пересекает одну из вертикальных линий на границах интервалов, мы можем пред ставить каждый член в (35) в виде суммы по всем подсегментам, лежащим внутри интервала (36):
2 |
M j { x " - x ' ) ^ ± ! L , |
(37) |
по всем |
|
|
подсегментам |
|
|
где ж" следует за точкой х' |
(принимаются в расчет и новые точки). |
|
Нетрудно проверить, что выражение (37) приводит к правильным результатам, какова бы ни была форма сегментов.
Следовательно, вычислительная процедура довольно проста: мы движемся вдоль каждой кривой в положительном направлении и с помощью операций MASK и деления целых чисел (см. п. 1) определяем ж-интервалы, в которых помещаются две концевые точки каждого сегмента. Затем каждому интервалу, внутри которого имеется сегмент, приписывается в соответствии с форму лой (37) некоторое добавочное количество заряда, которое вычис ляется в режиме с плавающей запятой.
Когда кривые ломаные, этот расчет приводит к точной величи не полного заряда внутри каждого эйлеровского интервала, если не считать ошибки округления. Электрическое поле на границе каждого интервала легко затем рассчитать по интегральной фор муле
(АЕ)т = 4я {Qm — g0), ' (38)
где Qm — заряд внутри т-то интервала, д0 — однородно распре деленный положительный заряд фона, который подбирается таким,
8*
116 |
Гл. 3. Модель «водяного мешка» |
чтобы суммарный заряд в точности равнялся нулю, и
(39)
Уравнение (39) точное, но, чтобы наложить условие периодичности
L
(40)
о
мы должны предположить, что внутри каждого эйлеровского интервала поле Е (х) изменяется линейно. Эта аппроксимация также нужна для расчета значений электрического поля в лагранжевских точках x t, которые подставляются в уравнения (18).
Следовательно, на каждом шаге по времени два небольших фактора приводят к ошибкам в расчете электрического поля. Во-первых, мы предположили, что кривые Cj — ломаные линии, но это свойство кривых нарушается с течением времени, так как сегменты искривляются. Во-вторых, мы приняли, что величину Е (X) можно рассчитать, пользуясь линейной интерполяцией значений в узлах эйлеровской сетки, в то время как в действи тельности электрическое поле имеет более сложную структуру: величина cPEldx2 в каждой точке x t изменяется от одного постоян ного значения к другому. Первый тип ошибок можно свести к минимуму, если увеличить число лагранжевских точек на кон турах, а второй — если увеличить число эйлеровских интервалов. Имеется и третий источник ошибок при расчете движения конту ров, который зависит от величины шага по времени At. Этот ис точник рассматривается в § 4.
4.Подправление контуров
Впроцессе счета два контура или две части одного и того же контура часто сближаются друг с другом, пока площадь между ними не становится исчезающе малой на отрезке конечной длины.
Вэтом случае две кривые превращаются в одну «двойную» кри вую, которую не имеет смысла проходить дважды. Если величина / на каждой стороне «двойной» кривой одинакова, то, исключив совсем «двойной» участок кривой, мы не изменим состояния
системы.
Фиг. 9 иллюстрирует три возможных случая образования «двойных» кривых. Проще разобрать диаграмму на фиг. 9, а; с нее мы и начнем наш анализ. В этом случае цепочка Сt переделывается следующим образом: точку С соединяют с точкой D и образуют новую замкнутую кривую, начинающуюся в точке А и оканчиваю
