Télécharger kr_pro.procedur

Retour à la liste

Numérotation des lignes :

  1. * KR_PRO PROCEDUR GBM 07/08/08 21:15:04 5841
  2. * KR_PRO PROCEDUR MAUGIS 02/12/19 12:57:20 4522
  3. ************************************************************************
  4. * Fonction qui calcule la perméabilité en fonction de la
  5. * saturation réduite.
  6. *
  7. *
  8. * Entrée :
  9. * --------
  10. * LOI : table de données décrite ci-dessus
  11. * ALPHA : coef. B (s.d.)
  12. * PERMSAT : coef. Ks, perméabilité à saturation (m/s)
  13. * ('FLOTTANT', ou 'CHPOINT',
  14. * 1 composante nom quelconque, (voir 'MODE' 'DARCY')
  15. * sous-modèle autorisé : ISOTROPE.
  16. * SAT : saturation réduite ou pression d'eau selon la loi utilisée
  17. *
  18. * Sortie :
  19. * --------
  20. * K1 : perméabilité totale en eau (m/s)
  21. *
  22. ************************************************************************
  23. 'DEBPROC' KR_PRO LOI*'TABLE' SAT*'CHPOINT' ;
  24.  
  25. * SAT est une saturation
  26. SI (EGA LOI.'SOUSTYPE' (CHAINE 'PUISSANCE')) ;
  27. alf = LOI.'ALPHA' ;
  28. * K1 = SAT '+' 1.E-10 ;
  29. TSM1 = SAT MASQUE 'SUPERIEUR' 0.0 ;
  30. TSM2 = SAT MASQUE 'INFERIEUR' 1.0 ;
  31. TSM3 = TSM1 * TSM2 ;
  32. * On laisse la saturation à 1 si elle dépasse et à 0 en dessous de 0
  33. K1 = (SAT * TSM3) '+' (1.D0 '-' TSM2) ;
  34. K1 = K1 '**' alf ;
  35. FINSI ;
  36. * SAT est une saturation
  37. SI (EGA LOI.'SOUSTYPE' (CHAINE 'MUALEM')) ;
  38. TSM1 = SAT MASQUE 'SUPERIEUR' 0.0 ;
  39. TSM2 = SAT MASQUE 'INFERIEUR' 1.0 ;
  40. TSM3 = TSM1 * TSM2 ;
  41. SAT = (SAT * TSM3) '+' (1.D0 '-' TSM2) ;
  42. K1 = SAT '**' (LOI . 'COEF_M' '**' -1) ;
  43. K1 = (1.D0 '-' K1) '**' (LOI . 'COEF_M') ;
  44. K1 = (1.D0 '-' K1) '**' 2 ;
  45. K1 = ('NOMC' 'SCAL' K1) * (SAT '**' 0.5D0) ;
  46. FINSI ;
  47. * SAT est une saturation
  48. SI (EGA LOI.'SOUSTYPE' (CHAINE 'BURDINE')) ;
  49. TSM1 = SAT MASQUE 'SUPERIEUR' 0.0 ;
  50. TSM2 = SAT MASQUE 'INFERIEUR' 1.0 ;
  51. TSM3 = TSM1 * TSM2 ;
  52. SAT = (SAT * TSM3) '+' (1.D0 '-' TSM2) ;
  53. K1 = SAT '**' (LOI . 'COEF_M' '**' -1) ;
  54. K1 = (1.D0 '-' K1) '**' (LOI . 'COEF_M') ;
  55. K1 = (1.D0 '-' K1) ;
  56. K1 = ('NOMC' 'SCAL' K1) * (SAT '**' 2.D0) ;
  57. FINSI ;
  58. SI (EGA LOI.'SOUSTYPE' (CHAINE 'MUALEM_BURDINE')) ;
  59. TSM1 = SAT MASQUE 'SUPERIEUR' 0.0 ;
  60. TSM2 = SAT MASQUE 'INFERIEUR' 1.0 ;
  61. TSM3 = TSM1 * TSM2 ;
  62. SAT = (SAT * TSM3) '+' (1.D0 '-' TSM2) ;
  63. K1 = SAT '**' ((LOI . 'COEF_M') '**' -1) ;
  64. K1 = (1.D0 '-' K1) '**' (LOI . 'COEF_M') ;
  65. K1 = (1.D0 '-' K1) '**' (LOI . 'COEF_B') ;
  66. K1 = ('NOMC' 'SCAL' K1) * (SAT '**' (LOI . 'COEF_A')) ;
  67. FINSI ;
  68. ;
  69. SI (EGA LOI.'SOUSTYPE' (CHAINE 'BROOKS_COREY')) ;
  70. TSM1 = SAT MASQUE 'SUPERIEUR' 0.0 ;
  71. TSM2 = SAT MASQUE 'INFERIEUR' 1.0 ;
  72. TSM3 = TSM1 * TSM2 ;
  73. SAT = (SAT * TSM3) '+' (1.D0 '-' TSM2) ;
  74. K1 = 'KOPS' SAT '**' (LOI.'LAMBDA' ** -1. * 2. + LOI.'COEF_B') ;
  75. K1 = 'KOPS' K1 '*' ('KOPS' SAT '**' LOI.'COEF_A') ;
  76. FINSI ;
  77.  
  78. * l'argument SAT est une pression d'eau pour la suite
  79. PW = SAT ;
  80. SI (EGA LOI.'SOUSTYPE' (CHAINE 'EXPONENTIELLE')) ;
  81. K1 = -1.D0 * PW '*' LOI.'ALPHA' ;
  82. K1 = 'ABS' (K1) ;
  83. K1 = 'EXP' (K1) ;
  84. K1 = K1 '**' LOI.'COEF_N' ;
  85. K1 = K1 '+' LOI.'COEF_C' ;
  86. K1 = (K1 '-' 1.) '**' -1. ;
  87. K1 = K1 '*' LOI.'COEF_C' ;
  88. FINSI ;
  89. SI (EGA LOI.'SOUSTYPE' (CHAINE 'LOGARITHMIQUE')) ;
  90. K1 = PW '*' LOI.'ALPHA' ;
  91. SOT = 'MASQUE'('ABS' K1) SUPERIEUR 1.D0 ;
  92. * on tronque à 1 si inferieur à 1, C'est dans la loi
  93. K1 = (K1 * SOT) '+' (1.D0 '-' SOT) ;
  94. K1 = 'LOG' (('ABS' K1) '+' 1.e-30) ;
  95. K1 = ('ABS' K1) '**' LOI.'COEF_N' ;
  96. K1 = K1 '+' LOI.'COEF_C' ;
  97. K1 = K1 '**' -1. ;
  98. K1 = K1 '*' LOI.'COEF_C' ;
  99. FINSI ;
  100.  
  101. K1 = K1 * LOI . 'PERMSAT' ;
  102.  
  103. 'FINPROC' K1 ;
  104. ************************************************************************
  105.  
  106.  
  107.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales