Вообще говоря, вы захотите использовать неявный метод для параболических уравнений (диффузионная часть) - явные схемы для параболических уравнений в частных производных должны иметь очень короткий временной шаг, чтобы быть стабильным. И наоборот, для гиперболической части (адвекции) вам понадобится явный метод, так как он дешевле и не нарушает симметрию линейной системы, которую вы должны решить, используя неявную схему для диффузии. В этом случае вы хотите избежать центрированных различий, таких как и переключиться на односторонние различия по соображениям стабильности.(uj+1−uj−1)/2Δt(uj−uj−1)/Δt
Я бы посоветовал вам взглянуть на книгу Рэнди Левека или книгу Дейла Даррана « Анализ устойчивости фон Неймана». Это общий подход к установлению стабильности вашей схемы дискретизации, если у вас есть периодические граничные условия. (Там также хорошая вики статья здесь .)
Основная идея состоит в том, чтобы предположить, что в вашем дискретном приближении можно записать сумму плоских волн , где - волновое число, а - частота. Вы вбиваете плоскую волну в свое приближение к PDE и молитесь, чтобы она не взорвалась. Мы можем переписать плоскую волну как и мы хотим убедиться, что .ei(kjΔx−ωnΔt)kωξneikjΔx|ξ|≤1
В качестве иллюстрации рассмотрим обыкновенное уравнение диффузии с полностью неявным дифференцированием:
un+1j−unjΔt=Dun+1j−1−2un+1j+un+1j+1Δx2
Если подставить в плоскую волну, а затем разделить на и , мы получим уравнениеξneikjΔx
ξ−1Δt=De−ikΔx−2+eikΔxΔx2ξ
Очистите это немного сейчас, и мы получим:
ξ=11+2DΔtΔx2(1−coskΔx) .
Это всегда меньше единицы, так что вы в чистоте. Попробуйте применить это для явной центрированной схемы для уравнения адвекции:
un+1j−unjΔt=vunj−1−unj+12Δx
и посмотреть , что вы получите. (На этот раз у него будет мнимая часть.) Вы обнаружите, что , что печально. Отсюда мое предупреждение, что вы не используете его. Если вы можете сделать это, то у вас не должно быть особых проблем с поиском стабильной схемы для полного уравнения адвекции-диффузии.ξ|ξ|2>1
Тем не менее, я бы использовал полностью неявную схему для диффузионной части. Измените разность в адвективной части на если и если и выберите временной шаг так, чтобы , (Это условие Куранта-Фридрихса-Леви .) Оно является точным только для первого порядка, поэтому вы можете посмотреть схемы дискретизации более высокого порядка, если это вас касается.uj−uj−1v>0uj−uj+1v<0VΔt/Δx≤1