Взагалі кажучи, ви хочете використовувати неявний метод параболічних рівнянь (частина дифузії) - явні схеми для параболічного PDE повинні мати дуже короткий часовий крок, щоб бути стабільним. І навпаки, для гіперболічної частини (адвекції) вам потрібно чіткий метод, оскільки він дешевший і не порушує симетрію лінійної системи, яку вам доведеться вирішити, використовуючи неявну схему дифузії. У такому випадку ви хочете уникнути різниць у центрі на зразок та перейти на однобічні відмінності з міркувань стійкості.( u j - u j - 1 ) / Δ t(uj+1−uj−1)/2Δt(uj−uj−1)/Δt
Я б запропонував переглянути книгу Ренді Левека або книгу Дейла Дуррана для "аналізу стабільності фон Неймана". Це загальний підхід до встановлення стабільності вашої схеми дискретизації, якщо у вас періодичні граничні умови. (Там також гарна вікі стаття тут .)
Основна ідея полягає в тому, щоб припустити, що у вашому дискретному наближенні можна записати суму плоских хвиль , де - число хвилі і частота. Ви набиваєте площину хвилі в наближенні до PDE і молитеся, щоб вона не вибухнула. Ми можемо переписати площину хвилі як і ми хочемо переконатися, що . k ω ξ n e i k j Δ x | ξ | ≤ 1ei(kjΔx−ωnΔt)kωξneikjΔx|ξ|≤1
Для ілюстрації розглянемо звичайне рівняння дифузії з повністю неявним диференціюванням:
un+1j−unjΔt=Dun+1j−1−2un+1j+un+1j+1Δx2
Якщо підставити в площині хвилю, то ділимо на та , отримаємо рівнянняe i k j Δ xξnei k j Δ x
ξ- 1Δ t= D е- i k Δ x- 2 + еi k Δ xΔ x2ξ
Очистіть це трохи зараз, і ми отримаємо:
.ξ= 11 + 2 D Δ tΔ x2( 1 - созk Δ x )
Це завжди менше, ніж один, тож ви в чистоті. Спробуйте застосувати це для явної, по центру схеми рівняння адвекції:
уn + 1j- унjΔ t= v uнj - 1- унj + 12 Δ x
і подивитися , що , ви отримаєте. (Цього разу це буде уявна частина.) Ви знайдете це | ξ | 2 > 1 , що сумні часи. Звідси моє застереження, що ви не користуєтесь цим. Якщо ви можете це зробити, то у вас не повинно виникнути особливих проблем з пошуком стабільної схеми для повного рівняння адвекційно-дифузійного рівняння.ξ| ξ|2> 1
Це означає, що я використовував би повністю неявну схему для частини дифузії. Змініть різницю в частині адвекції на якщо v > 0 і u j - u j + 1, якщо v < 0, і виберіть часовий крок, щоб V Δ t / Δ x ≤ 1 . (Це умова Куранта-Фрідріха-Льюї .) Це лише точне перше замовлення, тому ви, можливо, захочете шукати схеми дискретизації вищого порядку, якщо це стосується вас.уj- уj - 1v > 0уj- уj + 1v < 0VΔ t / Δ x ≤ 1