Pour le problème de diffusion. En transformant l'équation en coordonnées polaires, on a considéré que comme la diffusion se fait de façon circulaire et uniforme, qu'il n'y a pas de variation de la concentration avec l'angle et donc que tous les termes dérivés par rapport à thêta sont nuls. Est-ce que ce raisonnement est correcte ? Aussi pour les conditions frontières, est-ce que l’on peut considérer que si nous prenons un rayon maximal de notre domaine suffisamment grand la concentration à l’extrémité est nul. Finalement pour trouver le coefficient de diffusion est-ce qu’il existe une façon analytique de le trouver ou est-ce que l’on doit implémenter un algorithme qui essaye différente valeur.
Bonjour,
triple question, triple réponse.
1) Cette hypothèse est parfaitement justifiable pour le cas étudié.
2) Oui, si le rayon est suffisament grand. Néanmoins, cette hypothèse est difficilement justifiable sans une connaissance a priori du rayon, l'idéal est plutôt d'utiliser des conditions de flux nul, c'est plus juste et plus physique.
3) Il y a un moyen de trouver un estimé analytique de D en procédant par analyse d'échelle. Regarder quelles sont les unités de D, et quelle échelle de longueur et de temps vous intéresse, vous pourrez estimer D.
Après, pour trouver la valeur de D, une méthode de bissection est tout indiquée, ça marche super bien, c'est robuste et ça converge vraiment vite. Sur mon laptop, en partant de bornes initiales vraiment éloignées, je converge en 3 minutes.
Merci
BB
On a utilisé une condition de flux nul pour la frontière dc(0)/dr en raison de la symétrie en utilisant un schéma avant de Gears. La condition de flux nul marche aussi pour la frontière à l'autre extrémité ?
Aussi on a déja impémenté un algorithme de bissection, mais on a ultilisé une erreur de 1/10000 pour éviter que cela prenne trop de temps (~5 sec). Est-ce que c'est assez précis?
La condition de flux nul fonctionnera aussi à l'autre extrémité sans problème. Vous ne verrez pas de grande différence, mais ceci permet parfois d'utiliser un plus petit rayon.
L'algorithme de bissection est un bon choix. Le temps de convergence de l'algorithme dépend fortement de votre estimé initial pour D. De mon côté je pars de 5e-4 comme borne sup et 1e-6 comme borne inf, donc je ratisse très, très large.
Une erreur relative (c'est important qu'elle soit relative) de 1e-4 sur la valeur du coefficient de diffusion est bon, cela vous donne 4 chiffres significatifs. On s'entend que dans la vie de tout les jours, 4 chiffres significatifs c'est largement suffisant pour 99% des applications.
À vrai dire on a regardé l'erreur relative sur le ratio de C(r1)/C(r2) étant donné que l'on connaît la valeur exacte qui doit être de 2. Autrement dit on a while abs(ratio-2)/2 > 0.0001 comme critère d'arrêt.
Ohhh, bien joué,
J'avais mis mon critère d'arrêt sur la valeur de D (c-à-d quand elle ne changeait plus de 1e-4 * D), mais votre approche est tout aussi valable. Intéressant!
Lachez pas!
Bonjour Bruno,
est-ce qu'il est juste d'imposé des condition de flux nul à la fin du rayon et un condition de dirichlet à l'origine?
merci beaucoup
La concentration à l'origine change avec le temps. Un condition de Dirichlet signifirai que la concentration reste constante à l'origine.
merci beaucoup!
j'ai révisé mon problème et j'ai finalement imposé des conditions de flux nul pour chaque extrémité.
je me retrouve néanmoins dans une impasse. Je n'arrive pas a isolé le D.
j'ai essayer de deux facons:
1) faire une boucle for où je fais varier D et dans cette boucle de faire variré la concentration en temps et en espace avec une autre boucle for. Ensuite j'impose un while abs((C(R1)/C(R2))-2)/2 > 0.0001
mais après plusieurs minutes mon code ne converge pas
2) j'ai tente par la méthode de bissection mais j'ai beaucoup de difficulté a trouve une foncction avec une changement de signe pour D et je vois pas en quoi cela respectera la consigne qui nous demande que le ratio entre la concentration de R1/R2 doit etre égale à 2
merci beaucoup
Bonjour, vous êtes dans la bonne direction.
La fonction qui change de signe est celle-ci:
f(0.5)/f(1) = 2
donc 2 - f(0.5)/f(1) = 0 est la fonction
Vous pouvez poser par exemple D=D1
calculez 2- f(0.5)/f(1) et regardez son signe (où f(x) est la réponse de votre schéma différence finie au temps 5 heure et à la position x)
ensuite D=D2
calculez 2-f(0.5)/f(1) et regardez son signe
Ensuite posez D=(D1+D2)/2, calculez son signe et procédez par une bissectrice.
Merci
BB