Vous êtes sur la page 1sur 3

Université Paris-Sud Méthodes Numériques pour la Physique

M1 Physique et Applications

TP 5 : Ecoulements en milieux poreux


————————————————————————————————————————————————————

Description du problème

Dans le contexte de la récupération assistée de pétrole, on veut étudier l’écoulement souterrain existant dans une roche
poreuse entre deux points de forage.

Nord pompage

y
x injection
surface
z

roche

L’écoulement dans un milieu poreux est gouverné par la loi de Darcy :


κ~
~u = − ∇P (1)
µ

avec ~u le champ de vitesse dans le plan (en m · s−1 ), P la pression (en Pa soit kg · m−1 · s−2 ), µ la viscosité dynamique
du fluide (en kg · m−1 · s−1 ) et κ la perméabilité de la roche (en m2 ). La perméabilité κ et la viscosité dynamique
µ sont constantes dans le TP mais peuvent varier dans des roches. On suppose d’autre part que l’écoulement est
incompressible :
~ · ~u = 0
∇ (2)

En supposant que l’écoulement reste plan du coté piézométrique zplan , on peut se placer en deux dimensions dans le plan
contenant les têtes de forage (en trait tireté sur la figure). De plus en supposant que l’écoulement est symétrique par
rapport à la ligne joignant ces deux têtes (ici en trait pointillé), on peut finalement étudier le probléme bidimensionnel
suivant :

nord
xin xout

ouest est Ly
y

x sud

Lx

1
avec les conditions aux limites suivantes :

• Sur les bords sud, ouest et est, on impose la pression P = 0 (relativement à la pression piézométrique règnant à
cette profondeur).

P (x, 0) = 0 , ∀x ∈ [0, Lx ] , P (0, y) = P (Lx , y) = 0 , ∀y ∈ [0, Ly ] (3)

• Sur le bord nord, entre le bord ouest et l’abscisse xin , on a une situation plus complexe. Pour x ∈ [0, xin ], on
modélise le forage d’injection par une surpression Pin . Pour x ∈ [xout , Lx ], on modélise le forage de pompage
par une dépression Pout . Entre ces deux abscisses, pour x ∈ [xin , xout ], on a une condition de symétrie sur la
pression, ce qui se traduit par une condition de Neumann. En résumé, sur la paroi nord :


 P (x, Ly ) = Pin , 0 ≤ x ≤ xin



∂y P (x, Ly ) = 0 , xin ≤ x ≤ xout (4)




 P (x, Ly ) = Pout , xout ≤ x ≤ Lx

On choisira, dans ce TP, xin = 0.2Lx, xout = 0.8Lx.

Modélisation numérique et résolution


1. Déterminer l’EDP d’ordre 2, régissant la pression en combinant les équations (1) et (2). Adimensionner le
problème, c.a.d. proposer de bonnes unitées pour la longueur L et pour le temps T . Montrer que le problème
sans dimension ne dépend que d’un seul paramètre sans dimension, le rapport d’aspect λ = Ly /Lx .

2. Discrétiser le problème à l’aide de la méthode des différences finies. On travaillera avec un maillage à pas d’espace
constant par direction (Mx +1 et My +1 points dans chaque direction). On utilisera des formules centrées d’ordre
2 en précision.
• Spécifier les équations algébriques pour tout point intérieur.
• Spécifier les équations algébriques pour les points de bord.

3. Regrouper toutes les équations du problème sous forme d’un système matriciel, utilisant la même ”nouvelle”
numérotation des points que celle vue en cours. On obtiendra :
    
× ··· × × ×
 .. . . ..   ..  =  .. 
. . .  .   .  (5)
× ··· × × ×
| {z } | {z } | {z }
A p g

avec A une grande matrice carrée et p, g deux vecteurs colonnes.

4. Programmer la matrice A et le vecteur colonne de droite g. Trouver la solution p à l’aide de fonctions de la


bibliothèque Scipy.linalg .

5. Réorganiser la solution dans le vecteur colonne p dans une matrice P de taille (Mx + 1) × (My + 1) tel que

Pi+1,j+1 = P (xi , yj ) , i = 0, . . . , Mx , j = 0, . . . , My (6)

6. Pour tracer la solution, on pourra se limiter à un affichage 2D avec des contours. Utiliser alors la fonction suivante
(que l’on programmera, cf exemple) : contourf(xtab,ytab,P,40) où P est le tableau solution et xtab, ytab
sont deux vecteurs colonnes, contenant l’ensemble des valeurs de xi , i = 0, . . . , Mx et yj , j = 0, . . . , My du
maillage.

2
7. On souhaiterait visualiser le champ de vitesse correspondant à cette distribution de pression. A l’aide de l’équation
(1) et de différences finies centrées, exprimer les relations discrètes permettant d’avoir les deux com-posantes (ux,
uy ) du vecteur vitesse ~u. Adapter la discrétisation de façon à pouvoir calculer aussi la vitesse sur les bords.

8. Une fois obtenu le champ de vecteurs vitesses, visualiser les lignes de courant avec la fonction
streamline(xlist,ylist,U,V,startx,starty). Il faut pour cela définir des vecteurs contenant les points
origines des lignes de courant :
startx = np.arange(0.1,1,0.05)
starty = 0.95*np.ones(len(startx))
Jouer sur les paramètres de ces points origines pour explorer la configuration de l’écoulement et le commenter.

9. On souhaiterait maintenant quantifier le débit volumique de fluide passant par les forages de pompage et
d’injection. Les débits entrants et sortants peuvent s’exprimer de la fa con suivante :

Z xin Z Lx
Qin = uy dx , Qout = uy dx (7)
0 xout

Proposer une évaluation discrète des débits d’injection et de pompage. Comparer ces valeurs et commenter
(y-a-t-il conservation de la masse ?).

Vous aimerez peut-être aussi