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

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