Crank-Nicolson est-il un schéma de discrétisation stable pour l'équation de réaction-diffusion-advection (convection)?

26

Je ne connais pas très bien les schémas de discrétisation courants pour les PDE. Je sais que Crank-Nicolson est un schéma populaire pour discrétiser l'équation de diffusion. Est également un bon choix pour le terme d'advection?

Je suis intéressé par la résolution de l'équation Réaction-Diffusion-Advection ,

ut+(vuDu)=f

D est le coefficient de diffusion de la substance u et v est la vitesse.

Pour mon application spécifique, l'équation peut être écrite sous la forme,

ut=D2ux2Diffusion+vuxAdvection (convection)+f(x,t)Reaction

Voici le schéma Crank-Nicolson que j'ai appliqué,

ujn+1ujnΔt=D[1β(Δx)2(uj1n2ujn+uj+1n)+β(Δx)2(uj1n+12ujn+1+uj+1n+1)]+v[1α2Δx(uj+1nuj1n)+α2Δx(uj+1n+1uj1n+1)]+f(x,t)

Remarquez les termes α et β . Cela permet au schéma de se déplacer entre:

  • β=α=1/2 Crank-Niscolson,
  • β=α=1 c'est totalement implicite
  • β=α=0 c'est totalement explicite

Les valeurs peuvent être différentes, ce qui permet au terme de diffusion d'être Crank-Nicolson et au terme d'advection d'être autre chose. Quelle est l'approche la plus stable, que recommanderiez-vous?

boyfarrell
la source

Réponses:

15

C'est une question bien cadrée et une chose très utile à comprendre. Korrok a raison de vous référer à l'analyse de von Neumann et au livre de LeVeque. Je peux ajouter un peu plus à cela. Je voudrais écrire une réponse détaillée, mais pour le moment je n'ai que le temps pour une courte:

Avec , vous obtenez une méthode qui est absolument stable pour des tailles de pas arbitrairement grandes, ainsi qu'une précision de second ordre. Cependant, la méthode n'est pas stable en L , donc les très hautes fréquences ne seront pas amorties, ce qui n'est pas physique.α=β=1/2

Avec , vous obtenez une méthode qui est également inconditionnellement stable, mais précise uniquement au premier ordre. Cette méthode est très dissipative. Il est stable en L.α=β=1

Si vous prenez , votre méthode peut être comprise comme l'application d'une méthode Runge-Kutta additive à la semi-discrétisation à différence centrée. L'analyse de stabilité et de précision de ces méthodes est considérablement plus compliquée. Un très bel article sur de telles méthodes est ici .αβ

L'approche à recommander dépend fortement de l'ampleur de , du type de données initiales que vous traitez et de la précision que vous recherchez. Si une précision très faible est acceptable, alors est une approche très robuste. Si est modéré ou grand, le problème est dominé par la diffusion et très rigide; généralement donnera de bons résultats. Si est très petit, il peut être avantageux d'utiliser une méthode explicite et un remontage d'ordre supérieur pour les termes convectifs.α = β = 1 D α = β = 1 / 2 DDα=β=1Dα=β=1/2D

David Ketcheson
la source
Une réponse très perspicace, merci! Existe-t-il un moyen de définir les différents régimes de domination de la diffusion et de l'advection? Autre que de comparer l'ampleur des termes? Par exemple, en comparant uniquement les coefficients? Quelle est la signification du terme technique L-stabilité. Tout le monde recommande ce livre, je dois l'acheter!
boyfarrell
Le critère que je vous ai donné ne concerne que les coefficients. En bref, la stabilité en L signifie que les hautes fréquences seront fortement amorties.
David Ketcheson
Donc, lorsque est une fonction lisse (comme dans le sens, il n'a pas de composants de Fourier à haute fréquence) Crank-Nicolson est un bon choix. Si toutefois a des arêtes vives, est un bon choix. u ( x ) β = 1u(x)u(x)β=1
boyfarrell
C'est une généralisation raisonnable, quoique très grossière. Ces choix fonctionneront au moins si vous n'avez pas besoin de beaucoup de précision.
David Ketcheson
10

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+1uj1)/2Δt(ujuj1)/Δ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:

ujn+1ujnΔt=Duj1n+12ujn+1+uj+1n+1Δx2

Si nous substituons dans une onde plane, puis divisons par et , nous obtenons l'équationξneikjΔx

ξ1Δt=DeikΔx2+eikΔxΔx2ξ

Nettoyez-le un peu maintenant et nous obtenons:

ξ=11+2DΔtΔx2(1coskΔ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:

ujn+1ujnΔt=vuj1nuj+1n2Δ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 1ujuj1v>0ujuj+1v<0VΔt/Δx1

Daniel Shapero
la source
C'est une réponse vraiment détaillée, merci.
boyfarrell
Cette réponse ne considère que les discrétisations basées sur les méthodes d'Euler avant et arrière dans le temps. La question concerne Crank-Nicholson.
David Ketcheson