• Aucun résultat trouvé

Transferts d’eau (1D) dans le sol

CHAPITRE 7. TRANSFERTS D’EAU (1D) DANS LE SOL

7.3.2 Modification de la courbe de conductivité

avec a1 = 2h1− dh dS ! 1 (S1−1) (7.33) a2 = h1− a1 (7.34) où h1 et  dh dS 

1 sont la valeur et la dérivée de la courbe de pression de VG en S1.

On obtient ensuite par inverse l’expression suivante pour la courbe de rétention : S(h) =    (1 + hn)−m, si h ≥ h 1 1 + 2(S1−1)h a1+ √ a2 1+4a2h , si h < h1 (7.35)

7.3.2

Modification de la courbe de conductivité

La courbe de conductivité utilisée est basée sur la formulation de Schaap-Van Genuchten (Schaap and van Genuchten, 2006). Celle-ci correspond à une modification de la courbe de conductivité Mualem-Van Genuchten modifiée près de la saturation. Cette dernière permettait d’éliminer les pentes trop fortes qui apparaissent juste avant la saturation (notamment pour des valeurs de n approchant la borne inférieure de 1 (Vogel et al., 2001)). La modification proposée par Schaap and van Genuchten (2006) permet en plus d’intégrer l’influence des écoulements préférentiels qui dominent le régime d’écoulement près de la saturation. La formulation finale permet ainsi de distinguer les régimes composés uniquement d’écoulements dans la matrice des régimes où les écoulements dans les macropores et autres fractures du sol se superposent et dominent les écoulements matriciels (près de la saturation).

La formulation de Mualem-Van Genuchten modifiée proposée par Vogel et al. (2001) est la suivante :

La courbe de rétention est modifiée comme suit : θ(h) =    θr+ (1−|αh|θm−θrn)m, si h < hs θs, si h ≥ hs (7.36) où hs est une pression capillaire seuil, négative et proche de zéro et θm est un

paramètre fictif (θm > θs) définit comme :

θm = θr+ (θs− θr)(1+ | αhs |n)m (7.37)

La saturation s’exprime donc

S(h) =    θ(h)−θr θm−θr , si h < hs θs−θr θm−θr, si h ≥ hs (7.38) Et on en déduit l’expression de la courbe de conductivité de Mualem-Van Genuchten modifiée : K(S) =    Kxmxmp[1 − (1 − x)m]2, si h < hs Kxm, si h ≥ hs (7.39) avec x définit par S1/m, p un paramètre de porosité, K

xm = xpm Kx

s (1−xs)m)2, xs la va-

leur de x à la pression hset Kxest la conductivité à saturation de la matrice du sol [LT-1].

Cette expression de la courbe de conductivité est alors modifiée pour prendre en compte l’influence des macropores. La gamme des pression est divisée en 3 :

— h<hmac2 : le régime est dominé par les écoulements dans la matrice. hmac2 est

fixé à -40cm dans le code d’origine. Pour cette gamme de pression, la conductivité hydraulique s’exprime avec la relation de Mualem-Van Genuchten modifiée :

KvGm(h) = Kxmxmp[1 − (1 − x)m]2 (7.40)

— hmac2<h<hmac1 : le régime peut être considéré comme dominé par les écou-

lements dans des mésopores de taille intermédiaire (Schaap and van Genuchten, 2006). Dans le code de Ross, hmac1=hs=-4 cm.

Kms(h) =

Ks

KvGm(h) !R(h)

KvGm(h) (7.41)

où la fonction R(h) est définit comme :

R(h) = Rmac1(h − hmac2) hmac1− hmac2

(7.42) et Rmac1 fixé à 0.25.

— h>hmac1 : le régime est dominé par les écoulements dans les macropores et la

conductivité s’exprime par une fonction qui décroît exponentiellement avec la pression depuis la saturation :

Kmp(h) = Ksexp(

−h hp

) (7.43)

hp est déterminé en supposant qu’à h=hmac1, on a :

K(h) = Kmp(h) = Kms(h) (7.44)

On a alors hp = (1−Rhmac1

CHAPITRE 7. TRANSFERTS D’EAU (1D) DANS LE SOL

Figure 23 – Exemple de courbe de conductivité basée sur les paramètres de Van Genuchten utilisée dans FRER1D.

La forme finale de la courbe de conductivité est illustrée fig. 23. La principale difficulté de cette formulation est l’absence d’expression analytique simple pour le potentiel de Kirchhoff dans la gamme de pressions inférieures à hmac1. On utilise alors

une approximation de la conductivité et du potentiel basée sur une expansion en série et sur les approximants de Padé ainsi que des fonctions quadratiques

— Sur la gamme h ≤ hg (ou h ≤ hmac2 si hg>hmac2) : la conductivité KvGm(h) est

approximée grâce à l’approximant de 1-(1-x)m de Padé :

1 − (1 − x)m= mx(2 − x)

2 + (m − 2)x[1 + (m − 1)x/6], pour x ≤ 1/2 (7.45)

Et l’approximant de Padé pour le potentiel de Kirchhoff donne : Φ(h) ∼= hgKxmm2(m − 1)xa 1 a+  1 1+a+ c a  x+ c a+1+ b 12  1 + cx (7.46) avec a= m(p + 1) + 1; b = m 2+ 11 a+ 2 ; c =2(m2+ 5) b(a + 3) (7.47)

— Pour h>hg (ou h>hmac2 si hg>hmac2) : l’intervalle de pressions est découpé en

plusieurs segments sur chacun desquels Kms(h) est approximée numériquement

par une fonction quadratique. Ces quadratiques sont intégrées pour déterminées le potentiel de Kirchhoff correspondant.

— Pour les pressions supérieures à hmac1 : on a Φ(h) = −hpKmp(h)

7.4

Implémentation

7.4.1

module FRER1D

Le module FRER1D est un script Fortran 90 qui permet de lancer le schéma de résolution en appelant la subroutine FLOW. Il initialise les différents paramètres d’une colonne de sol et reçoit les conditions initiales en surface (volume et concentration dans le ponding). C’est dans ce module que se fait le changement de conditions limites, le calcul de l’équilibre d’adsorption puis qu’est appelé le module FLOW effectuant lui-même la résolution. L’équilibre dans la couche de mélange est enfin calculé avant de renvoyer les différentes variables au coupleur.

7.4.2

module FRER1D_HEDGE

Le module FRER1D_HEDGE fonctionne exactement de la même manière que FRER1D et permet de lancer le calcul de l’infiltration verticale sur une haie. Un module indépendant a été mis en place pour traiter ces objets car la résolution ne doit pas se faire sur une mais sur 2 colonnes de sol. Comme les scripts Fortran sont très rigoureux concernant la déclaration de variables, il aurait été assez complexe de traiter des éléments composés d’une colonne de sol et d’autres composés de 2 colonnes de sol dans un unique script FRER1D. Une solution aurait pu être d’appeler FRER1D successivement pour chaque colonne de sol composant la haie mais cette gestion aurait du se faire à l’extérieur du script par une région de code PALM, ce qui paraissait plus complexe. Il a donc été décidé de dupliquer le code FRER1D pour en faire une version "haie" spécialement conçue pour gérer un objet avec ses colonnes de sol amont et aval.

Ce module appelle donc les mêmes variables PALM que FRER1D mais est capable de distinguer les 2 composantes "up" et "down" fournies dans tous les objets PALM relatifs au fonctionnement d’une haie. Pour cela, une dimension supplémentaire est ajoutée à toutes les variables déclarées dans le script. Par exemple, la variable S (saturation) est un vecteur de dimension n_layer dans FRER1D et une matrice de dimensions (2,n_layer) dans FRER1D_HEDGE. La première ligne détermine dans quelle partie de la haie "up" ou "down" on se trouve (S(1, :) décrit la saturation dans la partie amont de la haie et S(2, :) dans la partie aval).

7.4.3

module FLOW et FLOW_HEDGE

FLOW est le script dans lequel s’effectue la résolution présentée section 7.2. Le script initial a été conservé hormis la partie de calcul de la masse de solutés infiltrés. A chaque sous pas de temps de résolution, une fois déterminées la quantité d’eau infiltrée et la nouvelle hauteur de ponding, on détermine la nouvelle concentration dans le ponding c0 (s’il y a du ponding) et la masse de solutés qui ont été infiltrés pendant ce pas de temps sinfil. Pour cela, on distingue plusieurs cas :

Une hauteur de ponding apparaît ou disparaît pendant le pas de temps considéré :

S’il reste du ponding en fin de pas de temps :

CHAPITRE 7. TRANSFERTS D’EAU (1D) DANS LE SOL

— cav est aussi la concentration en solutés de l’eau qui reste en surface c0

S’il n’y a plus de ponding à la fin du pas de temps :

— Détermination de la concentration en solutés dans le volume en eau infiltré cav — c0 = 0 car il n’y a plus de solutés dissous en surface

Pas de ponding en début et en fin de pas de temps

La quantité de solutés infiltrés est exactement égale au flux en surface qprec*cin*dt. Dans un second temps, le module FLOW appelle la subroutine SOLUTE qui résout en particulier la partie de transport de solutés dans la colonne de sol. Avant d’appeler cette subroutine, la variable mpond est initialisée. Elle correspond à la masse de solutés dissous en surface une fois soustraite la masse adsorbée. La masse mpond est initialisée comme étant la masse totale disponible pour l’infiltration :

mpond = qprec ∗ cin ∗ area ∗ ∆t (7.48)

Cette masse sera ensuite incrémentée dans le module solute : elle diminuera en cas d’infiltration et augmentera en cas d’exfiltration. S’il n’y a pas de ponding en fin de simulation, mpond est forcément nulle.

FLOW_HEDGE est strictement identique à FLOW et est utilisé. L’appel à 2 scripts séparés avait été implémenté dans un premier temps car certaines variables semblaient mal se déclarer lorsque FRER1D et FRER1D_HEDGE appelaient simultanément FLOW. Il faudra sûrement recreuser ce point là car il n’est peut-être pas nécessaire de dédoubler ces scripts.

7.4.4

modules HYPBC et HYPVGVG

Ces deux modules permettent la détermination des variables K, S et Φ en utilisant les relations de Brooks & Corey pour HYPBC et les relations de Van Genuchten modifiées pour HYPVGVG. L’appel à l’un de ces modules est déclaré au début des subroutines INIT_FRER1D, FRER1D et FRER1D_HEDGE et des modules FLOW et FLOW_HEDGE. Pour le moment, PESHMELBA ne dispose pas d’un passage automatisé à l’une ou l’autre description. Lorsqu’on veut changer le type de description des propriétés du sol, il faut changer explicitement l’appel à l’un des deux modules dans la ligne "USE" des scripts fortran dans la carte d’identité du script pour INIT_FRER1D, FRER1D et FRER1D_HEDGE. Il faut également spécifier le type de relation utilisée dans les constantes PALM : on met à 0 la variable hydr_pptes si on utilise les relations de Brooks & Corey, et à 2 si on utilise les relations de Van Genuchten modifiées (la variable pourra être fixée à 1 si besoin d’implémenter l’utilisation de relations composites entre Brooks & Corey et Van Genuchten, voir (Ross, 2006)).

Chapitre 8