Télécharger transport1_new.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : transport1_new.dgibi
  2. *
  3. ********************* CAS TEST : transport1.dgibi ********************
  4. *
  5. GRAPH = FAUX ;
  6. 'OPTI' 'ECHO' 0 ;
  7. CRIT1 = 1.D-6 ;
  8. 'SAUT' 'PAGE' ;
  9. *
  10. *---------------------------------------------------------------------
  11. * TEST TRANSPORT1
  12. * CALCUL DARCY ISOTROPE TRANSPORT.
  13. * Transport d'un front.
  14. *
  15. * dT
  16. * -- + div (uT - Kgrad(T)) = 0
  17. * dt
  18. *
  19. * Ce test permet de verifier le bon fonctionnement des operateurs
  20. * utilises afin de resoudre l'equation de transport par diffusion
  21. * convection d'un champ scalaire passif par la methode d'elements
  22. * finis mixtes hybrides et VF implantes dans CASTEM2000.
  23. * Le decentrement est utilise.
  24. *
  25. *
  26. *---------------------------------------------------------------------
  27. *
  28. *------------------
  29. * Options generales
  30. *------------------
  31. *
  32. 'OPTI' 'DIME' 2 'ELEM' 'QUA4' ;
  33. 'OPTI' 'ISOV' 'SURF' ;
  34. *
  35. *
  36. *=========
  37. * MAILLAGE
  38. *=========
  39. *
  40. *
  41. *- Creation des points supports du contour du domaine, et des droites
  42. *- passant par les centres et les faces pour le post-traitement.
  43. *
  44. L = 100.D0 ;
  45. H = 20.D0 ;
  46. X0 = 0.D0 ;
  47. X1 = X0 + L ;
  48. Y0 = 0.D0 ;
  49. Y1 = Y0 + H ;
  50. INUMX = 141 ;
  51. INUMY = 17 ;
  52.  
  53. DX = X1 - X0 / INUMX ;
  54. DY = H '/' INUMY ;
  55.  
  56. *
  57. A1 = X0 Y0 ;
  58. A3 = X1 Y0 ;
  59. D1 = X0 Y1 ;
  60. D3 = X1 Y1 ;
  61.  
  62. *
  63. *- Creation des DROITES frontieres
  64. *
  65. DRBAS = A3 'DROI' INUMX A1 ;
  66. DRGAU = A1 'DROI' INUMY D1 ;
  67. DRHAU = D1 'DROI' INUMX D3 ;
  68. DRDRO = D3 'DROI' INUMY A3 ;
  69. PELIM = DY / (100.D0) ;
  70. *
  71. *- Creation maillage GEOMETRIQUE
  72. *
  73. PTOT1 = 'DALL' DRBAS DRGAU DRHAU DRDRO ;
  74. PTOT2 = 'ORIE' PTOT1 ;
  75. *
  76. *- Creation maillage HYBRIDE y compris sous-objets (cond. limites)
  77. *
  78. *DRMID = B1 'DROI' INUMX B3 ;
  79. *DRMIC = C1 'DROI' INUM1 C3 ;
  80. *EXT1 = 'MANU' 'POI1' B1 ;
  81. *
  82. QFTOT= 'CHAN' PTOT2 QUAF ;
  83. QFGAU= 'CHAN' DRGAU QUAF ;
  84. QFDRO= 'CHAN' DRDRO QUAF ;
  85. ELIM PELIM (QFTOT ET QFGAU ET QFDRO) ;
  86. *
  87. *================
  88. * INITIALISATIONS
  89. *================
  90. *
  91. * ----------------
  92. * = MODELISATION =
  93. * ----------------
  94. MODHYB = MODE QFTOT 'DARCY' 'ANISOTROPE' ;
  95. MODDRO = MODE QFDRO 'DARCY' 'ISOTROPE' ;
  96. MODGAU = MODE QFGAU 'DARCY' 'ISOTROPE' ;
  97. CHYB1 = 'DOMA' MODHYB 'SURFACE' ;
  98. CHYB2 = 'DOMA' MODHYB 'NORMALE' ;
  99.  
  100.  
  101. xcoor ycoor = 'COORDONNEE' ('DOMA' modhyb centre);
  102.  
  103.  
  104. *
  105. * ---------------------
  106. * = Donnees physiques =
  107. * ---------------------
  108. *
  109. T0 = 0.D0 ; T1 = 100.D0 ;
  110. VX1 = 1.D0 ; VY1 = 0.D0 ;
  111. VK = 1.D-1 ;
  112. MATI2 = MANU 'CHPO' ('DOMA' MODHYB 'CENTRE') 'K' VK ;
  113. MATI2 = ('NOMC' K11 MATI2) '+' ('NOMC' K22 mati2) '+' ('NOMC' K21 (0.D0 * MATI2));
  114. *MATI2 = KCHA MODHYB MATI2 'CHAM';
  115. *
  116. SPEED = 'MANU' 'CHPO' ('DOMA' MODHYB 'FACE') 2 'VX' VX1 'VY' VY1 'NATURE' 'DISCRET' ;
  117. SPEEDC = 'MANU' 'CHPO' ('DOMA' MODHYB 'CENTRE') 2 'VX' VX1 'VY' VY1 'NATURE' 'DISCRET' ;
  118. MOT1 = 'MOTS' 'VX' 'VY' ;
  119. MOT2 = 'MOTS' 'UX' 'UY' ;
  120. FLU1 = 'PSCA' SPEED CHYB2 MOT1 MOT2 ;
  121. FLU2 = CHYB1 * FLU1 ;
  122. FLU3 = 'NOMC' 'FLUX' FLU2 ;
  123. *
  124. * -----------------------
  125. * = Donnees transitoire =
  126. * -----------------------
  127. * TETA : Parametre de le theta-methode
  128. * TMAX : Temps final
  129. * TSUP : Temps pour conditions aux limites
  130. * DELTAT : Pas de temps
  131. *
  132. TETA = 1.00D0 ;
  133. TMIN = 0.D0 ;
  134. TMAX = 60.00D0 ;
  135. TSUP = 1.2D0 * TMAX ;
  136. DELTAT = 1.0D-0 ;
  137. *
  138. LICALC = 'PROG' TMIN 'PAS' DELTAT TMAX ;
  139. LISAUV = 'PROG' TMAX ;
  140. *
  141. * ------------------------
  142. * = Conditions initiales =
  143. * ------------------------
  144. *TCHYB = 'MANU' 'CHPO' ('DOMA' MODHYB 'CENTRE') 1 'H' 1.D0
  145. * 'NATURE' 'DISCRET' ;
  146.  
  147. INUMX1 = INUMX '+' 1;
  148. INUMY1 = INUMY '+' 1;
  149. TCHYB = 'MASQUE' xcoor SUPERIEUR (0.2D0 * L);
  150. TCHYB = TCHYB * ( 'MASQUE' xcoor INFERIEUR (0.3D0 * L));
  151. TCHYB = TCHYB * ( 'MASQUE' ycoor INFERIEUR (0.6D0 * H));
  152. TCHYB = TCHYB * ( 'MASQUE' ycoor SUPERIEUR (0.4D0 * H));
  153. TCHYB = 'NOMC' 'H' TCHYB;
  154.  
  155. * On rend la masse initiale independante du maillage.
  156. TCHYB = TCHYB / (maxi (resu (TCHYB * (doma modhyb volume))));
  157.  
  158.  
  159.  
  160. *
  161. * --------------
  162. * = T imposee =
  163. * --------------
  164. *opti donn 5;
  165. CHCLIM = TABLE;
  166. CHCLIM . 'DIRICHLET' = 'MANU' 'CHPO' ('DOMA' MODDRO 'CENTRE') 1 'H' T0 'NATURE' 'DISCRET' ;
  167. CHCLIM . 'DIRICHLET' = CHCLIM . 'DIRICHLET' + ('MANU' 'CHPO' ('DOMA' MODGAU 'CENTRE') 1 'H' T1 'NATURE' 'DISCRET') ;
  168.  
  169. GEOL1 = TABLE;
  170. GEOL1 . 'CONCENTRATION' = 'MANUEL' CHPO ('DOMA' modhyb 'CENTRE') 'H' 0.D0 ;
  171. GEOL1 . 'LUMP' = FAUX ;
  172. GEOL1 . 'TYPDISCRETISATION' = 'EFMH' ;
  173. GEOL1 . 'THETA_DIFFUSION' = 1.0D0 ;
  174. GEOL1 . 'THETA_CONVECTION' = 1.0D0 ;
  175. GEOL1 . 'DECENTREMENT' = FAUX ;
  176. GEOL1 . 'DELTAT' = 10.D15 ;
  177. * conduct en m/an
  178. GEOL1 . 'DIFFUSIVITE' = mati2 '/' vk ;
  179. GEOL1 . 'SOLVEUR' = 2 ;
  180. GEOL1 . 'PRECONDITIONNEUR' = 3 ;
  181. GEOL1 . 'POROSITE' = 'MANU' 'CHPO' (doma MODHYB CENTRE) 'CK' 0.D0 ;
  182. GEOL1 . 'CLIMITES' = CHCLIM ;
  183. GEOL1 . 'RECALCUL' = VRAI ;
  184. *
  185.  
  186. *'OPTION' donn 5;
  187.  
  188. GEOL1 GEOL2 = TRANGEOL Modhyb GEOL1;
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198. QFACE1 = GEOL1 . 'FLUXDIFF' ;
  199. VCENT1 = 'HVIT' MODHYB (nomc FLUX QFACE1) ;
  200.  
  201.  
  202. *
  203. * ---------------------------
  204. * = Table DARCY_TRANSITOIRE =
  205. * ---------------------------
  206. *
  207. *
  208. *
  209.  
  210. *-- Table de transport :
  211. Transp = 'TABLE';
  212. Transp . 'MODELE' = MODHYB ;
  213. Transp.'TEMPS' = 'TABLE';
  214. Transp.'CONCENTRATION' = 'TABLE';
  215. Transp.'FLUXDIFF' = 'TABLE';
  216. Transp.'FLUXCONV' = 'TABLE';
  217. Transp.'CARACTERISTIQUES' = 1.D-10 * MATI2;
  218. Transp.'POROSITE' = 1.D0;
  219. Transp.'COEF_RETARD' = 1.D0;
  220. *Transp.'CONVECTION' = NOMC 'SCAL' FLU3 ;
  221. Transp.'CONVECTION' = (nomc SCAL (1.D0 * QFACE1)) / (doma MODHYB SURFACE) ;
  222. Transp . 'CONVECTION' = Transp . CONVECTION * (doma Modhyb NORMALE);
  223. Transp.'VITELEM' = VCENT1 ;
  224. *Transp . 'ALPHAL' = MANU 'CHPO' (doma MODHYB centre)
  225. * 'SCAL' 1.D0;
  226. *Transp . 'ALPHAT' = MANU 'CHPO' (doma MODHYB centre)
  227. * 'SCAL' 0.D0;
  228.  
  229. * Conditions initiales :
  230. Transp.'TEMPS'. 0 = TMIN ;
  231. Transp.'CONCENTRATION'. 0 = TCHYB;
  232. Transp.'FLUXDIFF'. 0 = 0.D0 * FLU3 ;
  233. Transp.'FLUXCONV'. 0 = 0.D0 * FLU3;
  234.  
  235. * Conditions aux limites :
  236. Transp . 'TRACE_IMPOSE' = CHAR ('MANU' 'CHPO' ('DOMA' MODGAU 'CENTRE') 1 'H' 0.D0 'NATURE' 'DISCRET') ('EVOL' 'MANU' ('PROG' 0. TSUP) ('PROG' 1. 1.)) ;
  237. *Transp . 'FLUXTOT_IMP' = TTT1 ;
  238.  
  239.  
  240. * Paramètres numeriques :
  241. Transp.'THETA_DIFF' = 1.D0;
  242. Transp.'THETA_CONVECTION' = 1.D0;
  243. Transp.'LUMP' = FAUX;
  244. Transp.'TYPDISCRETISATION' = 'EFMH';
  245. Transp.'DECENTR' = VRAI;
  246.  
  247. TABRES = table METHINV;
  248. TABRES . 'TYPINV' = 1;
  249. TABRES . 'PRECOND' = 3;
  250.  
  251. Transp . 'METHINV' = TABRES;
  252.  
  253.  
  254. Transp.'TEMPS_CALCULES' = LiCalc;
  255. *Transp.'TEMPS_SAUVES' = LiSauv;
  256.  
  257.  
  258. Transp . INTCONC = TABLE;
  259. Transp . INTCONC . 0 = 0.D0 * TCHYB;
  260. * ==========
  261. * | CALCUL |
  262. * ==========
  263.  
  264.  
  265. *=======================
  266. * Resolution transitoire
  267. *=======================
  268. *
  269. TRANSGEN TRANSP ;
  270. *
  271. *
  272. *=================
  273. * POST-TRAITEMENT
  274. *=================
  275.  
  276. ****************************************************************************
  277. 'SI' (GRAPH) ;
  278. titre 'Premier champ de concentration' ;
  279. trac (kcha TRANSP . CONCENTRATION . 1 MODHYB CHAM) modhyb;
  280. *
  281. NbTps = 'DIME' (Transp.'TEMPS') ;
  282. titre 'Dernier champ de concentration calcule' ;
  283. trac (kcha (TRANSP . CONCENTRATION . (NbTps - 1)) MODHYB CHAM) modhyb;
  284. 'FINSI' ;
  285.  
  286.  
  287.  
  288. LiMASS = 'PROG' ;
  289. LiTps = 'PROG' ;
  290. zozo = 0.D0;
  291. roro = 'PROG';
  292. litpm1 = 'PROG' ;
  293. *
  294.  
  295.  
  296.  
  297. 'REPETER' BclFlT (('DIME' (Transp.'TEMPS')) - 1 );
  298. ICour = (&BclFlT) ;
  299. toto = 'KOPS' transp . CONCENTRATION . Icour * transp . POROSITE;
  300. toto = toto * ('DOMA' modhyb VOLUME);
  301. * 'LISTE' ('MAXIMUM' ('RESULT' toto));
  302. LiTps = LiTps 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  303. FlTCour = 'MAXIMUM' ('RESULT' toto) ;
  304. * 'LISTE' fltcour;
  305. LiMASS = LiMASS 'ET' ('PROG' FlTCour) ;
  306. 'FIN' BclFlT ;
  307.  
  308.  
  309. mailimg = 'DOMA' modgau centre;
  310. mailimd = 'DOMA' moddro centre;
  311.  
  312.  
  313. EvMASS = 'EVOL' 'ROUGE' 'MANUEL' 'Time (y)' Litps 'Total mass' (LiMASS) ;
  314.  
  315. 'SI' (graph) ;
  316. 'DESSIN' EvMASS 'TITRE' 'evolution de la masse dans les fractures' ;
  317. 'FINSI' ;
  318.  
  319.  
  320. LiFLT = 'PROG' ;
  321. LiTps = 'PROG' ;
  322. zozo = 0.D0;
  323. roro = 'PROG';
  324. litpm1 = 'PROG' ;
  325. 'REPETER' BclFlT ('DIME' (Transp.'TEMPS')) ;
  326. ICour = (&BclFlT) '-' 1 ;
  327. LiTps = LiTps 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  328. LesFlCo = ('REDU' (TRANSP . FLUXCONV . ICour '+' TRANSP . FLUXDIFF . ICour ) mailimg) ;
  329. FlTCour = 'MAXIMUM' ('RESULT' LesFlCo) ;
  330. * 'LISTE' fltcour;
  331. LiFLT = LiFLT 'ET' ('PROG' FlTCour) ;
  332. SI ( Icour < (('DIME' (Transp.'TEMPS')) '-' 1));
  333. zozo = zozo '+' (fltcour * (((Transp. 'TEMPS' . (ICour+1))) '-' ((Transp. 'TEMPS' . ICour))));
  334. roro = roro 'ET' ('PROG' zozo);
  335. LiTpm1 = LiTpm1 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  336. 'FINSI' ;
  337. 'FIN' BclFlT ;
  338. *
  339. XConvSY = 1.D0 ;
  340. LiTpsy = LiTps '/' (XConvSY) ;
  341. EvFLT = 'EVOL' 'ROUGE' 'MANUEL' 'Time (y)' LiTpsy 'Total FLux' (LiFLT '*' XconvSY) ;
  342. *
  343. ChTitr = 'CHAINE' 'Evolution du flux (1/year) en sortie (positif sortant)' ;
  344.  
  345. 'SI' (GRAPH) ;
  346. 'DESSIN' EvFLT 'TITRE' ChTitr ;
  347. 'FINSI' ;
  348.  
  349. EvFLTS = 'EVOL' 'JAUNE' 'MANUEL' 'Time (y)' LiTpm1 'Total FLux (1/y) sortant' roro ;
  350.  
  351. ChTitr = 'CHAINE' 'Evolution du flux total integre dans le temps en sortie (positif sortant)';
  352.  
  353.  
  354.  
  355. *
  356. LiFLT = 'PROG' ;
  357. LiTps = 'PROG' ;
  358. *
  359. * Pas de CORRECTION normale sortante à droite
  360.  
  361. zozo = 0.D0;
  362. roro = 'PROG';
  363. litpm1 = 'PROG' ;
  364. 'REPETER' BclFlT ('DIME' (Transp.'TEMPS')) ;
  365. ICour = (&BclFlT) '-' 1 ;
  366. LiTps = LiTps 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  367. LesFlCo = ('REDU' (TRANSP . FLUXCONV . ICour '+' TRANSP . FLUXDIFF . ICour) mailimd) ;
  368. FlTCour = 'MAXIMUM' ('RESULT' LesFlCo) ;
  369. LiFLT = LiFLT 'ET' ('PROG' FlTCour) ;
  370. SI ( Icour < (('DIME' (Transp.'TEMPS')) '-' 1));
  371. zozo = zozo '+' (fltcour * (((Transp. 'TEMPS' . (ICour+1))) '-' ((Transp. 'TEMPS' . ICour))));
  372. roro = roro 'ET' ('PROG' zozo);
  373. LiTpm1 = LiTpm1 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  374. 'FINSI' ;
  375. 'FIN' BclFlT ;
  376.  
  377. LiTpsy = LiTps '/' (XConvSY) ;
  378. EvFLT = 'EVOL' 'BLEU' 'MANUEL' 'Time (y)' LiTpsy 'Total FLux (1/y)' (LiFLT*xconvsy) ;
  379.  
  380. ChTitr = 'CHAINE' 'Evolution du flux total en entree (positif sortant)';
  381.  
  382. 'SI' (graph) ;
  383. 'DESSIN' EvFLT 'TITRE' ChTitr ;
  384. 'FINSI';
  385.  
  386. EvFLTE = 'EVOL' 'JAUNE' 'MANUEL' 'Time (y)' LiTpm1 'Total FLux (1/y) entree ' roro ;
  387.  
  388. ChTitr = 'CHAINE' 'Evolution du flux total integre dans le temps à lentree 'ET' sortie (positif sortant)';
  389. 'SI' (graph) ;
  390. 'DESSIN' (EvFLTE 'ET' evflts) 'TITRE' ChTitr ;
  391.  
  392. 'DESSIN' (evflts '+' evflte) TITRE 'flux total en entree ET sortie';
  393.  
  394. 'DESSIN' (evflts '+' evflte '+' evmass) TITRE 'conservation masse totale';
  395. 'FINSI' ;
  396.  
  397.  
  398. dum = evflts '+' evflte '+' evmass ;
  399. dum = 'EXTRAIRE' dum 'ORDO';
  400. massi = 'PROG' ('DIME' (dum)) * -1.D0;
  401. dum = massi '+' dum;
  402. 'MESSAGE' 'conservation de la masse' ('MAXIMUM' ('ABS' dum));
  403.  
  404. *'OPTION' donn 5;
  405. 'SI' (('MAXIMUM' ('ABS' dum)) > 1.D-11 ) ;
  406. * mauvaise conservation de la masse
  407. 'ERREUR' 5;
  408. 'SINON' ;
  409. * pas d'erreur de conservation
  410. ERCONSEF = VRAI;
  411. 'FINSI' ;
  412.  
  413.  
  414. **************post VF ********************************************
  415. * on sauve la derniere concentration EFMH
  416.  
  417. concEFMH = Transp . CONCENTRATION . (('DIME' transp . TEMPS) '-' 1);
  418.  
  419.  
  420.  
  421. *-- Table de transport :
  422. Transp = 'TABLE';
  423. Transp . 'MODELE' = MODHYB ;
  424. Transp.'TEMPS' = 'TABLE';
  425. Transp.'CONCENTRATION' = 'TABLE';
  426. Transp.'FLUXDIFF' = 'TABLE';
  427. Transp.'FLUXCONV' = 'TABLE';
  428. Transp.'CARACTERISTIQUES' = 1.D-10 * MATI2;
  429. Transp.'POROSITE' = 1.D0;
  430. Transp.'COEF_RETARD' = 1.D0;
  431. *Transp.'CONVECTION' = NOMC 'SCAL' FLU3 ;
  432. Transp.'CONVECTION' = (nomc SCAL (1.D0 * QFACE1)) / (doma MODHYB SURFACE) ;
  433. Transp . 'CONVECTION' = Transp . CONVECTION * (doma Modhyb NORMALE);
  434. Transp.'VITELEM' = VCENT1 ;
  435. *Transp . 'ALPHAL' = MANU 'CHPO' (doma MODHYB centre)
  436. * 'SCAL' 1.D0;
  437. *Transp . 'ALPHAT' = MANU 'CHPO' (doma MODHYB centre)
  438. * 'SCAL' 0.D0;
  439.  
  440. * Conditions initiales :
  441. Transp.'TEMPS'. 0 = TMIN ;
  442. Transp.'CONCENTRATION'. 0 = TCHYB;
  443. Transp.'FLUXDIFF'. 0 = 0.D0 * FLU3 ;
  444. Transp.'FLUXCONV'. 0 = 0.D0 * FLU3;
  445.  
  446. * Conditions aux limites :
  447. Transp . 'TRACE_IMPOSE' = CHAR ('MANU' 'CHPO' ('DOMA' MODGAU 'CENTRE') 1 'H' 0.D0 'NATURE' 'DISCRET') ('EVOL' 'MANU' ('PROG' 0. TSUP) ('PROG' 1. 1.)) ;
  448. *Transp . 'FLUXTOT_IMP' = TTT1 ;
  449.  
  450.  
  451. * Paramètres numeriques :
  452. Transp.'THETA_DIFF' = 1.D0;
  453. Transp.'THETA_CONVECTION' = 1.D0;
  454. Transp.'LUMP' = FAUX;
  455. Transp.'TYPDISCRETISATION' = 'VF';
  456. Transp.'DECENTR' = VRAI;
  457.  
  458. TABRES = table METHINV;
  459. TABRES . 'TYPINV' = 1;
  460. TABRES . 'PRECOND' = 3;
  461.  
  462. Transp . 'METHINV' = TABRES;
  463.  
  464.  
  465. Transp.'TEMPS_CALCULES' = LiCalc;
  466. *Transp.'TEMPS_SAUVES' = LiSauv;
  467.  
  468.  
  469. Transp . INTCONC = TABLE;
  470. Transp . INTCONC . 0 = 0.D0 * TCHYB;
  471. * ==========
  472. * | CALCUL |
  473. * ==========
  474.  
  475.  
  476. *=======================
  477. * Resolution transitoire
  478. *=======================
  479. *
  480. TRANSGEN TRANSP ;
  481. *
  482. *
  483. *=================
  484. * POST-TRAITEMENT
  485. *=================
  486.  
  487. ****************************************************************************
  488. 'SI' (GRAPH) ;
  489. titre 'Premier champ de concentration' ;
  490. trac (kcha TRANSP . CONCENTRATION . 1 MODHYB CHAM) modhyb;
  491. *
  492. NbTps = 'DIME' (Transp.'TEMPS') ;
  493. titre 'Dernier champ de concentration calcule' ;
  494. trac (kcha (TRANSP . CONCENTRATION . (NbTps - 1)) MODHYB CHAM) modhyb;
  495. 'FINSI' ;
  496.  
  497.  
  498.  
  499. LiMASS = 'PROG' ;
  500. LiTps = 'PROG' ;
  501. zozo = 0.D0;
  502. roro = 'PROG';
  503. litpm1 = 'PROG' ;
  504. *
  505.  
  506.  
  507.  
  508. 'REPETER' BclFlT (('DIME' (Transp.'TEMPS')) - 1 );
  509. ICour = (&BclFlT) ;
  510. toto = 'KOPS' transp . CONCENTRATION . Icour * transp . POROSITE;
  511. toto = toto * ('DOMA' modhyb VOLUME);
  512. * 'LISTE' ('MAXIMUM' ('RESULT' toto));
  513. LiTps = LiTps 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  514. FlTCour = 'MAXIMUM' ('RESULT' toto) ;
  515. * 'LISTE' fltcour;
  516. LiMASS = LiMASS 'ET' ('PROG' FlTCour) ;
  517. 'FIN' BclFlT ;
  518.  
  519.  
  520. mailimg = 'DOMA' modgau centre;
  521. mailimd = 'DOMA' moddro centre;
  522.  
  523.  
  524. EvMASS = 'EVOL' 'ROUGE' 'MANUEL' 'Time (y)' Litps 'Total mass' (LiMASS) ;
  525.  
  526. 'SI' (graph) ;
  527. 'DESSIN' EvMASS 'TITRE' 'evolution de la masse dans les fractures' ;
  528. 'FINSI' ;
  529.  
  530.  
  531. LiFLT = 'PROG' ;
  532. LiTps = 'PROG' ;
  533. zozo = 0.D0;
  534. roro = 'PROG';
  535. litpm1 = 'PROG' ;
  536. 'REPETER' BclFlT ('DIME' (Transp.'TEMPS')) ;
  537. ICour = (&BclFlT) '-' 1 ;
  538. LiTps = LiTps 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  539. LesFlCo = ('REDU' (TRANSP . FLUXCONV . ICour '+' TRANSP . FLUXDIFF . ICour ) mailimg) ;
  540. FlTCour = 'MAXIMUM' ('RESULT' LesFlCo) ;
  541. * 'LISTE' fltcour;
  542. LiFLT = LiFLT 'ET' ('PROG' FlTCour) ;
  543. SI ( Icour < (('DIME' (Transp.'TEMPS')) '-' 1));
  544. zozo = zozo '+' (fltcour * (((Transp. 'TEMPS' . (ICour+1))) '-' ((Transp. 'TEMPS' . ICour))));
  545. roro = roro 'ET' ('PROG' zozo);
  546. LiTpm1 = LiTpm1 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  547. 'FINSI' ;
  548. 'FIN' BclFlT ;
  549. *
  550. XConvSY = 1.D0 ;
  551. LiTpsy = LiTps '/' (XConvSY) ;
  552. EvFLT = 'EVOL' 'ROUGE' 'MANUEL' 'Time (y)' LiTpsy 'Total FLux' (LiFLT '*' XconvSY) ;
  553. *
  554. ChTitr = 'CHAINE' 'Evolution du flux (1/year) en sortie (positif sortant)' ;
  555.  
  556. 'SI' (GRAPH) ;
  557. 'DESSIN' EvFLT 'TITRE' ChTitr ;
  558. 'FINSI' ;
  559.  
  560. EvFLTS = 'EVOL' 'JAUNE' 'MANUEL' 'Time (y)' LiTpm1 'Total FLux (1/y) sortant' roro ;
  561.  
  562. ChTitr = 'CHAINE' 'Evolution du flux total integre dans le temps en sortie (positif sortant)';
  563.  
  564.  
  565.  
  566. *
  567. LiFLT = 'PROG' ;
  568. LiTps = 'PROG' ;
  569. *
  570. * Pas de CORRECTION normale sortante à droite
  571.  
  572. zozo = 0.D0;
  573. roro = 'PROG';
  574. litpm1 = 'PROG' ;
  575. 'REPETER' BclFlT ('DIME' (Transp.'TEMPS')) ;
  576. ICour = (&BclFlT) '-' 1 ;
  577. LiTps = LiTps 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  578. LesFlCo = ('REDU' (TRANSP . FLUXCONV . ICour '+' TRANSP . FLUXDIFF . ICour) mailimd) ;
  579. FlTCour = 'MAXIMUM' ('RESULT' LesFlCo) ;
  580. LiFLT = LiFLT 'ET' ('PROG' FlTCour) ;
  581. SI ( Icour < (('DIME' (Transp.'TEMPS')) '-' 1));
  582. zozo = zozo '+' (fltcour * (((Transp. 'TEMPS' . (ICour+1))) '-' ((Transp. 'TEMPS' . ICour))));
  583. roro = roro 'ET' ('PROG' zozo);
  584. LiTpm1 = LiTpm1 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  585. 'FINSI' ;
  586. 'FIN' BclFlT ;
  587.  
  588. LiTpsy = LiTps '/' (XConvSY) ;
  589. EvFLT = 'EVOL' 'BLEU' 'MANUEL' 'Time (y)' LiTpsy 'Total FLux (1/y)' (LiFLT*xconvsy) ;
  590.  
  591. ChTitr = 'CHAINE' 'Evolution du flux total en entree (positif sortant)';
  592.  
  593. 'SI' (graph) ;
  594. 'DESSIN' EvFLT 'TITRE' ChTitr ;
  595. 'FINSI';
  596.  
  597. EvFLTE = 'EVOL' 'JAUNE' 'MANUEL' 'Time (y)' LiTpm1 'Total FLux (1/y) entree ' roro ;
  598.  
  599. ChTitr = 'CHAINE' 'Evolution du flux total integre dans le temps à lentree 'ET' sortie (positif sortant)';
  600. 'SI' (graph) ;
  601. 'DESSIN' (EvFLTE 'ET' evflts) 'TITRE' ChTitr ;
  602.  
  603. 'DESSIN' (evflts '+' evflte) TITRE 'flux total en entree ET sortie';
  604.  
  605. 'DESSIN' (evflts '+' evflte '+' evmass) TITRE 'conservation masse totale';
  606. 'FINSI' ;
  607.  
  608.  
  609. dum = evflts '+' evflte '+' evmass ;
  610. dum = 'EXTRAIRE' dum 'ORDO';
  611. massi = 'PROG' ('DIME' (dum)) * -1.D0;
  612. dum = massi '+' dum;
  613. 'MESSAGE' 'conservation de la masse' ('MAXIMUM' ('ABS' dum));
  614.  
  615. *'OPTION' donn 5;
  616. 'SI' (('MAXIMUM' ('ABS' dum)) > 1.D-11 ) ;
  617. * mauvaise conservation de la masse
  618. 'ERREUR' 5;
  619. 'SINON' ;
  620. * pas d'erreur de conservation
  621. ERCONSVF = VRAI;
  622. 'FINSI' ;
  623.  
  624.  
  625. * On sauve la concentration VF finale
  626.  
  627. concVF = Transp . CONCENTRATION . (('DIME' transp . TEMPS) '-' 1);
  628.  
  629.  
  630. **************** COMPAR VF - EFMH **********************************
  631.  
  632. toto = concEFMH '-' concVF ;
  633. toto = 'KOPS' toto * toto;
  634. toto = ('DOMA' modhyb volume) * toto;
  635. toto = 'MAXIMUM' (('RESULT' toto));
  636. titi = ('DOMA' modhyb volume) * ('KOPS' concVF * concVF);
  637. titi = 'MAXIMUM' ('RESULT' titi);
  638. toto = (toto '/' titi)**0.5D0;
  639.  
  640. 'MESSAGE' 'erreur relative L2' (toto);
  641.  
  642. 'SI' (toto > 1.D-2) ;
  643. 'ERREUR' 5 ;
  644. 'SINON' ;
  645. erEFVF = VRAI;
  646. 'FINSI' ;
  647.  
  648.  
  649. **************** POST HYDRAU ****************************************
  650.  
  651. FLTotE = 'RESULT' (('REDU' QFACE1 mailimd)) ;
  652. FLTotE = -1.D0 * FltotE;
  653. fltote = maxi fltote;
  654.  
  655. * FLux sortants
  656. FLTotS = 'RESULT' (('REDU' QFACE1 mailimg)) ;
  657. fltots = maxi fltots;
  658.  
  659. * Affichage des resultats
  660.  
  661. 'MESSAGE' 'Resultats hydraulique : ' ;
  662. 'MESSAGE' ' ' ;
  663. 'MESSAGE' 'FLux entrant (total, rapporte à la surface) ' FLTotE ;
  664. 'MESSAGE' 'FLux sortant (total, rapporte à la surface) ' FLTotS ;
  665. 'MESSAGE' ' ' ;
  666. 'MESSAGE' 'Keq associes ' Keq1 Keq2 ;
  667.  
  668.  
  669. 'SI' (erefvf 'ET' erconsvf 'ET' erconsef) ;
  670. 'ERREUR' 0;
  671. 'SINON' ;
  672. 'ERREUR' 5;
  673. 'FINSI' ;
  674.  
  675.  
  676. 'FIN';
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  

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