Запорожец  Издания 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 [ 54 ] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

на разработку программы для ЭВМ, причем последние в значительной мере зависят от простоты метода. Сложные методы затрудительны для программирования, проверки и особенно для отладки по сравнению с простыми методами, что становится более важным в случае областей с границами сложной формы и при включении дополнительных факторов, например химических реакций. Ясно, что выбор наилучшего метода отнюдь не очевиден.

3.2. Методы решения уравнений для функции тока

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

v*-0+;i=s. (3.363)

Здесь имеет место краевая задача, для решения которой требуются другие методы. Мы будем рассматривать решение уравнения Пуассона с двумя типами граничных условий вдоль различных частей границы: либо с условием Дирихле, когда на границе известны значения функции либо с условием Неймана, когда на границе известны значения нормальной производной дт/дп. Именно вопрос о том, когда эти условия являются подходящими, составляет заключительную часть полной задачи и будет рассматриваться в разд. 3.3.

Дискретизированная форма уравнения Пуассона

4 + 0 = ?. (3.364,

использующая разности второго порядка, представляет собой пятиточечный шаблон (Том и Апельт [1961])

-др--\---= /, (3.36b)

где известно.

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

В прямоугольной области, где max i = I и max / = /, уравнения (3.365) и граничные условия образуют в совокупности систему N ={1 - 2)Х(. -2) линейных алгебраических уравнений. Эта система является блочно-трехдиагональной, как



и система, которая была получена при использовании полностью неявной схемы для решения двумерного уравнения диффузии (см. разд. 3.1.14), отличается от последней лишь наличием «источникового» неоднородного члена 1,1, i и также не может быть решена при помощи метода прогонки.

Наиболее элементарными методами решения такой системы являются правило Крамера и различные варианты метода исключения Гаусса (см. Кренделл [1956]). Для задач, представляющих практический интерес, N весьма велико и эти методы становятся неподходящими. В правиле Крамера требуется выполнить невероятно большое число операций - приблизительно (yV+l)! умножений, и даже если имеется достаточно машинного времени, то точность решения будет фактически сведена на нет ошибками округления). Число умножений в методах Гаусса прямо пропорционально N, и можно ожидать, что точность решения будет ухудшаться при N, больших пятидесяти (Хемминг [1962]), в зависимости от деталей метода и длины слова в машине. Эти (и другие) методы обсуждаются в книге Уэстлейка [1968].

За последние годы были разработаны высокоэффективные прямые методы. Дорр [1970] приводит обзор «блочных» методов, методов циклического исключения, методов тензорного произведения, методов, использующих ряды Фурье, и некоторых других. Ланкастер [1970] также представил обзор прямых схем. Другими недавно опубликованными прямыми методами являются метод дискретного инвариантного вложения Энджела 1968а , его подход динамического программирования (Энджел 19686 ), метод суммарного представления Положего [1965], а также Диденко и Ляшенко [1964] (см. также Чаленко [1970]), метод йи [1969], метод нечетно-четного исключения Базбн с соавторами [1969, 19706] и метод расчета распространения вектора ошибки (метод EVP) Роуча [1971а, 19716]. Хейз [1970] использовал интегральную формулу Грина для прямого решения уравнения Лапласа ( = 0). Энджел и Калаба [1970] получили формулы метода с одним обходом расчетных точек, основанного на инвариантном вложении. Другие прямые методы рассматривали Свифт [1971] и Дао [1970].

Особенно привлекательным является метод Бунемана [1969], основанный на нечетно-четном исключении. Соответствующая программа для ЭВМ достаточно коротка и замкнута, не зависит от подпрограмм для быстрого преобразования Фурье

) Но времени, как правило, бывает недостаточно. Данные, приведенные Форсайтом [1970], показывают, что на выполнение умножений для решения 26 уравнений при помощи правила Крамера на вычислительной машине CDC 6600 потребуется 10 лет, что в 10 раз превышает возраст Вселенной (по современным оценкам).



) При непосредственно.м применении; см. разд. 3.2.9.

и дает результаты, имеющие машинную точность. Но непосредственное применение этого метода ограничено прямоугольными областями с граничными условиями Дирихле на всей границе, причем /-1 и 7-1 должны быть степенями двойки. (Возможные способы обобщения таких методов можно найти в разд. 3.2.9.) Этот метод использовал Фромм [1971] для )ешения задачи в большой области с числом ячеек 128X 128. Трограмма здесь получается очень хорошей, но использованная в ней система индексации точек (М, N) несопоставима с системой (/,/), применяемой в этой книге, т. е. систему {M,N) невозможно перевести в систему {I,J).

Все эти методы обладают одним или несколькими из следующих недостатков: ограничены) прямоугольными, L- или Т-образными областями и выбором граничных условий типа г]) = 0; требуют большого объема памяти ЭВМ; неприменимы в случае системы координат, отличной от декартовой; из-за накопления ошибки округления могут быть использованы лишь для областей ограниченного размера (т. е. для ограниченных значений / и /); накладывают ограничение на выбор узлов расчетной сетки (например, /-1 и 7-1 должны иметь вид 2*, где /г - целое число); требуют громоздких предварительных вычислений для построения сетки; приводят к сложным программам и алгоритмам. Однако для решения больших задач все большее применение находят именно прямые методы, особенно методы, основанные на разложении в ряды Фурье. Наиболее гибкий и простой по сравнению с другими прямыми методами метод расчета распространения вектора ошибки обсуждается в разд. 3.2.8; в разд. 3.2.9 рассматриваются методы, использующие ряды Фурье (и играющие все большую и большую роль).

По сравнению с прямыми методами различные итерационные методы проще с точки зрения понимания и программирования и являются достаточно гибкими. Скорость сходимости в таких методах существенно больше скорости сходимости в старых прямых методах (Уэстлейк [1968]), так как в них используются «разреженные» матрицы. Исторически сложилось так, что итерационные методы чаще применяются в вычислительной гидродинамике и, несомненно, не утратят своей важности. Здесь итерационные методы будут рассматриваться в хронологическом порядке.

3.2.2. Метод Ричардсона и метод Либмана

Как обсуждалось ранее в § 3.1.22, решение (стапионарных) уравнений эллиптического типа аналогично получению асимптотически стационарного решения нестационарной задачи (Фран-



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 [ 54 ] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199