Россия |
Лекция 5: Численное решение уравнений в частных производных гиперболического типа с большими градиентами решений
5.11. Метод С.К.Годунова
Широко распространенный метод С.К.Годунова для получения численных решений с особенностями разрывного характера основан на решении задачи о распаде разрыва [15.2, 21 - 22]. В газовой динамике хорошо известно точное решение этой задачи и рассмотрены все возможные конфигурации решений. Положим, что начальные данные есть кусочно - постоянные функции на сетке
Например, для системы уравнений газовой динамики .
Иногда начальные данные задают в ячейках с целыми номерами .
Решение задачи строится следующим образом. В окрестности каждого узла xm (или xm + 1/2 при другой нумерации) решается задача о распаде разрыва независимо от других возмущений. Это решение используется до того момента, когда волна, образовавшаяся от разрыва в точке xm, не встретится с волной, идущей от точки xm + 1. Далее полагаем, что и при решение также приближается кусочно - постоянными функциями
или, на сетке с отличной нумерацией узлов
Представим систему дифференциальных уравнений в частных производных, записанную в дивергентном виде,
в интегральной форме
где G — некая односвязная область, — ограничивающий ее замкнутый контур, — функции от . Для этого выберем в качестве G ячейку {(tn, tn + 1) x (xm, xm + 1)} и получим интегральное уравнение
Первый и третий интегралы вычисляются просто по формуле средних — функции на отрезке [xm, xm + 1] кусочно - постоянны. Положив все функции кусочно - постоянными и на отрезке [tn, tn + 1] в силу автомодельности решения задачи Римана относительно переменных ( x/t ), получим равенство
или, разделив правую и левую части на произведение ,
или
при другой индексации.При этом потоки вычисляются при помощи решения задачи о распаде разрыва, которая сводится к решению системы нелинейных уравнений.
Повышение порядка аппроксимации схем типа Годунова, основанных на решении задачи распада разрыва (или солверов Римана) реализуется путем использования кусочно - линейной аппроксимации искомых величин внутри ячеек (в отличие от кусочно - постоянного их представления в методе Годунова ) и различных алгоритмов пересчета по времени (алгоритмов типа предиктор - корректор) [15.19], [15.20].
Рассмотрим один из таких методов. Пусть внутри ячеек для всех сеточных функций заданы кусочно - линейные распределения
где — вектор наклонов функций u внутри ячейки. При этом изменение этой функции по времени внутри ячейки будет
Предиктор (первый шаг) выглядит следующим образом:
на промежуточном слое n + 1/2 вычисляем, как среднее арифметическое
На втором шаге — корректор — получим, используя метод конечных объемов
где, , а функции определяются из решения задачи Римана со следующими начальными данными:
Эта схемы была получена в работах [15.27], [15.29]. В качестве начальных данных можно выбирать, не изменяя порядок точности, например, такие:
или .
Простым способом вычисления наклона Qm в ячейке с номером m для сеточной функции um, обеспечивающим устойчивость схемы, является использование функции , которая выбирает наклон с минимальным значением модуля, при условии, что знаки обоих аргументов совпадают (при разных знаках аргументов эта функция равна нулю):
Подобный алгоритм предиктор - корректор можно использовать и для системы уравнений, записанной в характеристической форме:
При этом предиктор имеет вид
В качестве корректора используем, например, полученную ранее сеточно - характеристическую схему
с учетом того, что начальные данные являются кусочно - постоянными: