Je ne comprends pas le comportement différent de l'équation d'advection-diffusion lorsque j'applique différentes conditions aux limites. Ma motivation est la simulation d'une grandeur physique réelle (densité de particules) sous diffusion et advection. La densité des particules doit être conservée à l'intérieur, sauf si elle s'écoule des bords. Par cette logique, si j'applique les conditions aux limites de Neumann aux extrémités du système telles que (sur les côtés gauche et droit) alors le système devrait être "fermé" c'est-à-dire si le flux à la frontière est nul, aucune particule ne peut s'échapper.
Pour toutes les simulations ci-dessous, j'ai appliqué la discrétisation de Crank-Nicolson à l'équation d'advection-diffusion et toutes les simulations ont des conditions aux limites . Cependant, pour les première et dernière lignes de la matrice (les lignes de conditions aux limites), je permets à d'être modifié indépendamment de la valeur intérieure. Cela permet aux points d'extrémité d'être totalement implicites.
Ci-dessous, je discute de 4 configurations différentes, une seule d'entre elles est ce que j'attendais. À la fin, je discute de ma mise en œuvre.
Limite de diffusion uniquement
Ici, les termes d'advection sont désactivés en mettant la vitesse à zéro.
Diffusion uniquement, avec = 0,5 (Crank-Niscolson) en tous points
La quantité n'est pas conservée comme le montre la réduction de la zone d'impulsion.
Diffusion uniquement, avec = 0,5 (Crank-Niscolson) aux points intérieurs et = 1 (plein implicite) aux limitesβ
En utilisant une équation entièrement implicite sur les frontières, j'atteins ce que j'attends: aucune particule ne s'échappe . Vous pouvez le voir par la zone conservée lorsque la particule diffuse. Pourquoi le choix de aux points limites devrait - il influencer la physique de la situation? Est-ce un bug ou prévu?
Diffusion et advection
Lorsque le terme d'advection est inclus, la valeur de aux limites ne semble pas influencer la solution. Cependant, dans tous les cas où les frontières semblent être "ouvertes", c'est-à-dire que les particules peuvent s'échapper des frontières. pourquoi est-ce le cas?
Advection et diffusion avec = 0,5 (Crank-Niscolson) en tous points
Advection et diffusion avec = 0,5 (Crank-Niscolson) aux points intérieurs, et = 1 (plein implicite) aux limitesβ
Mise en œuvre de l'équation d'advection-diffusion
En commençant par l'équation d'advection-diffusion,
Écrire avec Crank-Nicolson donne,
Notez que = 0.5 pour Crank-Nicolson, = 1 pour entièrement implicite et = 0 pour entièrement explicite.β β
Pour simplifier la notation, faisons la substitution,
et déplacer la valeur connue de la dérivée temporelle vers la droite,
La prise en compte des termes donne,
que nous pouvons écrire sous forme de matrice sous la forme où,
Application des conditions aux limites de Neumann
NB travaille à nouveau sur la dérivation, je pense avoir repéré l'erreur. J'ai supposé un schéma totalement implicite ( = 1) lors de l'écriture de la différence finie de la condition aux limites. Si vous supposez un schéma de Crank-Niscolson ici, la complexité devient trop grande et je n'ai pas pu résoudre les équations résultantes pour éliminer les nœuds qui sont en dehors du domaine. Cependant, cela semble possible, il y a deux équations avec deux inconnues, mais je n'ai pas pu le gérer. Cela explique probablement la différence entre les premier et deuxième graphiques ci-dessus. Je pense que nous pouvons conclure que seuls les tracés avec = 0,5 aux points limites sont valides.β
En supposant que le flux du côté gauche est connu (en supposant une forme entièrement implicite),
L'écrire comme une différence centrée donne,
par conséquent,
Notez que cela introduit un nœud qui est en dehors du domaine du problème. Ce nœud peut être éliminé en utilisant une deuxième équation. Nous pouvons écrire le nœud comme,
La substitution de la valeur de trouvée dans la condition aux limites donne le résultat suivant pour la ligne = 1,
La même procédure pour la dernière ligne (à = ) donne,
Enfin, rendre les lignes de limite implicites (définition = 1) donne,
Par conséquent , avec des conditions aux limites de Neumann , on peut écrire l'équation de la matrice, ,
où,
Ma compréhension actuelle
Je pense que la différence entre les premier et deuxième graphiques est expliquée en notant l'erreur décrite ci-dessus.
Concernant la conservation de la quantité physique. Je crois que la cause est que, comme indiqué ici , l'équation d'advection sous la forme que j'ai écrite ne permet pas la propagation dans le sens inverse, donc l'onde passe juste à travers même avec des conditions aux limites de flux nul . Mon intuition initiale concernant la conservation ne s'applique que lorsque le terme d'advection est nul (c'est la solution dans la parcelle numéro 2 où la zone est conservée).Même avec les conditions aux limites de flux nul de Neumann la masse peut toujours quitter le système, car les conditions aux limites correctes dans ce cas sont des conditions aux limites de Robin dans lesquelles le flux total est spécifié . De plus la condition de Neunmann spécifie que la masse ne peut pas quitter le domaine par diffusion , elle ne dit rien sur l'advection. Essentiellement, nous avons entendu des conditions aux limites fermées à la diffusion et des conditions aux limites ouvertes à l'advection. Pour plus d'informations, voir la réponse ici, Implémentation du conditon de limite de gradient nul dans l'équation d'advection-diffusion.
Accepteriez-vous?
la source
Réponses:
Je pense que l'un de vos problèmes est que (comme vous l'avez observé dans vos commentaires) les conditions Neumann ne sont pas les conditions que vous recherchez , en ce sens qu'elles n'impliquent pas la conservation de votre quantité. Pour trouver la bonne condition, réécrivez votre PDE en
Maintenant, le terme qui apparaît entre parenthèses, est le flux total et c'est la quantité que vous devez mettre à zéro sur les limites pour conserver . (J'ai ajouté par souci de généralité et pour vos commentaires.) Les conditions aux limites que vous devez imposer sont alors (en supposant que votre domaine spatial est )D∂ϕ∂x+vϕ=0 ϕ S(x,t) (−10,10)
pour le côté gauche et
pour le côté droit. Ce sont ce que l'on appelle la condition aux limites de Robin (notez que Wikipedia dit explicitement que ce sont les conditions isolantes pour les équations d'advection-diffusion).
Si vous configurez ces conditions aux limites, vous obtenez les propriétés de conservation que vous recherchiez. En effet, en intégrant sur le domaine spatial, nous avons
En utilisant l' intégration par parties sur le côté droit, nous avons
Maintenant, les deux termes centraux disparaissent grâce aux conditions aux limites. En intégrant dans le temps, on obtient
et si nous sommes autorisés à changer les deux premières intégrales ,
Cela montre que le domaine est isolé de l'extérieur. En particulier, si , on obtient la conservation de .ϕS=0 ϕ
la source