Télécharger fluechnak.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : fluechnak.dgibi
  2. GRAPH = faux ;
  3. ******************** CAS TEST : fluechnak.dgibi **********************
  4.  
  5. * --------------------------------------------------------------------
  6. *
  7. * TRANSPORT GEOCHIMIE
  8. *
  9. * ECHANGE IONIQUE AVEC BILAN DE FLUX
  10. *
  11. * --------------------------------------------------------------------
  12. 'OPTION' 'ECHO' 0 ;
  13. 'SAUTER' 'PAGE';
  14. * repertoire des fichiers "divers"
  15. DIVERS = VENV 'CASTEM_DIVERS';
  16. *
  17.  
  18. * emplacement de COMPOM
  19. emp1 = 'CHAINE' DIVERS '/COMPOM' ;
  20.  
  21. ********************************************************
  22. * Données géométriques et physiques
  23. ********************************************************
  24. *
  25. *- Définition du maillage
  26. *
  27. 'OPTION' 'DIME' 2 'ELEM' 'QUA4' 'TRACER' 'PSC' ;
  28. *
  29. *
  30. A = 0. 0. ;
  31. LX = 10. ;
  32. B = LX 0.;
  33. NX = 1 ;
  34. NY1 = 10 ;
  35. LY1 = 10. ;
  36. NY2 = 30 ;
  37. LY2 = 30. ;
  38. LY = LY1 + LY2 ;
  39. NY = NY1 + NY2 ;
  40. AB = ('DROIT' NX A B) ;
  41. G0 = 'TRANSLATION' AB NY1 (0. LY1) ;
  42. CCDD = 'INVERSE' ('COTE' 3 G0) ;
  43. DTOT = 'TRANSLATION' G0 NY2 (0. LY2) ;
  44. BC = 'INVERSE' ('COTE' 2 DTOT) ;
  45. CD = 'INVERSE' ('COTE' 3 DTOT) ;
  46. *
  47. *- création des maillages hybrides
  48. *
  49. MFTOT = 'CHANGER' DTOT 'QUAF' ;
  50. MFAB = 'CHANGER' AB 'QUAF' ;
  51. MFBC = 'CHANGER' BC 'QUAF' ;
  52. MFCD = 'CHANGER' CD 'QUAF' ;
  53. MFG0 = 'CHANGER' G0 'QUAF' ;
  54. MFCCDD = 'CHANGER' CCDD 'QUAF' ;
  55. 'ELIMINATION' 0.001 (MFTOT 'ET' MFAB 'ET' MFBC 'ET' MFCD 'ET' MFG0
  56. 'ET' MFCCDD);
  57. *
  58. *- modèles
  59. *
  60. MODHYB = 'MODELE' MFTOT 'DARCY' 'ISOTROPE' ;
  61. MMAB = 'MODELE' MFAB 'DARCY' 'ISOTROPE' ;
  62. MMBC = 'MODELE' MFBC 'DARCY' 'ISOTROPE' ;
  63. MMCD = 'MODELE' MFCD 'DARCY' 'ISOTROPE' ;
  64. MMG0 = 'MODELE' MFG0 'DARCY' 'ISOTROPE' ;
  65. MMCCDD = 'MODELE' MFCCDD 'DARCY' 'ISOTROPE' ;
  66. *
  67. CHYB1 = 'DOMA' MODHYB 'SURFACE' ;
  68. CHYB2 = 'DOMA' MODHYB 'NORMALE' ;
  69. MCHYB = 'DOMA' MODHYB 'ORIENTAT';
  70. XVOLU = 'DOMA' MODHYB 'VOLUME' ;
  71. FATOT = 'DOMA' MODHYB 'FACE' ;
  72. CETOT = 'DOMA' MODHYB 'CENTRE' ;
  73. CEAB = 'DOMA' MMAB 'CENTRE' ;
  74. CEBC = 'DOMA' MMBC 'CENTRE' ;
  75. CECCDD = 'DOMA' MMCCDD 'CENTRE' ;
  76. *
  77. *- Définition de maillages lignes pour le post traitement
  78. *
  79. NBCC = 'NBNO' CEBC ;
  80. PI1 = 'POINT' CEBC 1 ;
  81. PI0 = PI1 ;
  82. I = 2 ;
  83. SI ( NBCC > 1 ) ;
  84. PI2 = 'POINT' CEBC I ;
  85. BCSEG = 'QUELCONQUE' 'SEG2' PI1 PI2 ;
  86. SI ( NBCC > 2 ) ;
  87. NBCC2 = NBCC - 2 ;
  88. 'REPETER' BLOC6 NBCC2 ;
  89. PI1 = PI2 ;
  90. I = I + 1 ;
  91. PI2 = 'POINT' CEBC I ;
  92. LILI = 'QUELCONQUE' 'SEG2' PI1 PI2 ;
  93. BCSEG = BCSEG 'ET' LILI ;
  94. FIN BLOC6 ;
  95. FINSI ;
  96. FINSI ;
  97. VV = 0.5 * B ;
  98. MAFACC = 'MOIN' ('INVERSE' BC) VV ;
  99. ELIM 0.01 MAFACC FATOT ;
  100. MMP = 'ELEM' MAFACC 'APPUYE' 'LARGEMENT' ('POINT' MAFACC FINAL) ;
  101. MC = 'DIFF' MAFACC MMP ;
  102. VVY = LY / NY * 0.5 ;
  103. VVVY = 0. VVY ;
  104. MACENT = 'PLUS' MC VVVY ;
  105. MACENT = 'COULEUR' MACENT 'ROUGE' ;
  106. 'ELIMINATION' 0.01 MACENT CETOT ;
  107. *
  108. *- on entre la vitesse on en deduit le flux aux faces
  109. *
  110. V = 'MANU' 'CHPO' FATOT 'NATURE' 'DISCRET' 2 'UX' 0. 'UY' 1.;
  111. MOT1 = 'MOTS' UX UY ;
  112. VAVN = 'PSCAL' V CHYB2 MOT1 MOT1 ;
  113. VAVN = 'NOMC' 'SCAL' VAVN ;
  114. QFACE = VAVN * CHYB1 ;
  115. QFACE = 'NOMC' QFACE 'FLUX' ;
  116. *
  117. *-coefficient de diffusion
  118. *
  119. VK = 1. ;
  120. MAT1 = 'MATERIAU' MODHYB 'K' VK ;
  121. *
  122. *- ce qui est indépendant du composant et du temps
  123. *
  124. EPSS = 0.005 ;
  125. DELTAT = 0.5D0 ;
  126. TETA = 1.00D0 ;
  127. BBBAS = 'BLOQ' CEAB 'TH' ;
  128. *
  129. ********************************************************
  130. * CALCUL CHI1
  131. ********************************************************
  132. TABDON = 'OBJET' DONCHI1 ;
  133. TABDON%GIDEN ('LECT' 5 4 103 50) ;
  134. COMP1 = 'OBJET' LINVCOMP ;
  135. COMP1%COM_IDEN 75 ;
  136. COMP1%COM_NOM X075 ;
  137. COMP1%COM_CHAR 0 ;
  138. TABDON%GNVCOMP 1 COMP1 ;
  139. TABESP1= 'OBJET' LIESPECE ;
  140. TABESP1%ESP_IDEN 1815 ;
  141. TABESP1%ESP_LOGK 10.;
  142. TABESP1%ESP_ITYP 2 ;
  143. TABESP1%ESP_COMP ('LECT' 75 5) ;
  144. TABESP1%ESP_STOE ('PROG' 1. 1.) ;
  145. TABESP2= 'OBJET' LIESPECE ;
  146. TABESP2%ESP_IDEN 1816;
  147. TABESP2%ESP_LOGK 10. ;
  148. TABESP2%ESP_ITYP 2 ;
  149. TABESP2%ESP_COMP ('LECT' 75 4) ;
  150. TABESP2%ESP_STOE ('PROG' 1. 1. ) ;
  151. TABDON%GNVESP 1 TABESP1 ;
  152. TABDON%GNVESP 2 TABESP2 ;
  153. TABDON%GECHANGE ('LECT' 75) ;
  154. TABDON%GCLIM TYP3 ('LECT' 50) ;
  155. *
  156. TB1 = 'CHI1' TABDON 'COMP' emp1 'LOGK' emp1 ;
  157. *
  158. ********************************************************
  159. * Initialisation du transport
  160. ********************************************************
  161. *
  162. * CTOTC:concentrations au centre
  163. * CTOT:traces de concentrations
  164. * on se donne CTOT on en deduit CTOTC
  165. *
  166. TOTNA2 = 'MANU' 'CHPO' CEAB 1 X005 1.D-4;
  167. TOTNA = 'KCHT' MODHYB 'SCAL' 'FACE' 'COMP' X005 1.D-3 TOTNA2 ;
  168. TOTK2 = 'MANU' 'CHPO' CEAB 1 X004 1.D-3 ;
  169. TOTK = 'KCHT' MODHYB 'SCAL' 'FACE' COMP X004 1.D-5 TOTK2 ;
  170. TOTCL2 = 'MANU' 'CHPO' CEAB 1 X103 6.D-4 ;
  171. TOTCL = 'KCHT' MODHYB 'SCAL' 'FACE' COMP X103 5.1D-4 TOTCL2 ;
  172. TOTH = 'MANU' 'CHPO' FATOT 1 X050 0.D0 ;
  173. TOT75 = 'MANU' 'CHPO' FATOT 1 X075 5.D-4 ;
  174. CTOT = TOTNA + TOTK + TOTCL + TOTH + TOT75 ;
  175. TT1 = 'EXTR' CTOT 'COMP' ;
  176. NOCOMP = 'EXTR' TT1 1 ;
  177. CTOTC = 'MANU' 'CHPO' CETOT 1 NOCOMP 0. ;
  178. NBCOMP = 'DIME' TT1 ;
  179. MASHYB = 'MHYB' MODHYB MAT1 ;
  180. REPETER BOUC1 NBCOMP ;
  181. NOCOMP = 'EXTR' TT1 &BOUC1 ;
  182. TPR = 'EXCO' CTOT NOCOMP 'TH' ;
  183. TPC = 'HYBP' MODHYB MASHYB TPR ;
  184. TPC = 'NOMC' NOCOMP TPC ;
  185. CTOTC = CTOTC + TPC ;
  186. 'FIN' BOUC1 ;
  187. CFIONI = 'MANU' 'CHPO' CETOT 1 'SCAL' 0.001 ;
  188. CLOGC = 'MANU' 'CHPO' CETOT 5 X005 -2. X004 -2.
  189. X103 -2. X050 -4. X075 -5. ;
  190. CCLIM = 'MANU' 'CHPO' CETOT 1 W007 7.D0 ;
  191. FFIONI = 'MANU' 'CHPO' FATOT 1 'SCAL' 0.001 ;
  192. FLOGC = 'MANU' 'CHPO' FATOT 5 X005 -2. X004 -2.
  193. X103 -2. X050 -4. X075 -5. ;
  194. FCLIM = 'MANU' 'CHPO' FATOT 1 W007 7.D0 ;
  195. *
  196. * Initialisation des traces de concentrations aqueux
  197. * à l'aide d'un calcul CHI2
  198. *
  199. TBPAR2 = 'OBJET' PARMCHI2 ;
  200. TBPAR2%GITMAX 80 ;
  201. TBPAR2%GEPS 1.D-5 ;
  202. TBPAR2%GNFI 4 ;
  203. TBPAR2%GITERSOL 15 ;
  204. TBPAR2%GIMPRIM ('LECT' 1) ;
  205. TBDO2 = 'OBJET' DONCHI2 ;
  206. TBDO2%GFIONI FFIONI ;
  207. TBDO2%GLOGC FLOGC ;
  208. TBDO2%GTOT CTOT ;
  209. TBDO2%GCLIM FCLIM ;
  210. *
  211. TB4 = 'CHI2' TB1 TBPAR2 TBDO2 ;
  212. *
  213. TAQU0 = TB4.AQUE ;
  214. TAQU = TAQU0 ;
  215. *
  216. LIMAB= 'REDU' TAQU CEAB ;
  217. ********************************************************
  218. * TRANSPORT
  219. ********************************************************
  220. *
  221. TABTRAN= TABLE ;
  222. TABTRAN.'SOUSTYPE' = MOT 'GEOCHIMIE' ;
  223. TABTRAN.'MODELE' = MODHYB ;
  224. TABTRAN.'DIFFUSION' = MAT1 ;
  225. TABTRAN.'POROSITE' = 'MANU' 'CHPO' CETOT 1 'CK' 1. ;
  226. TABTRAN.'CONVECTION' = QFACE ;
  227. TABTRAN.'CHIMI1' = TB1 ;
  228. TABTRAN.'TAQU' = TABLE;
  229. TABTRAN.'TAQU'. 0 = TAQU ;
  230. TABTRAN.ITMAX = 80;
  231. TABTRAN.EPS = 1.D-6 ;
  232. TABTRAN.NFI = 4 ;
  233. TABTRAN.ITERSOLI = 15 ;
  234. TABTRAN.FION = TABLE ;
  235. TABTRAN.FION. 0 = CFIONI ;
  236. TABTRAN.LOGC = TABLE ;
  237. TABTRAN.LOGC. 0 = CLOGC ;
  238. TABTRAN.TOT = TABLE ;
  239. TABTRAN.TOT. 0 = CTOTC ;
  240. TABTRAN.CLIM = CCLIM ;
  241. TABTRAN.SORTIE = 'MOTS' 'FION' ;
  242. TABTRAN.'BLOCAGE' = BBBAS ;
  243. TABTRAN.'TRACE_IMPOSE' = 'CHARGEMENT' LIMAB
  244. ('EVOL' 'MANU' ('PROG' 0. 45.) (PROG 1. 1.) ) ;
  245. *TABTRAN.'PRECISION' = 1.D-4 ;
  246. TABTRAN.'PAS_DE_TEMPS' = 0.5 ;
  247. *TABTRAN.'TEMPS_FINAL' = 45. ;
  248. TABTRAN.'TEMPS_FINAL' = 5. ;
  249. TABTRAN.'THETA' = 1.D0 ;
  250. *
  251. CHITRNSP TABTRAN ;
  252. *
  253. TITRE 'Test des flux ' ;
  254. IPPI = 1 ;
  255. IPPF = 10 ;
  256. VOLG0 = 'DOMA' MMG0 'VOLUME' ;
  257. QQG0 = (TABTRAN.TOT. IPPF - TABTRAN.TOT. (IPPI-1) ) * VOLG0 ;
  258. QQQQ = 'RESULT' QQG0 ;
  259. SI (GRAPH);
  260. LISMD = 'MOTS' 'X004' ;
  261. DBTE1 = TRACHIS TABTRAN 'FLUX' ('LECT' 1 5 10) LISMD MAFACC ;
  262. DESTRA DBTE1 ;
  263. DBTE2 = TRACHIS TABTRAN 'FIXE' ('LECT' 1 5 10) MACENT ;
  264. DESTRA DBTE2 ;
  265. LISMB = MOTS 'X005' ;
  266. DBTE3 = TRACHIS TABTRAN 'FLUX' ('LECT' 1 5 10) LISMB MAFACC ;
  267. DESTRA DBTE3 ;
  268. DBTE4 = TRACHIS TABTRAN 'FIXE' ('LECT' 1 5 10) LISMB MACENT ;
  269. DESTRA DBTE4 ;
  270. nnn7 = 'POINT' mafacc 7 ;
  271. nnn8 = 'POINT' mafacc 8 ;
  272. nnn9 = 'POINT' MAFACC 9 ;
  273. nnn10 = 'POINT' MAFACC 10 ;
  274. nnn11 = 'POINT' mafacc 11 ;
  275. nono = nnn7 'ET' nnn8 'ET' nnn9 'ET' nnn10 'ET' nnn11 ;
  276. DBTEE = TRACHIT TABTRAN FLUX LISMB NONO ;
  277. DESTRA DBTEE ;
  278. TBDES = TRACHIS TABTRAN 'TOT' ('LECT' 1 5 10) LISMD MACENT ;
  279. DESTRA TBDES ;
  280. TBDE7 = TRACHIS TABTRAN 'TAQU' ('LECT' 1 5 10) LISMD MAFACC ;
  281. DESTRA TBDE7 ;
  282. DESTRA TBDES ;
  283. DBTE8 = TRACHIS TABTRAN 'FLUX' ('LECT' 1 5 10) LISMC MAFACC ;
  284. DESTRA DBTE8 ;
  285. NORMA = 'DOMA' MODHYB 'NORMALE' ;
  286. LMOCOMP = 'EXTR' TABTRAN.'FLUX'.IPPF 'COMP' ;
  287. NBCOMP = 'DIME' LMOCOMP ;
  288. 'REPETER' BOUCMP NBCOMP ;
  289. MOCOMP= 'EXTR' LMOCOMP &BOUCMP ;
  290. TITRE MOCOMP ;
  291. FIFY = 'PSCAL' NORMA TABTRAN.'FLUX'.IPPF
  292. ('MOTS' 'UY') ('MOTS' MOCOMP);
  293. EVFY = 'EVOL' 'CHPO' FIFY 'SCAL' MAFACC ;
  294. 'DESSIN' EVFY ;
  295. 'FIN' BOUCMP ;
  296. 'FINSI' ;
  297.  
  298. FIA = 'REDU' CEAB TABTRAN.'FLUX'.(IPPI) ;
  299. FIB = 'REDU' CECCDD TABTRAN.'FLUX'.(IPPI) ;
  300. SS1 = FIA + FIB ;
  301. NNCAL = IPPF - IPPI ;
  302. 'REPETER' BOUBOU NNCAL ;
  303. FIA = REDU CEAB TABTRAN.'FLUX'.(&BOUBOU + IPPI) ;
  304. FIB = REDU CECCDD TABTRAN.'FLUX'.(&BOUBOU + IPPI) ;
  305. SS1 = SS1 + FIA + FIB ;
  306. 'FIN' BOUBOU ;
  307. SS = ('RESULT' SS1) * DELTAT ;
  308.  
  309. ERRFLU= 'RESULT' (SS + QQQQ) ;
  310. 'LISTE' ERRFLU ;
  311. DIFFLU= 'ABS' ERRFLU ;
  312. 'SI' (('MAXIMUM' DIFFLU) < 1.E-4 ) ;
  313. 'ERRE' 0 ;
  314. 'SINO' ;
  315. 'ERRE' 5 ;
  316. 'FINSI';
  317.  
  318. FIN ;
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  

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