Что было бы хорошей конечной разностной дискретизацией для следующего уравнения:
?
Мы можем взять 1D случай:
По какой-то причине все схемы, которые я могу найти, предназначены для формулировки в лагранжевых координатах. Я придумал эту схему на данный момент (не обращая внимания на индекс j ):
Но кажется, что он действительно нестабилен или имеет какое-то ужасное состояние стабильности. Это так?
Скорость фактически рассчитывается по закону Дарси . Плюс у нас есть уравнение состояния. Полная система также состоит из уравнения энергии и уравнения состояния для идеального газа. Скорости могут стать отрицательными .
Ответы:
Вы смотрите на уравнение сохранения массы:
При рассмотрении эволюции массы на единицу объема это сводится к уравнению адвекции плотности в форме потока:
Хорошо, что это просто уравнение адвекции произвольного скалярного поля (в нашем случае это плотность ), и его (относительно) легко решить, при условии адекватных схем разности времени и пространства и начальных и граничные условия.ρ
При разработке схемы конечных разностей мы заботимся о сходимости, стабильности и точности. Схема сходится, если когда . Устойчивость схем гарантирует, что величина остается конечной при . Формальная точность схемы показывает, где лежит ошибка усечения в разложении Тейлора в частную производную. Посмотрите учебник CFD для получения более подробной информации об этих фундаментальных свойствах схемы дифференцирования. Δt→0At→∞ΔAΔt→∂A∂t Δt→0 A t→∞
Теперь самый простой подход - перейти прямо к разнице вверх по течению 1-го порядка. Эта схема является положительно определенной, консервативной и вычислительно эффективной. Первые два свойства особенно важны, когда мы моделируем эволюцию величины, которая всегда положительна (т.е. масса или плотность).
Для простоты, давайте посмотрим на 1-D случай:
Теперь удобно определить поток , чтобы:Φ=ρu
Вот схема того, что мы моделируем:
Мы оцениваем эволюцию в клетке . Чистая прибыль или убыток происходят из разницы того, что входит, и того, что выходит, . Здесь мы начинаем расходиться с ответом Павла. При истинном консервативном различении вверх по течению количество в центре клетки переносится скоростью на краю ее клетки в направлении ее движения. Другими словами, если вы представляете, что вы - адвектированное количество, и вы сидите в центре клетки, вас переносят в клетку перед вами со скоростью на краю клетки. Оценка потока на краю ячейки как произведение плотности и скорости, как на краю ячейки, не является правильной и не сохраняет адвективную величину.ρ i Φi−1/2 Φi+1/2
Входящие и исходящие потоки оцениваются как:
Вышеуказанная обработка разности потоков обеспечивает определенность в восходящем направлении. Другими словами, он регулирует направление разности в соответствии со знаком скорости.
Критерий устойчивости Куранта-Фридрихса-Леви (CFL), при выполнении разности во времени с простым первым порядком, прямое различие Эйлера задается как:
Обратите внимание, что в двух измерениях критерий устойчивости КЛЛ является более строгим:
где - величина скорости, .c u2+v2−−−−−−√
Некоторые вещи для рассмотрения. Эта схема может подходить или не подходить для вашего приложения в зависимости от того, какой процесс вы моделируете. Эта схема очень диффузная и подходит для очень гладких течений без резких градиентов. Это также более распространено для более коротких временных шагов. В одномерном случае вы получите почти точное решение, если градиенты очень малы, и если . В двумерном случае это невозможно, а диффузия анизотропна.μ=1
Если ваша физическая система рассматривает ударные волны или высокие градиенты другого рода, вам следует изучить различие более высокого порядка вверх по течению (например, 3-го или 5-го порядка). Кроме того, возможно, стоит взглянуть на семейство схем с коррекцией потока (Zalesak, 1979, JCP); антидиффузионная поправка для вышеуказанной схемы Смоларкевичем (1984, JCP); Семейство схем MPDATA Смоларкевича (1998, JCP).
Для разницы во времени разность Эйлера 1-го порядка может быть удовлетворительной для ваших нужд. В противном случае обратите внимание на методы более высокого порядка, такие как Рунге-Кутта (итеративный) или Адамс-Башфорт и Адамс-Моултон (многоуровневый).
Было бы целесообразно заглянуть в какой-нибудь учебник для выпускников CFD для краткого изложения вышеупомянутых схем и многого другого.
источник
В одномерном случае вы не хотите использовать прямую или центральную разностную схему для термина пространственной производной потому что они численно нестабильны. Вместо этого лучше дискретизировать уравнение с явной обратной (обратной) конечной разницей для пространственной производной:(ddx)
Если скорости положительные, то эта обратная схема устойчива. Если они отрицательны, то сработает прямая разница. Несмотря на это, всегда существует ограничение на выбор и (число куранта), чтобы сделать схему стабильной.Δ тΔx Δt
источник