Télécharger diffu2.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : diffu2.dgibi
  2.  
  3. ************************************************************************
  4. ************************************************************************
  5.  
  6. *----------------------------------------------------------------------*
  7. * diffu2.dgibi : exemple d'utilisation du modele de DIFFUSION (FICK) *
  8. * *
  9. * Diffusion COUPLEE de deux especes (C6 / C8) *
  10. * *
  11. * On modelise la diffusion simulatee de 2 especes (C6, C8) dans un *
  12. * massif semi-infini en imposant les flux des deux especes au bord, *
  13. * les concentrations en C6 & C8 etant initialement nulles. *
  14. * *
  15. * De plus, la diffusion des 2 especes est COUPLEE : on suppose que le *
  16. * moteur de la diffusion est le gradient de C, C6 Et C8 etant deux *
  17. * isotopes de la meme espece chimique. Ainsi, le vecteur courant de *
  18. * diffusion de chaque espece depend du gradient de concentration de *
  19. * chaque isotope : *
  20. * j6 = -D6.grad(C) = -D6.grad(C6+C8) = -D6.grad(C6)-D6.grad(C8) *
  21. * De meme : *
  22. * j8 = -D8.grad(C) = -D8.grad(C6+C8) = -D8.grad(C6)-D8.grad(C8) *
  23. * Les matrices de couplage sont ajoutees au blocages associes a la *
  24. * diffusion. Elles sont calculees a partir des matrices de diffusivite *
  25. * de chaque espece, en renommant le nom des inconnues sur lesquelles *
  26. * elles agissent.
  27. * *
  28. *----------------------------------------------------------------------*
  29. * IG1 = VRAI : affichage des traces ; *
  30. IG1 = FAUX ;
  31. * *
  32. *------------------------------ MAILLAGE ------------------------------*
  33. * *
  34. OPTI DIME 2 ELEM QUA8 ;
  35. * *
  36. * Repere : *
  37. O1 = 0. 0. ;
  38. X1 = 1. 0. ;
  39. Y1 = 0. 1. ;
  40. * *
  41. * Dimensions : *
  42. DG1 = 15.E-9 ;
  43. LG1 = 300.E-9 ;
  44. * *
  45. * Parametre / Maillage : *
  46. NEX1 = 30 ;
  47. L1 = O1 'DROI' 1 (DG1 * Y1) ;
  48. SG1 = L1 'TRAN' (-1 * NEX1) 'DINI' 5.E-9 'DFIN' 20.E-9 (LG1 * X1) ;
  49. L3 = SG1 'COTE' 3 ;
  50. * *
  51. 'SI' IG1 ;
  52. 'TITR'
  53. ' Maillage & C.L. : flux imposes sur le bord rouge (L1) ' ;
  54. 'TRAC' 'QUAL' (SG1 'ET' (L1 'COUL' 'ROUG')) ;
  55. 'FINS' ;
  56. * *
  57. *--------------------- MODELE / CARACTERISTIQUES ----------------------*
  58. * *
  59. * L'option 'INCO' de 'MODE' permet de definir le nom des inconnues *
  60. * primales et duales du modele (CO / QCO par defaut). *
  61. * Attention ! limite a 2 caracteres pour le nom de l'inconnue primale *
  62. MOD1 = 'MODE' SG1 'DIFFUSION' 'FICK' 'INCO' 'C6' 'QC6' ;
  63. MOD2 = 'MODE' SG1 'DIFFUSION' 'FICK' 'INCO' 'C8' 'QC8' ;
  64. KD1 = 1.E-18 ;
  65. KD2 = 4.E-19 ;
  66. MAT1 = 'MATE' MOD1 'KD' KD1 'CDIF' 1. ;
  67. MAT2 = 'MATE' MOD2 'KD' KD2 'CDIF' 1. ;
  68. * *
  69. * MATRICES de COUPLAGE : *
  70. * 1. on construit les matrices de diffusivite de chaque espece : *
  71. DC6QC6 = 'COND' MOD1 MAT1 ;
  72. DC8QC8 = 'COND' MOD2 MAT2 ;
  73. * 2. on renomme les noms d'inconnues sur lesquelles elles agissent : *
  74. * Pour DC6QC6, on a : C6 -> QC6, on veut : C8 -> QC6 : *
  75. * Pour DC8QC8, on a : C8 -> QC8, on veut : C6 -> QC8 : *
  76. * Attention ! il faut ajouter le mot-cle 'QUEL' pour indiquer a Cast3M *
  77. * que les matrices assemblees formeront un systeme qui ne *
  78. * sera pas symetrique (QUELconque). *
  79. DC8QC6 = 'CHAN' 'INCO' DC6QC6 ('MOTS' 'C6') ('MOTS' 'C8')
  80. ('MOTS' 'QC6') ('MOTS' 'QC6') 'QUEL' ;
  81. DC6QC8 = 'CHAN' 'INCO' DC8QC8 ('MOTS' 'C8') ('MOTS' 'C6')
  82. ('MOTS' 'QC8') ('MOTS' 'QC8') 'QUEL' ;
  83. * *
  84. *------------------------- C.L. / CHARGEMENTS -------------------------*
  85. * *
  86. * Blocages : *
  87. * Par choix, on limite au bord la concentration relative des 2 especes *
  88. * a leur valeur dans le milieu ext. & on la fixe nulle a l'autre bord :*
  89. CL1 = 'BLOQ' 'MAXI' 'C6' L1 ;
  90. CL2 = 'BLOQ' 'MAXI' 'C8' L1 ;
  91. CL3 = 'BLOQ' 'C6' L3 ;
  92. CL4 = 'BLOQ' 'C8' L3 ;
  93. CL0 = CL1 'ET' CL2 'ET' CL3 'ET' CL4 ;
  94. * Valeurs des limites Max. : *
  95. C6L1 = 0.5 ;
  96. C8L1 = 0.5 ;
  97. DCL1 = 'DEPI' CL1 C6L1 ;
  98. DCL2 = 'DEPI' CL2 C8L1 ;
  99. * *
  100. * Flux imposes : *
  101. FLXC0 = KD1 / 100.E-9 ;
  102. FLXC6 = 'FLUX' MOD1 L1 FLXC0 ;
  103. FLXC8 = 'FLUX' MOD2 L1 FLXC0 ;
  104. * *
  105. * A Noter : concentrations imposees => chargement 'CIMP' : *
  106. * : flux imposes => chargement 'QC..' : *
  107. * Chargement : *
  108. XNBH1 = 24. ;
  109. XNBPAS1 = 1. ;
  110. PAS1 = XNBPAS1 * XNBH1 ;
  111. TFIN1 = XNBH1 * 3600. ;
  112. LTPS1 = 'PROG' 0. TFIN1 ;
  113. LAMP1 = 'PROG' 1. 1. ;
  114. EV1 = 'EVOL' 'MANU' 'TEMP' LTPS1 'AMPL' LAMP1 ;
  115. CG1 = 'CHAR' 'CIMP' DCL1 EV1 ;
  116. CG2 = 'CHAR' 'CIMP' DCL2 EV1 ;
  117. CG3 = 'CHAR' 'QC6 ' FLXC6 EV1 ;
  118. CG4 = 'CHAR' 'QC8 ' FLXC8 EV1 ;
  119. CG0 = CG1 'ET' CG2 'ET' CG3 'ET' CG4 ;
  120. * *
  121. *------------------------------ PASAPAS -------------------------------*
  122. * *
  123. * COUPLAGE : on rajoute les matrices de couplage : DC8QC6 et DC6QC8, *
  124. * aux blocages de diffusion : *
  125. * *
  126. TAB1 = 'TABL' ;
  127. TAB1 . 'MODELE' = MOD1 'ET' MOD2 ;
  128. TAB1 . 'CARACTERISTIQUES' = MAT1 'ET' MAT2 ;
  129. TAB1 . 'BLOCAGES_DIFFUSIONS' = CL0 'ET' DC8QC6 'ET' DC6QC8 ;
  130. TAB1 . 'CHARGEMENT' = CG0 ;
  131. TAB1 . 'RELAXATION_THETA' = 1. ;
  132. TAB1 . 'TEMPS_CALCULES' = 'PROG' 0. PAS (TFIN1 / PAS1) TFIN1 ;
  133. *
  134. PASAPAS TAB1 ;
  135. *
  136. *----------------------------- AFFICHAGES -----------------------------*
  137. * *
  138. * Table legende dessins : *
  139. TDESS1 = 'TABL' ;
  140. TDESS1 . 3 = 'MOT' 'TIRR' ;
  141. TDESS1 . 4 = 'MOT' 'TIRR' ;
  142. TDESS1 . 5 = 'MOT' 'TIRR' ;
  143. TDESS1 . 'TITRE' = 'TABL' ;
  144. TDESS1 . 'TITRE' . 1 = ' Concentration C6 ' ;
  145. TDESS1 . 'TITRE' . 2 = ' Concentration C8 ' ;
  146. TDESS1 . 'TITRE' . 3 = ' C6 + C8 ' ;
  147. TDESS1 . 'TITRE' . 4 = ' C6-C8 pas couples' ;
  148. * *
  149. * Solutions analytiques etat final sans couplage : *
  150. L2 = SG1 'COTE' 2 ;
  151. CHC6L2 = (LG1 - (L2 'COOR' 1) * C6L1 / LG1) 'NOMC' 'C6';
  152. EVCREF1 = 'EVOL' 'JAUN' 'CHPO' CHC6L2 'C6' L2 ;
  153. * *
  154. NB1 = 'DIME' (TAB1 . TEMPS) ;
  155. NBPAS2 = 'ENTI' (8. * XNBPAS1) ;
  156. LDESS1 = 'LECT' 1 'PAS' 2 (NBPAS2 + 1) PAS NBPAS2 NB1 ;
  157. I1 = 0 ;
  158. 'REPE' B1 NB1 ;
  159. TPSI1 = TAB1 . 'TEMPS' . I1 ;
  160. CHCI1 = TAB1 . 'CONCENTRATIONS' . I1 ;
  161. CHC6I1 SG2 = (CHCI1 'EXCO' 'C6') SG1 'PLUS' (3. * DG1 * Y1) ;
  162. CHC8I1 = CHCI1 'EXCO' 'C8' ;
  163. EVCI1 = 'EVOL' 'ROUG' 'CHPO' CHCI1 'C6' L2 ;
  164. EVCI2 = 'EVOL' 'VERT' 'CHPO' CHCI1 'C8' L2 ;
  165. EVCI3 = (EVCI1 + EVCI2) 'COUL' 'BLAN' ;
  166. 'SI' (IG1 'ET' ('DANS' ('LECT' &B1) LDESS1)) ;
  167. 'TITR' ('CHAI' ' Concentration a '
  168. 'FORMAT' '(F4.1)' (TPSI1 / 3600.) ' h') ;
  169. 'SI' (&B1 'NEG' NB1) ;
  170. 'TRAC' (CHC6I1 'ET' CHC8I1) (SG1 'ET' SG2) ;
  171. 'DESS' (EVCI1 'ET' EVCI2 'ET' EVCI3) 'LEGE' TDESS1 ;
  172. 'SINO' ;
  173. 'TITR' ' Concentration au temps final (24 h) ' ;
  174. 'TRAC' (CHC6I1 'ET' CHC8I1) (SG1 'ET' SG2) ;
  175. 'DESS' (EVCI1 'ET' EVCI2 'ET' EVCI3 'ET' EVCREF1) 'LEGE' TDESS1 ;
  176. 'FINS' ;
  177. 'FINS' ;
  178. I1 = I1 + 1 ;
  179. 'FIN' B1 ;
  180. * *
  181. 'FIN' ;
  182. * *
  183. *----------------------------------------------------------------------*
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  

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