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 vérifier le bon fonctionnement des opérateurs
  20. * utilisés afin de résoudre l'équation de transport par diffusion
  21. * convection d'un champ scalaire passif par la méthode d'éléments
  22. * finis mixtes hybrides et VF implantés dans CASTEM2000.
  23. * Le décentrement est utilisé.
  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. *- Création 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. *- Création 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) '+'
  114. ('NOMC' K21 (0.D0 * MATI2));
  115. *MATI2 = KCHA MODHYB MATI2 'CHAM';
  116. *
  117. SPEED = 'MANU' 'CHPO' ('DOMA' MODHYB 'FACE') 2
  118. 'VX' VX1 'VY' VY1 'NATURE' 'DISCRET' ;
  119. SPEEDC = 'MANU' 'CHPO' ('DOMA' MODHYB 'CENTRE') 2
  120. 'VX' VX1 'VY' VY1 'NATURE' 'DISCRET' ;
  121. MOT1 = 'MOTS' 'VX' 'VY' ;
  122. MOT2 = 'MOTS' 'UX' 'UY' ;
  123. FLU1 = 'PSCA' SPEED CHYB2 MOT1 MOT2 ;
  124. FLU2 = CHYB1 * FLU1 ;
  125. FLU3 = 'NOMC' 'FLUX' FLU2 ;
  126. *
  127. * -----------------------
  128. * = Donnees transitoire =
  129. * -----------------------
  130. * TETA : Parametre de le theta-méthode
  131. * TMAX : Temps final
  132. * TSUP : Temps pour conditions aux limites
  133. * DELTAT : Pas de temps
  134. *
  135. TETA = 1.00D0 ;
  136. TMIN = 0.D0 ;
  137. TMAX = 60.00D0 ;
  138. TSUP = 1.2D0 * TMAX ;
  139. DELTAT = 1.0D-0 ;
  140. *
  141. LICALC = 'PROG' TMIN 'PAS' DELTAT TMAX ;
  142. LISAUV = 'PROG' TMAX ;
  143. *
  144. * ------------------------
  145. * = Conditions initiales =
  146. * ------------------------
  147. *TCHYB = 'MANU' 'CHPO' ('DOMA' MODHYB 'CENTRE') 1 'H' 1.D0
  148. * 'NATURE' 'DISCRET' ;
  149.  
  150. INUMX1 = INUMX '+' 1;
  151. INUMY1 = INUMY '+' 1;
  152. TCHYB = 'MASQUE' xcoor SUPERIEUR (0.2D0 * L);
  153. TCHYB = TCHYB * (
  154. 'MASQUE' xcoor INFERIEUR (0.3D0 * L));
  155. TCHYB = TCHYB * (
  156. 'MASQUE' ycoor INFERIEUR (0.6D0 * H));
  157. TCHYB = TCHYB * (
  158. 'MASQUE' ycoor SUPERIEUR (0.4D0 * H));
  159. TCHYB = 'NOMC' 'H' TCHYB;
  160.  
  161. * On rend la masse initiale indépendante du maillage.
  162. TCHYB = TCHYB / (maxi (resu (TCHYB * (doma modhyb volume))));
  163.  
  164.  
  165.  
  166. *
  167. * --------------
  168. * = T imposée =
  169. * --------------
  170. *opti donn 5;
  171. CHCLIM = TABLE;
  172. CHCLIM . 'DIRICHLET' = 'MANU' 'CHPO' ('DOMA' MODDRO 'CENTRE') 1
  173. 'H' T0 'NATURE' 'DISCRET' ;
  174. CHCLIM . 'DIRICHLET' = CHCLIM . 'DIRICHLET' +
  175. ('MANU' 'CHPO' ('DOMA' MODGAU 'CENTRE') 1
  176. 'H' T1 'NATURE' 'DISCRET') ;
  177.  
  178. GEOL1 = TABLE;
  179. GEOL1 . 'CONCENTRATION' = 'MANUEL' CHPO ('DOMA' modhyb 'CENTRE')
  180. 'H' 0.D0 ;
  181. GEOL1 . 'LUMP' = FAUX ;
  182. GEOL1 . 'TYPDISCRETISATION' = 'EFMH' ;
  183. GEOL1 . 'THETA_DIFFUSION' = 1.0D0 ;
  184. GEOL1 . 'THETA_CONVECTION' = 1.0D0 ;
  185. GEOL1 . 'DECENTREMENT' = FAUX ;
  186. GEOL1 . 'DELTAT' = 10.D15 ;
  187. * conduct en m/an
  188. GEOL1 . 'DIFFUSIVITE' = mati2 '/' vk ;
  189. GEOL1 . 'SOLVEUR' = 2 ;
  190. GEOL1 . 'PRECONDITIONNEUR' = 3 ;
  191. GEOL1 . 'POROSITE' = 'MANU' 'CHPO'
  192. (doma MODHYB CENTRE) 'CK' 0.D0 ;
  193. GEOL1 . 'CLIMITES' = CHCLIM ;
  194. GEOL1 . 'RECALCUL' = VRAI ;
  195. *
  196.  
  197. *'OPTION' donn 5;
  198.  
  199. GEOL1 GEOL2 = TRANGEOL Modhyb GEOL1;
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209. QFACE1 = GEOL1 . 'FLUXDIFF' ;
  210. VCENT1 = 'HVIT' MODHYB (nomc FLUX QFACE1) ;
  211.  
  212.  
  213. *
  214. * ---------------------------
  215. * = Table DARCY_TRANSITOIRE =
  216. * ---------------------------
  217. *
  218. *
  219. *
  220.  
  221. *-- Table de transport :
  222. Transp = 'TABLE';
  223. Transp . 'MODELE' = MODHYB ;
  224. Transp.'TEMPS' = 'TABLE';
  225. Transp.'CONCENTRATION' = 'TABLE';
  226. Transp.'FLUXDIFF' = 'TABLE';
  227. Transp.'FLUXCONV' = 'TABLE';
  228. Transp.'CARACTERISTIQUES' = 1.D-10 * MATI2;
  229. Transp.'POROSITE' = 1.D0;
  230. Transp.'COEF_RETARD' = 1.D0;
  231. *Transp.'CONVECTION' = NOMC 'SCAL' FLU3 ;
  232. Transp.'CONVECTION' = (nomc SCAL (1.D0 * QFACE1)) /
  233. (doma MODHYB SURFACE) ;
  234. Transp . 'CONVECTION' = Transp . CONVECTION *
  235. (doma Modhyb NORMALE);
  236. Transp.'VITELEM' = VCENT1 ;
  237. *Transp . 'ALPHAL' = MANU 'CHPO' (doma MODHYB centre)
  238. * 'SCAL' 1.D0;
  239. *Transp . 'ALPHAT' = MANU 'CHPO' (doma MODHYB centre)
  240. * 'SCAL' 0.D0;
  241.  
  242. * Conditions initiales :
  243. Transp.'TEMPS'. 0 = TMIN ;
  244. Transp.'CONCENTRATION'. 0 = TCHYB;
  245. Transp.'FLUXDIFF'. 0 = 0.D0 * FLU3 ;
  246. Transp.'FLUXCONV'. 0 = 0.D0 * FLU3;
  247.  
  248. * Conditions aux limites :
  249. Transp . 'TRACE_IMPOSE' = CHAR ('MANU' 'CHPO' ('DOMA' MODGAU 'CENTRE') 1
  250. 'H' 0.D0 'NATURE' 'DISCRET')
  251. ('EVOL' 'MANU' ('PROG' 0. TSUP) ('PROG' 1. 1.)) ;
  252. *Transp . 'FLUXTOT_IMP' = TTT1 ;
  253.  
  254.  
  255. * Paramètres numériques :
  256. Transp.'THETA_DIFF' = 1.D0;
  257. Transp.'THETA_CONVECTION' = 1.D0;
  258. Transp.'LUMP' = FAUX;
  259. Transp.'TYPDISCRETISATION' = 'EFMH';
  260. Transp.'DECENTR' = VRAI;
  261.  
  262. TABRES = table METHINV;
  263. TABRES . 'TYPINV' = 1;
  264. TABRES . 'PRECOND' = 3;
  265.  
  266. Transp . 'METHINV' = TABRES;
  267.  
  268.  
  269. Transp.'TEMPS_CALCULES' = LiCalc;
  270. *Transp.'TEMPS_SAUVES' = LiSauv;
  271.  
  272.  
  273. Transp . INTCONC = TABLE;
  274. Transp . INTCONC . 0 = 0.D0 * TCHYB;
  275. * ==========
  276. * | CALCUL |
  277. * ==========
  278.  
  279.  
  280. *=======================
  281. * Resolution transitoire
  282. *=======================
  283. *
  284. TRANSGEN TRANSP ;
  285. *
  286. *
  287. *=================
  288. * POST-TRAITEMENT
  289. *=================
  290.  
  291. ****************************************************************************
  292. 'SI' (GRAPH) ;
  293. titre 'Premier champ de concentration' ;
  294. trac (kcha TRANSP . CONCENTRATION . 1 MODHYB CHAM) modhyb;
  295. *
  296. NbTps = 'DIME' (Transp.'TEMPS') ;
  297. titre 'Dernier champ de concentration calcule' ;
  298. trac (kcha (TRANSP . CONCENTRATION . (NbTps - 1)) MODHYB CHAM) modhyb;
  299. 'FINSI' ;
  300.  
  301.  
  302.  
  303. LiMASS = 'PROG' ;
  304. LiTps = 'PROG' ;
  305. zozo = 0.D0;
  306. roro = 'PROG';
  307. litpm1 = 'PROG' ;
  308. *
  309.  
  310.  
  311.  
  312. 'REPETER' BclFlT (('DIME' (Transp.'TEMPS')) - 1 );
  313. ICour = (&BclFlT) ;
  314. toto = 'KOPS' transp . CONCENTRATION . Icour *
  315. transp . POROSITE;
  316. toto = toto * ('DOMA' modhyb VOLUME);
  317. * 'LISTE' ('MAXIMUM' ('RESULT' toto));
  318. LiTps = LiTps 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  319. FlTCour = 'MAXIMUM' ('RESULT' toto) ;
  320. * 'LISTE' fltcour;
  321. LiMASS = LiMASS 'ET' ('PROG' FlTCour) ;
  322. 'FIN' BclFlT ;
  323.  
  324.  
  325. mailimg = 'DOMA' modgau centre;
  326. mailimd = 'DOMA' moddro centre;
  327.  
  328.  
  329. EvMASS = 'EVOL' 'ROUGE' 'MANUEL' 'Time (y)' Litps 'Total mass'
  330. (LiMASS) ;
  331.  
  332. 'SI' (graph) ;
  333. 'DESSIN' EvMASS 'TITRE' 'evolution de la masse dans les fractures' ;
  334. 'FINSI' ;
  335.  
  336.  
  337. LiFLT = 'PROG' ;
  338. LiTps = 'PROG' ;
  339. zozo = 0.D0;
  340. roro = 'PROG';
  341. litpm1 = 'PROG' ;
  342. 'REPETER' BclFlT ('DIME' (Transp.'TEMPS')) ;
  343. ICour = (&BclFlT) '-' 1 ;
  344. LiTps = LiTps 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  345. LesFlCo = ('REDU' (TRANSP . FLUXCONV . ICour
  346. '+' TRANSP . FLUXDIFF . ICour ) mailimg) ;
  347. FlTCour = 'MAXIMUM' ('RESULT' LesFlCo) ;
  348. * 'LISTE' fltcour;
  349. LiFLT = LiFLT 'ET' ('PROG' FlTCour) ;
  350. SI ( Icour < (('DIME' (Transp.'TEMPS')) '-' 1));
  351. zozo = zozo '+' (fltcour * (((Transp. 'TEMPS' . (ICour+1)))
  352. '-' ((Transp. 'TEMPS' . ICour))));
  353. roro = roro 'ET' ('PROG' zozo);
  354. LiTpm1 = LiTpm1 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  355. 'FINSI' ;
  356. 'FIN' BclFlT ;
  357. *
  358. XConvSY = 1.D0 ;
  359. LiTpsy = LiTps '/' (XConvSY) ;
  360. EvFLT = 'EVOL' 'ROUGE' 'MANUEL' 'Time (y)' LiTpsy 'Total FLux' (LiFLT
  361. '*' XconvSY) ;
  362. *
  363. ChTitr = 'CHAINE' 'Evolution du flux (1/year) en
  364. sortie (positif sortant)' ;
  365.  
  366. 'SI' (GRAPH) ;
  367. 'DESSIN' EvFLT 'TITRE' ChTitr ;
  368. 'FINSI' ;
  369.  
  370. EvFLTS = 'EVOL' 'JAUNE' 'MANUEL' 'Time (y)' LiTpm1 'Total FLux (1/y)
  371. sortant' roro ;
  372.  
  373. ChTitr = 'CHAINE' 'Evolution du flux total integré dans le temps
  374. en sortie (positif sortant)';
  375.  
  376.  
  377.  
  378. *
  379. LiFLT = 'PROG' ;
  380. LiTps = 'PROG' ;
  381. *
  382. * Pas de CORRECTION normale sortante à droite
  383.  
  384. zozo = 0.D0;
  385. roro = 'PROG';
  386. litpm1 = 'PROG' ;
  387. 'REPETER' BclFlT ('DIME' (Transp.'TEMPS')) ;
  388. ICour = (&BclFlT) '-' 1 ;
  389. LiTps = LiTps 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  390. LesFlCo = ('REDU' (TRANSP . FLUXCONV . ICour
  391. '+' TRANSP . FLUXDIFF . ICour) mailimd) ;
  392. FlTCour = 'MAXIMUM' ('RESULT' LesFlCo) ;
  393. LiFLT = LiFLT 'ET' ('PROG' FlTCour) ;
  394. SI ( Icour < (('DIME' (Transp.'TEMPS')) '-' 1));
  395. zozo = zozo '+' (fltcour * (((Transp. 'TEMPS' . (ICour+1)))
  396. '-' ((Transp. 'TEMPS' . ICour))));
  397. roro = roro 'ET' ('PROG' zozo);
  398. LiTpm1 = LiTpm1 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  399. 'FINSI' ;
  400. 'FIN' BclFlT ;
  401.  
  402. LiTpsy = LiTps '/' (XConvSY) ;
  403. EvFLT = 'EVOL' 'BLEU' 'MANUEL' 'Time (y)' LiTpsy 'Total FLux (1/y)'
  404. (LiFLT*xconvsy) ;
  405.  
  406. ChTitr = 'CHAINE' 'Evolution du flux total en entree (positif sortant)';
  407.  
  408. 'SI' (graph) ;
  409. 'DESSIN' EvFLT 'TITRE' ChTitr ;
  410. 'FINSI';
  411.  
  412. EvFLTE = 'EVOL' 'JAUNE' 'MANUEL' 'Time (y)' LiTpm1 'Total FLux (1/y)
  413. entree ' roro ;
  414.  
  415. ChTitr = 'CHAINE' 'Evolution du flux total integré dans le temps
  416. à lentréé 'ET' sortie (positif sortant)';
  417.  
  418. 'SI' (graph) ;
  419. 'DESSIN' (EvFLTE 'ET' evflts) 'TITRE' ChTitr ;
  420.  
  421. 'DESSIN' (evflts '+' evflte) TITRE 'flux total en entree ET sortie';
  422.  
  423. 'DESSIN' (evflts '+' evflte '+' evmass)
  424. TITRE 'conservation masse totale';
  425. 'FINSI' ;
  426.  
  427.  
  428. dum = evflts '+' evflte '+' evmass ;
  429. dum = 'EXTRAIRE' dum 'ORDO';
  430. massi = 'PROG' ('DIME' (dum)) * -1.D0;
  431. dum = massi '+' dum;
  432. 'MESSAGE' 'conservation de la masse' ('MAXIMUM' ('ABS' dum));
  433.  
  434. *'OPTION' donn 5;
  435. 'SI' (('MAXIMUM' ('ABS' dum)) > 1.D-11 ) ;
  436. * mauvaise conservation de la masse
  437. 'ERREUR' 5;
  438. 'SINON' ;
  439. * pas d'erreur de conservation
  440. ERCONSEF = VRAI;
  441. 'FINSI' ;
  442.  
  443.  
  444. **************post VF ********************************************
  445. * on sauve la derniere concentration EFMH
  446.  
  447. concEFMH = Transp . CONCENTRATION . (('DIME' transp . TEMPS) '-' 1);
  448.  
  449.  
  450.  
  451. *-- Table de transport :
  452. Transp = 'TABLE';
  453. Transp . 'MODELE' = MODHYB ;
  454. Transp.'TEMPS' = 'TABLE';
  455. Transp.'CONCENTRATION' = 'TABLE';
  456. Transp.'FLUXDIFF' = 'TABLE';
  457. Transp.'FLUXCONV' = 'TABLE';
  458. Transp.'CARACTERISTIQUES' = 1.D-10 * MATI2;
  459. Transp.'POROSITE' = 1.D0;
  460. Transp.'COEF_RETARD' = 1.D0;
  461. *Transp.'CONVECTION' = NOMC 'SCAL' FLU3 ;
  462. Transp.'CONVECTION' = (nomc SCAL (1.D0 * QFACE1)) /
  463. (doma MODHYB SURFACE) ;
  464. Transp . 'CONVECTION' = Transp . CONVECTION *
  465. (doma Modhyb NORMALE);
  466. Transp.'VITELEM' = VCENT1 ;
  467. *Transp . 'ALPHAL' = MANU 'CHPO' (doma MODHYB centre)
  468. * 'SCAL' 1.D0;
  469. *Transp . 'ALPHAT' = MANU 'CHPO' (doma MODHYB centre)
  470. * 'SCAL' 0.D0;
  471.  
  472. * Conditions initiales :
  473. Transp.'TEMPS'. 0 = TMIN ;
  474. Transp.'CONCENTRATION'. 0 = TCHYB;
  475. Transp.'FLUXDIFF'. 0 = 0.D0 * FLU3 ;
  476. Transp.'FLUXCONV'. 0 = 0.D0 * FLU3;
  477.  
  478. * Conditions aux limites :
  479. Transp . 'TRACE_IMPOSE' = CHAR ('MANU' 'CHPO' ('DOMA' MODGAU 'CENTRE') 1
  480. 'H' 0.D0 'NATURE' 'DISCRET')
  481. ('EVOL' 'MANU' ('PROG' 0. TSUP) ('PROG' 1. 1.)) ;
  482. *Transp . 'FLUXTOT_IMP' = TTT1 ;
  483.  
  484.  
  485. * Paramètres numériques :
  486. Transp.'THETA_DIFF' = 1.D0;
  487. Transp.'THETA_CONVECTION' = 1.D0;
  488. Transp.'LUMP' = FAUX;
  489. Transp.'TYPDISCRETISATION' = 'VF';
  490. Transp.'DECENTR' = VRAI;
  491.  
  492. TABRES = table METHINV;
  493. TABRES . 'TYPINV' = 1;
  494. TABRES . 'PRECOND' = 3;
  495.  
  496. Transp . 'METHINV' = TABRES;
  497.  
  498.  
  499. Transp.'TEMPS_CALCULES' = LiCalc;
  500. *Transp.'TEMPS_SAUVES' = LiSauv;
  501.  
  502.  
  503. Transp . INTCONC = TABLE;
  504. Transp . INTCONC . 0 = 0.D0 * TCHYB;
  505. * ==========
  506. * | CALCUL |
  507. * ==========
  508.  
  509.  
  510. *=======================
  511. * Resolution transitoire
  512. *=======================
  513. *
  514. TRANSGEN TRANSP ;
  515. *
  516. *
  517. *=================
  518. * POST-TRAITEMENT
  519. *=================
  520.  
  521. ****************************************************************************
  522. 'SI' (GRAPH) ;
  523. titre 'Premier champ de concentration' ;
  524. trac (kcha TRANSP . CONCENTRATION . 1 MODHYB CHAM) modhyb;
  525. *
  526. NbTps = 'DIME' (Transp.'TEMPS') ;
  527. titre 'Dernier champ de concentration calcule' ;
  528. trac (kcha (TRANSP . CONCENTRATION . (NbTps - 1)) MODHYB CHAM) modhyb;
  529. 'FINSI' ;
  530.  
  531.  
  532.  
  533. LiMASS = 'PROG' ;
  534. LiTps = 'PROG' ;
  535. zozo = 0.D0;
  536. roro = 'PROG';
  537. litpm1 = 'PROG' ;
  538. *
  539.  
  540.  
  541.  
  542. 'REPETER' BclFlT (('DIME' (Transp.'TEMPS')) - 1 );
  543. ICour = (&BclFlT) ;
  544. toto = 'KOPS' transp . CONCENTRATION . Icour *
  545. transp . POROSITE;
  546. toto = toto * ('DOMA' modhyb VOLUME);
  547. * 'LISTE' ('MAXIMUM' ('RESULT' toto));
  548. LiTps = LiTps 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  549. FlTCour = 'MAXIMUM' ('RESULT' toto) ;
  550. * 'LISTE' fltcour;
  551. LiMASS = LiMASS 'ET' ('PROG' FlTCour) ;
  552. 'FIN' BclFlT ;
  553.  
  554.  
  555. mailimg = 'DOMA' modgau centre;
  556. mailimd = 'DOMA' moddro centre;
  557.  
  558.  
  559. EvMASS = 'EVOL' 'ROUGE' 'MANUEL' 'Time (y)' Litps 'Total mass'
  560. (LiMASS) ;
  561.  
  562. 'SI' (graph) ;
  563. 'DESSIN' EvMASS 'TITRE' 'evolution de la masse dans les fractures' ;
  564. 'FINSI' ;
  565.  
  566.  
  567. LiFLT = 'PROG' ;
  568. LiTps = 'PROG' ;
  569. zozo = 0.D0;
  570. roro = 'PROG';
  571. litpm1 = 'PROG' ;
  572. 'REPETER' BclFlT ('DIME' (Transp.'TEMPS')) ;
  573. ICour = (&BclFlT) '-' 1 ;
  574. LiTps = LiTps 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  575. LesFlCo = ('REDU' (TRANSP . FLUXCONV . ICour
  576. '+' TRANSP . FLUXDIFF . ICour ) mailimg) ;
  577. FlTCour = 'MAXIMUM' ('RESULT' LesFlCo) ;
  578. * 'LISTE' fltcour;
  579. LiFLT = LiFLT 'ET' ('PROG' FlTCour) ;
  580. SI ( Icour < (('DIME' (Transp.'TEMPS')) '-' 1));
  581. zozo = zozo '+' (fltcour * (((Transp. 'TEMPS' . (ICour+1)))
  582. '-' ((Transp. 'TEMPS' . ICour))));
  583. roro = roro 'ET' ('PROG' zozo);
  584. LiTpm1 = LiTpm1 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  585. 'FINSI' ;
  586. 'FIN' BclFlT ;
  587. *
  588. XConvSY = 1.D0 ;
  589. LiTpsy = LiTps '/' (XConvSY) ;
  590. EvFLT = 'EVOL' 'ROUGE' 'MANUEL' 'Time (y)' LiTpsy 'Total FLux' (LiFLT
  591. '*' XconvSY) ;
  592. *
  593. ChTitr = 'CHAINE' 'Evolution du flux (1/year) en
  594. sortie (positif sortant)' ;
  595.  
  596. 'SI' (GRAPH) ;
  597. 'DESSIN' EvFLT 'TITRE' ChTitr ;
  598. 'FINSI' ;
  599.  
  600. EvFLTS = 'EVOL' 'JAUNE' 'MANUEL' 'Time (y)' LiTpm1 'Total FLux (1/y)
  601. sortant' roro ;
  602.  
  603. ChTitr = 'CHAINE' 'Evolution du flux total integré dans le temps
  604. en sortie (positif sortant)';
  605.  
  606.  
  607.  
  608. *
  609. LiFLT = 'PROG' ;
  610. LiTps = 'PROG' ;
  611. *
  612. * Pas de CORRECTION normale sortante à droite
  613.  
  614. zozo = 0.D0;
  615. roro = 'PROG';
  616. litpm1 = 'PROG' ;
  617. 'REPETER' BclFlT ('DIME' (Transp.'TEMPS')) ;
  618. ICour = (&BclFlT) '-' 1 ;
  619. LiTps = LiTps 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  620. LesFlCo = ('REDU' (TRANSP . FLUXCONV . ICour
  621. '+' TRANSP . FLUXDIFF . ICour) mailimd) ;
  622. FlTCour = 'MAXIMUM' ('RESULT' LesFlCo) ;
  623. LiFLT = LiFLT 'ET' ('PROG' FlTCour) ;
  624. SI ( Icour < (('DIME' (Transp.'TEMPS')) '-' 1));
  625. zozo = zozo '+' (fltcour * (((Transp. 'TEMPS' . (ICour+1)))
  626. '-' ((Transp. 'TEMPS' . ICour))));
  627. roro = roro 'ET' ('PROG' zozo);
  628. LiTpm1 = LiTpm1 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  629. 'FINSI' ;
  630. 'FIN' BclFlT ;
  631.  
  632. LiTpsy = LiTps '/' (XConvSY) ;
  633. EvFLT = 'EVOL' 'BLEU' 'MANUEL' 'Time (y)' LiTpsy 'Total FLux (1/y)'
  634. (LiFLT*xconvsy) ;
  635.  
  636. ChTitr = 'CHAINE' 'Evolution du flux total en entree (positif sortant)';
  637.  
  638. 'SI' (graph) ;
  639. 'DESSIN' EvFLT 'TITRE' ChTitr ;
  640. 'FINSI';
  641.  
  642. EvFLTE = 'EVOL' 'JAUNE' 'MANUEL' 'Time (y)' LiTpm1 'Total FLux (1/y)
  643. entree ' roro ;
  644.  
  645. ChTitr = 'CHAINE' 'Evolution du flux total integré dans le temps
  646. à lentréé 'ET' sortie (positif sortant)';
  647.  
  648. 'SI' (graph) ;
  649. 'DESSIN' (EvFLTE 'ET' evflts) 'TITRE' ChTitr ;
  650.  
  651. 'DESSIN' (evflts '+' evflte) TITRE 'flux total en entree ET sortie';
  652.  
  653. 'DESSIN' (evflts '+' evflte '+' evmass)
  654. TITRE 'conservation masse totale';
  655. 'FINSI' ;
  656.  
  657.  
  658. dum = evflts '+' evflte '+' evmass ;
  659. dum = 'EXTRAIRE' dum 'ORDO';
  660. massi = 'PROG' ('DIME' (dum)) * -1.D0;
  661. dum = massi '+' dum;
  662. 'MESSAGE' 'conservation de la masse' ('MAXIMUM' ('ABS' dum));
  663.  
  664. *'OPTION' donn 5;
  665. 'SI' (('MAXIMUM' ('ABS' dum)) > 1.D-11 ) ;
  666. * mauvaise conservation de la masse
  667. 'ERREUR' 5;
  668. 'SINON' ;
  669. * pas d'erreur de conservation
  670. ERCONSVF = VRAI;
  671. 'FINSI' ;
  672.  
  673.  
  674. * On sauve la concentration VF finale
  675.  
  676. concVF = Transp . CONCENTRATION . (('DIME' transp . TEMPS) '-' 1);
  677.  
  678.  
  679. **************** COMPAR VF - EFMH **********************************
  680.  
  681. toto = concEFMH '-' concVF ;
  682. toto = 'KOPS' toto * toto;
  683. toto = ('DOMA' modhyb volume) * toto;
  684. toto = 'MAXIMUM' (('RESULT' toto));
  685. titi = ('DOMA' modhyb volume) * ('KOPS' concVF * concVF);
  686. titi = 'MAXIMUM' ('RESULT' titi);
  687. toto = (toto '/' titi)**0.5D0;
  688.  
  689. 'MESSAGE' 'erreur relative L2' (toto);
  690.  
  691. 'SI' (toto > 1.D-2) ;
  692. 'ERREUR' 5 ;
  693. 'SINON' ;
  694. erEFVF = VRAI;
  695. 'FINSI' ;
  696.  
  697.  
  698. **************** POST HYDRAU ****************************************
  699.  
  700. FLTotE = 'RESULT' (('REDU' QFACE1 mailimd)) ;
  701. FLTotE = -1.D0 * FltotE;
  702. fltote = maxi fltote;
  703.  
  704. * FLux sortants
  705. FLTotS = 'RESULT' (('REDU' QFACE1 mailimg)) ;
  706. fltots = maxi fltots;
  707.  
  708. * Affichage des résultats
  709.  
  710. 'MESSAGE' 'Résultats hydraulique : ' ;
  711. 'MESSAGE' ' ' ;
  712. 'MESSAGE' 'FLux entrant (total, rapporté à la surface) ' FLTotE ;
  713. 'MESSAGE' 'FLux sortant (total, rapporté à la surface) ' FLTotS ;
  714. 'MESSAGE' ' ' ;
  715. 'MESSAGE' 'Keq associés ' Keq1 Keq2 ;
  716.  
  717.  
  718. 'SI' (erefvf 'ET' erconsvf 'ET' erconsef) ;
  719. 'ERREUR' 0;
  720. 'SINON' ;
  721. 'ERREUR' 5;
  722. 'FINSI' ;
  723.  
  724.  
  725. 'FIN';
  726.  
  727.  
  728.  
  729.  
  730.  

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