Eq convection dispersion régime transitoire

ayoubgood Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Svp g besoin d'un programme en C/C++ de résolution de l'équation de convection dispersion en régime transitoire ( concentration en fonction du temps).

j'ai déjà essayé un programme que j'ai fais en C/C++ mais ça donne pas des résultats satisfaisantes, je me demande si quelqu'un peut m'aider , c'est très très urgent...

l'équation s'annonce comme suit:

dC/dt=D.(d2 C/dx2) - V.(dC/dx) avec les conditions aux limites et initiales suivantes:

C(t=0, x) = 0;
C(t, x=0) = (m/q).£(t) avec £(t) = 0 si t diffèrent de 0 et égale à 1 si t=0;
C(t, x= infini) = 0;

je serais vraiment très reconnaissant si qlqn peut m'aider même avec un minimum d'idées que ça soit un programme en C/C++ ou bien un algorithme...
Voila mon E-Mail: ayoubgood@live.fr.

2 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
salut.
Un tel programme n'est pas bien compliqué à faire. Première étape il faut discrétiser ton équation en temps et en espace. Ensuite, dans un schéma purement explicite il faut exprimer ton temps n+1 en fonction du temps n.
Donne nous ta discrétisation, et précise en quoi tes résultats étaient mauvais.
Avec un schéma explicite il y a une condition de stabilité dite CFL qui veux que dt<dx/V.
1
ayoubgood Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
D'abord merci pour ta reponse;

pour la discretisation j'ai utilisé la méthode de difference finis, schéma implicite décentrée....
le probleme que j'ai, c'est ce que normalement la solution donnée ( concentration en fonction du temps ) doit s'annuler dans les premieres secondes et apres de prendre l'allure d'une courbe gaussienne, alors que c pas le cas pour mon programme( le cas d'une injection instantannee de particules dans une colonne" un milieu poreux " ), je ne sais pas encore l'origine de l'erreur est ce que c la methode de resolution ou bien l'algorithme du regime transitoire etc ( vue que je ne suis pas assez fort en programmation, je suis d'origine physicien..)..donne moi ton e-mail si tu veux pour t'envoyer mon prog à fin de voir le decalage entre une courbe rellee et la courbe donnee par ce programme..

et merci d'avance .
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
décentré amont je suppose ?
Comme tu dois le savoir, un schéma implicite est imprécis, donc faire attention aux pas de temps. Essai de diminuer les pas de temps de manière inférieur au critère que je t'ai donné.
Je te conseil de tester ton code au fur à mesure :
commence par mettre une vitesse nulle et met une maille du centre à 1 à l'instant initial. Voit si ta diffusion se fait correctement.
étape 2, vérifier la convection en mettant un paquet de concentration dans ton domaine avec une certaine vitesse, et une diffusion nulle. Le paquet devrait être convecter avec une certaine dispersion (inérante à l'ordre 1).
Je trouve ta condition limite un peu raide.
1