Télécharger precipite4VF.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : precipite4VF.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. *
  5. ********************* CAS TEST : precipite4.dgibi ********************
  6. *
  7. GRAPH = 'N' ;
  8. 'OPTI' 'ECHO' 1 ;
  9. CRIT1 = 1.D-6 ;
  10. 'SAUT' 'PAGE' ;
  11. *
  12. *---------------------------------------------------------------------
  13. * TEST PRECIPITE4
  14. * precipité uniforme initial de 1 (par unité de volume solide) partout.
  15. * vitesse vx = 1 vy = 0 uniforme
  16. * maillage 2D pseudo 1D.
  17. * concini = 0.
  18. * concentration à gauche nulle, flux diff nul à droite.
  19. * Le précipité fond, le frond se déplace de gauche à droite selon
  20. * l'expression VX * limsol * tps '/' F00 '/' (1.D0 '-' POROS)
  21. * ou poros est la porosité, F00 la concentration de precipité, tps
  22. * le temps écoulé et limsol la limite de solubilité
  23. *
  24. * utilise TRANSGEN
  25. *---------------------------------------------------------------------
  26. *
  27. *------------------
  28. * Options generales
  29. *------------------
  30. *
  31. 'OPTI' 'DIME' 2 'ELEM' 'QUA4' ;
  32. 'OPTI' 'ISOV' 'SURF' ;
  33. *
  34. *
  35. *=========
  36. * MAILLAGE
  37. *=========
  38. *
  39. *
  40. *- Création des points supports du contour du domaine, et des droites
  41. *- passant par les centres et les faces pour le post-traitement.
  42. *
  43. L = 100.D0 ;
  44. H = 1.D0 ;
  45. HS2 = H/2.D0 ;
  46. X0 = 0.D0 ;
  47. X1 = X0 + L ;
  48. Y0 = 0.D0 ;
  49. Y1 = Y0 + H ;
  50. INUMX = 200 ;
  51. INUMY = 1 ;
  52. INUM1 = INUMX - 1 ;
  53.  
  54. DX = X1 - X0 / INUMX ;
  55.  
  56. A1 = X0 Y0 ;
  57. A3 = X1 Y0 ;
  58. D1 = X0 Y1 ;
  59. D3 = X1 Y1 ;
  60.  
  61. *
  62. *- Création des DROITES frontieres
  63. *
  64. DRBAS = A3 'DROI' INUMX A1 ;
  65. DRGAU = A1 'DROI' INUMY D1 ;
  66. DRHAU = D1 'DROI' INUMX D3 ;
  67. DRDRO = D3 'DROI' INUMY A3 ;
  68. PELIM = DX / (5. * INUMX) ;
  69. *
  70. *- Creation maillage GEOMETRIQUE
  71. *
  72. PTOT1 = 'DALL' DRBAS DRGAU DRHAU DRDRO ;
  73. PTOT1 = 'ORIE' PTOT1 ;
  74. *
  75. *- Creation maillage HYBRIDE y compris sous-objets (cond. limites)
  76. *
  77. QFTOT= 'CHAN' PTOT1 QUAF ;
  78. QFGAU= 'CHAN' DRGAU QUAF ;
  79. QFDRO= 'CHAN' DRDRO QUAF ;
  80. ELIM PELIM (QFTOT ET QFGAU ET QFDRO) ;
  81. *
  82. *================
  83. * INITIALISATIONS
  84. *================
  85. *
  86. * ----------------
  87. * = MODELISATION =
  88. * ----------------
  89. MODHYB = MODE QFTOT 'DARCY' 'ANISOTROPE' ;
  90. MODDRO = MODE QFDRO 'DARCY' 'ISOTROPE' ;
  91. MODGAU = MODE QFGAU 'DARCY' 'ISOTROPE' ;
  92.  
  93. *
  94. * ---------------------
  95. * = Donnees physiques =
  96. * ---------------------
  97. *
  98.  
  99. * ---------------------
  100. * DIFFUSIVITE
  101. * ---------------------
  102.  
  103. VK = 1.D-6 ;
  104. MATI2 = MANU 'CHPO' ('DOMA' MODHYB 'CENTRE') 'K' VK ;
  105.  
  106.  
  107. * ---------------------
  108. * VITESSE
  109. * ---------------------
  110.  
  111. VX1 = 5.D0 ; VY1 = 0.D0 ;
  112. *
  113. SPEED = 'MANU' 'CHPO' ('DOMA' MODHYB 'FACE') 2
  114. 'VX' VX1 'VY' VY1 'NATURE' 'DISCRET' ;
  115. SPEEDC = 'MANU' 'CHPO' ('DOMA' MODHYB 'CENTRE') 2
  116. 'VX' VX1 'VY' VY1 'NATURE' 'DISCRET' ;
  117. *
  118. * -----------------------
  119. * Donnees transitoire
  120. * -----------------------
  121. *
  122. TETA = 1.00D0 ;
  123. TMIN = 0.D0 ;
  124. TMAX = 0.25D2 ;
  125. TSUP = 1.2D0 * TMAX ;
  126. DELTAT = 0.250D0 ;
  127. *
  128. LICALC = 'PROG' TMIN 'PAS' DELTAT TMAX ;
  129. LISAUV = LICALC ;
  130.  
  131.  
  132. *
  133. * ------------------------
  134. * Conditions initiales
  135. * ------------------------
  136.  
  137. T0 = 0.D0 ;
  138. CINI = 'MANU' 'CHPO' ('DOMA' MODHYB 'CENTRE') 1 'I129' T0
  139. 'NATURE' 'DISCRET' ;
  140.  
  141.  
  142. * --------------
  143. * T imposée
  144. * --------------
  145.  
  146. TGAUCHE = 0.D0 ;
  147. T1 = TGAUCHE;
  148. TGAUCHE = 'KCHT' MODGAU SCAL CENTRE (1.D0 * TGAUCHE);
  149. TGAUCHE = NOMC I129 TGAUCHE;
  150. TGAUCHE = 'CHAR' TGAUCHE
  151. ('EVOL' 'MANU' ('PROG' 0. TSUP) ('PROG' 1. 1.));
  152.  
  153. *
  154. * ---------------------------
  155. * = Table DARCY_TRANSITOIRE =
  156. * ---------------------------
  157. *
  158. *
  159. *
  160.  
  161. *-- Table de transport :
  162. Transp = 'TABLE';
  163. Transp . 'MODELE' = MODHYB ;
  164. Transp.'TEMPS' = 'TABLE';
  165. Transp.'CONCENTRATION' = 'TABLE';
  166. Transp.'FLUXDIFF' = 'TABLE';
  167. Transp.'FLUXCONV' = 'TABLE';
  168. Transp.'CARACTERISTIQUES' = MATI2;
  169. Transp.'POROSITE' = 0.2D0;
  170. Transp.'COEF_RETARD' = 10.D0;
  171. Transp.'CONVECTION' = 1.D0 * SPEED ;
  172. Transp.'VITELEM' = 1.D0 * SPEEDC ;
  173. *Transp . 'ALPHAL' = MANU 'CHPO' (doma MODHYB centre)
  174. * 'SCAL' 1.D0;
  175. *Transp . 'ALPHAT' = MANU 'CHPO' (doma MODHYB centre)
  176.  
  177. *Transp.'DECROISSANCE' = ('LOG' 2.D0) '/' 5.D0;
  178.  
  179. * 'SCAL' 0.D0;
  180.  
  181. * Conditions initiales :
  182. Transp.'TEMPS'. 0 = TMIN ;
  183. Transp.'CONCENTRATION'. 0 = CINI ;
  184. Transp.'FLUXDIFF'. 0 = 'MANUEL' 'CHPO'
  185. (doma MODHYB face) 'I129' 0.D0 ;
  186. Transp.'FLUXCONV'. 0 = 'MANUEL' 'CHPO'
  187. (doma MODHYB face) 'I129' 0.D0 ;
  188.  
  189. * Conditions aux limites DIRICHLET à gauche:
  190. Transp . 'TRACE_IMPOSE' = TGAUCHE ;
  191.  
  192. * CONDITION FLUX MIXTE à gauche
  193. *Transp . 'FLUXTOT_IMP' = TGAUCHE ;
  194.  
  195. * Fluxdiffusif a gauche
  196. *Transp . 'FLUX_IMPOSE' = TGAUCHE ;
  197.  
  198.  
  199. * Paramètres numériques :
  200. Transp.'THETA_DIFF' = 1.D0;
  201. Transp.'THETA_CONV' = 1.D0;
  202. Transp.'THETA_DEC' = 0.5D0;
  203. Transp.'LUMP' = FAUX;
  204. Transp.'TYPDISCRETISATION' = 'VF';
  205. Transp.'DECENTR' = VRAI;
  206. Transp.'NUM_PECLET' = 2.D0;
  207. Transp.'SEUILCALC' = 1.D-14;
  208.  
  209. TABRES = table METHINV;
  210. TABRES . 'TYPINV' = 1;
  211. TABRES . 'PRECOND' = 3;
  212.  
  213. Transp . 'METHINV' = TABRES;
  214.  
  215.  
  216. Transp.'TEMPS_CALCULES' = LiCalc;
  217. Transp.'TEMPS_SAUVES' = LiSauv;
  218.  
  219.  
  220. Transp . INTCONC = TABLE;
  221. Transp . INTCONC . 0 = 0.D0 * CINI;
  222.  
  223.  
  224. * Precipité
  225.  
  226. * CE SONT DES CHAMPS . A CORRIGER
  227. Transp . 'LIMITE_SOLUBILITE' = MANU 'CHPO' (doma MODHYB centre)
  228. 'I129' 0.25D0;
  229.  
  230. Transp . 'COEF_DISSOLUTION' = MANU 'CHPO' (doma MODHYB centre)
  231. 'I129' 2.5D8 ;
  232.  
  233. Transp . 'PRECIPITE' = 'TABLE' ;
  234. Transp . 'PRECIPITE' . 0 = MANU 'CHPO' (doma MODHYB centre)
  235. 'I129' 1.D0;
  236.  
  237. Transp . INTPREC = TABLE;
  238. Transp . INTPREC . 0 = 0.D0 * CINI;
  239.  
  240. * IL FAUT UN INDICE DISSOLUTION
  241.  
  242. Transp . 'DISSOLUTION' = 'TABLE' ;
  243. Transp . 'DISSOLUTION' . 0 = 0.D0 * CINI;
  244.  
  245.  
  246.  
  247. * TESTER UN TERME SOURCE; TESTER UNE SEULE MAILLE,
  248. * TESTER CONVECTION PURE ...... TRES IMPORTATN
  249. * TESTER DECROISSANCE '-' filiation
  250. * TESTER FLUX imposés, dissolution, precipitation
  251. * retard poros, diffusion seule.
  252. * changer poros ne devrait rien change 'SAUF' niveau source
  253. * ==========
  254. * | CALCUL |
  255. * ==========
  256.  
  257.  
  258. *=======================
  259. * Resolution transitoire
  260. *=======================
  261. *
  262. TRANSGEN TRANSP ;
  263. *
  264. *
  265. *=================
  266. * POST-TRAITEMENT
  267. *=================
  268.  
  269. TRANS2 = TABLE TRANSP;
  270.  
  271. *
  272. *--------------------------------------------------------------------
  273. * Dans chaque cas on trace
  274. * La trace de concentration le long de DRMID
  275. * La concentration le long de DRMIC
  276. *--------------------------------------------------------------------
  277. * Tests de NON-REGRESSION :
  278. * Principe du maximum
  279. * Position du centre de gravité du champ de concentration
  280. *--------------------------------------------------------------------
  281. *
  282. * Critères numériques
  283. CFL = VX1 * DELTAT / DX ;
  284. PEK = VX1 * DX / (2. * VK) ;
  285. FOU = 2. * VK * DELTAT / (DX * DX) ;
  286. 'SAUT' 1 'LIGNE' ;
  287. 'MESS' ' Critères numériques ' ;
  288. 'MESS' ' CFL ' CFL ;
  289. 'MESS' ' PECLET ' PEK ;
  290. 'MESS' ' FOURIER ' FOU ;
  291. 'MESS' ' ' ;
  292. *
  293. XC YC = 'COOR' (DOMA MODHYB 'CENTRE') ;
  294. ISOR1 = INDEX ( TRANS2 . 'TEMPS') ;
  295. NTSOR = DIME ISOR1 ;
  296.  
  297.  
  298. NTSO1 = NTSOR - 1 ;
  299. IOK = FAUX ;
  300. IRESU = 1 ;
  301. *
  302. *-----------------------
  303. REPETER VISURESU NTSO1 ;
  304. *-----------------------
  305. *
  306. IRESU = IRESU + 1 ;
  307. INDI1 = ISOR1.IRESU ;
  308. TTRA = TRANS2 . 'TEMPS' . INDI1 ;
  309. EPR1 = TRANS2 . 'CONCENTRATION' . INDI1 ;
  310.  
  311.  
  312. poros = TRANSP . 'POROSITE';
  313. limsol = 'MAXIMUM' TRANSP . 'LIMITE_SOLUBILITE';
  314. F00 = maximum TRANSP . PRECIPITE . 0 ;
  315.  
  316. solanal = VX1 * limsol * TTRA '/' F00 '/' (1.D0 '-' POROS);
  317.  
  318. 'MESSAGE' solanal;
  319.  
  320. *
  321. 'SI' ('NEG' GRAPH 'N' ) ;
  322. LTI2 = 'CHAINE' 'Front 1D-h temps ' TTRA ;
  323. 'TITR' LTI2 ;
  324. drmil = 'QUELCONQUE' 'SEG2' ('EXTRAIRE' epr1 maillage) ;
  325. drmil = 'INVERSE' drmil ;
  326. AV2 = 'EVOL' 'ROUG' 'CHPO' EPR1 'I129' drmil ;
  327. 'DESS' AV2 'MIMA' 'NCLK' ;
  328. toto = 'KCHA' modhyb epr1 'CHAM';
  329. * 'TRACER' modhyb toto 'NCLK';
  330. 'FINS' ;
  331.  
  332.  
  333.  
  334.  
  335. * concentration au temps t
  336. *
  337. *-------------
  338. FIN VISURESU ;
  339. *-------------
  340.  
  341.  
  342. IRESU = 1 ;
  343. *
  344. *-----------------------
  345. REPETER VISURES NTSO1 ;
  346. *-----------------------
  347. *
  348. IRESU = IRESU + 1 ;
  349. INDI1 = ISOR1.IRESU ;
  350. TTRA = TRANS2 . 'TEMPS' . INDI1 ;
  351. EPR1 = TRANS2 . 'PRECIPITE' . INDI1 ;
  352.  
  353. *
  354. 'SI' ('NEG' GRAPH 'N' ) ;
  355. LTI2 = 'CHAINE' 'Front 1D-h temps ' TTRA ;
  356. 'TITR' LTI2 ;
  357. drmil = 'QUELCONQUE' 'SEG2' ('EXTRAIRE' epr1 maillage) ;
  358. drmil = 'INVERSE' drmil ;
  359. AV2 = 'EVOL' 'ROUG' 'CHPO' EPR1 'I129' drmil ;
  360. 'DESS' AV2 'MIMA' 'NCLK' ;
  361. toto = 'KCHA' modhyb epr1 'CHAM';
  362. * 'TRACER' modhyb toto 'NCLK';
  363. 'FINS' ;
  364.  
  365. * valeur non nulle de concentration
  366. roro = 'MASQUE' epr1 SUPERIEUR 0.1D0;
  367. * coord x du maillage
  368. zozo = 'COORDONNEE' 1 roro;
  369. * multiplie pour trouver valeur du front
  370. tutu = roro * zozo;
  371. tutu = 'KCHA' tutu modhyb 'CHAM';
  372. titi = 'ELEM' tutu SUPERIEUR 1.D-10;
  373. * on extrait la coordonnée x du front
  374. roro = 'MINIMUM' ('COORDONNEE' 1 titi);
  375.  
  376. 'LISTE' roro;
  377.  
  378. * concentration au temps t
  379. *
  380. *-------------
  381. FIN VISURES ;
  382. *-------------
  383.  
  384. 'SI' (roro 'EGA' solanal (2.D0 * DX)) ;
  385. 'ERREUR' 0 ;
  386. 'SINON' ;
  387. 'ERREUR' 5 ;
  388. 'FINSI' ;
  389.  
  390.  
  391. *
  392. 'FIN' ;
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  

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