De manière générale, vous voudrez utiliser une méthode implicite pour les équations paraboliques (la partie diffusion) - les schémas explicites pour la PDE parabolique doivent avoir un pas de temps très court pour être stable. Inversement, pour la partie hyperbolique (advection), vous aurez besoin d'une méthode explicite car elle est moins chère et ne perturbe pas la symétrie du système linéaire que vous devez résoudre en utilisant un schéma implicite de diffusion. Dans ce cas, vous voulez éviter les différences centrées comme et passer aux différences unilatérales pour des raisons de stabilité.(uj+1−uj−1)/2Δt(uj−uj−1)/Δt
Je vous suggère de consulter le livre de Randy Leveque ou le livre de Dale Durran pour "l'analyse de stabilité de von Neumann". C'est une approche générale pour déterminer la stabilité de votre schéma de discrétisation, à condition que vous ayez des conditions aux limites périodiques. (Il y a aussi un bon article wiki ici .)
L'idée de base est de supposer que votre approximation discrète peut s'écrire une somme d'ondes planes , où est le nombre d'onde et la fréquence. Vous entassez une onde plane dans votre approximation du PDE et priez pour qu'elle ne explose pas. Nous pouvons réécrire l'onde plane en et nous voulons nous assurer que .ei(kjΔx−ωnΔt)kωξneikjΔx|ξ|≤1
À titre d'illustration, considérons l'équation de diffusion ordinaire avec une différenciation totalement implicite:
un+1j−unjΔt=Dun+1j−1−2un+1j+un+1j+1Δx2
Si nous substituons dans une onde plane, puis divisons par et , nous obtenons l'équationξneikjΔx
ξ−1Δt=De−ikΔx−2+eikΔxΔx2ξ
Nettoyez-le un peu maintenant et nous obtenons:
ξ=11+2DΔtΔx2(1−coskΔx) .
C'est toujours moins d'un, donc vous êtes en clair. Essayez d'appliquer ceci pour le schéma explicite et centré de l'équation d'advection:
un+1j−unjΔt=vunj−1−unj+12Δx
et voir ce que vous. (Il y aura une partie imaginaire cette fois.) Vous trouverez que , ce qui est triste. D'où mon avertissement que vous ne l'utilisez pas. Si vous pouvez le faire, vous ne devriez pas avoir beaucoup de mal à trouver un schéma stable pour l'équation d'advection-diffusion complète.ξ|ξ|2>1
Cela dit, j'utiliserais un schéma totalement implicite pour la partie diffusion. Remplacez la différenciation dans la partie advection par si et si et choisissez un pas de temps pour que . (Il s'agit de la condition Courant-Friedrichs-Lewy .) Elle n'est précise qu'au premier ordre, vous pouvez donc rechercher des schémas de discrétisation d'ordre supérieur si cela vous concerne. v > 0 u j - u j + 1 v < 0 V Δ t / Δ x ≤ 1uj−uj−1v>0uj−uj+1v<0VΔt/Δx≤1