Beaucoup de connaissances peuvent être acquises grâce à l'expérience, je me demandais simplement si quelqu'un avait déjà vu quelque chose de similaire. Le tracé montre la condition initiale (vert) pour l'équation d'advection-diffusion, puis la solution à l'itération 200 (bleu) et à nouveau à l'itération 400 (rouge).
La solution de l'équation d'advection-diffusion explose après quelques itérations. Le nombre de Péclet , et la condition CFL est satisfaite, C ≈ 0,0015 , donc les équations doivent être stables. Je prévois avoir un bug dans le code numérique.
Contexte. La discrétisation est la différence centrale pour les termes d'advection et de diffusion. Je crois que c'est le premier ordre d'advection et le second ordre de diffusion. J'ai mis cela en œuvre en utilisant une approche à volume fini (pour la première fois) dans laquelle les valeurs des coefficients (vitesse et coefficient de diffusion) aux faces des cellules sont trouvées par interpolation linéaire à partir des moyennes des cellules. J'applique la condition aux limites de Robin sur les surfaces gauche et droite et je mets le flux aux limites à zéro.
Comment déboguez-vous votre code numérique? Quelqu'un a-t-il déjà tourné quelque chose comme ça avant, où serait un bon endroit pour commencer à chercher?
Mise à jour
- Voici mes notes de style "livre de laboratoire" personnelles sur l'implémentation d'une méthode de volume fini pour l'équation d'advection-diffusion, http://danieljfarrell.github.io/FVM/
- Le code source Python est disponible ici, http://github.com/danieljfarrell/FVM.git
Mise à jour
La solution ne pourrait pas être plus simple! Je viens de faire une erreur de signe sur le terme de diffusion. C'est étrange, je suis sûr que je n'avais pas posté ça je n'aurais pas trouvé l'erreur! Si quelqu'un veut partager des conseils sur la façon de déboguer son code numérique, je suis toujours intéressé. Je n'ai pas de méthode, c'est un peu hasardeux, je continue d'essayer des trucs pour obtenir des indices, mais ce processus peut prendre des semaines (parfois).
la source
Réponses:
J'ai rassemblé une partie de mon expérience sur le débogage de codes numériques ici: deal.II FAQ: débogage . Je ne sais pas si cela vous aurait aidé dans ce cas particulier, mais cela pourrait l'être dans d'autres.
la source