Télécharger trajec.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : trajec.dgibi
  2. 'SAUTER' PAGE ;
  3. 'OPTION' 'ECHO' 0 ;
  4. GRAPH = faux ;
  5. *
  6. 'TITRE' ' HYDROCOIN 7b inclusion spherique' ;
  7. *-----------------------------------------------------------------------
  8. *= HYDROCOIN 7B
  9. *= Cas isotrope avec une permeabilite p1 a l'interieur d'un cercle de
  10. *= rayon RAY0, et une permeabilite p2 a l'exterieur.
  11. *= Les dimensions sont (-50,50)*(0,30)
  12. *= Le maillage est construit en symétrisant 5 zones.
  13. *=
  14. *= Nombre d'élément = 1422 * Nombre de faces = 2901
  15. *=
  16. *= On va calculer les trajectoires pour les deux types de formulation.
  17. *= Les vitesses sont données par une formule analytique.
  18. *-----------------------------------------------------------------------
  19. *
  20. *
  21. *
  22. * C12 C11
  23. * C12--------------------------------------------------C11
  24. * | |
  25. * |Z5 |
  26. * | |
  27. * | C8 |
  28. * C9---------------------------* |
  29. * |Z4 | |
  30. * |Z3 | |
  31. * | | |
  32. * |Z2 | |
  33. * |Z1 | |
  34. * C2 | |
  35. * | C3 | |
  36. * | | |
  37. * | | |
  38. * | Z0 Z1 Z2 Z3 Z4 | Z5 |
  39. * C0----C1----C4--C5--C6------C7-----------------------C10
  40. *
  41. *
  42. * Z0 : Délimité par les pts C0 a C3 |
  43. * Maillage IX0*IY0 avec DALLER | Zone ou regne une
  44. * Z1 : Délimité par les pts C1 , C4 | permabilite
  45. * Maillage IZ1*SXY avec REGLER | p1
  46. * Z2 : Délimité par les pts C4 , C5 |
  47. * Maillage I45*SXY avec ROTA |
  48. *
  49. * Z3 : Délimité par les pts C5 , C6 |
  50. * Maillage I56*SXY avec ROTA |
  51. * Z4 : Délimité par les pts C6R, C7 a C9 | Zone ou regne une
  52. * Maillage IZ4*SXY avec REGLER | permabilite
  53. * Z5 : Délimité par les pts C7 a C12 | p2
  54. * Maillage IZ5*SXY avec REGLER |
  55. *
  56. *
  57. *
  58. 'OPTION' 'DIME' 2 'ELEM' 'QUA4' ;
  59. *
  60. *- INITIALISATIONS pour la decoupe des droites support des zones
  61. *
  62. IX0 = 9 ;
  63. IY0 = 15 ;
  64. SXY = IX0 + IY0 ;
  65. I45 = 8 ;
  66. I56 = 4 ;
  67. IZ1 = 1 ;
  68. IZ4 = 7 ;
  69. IZ5 = 4 ;
  70. *
  71. *- INITIALISATIONS des coordonnees des points support des droites
  72. *
  73. RAC2 = 2.**.5 ;
  74. RAY0 = 10.0 ;
  75. RS5 = RAY0 / 5.0 ;
  76. PTS5 = RS5 / RAC2 ;
  77. XC4 = RAY0 - RS5 / I45 / 2. + RS5 ;
  78. XC6 = 12.0 ;
  79. XC7 = 25.0 ;
  80. YC8 = 20.0 ;
  81. XC10 = 50.0 ;
  82. YC11 = 30.0 ;
  83. *
  84. *- Definition des points de base
  85. *
  86. C0 = 0.0 0.0 ;
  87. C1 = RS5 0.0 ;
  88. C2 = 0.0 RS5 ;
  89. C3 = PTS5 PTS5 ;
  90. C4 = XC4 0.0 ;
  91. C5 = RAY0 0.0 ;
  92. C6 = XC6 0.0 ;
  93. C7 = XC7 0.0 ;
  94. C8 = XC7 YC8 ;
  95. C9 = 0.0 YC8 ;
  96. C10 = XC10 0.0 ;
  97. C11 = XC10 YC11 ;
  98. C12 = 0.0 YC11 ;
  99. *
  100. *- Definition de la partie carree pres de l'origine
  101. *
  102. C0C1 = C0 D IX0 C1 ;
  103. C1C3 = C1 D IY0 C3 ;
  104. C3C2 = C3 D IX0 C2 ;
  105. C2C0 = C2 D IY0 C0 ;
  106. Z0 = 'DALLER' C0C1 C1C3 C3C2 C2C0 ;
  107. *
  108. *- Definition de la zone jusqu'au changement de permeabilite
  109. *
  110. C4C5 = 'DROIT' C4 I45 C5 ;
  111. Z2 = 'ROTATION' C4C5 SXY 90 C0 ;
  112. *
  113. *- Definition de la zone entre le carre et le cercle
  114. *
  115. C132 = C1C3 'ET' C3C2 ;
  116. COT4 = 'COTE' 4 Z2 ;
  117. COT4 = 'INVERSE' COT4 ;
  118. Z1 = 'REGLER' IZ1 C132 COT4 ;
  119. C1C4 = 'COTE' 4 Z1 ;
  120. C1C4 = 'INVERSE' C1C4 ;
  121. *
  122. *- Definition du cercle au dela du changement de permeabilite
  123. *
  124. C5C6 = 'DROIT' C5 I56 C6 ;
  125. Z3 = 'ROTATION' C5C6 SXY 90 C0 ;
  126. *
  127. *- Definition de la zone entre cercle et rectangle1
  128. *
  129. C7C8 = 'DROIT' C7 IX0 C8 ;
  130. C8C9 = 'DROIT' C8 IY0 C9 ;
  131. C789 = C7C8 'ET' C8C9 ;
  132. COT2 = 'COTE' 2 Z3 ;
  133. Z4 = 'REGLER' IZ4 C789 COT2 ;
  134. C6C7 = 'COTE' 4 Z4 ;
  135. *
  136. *- Definition de la zone rectangle2
  137. *
  138. C10C11 = 'DROIT' C10 IX0 C11 ;
  139. C11C12 = 'DROIT' C11 IY0 C12 ;
  140. C1012 = C10C11 'ET' C11C12 ;
  141. Z5 = 'REGLER' IZ5 C789 C1012 ;
  142. *
  143. * Définition des zones et symétrisation
  144. *
  145. ZONED1 = Z0 'ET' Z1 'ET' Z2 ;
  146. ZONED2 = Z3 'ET' Z4 'ET' Z5 ;
  147. ZONEG1 ZONEG2 = 'SYMETRIE' ZONED1 ZONED2 'DROIT' C0 C12 ;
  148. ZONE1 = ZONED1 'ET' ZONEG1 ;
  149. ZONE2 = ZONED2 'ET' ZONEG2 ;
  150. *
  151. *
  152. *- Creation maillage GEOMETRIQUE
  153. *
  154. PTOT = ZONE1 'ET' ZONE2 ;
  155. 'ELIMINATION' PTOT 0.001 ;
  156. PTOTF = 'CHANGER' PTOT 'QUAF' ;
  157. ZONF1 = 'CHANGER' ZONE1 'QUAF' ;
  158. ZONF2 = 'CHANGER' ZONE2 'QUAF' ;
  159. 'ELIMINATION' 0.001 (PTOTF 'ET' ZONF1 'ET' ZONF2) ;
  160. *
  161. *- Initialisation des parametres physiques
  162. *
  163. AA = RAY0 ;
  164. GG = 1.E+3 ;
  165. KKB = 1.E-15 ;
  166. KKC = 1.E-13 ;
  167. MMU = 1.E-3 ;
  168. FIB = 1.E-1 ;
  169. FIC = 1.E-1 ;
  170. AA2 = AA * AA ;
  171. KCSM = KKC / MMU ;
  172. KBSM = KKB / MMU ;
  173. KCPKB = KKC + KKB ;
  174. KCMKB = KKC - KKB ;
  175. *
  176. *----------
  177. * VITESSE |
  178. *----------
  179. *
  180. * | 2 2 2
  181. * | kb kc-kb a ( y - x )
  182. * | -- GG ( 1 - ------- ------------ pour r>a
  183. * | MU kc+kb r4
  184. * V |
  185. * x |
  186. * | kc 2kb
  187. * | -- GG -------- pour r<a
  188. * | MU kc+kb
  189. * |
  190. *
  191. * | 2 2 2
  192. * | kb kc-kb a ( y - x )
  193. * | -- GG ( 1 - ------- ------------ pour r>a
  194. * | MU kc+kb r4
  195. * V |
  196. * y |
  197. * | 0. pour r<a
  198. * |
  199. * |
  200. *
  201. * --------------------
  202. * définition du LACHER
  203. * --------------------
  204. LACHER = 'TABLE' ;
  205. LACHER.TEMPS_LACHER = 'PROG' 0. ;
  206. LACHER.TEMPS_LIMITE = 1.E+15 ;
  207. LACHER.CFL = 0.05 ;
  208. LACHER.DELTAT_SAUVE = 0. ;
  209. LACHER.1 = (-49.99999 10.) 'ET' (-49.99999 12.) 'ET' (-49.99999 14.)
  210. 'ET' (-49.99999 16.) 'ET' (-49.99999 18.) ;
  211.  
  212. * ----------------------------------------------------------------
  213. * lorsque la trajectoire passera d'une zone à l'autre
  214. * on réinitialisera le lacher avec la derniere position calculée
  215. * ----------------------------------------------------------------
  216. *
  217. * -------------------
  218. * formulation DARCY
  219. * -------------------
  220. *
  221. *- Creation MODELE HYBRIDE
  222. *
  223. MHYTOT = MODE PTOTF DARCY ISOTROPE ;
  224. MHYZ1 = MODE ZONF1 DARCY ISOTROPE ;
  225. MHYZ2 = MODE ZONF2 DARCY ISOTROPE ;
  226. ZHYB1 = DOMA MHYZ1 SURFACE ;
  227. ZHYB2 = DOMA MHYZ1 NORMALE ;
  228. YHYB1 = DOMA MHYZ2 SURFACE ;
  229. YHYB2 = DOMA MHYZ2 NORMALE ;
  230. *
  231. * --------------------
  232. * = Charge aux FACES =
  233. * --------------------
  234. *
  235. XX YY = 'COOR' (DOMA MHYTOT FACE ) ;
  236. XX1 = REDU XX (DOMA MHYZ1 FACE) ;
  237. XX2 = REDU XX (DOMA MHYZ2 FACE) ;
  238. YY2 = REDU YY (DOMA MHYZ2 FACE) ;
  239. RX2 = XX2 * XX2 ;
  240. RY2 = YY2 * YY2 ;
  241. RR2 = RX2 + RY2 ;
  242. RR4 = RR2 * RR2 ;
  243. *
  244. *
  245. * ------------------------------
  246. * = Vitesse 'ET' debit aux FACES =
  247. * ------------------------------
  248. *
  249. CSTZ1 = KCSM * KKB * GG * 2.0 / KCPKB ;
  250. UZ1 = MANU CHPO (DOMA MHYZ1 FACE) 1 SCAL CSTZ1 ;
  251. UZ2 = (KBSM * KCMKB / KCPKB * GG * ((AA2 * (RX2 - RY2))/(RR4)))
  252. + (KBSM * GG) ;
  253. VZ1 = MANU CHPO (DOMA MHYZ1 FACE) 1 SCAL 0. ;
  254. VZ2 = KBSM * KCMKB/KCPKB * GG * 2. * ( XX2*YY2*AA2 / (RR4) ) ;
  255. UZ1 = NOMC VX UZ1 ;
  256. UZ2 = NOMC VX UZ2 ;
  257. VZ1 = NOMC VY VZ1 ;
  258. VZ2 = NOMC VY VZ2 ;
  259. *
  260. UZ1 = CHANGER 'ATTRIBUT' UZ1 'NATURE' 'DISCRET' ;
  261. UZ2 = CHANGER 'ATTRIBUT' UZ2 'NATURE' 'DISCRET' ;
  262. VZ1 = CHANGER 'ATTRIBUT' VZ1 'NATURE' 'DISCRET' ;
  263. VZ2 = CHANGER 'ATTRIBUT' VZ2 'NATURE' 'DISCRET' ;
  264. *
  265. VN1 = UZ1 'ET' VZ1 ;
  266. VN2 = UZ2 'ET' VZ2 ;
  267. MOT1 = MOTS VX VY ;
  268. MOT2 = MOTS UX UY ;
  269. VAVN1 = PSCA VN1 ZHYB2 MOT1 MOT2 ;
  270. VAVN2 = PSCA VN2 YHYB2 MOT1 MOT2 ;
  271. VAVN1 = NOMC SCAL VAVN1 ;
  272. VAVN2 = NOMC SCAL VAVN2 ;
  273. QFACE1= VAVN1* ZHYB1 ;
  274. QFACE1= NOMC FLUX QFACE1 ;
  275. QFACE2= VAVN2* YHYB1 ;
  276. QFACE2= NOMC FLUX QFACE2 ;
  277. * --------------------------------------
  278. * trajectoires formulation mixte hybride
  279. * --------------------------------------
  280. MOD2 UUU2 = 'TRAJ' 'CONVECTION_EXPLICITE' MHYZ2 QFACE2 LACHER ;
  281. LATAB2 = 'EXTR' MOD2 'ZONE';
  282. LACHER.TEMPS_LACHER = 'PROG' 5*0. ;
  283. 'REPETER' BLOC11 5 ;
  284. I = &BLOC11 ;
  285. NBPT = 'NBEL' LATAB2. (2*I) ;
  286. PT1 = 'POINT' LATAB2. (2*I) FINAL ;
  287. TP1 = 'EXTR' UUU2 'TMPS' I NBPT 2 ;
  288. LACHER.I = 'MANU' 'POI1' PT1 ;
  289. 'REMPLACER' LACHER.TEMPS_LACHER I TP1 ;
  290. 'FIN' BLOC11 ;
  291.  
  292. MOD1 UUU1 = 'TRAJ' 'CONVECTION_EXPLICITE' MHYZ1 QFACE1 LACHER ;
  293. LATAB1 = 'EXTR' MOD1 'ZONE';
  294. 'REPETER' BLOC12 5 ;
  295. I = &BLOC12 ;
  296. NBPT = 'NBEL' LATAB1. (2*I) ;
  297. PT1 = 'POINT' LATAB1. (2*I) FINAL ;
  298. TP1 = 'EXTR' UUU1 'TMPS' I NBPT 2 ;
  299. LACHER.I = 'MANU' 'POI1' PT1 ;
  300. 'REMPLACER' LACHER.TEMPS_LACHER I TP1 ;
  301. 'FIN' BLOC12 ;
  302.  
  303. MOD3 UUU3 = 'TRAJ' 'CONVECTION_EXPLICITE' MHYZ2 QFACE2 LACHER ;
  304. LATAB3 = 'EXTR' MOD3 'ZONE';
  305. * ------------------------
  306. * controle des résultats
  307. * ------------------------
  308. BTTP = 'PROG' 8.3324E+10 8.5795E+10 8.9149E+10 9.3984E+10 10.2586E+10 ;
  309. VERRE = 0 ;
  310. 'REPETER' BLOC13 5 ;
  311. I = &BLOC13 ;
  312. NBPT = 'NBEL' LATAB3. (2*I) ;
  313. XI2 I2 = 'COOR' ('POINT' LATAB3. (2*I) 'FINAL');
  314. XI1 I1 = 'COOR' ('POINT' LATAB2. (2*I) 'INITIAL') ;
  315. EPSS = 'ABS' ( I1 - I2) ;
  316. 'SI' ( EPSS > 5.E-4) ;
  317. VERRE=VERRE+1 ;
  318. 'FINSI' ;
  319. TP1= EXTR UUU3 'TMPS' I NBPT 2 ;
  320. TP2= EXTR BTTP I ;
  321. EPST= ABS( TP1 - TP2) ;
  322. 'SI' ( EPST > 1.E+8 ) ;
  323. VERRE=VERRE+1 ;
  324. 'FINSI' ;
  325. 'FIN' BLOC13 ;
  326. * ----------------------
  327. * tracé des trajectoires
  328. * ----------------------
  329. 'SI' GRAPH ;
  330. CONT1 = CONTOUR (DOMA MHYZ1 'MAILLAGE') ;
  331. CONT2 = CONTOUR (DOMA MHYZ2 'MAILLAGE') ;
  332. CROB1 = EXTR UUU1 'MAIL' ;
  333. CROB2 = EXTR UUU2 'MAIL' ;
  334. CROB3 = EXTR UUU3 'MAIL' ;
  335. 'TITRE' ' Trajectoires HYDROCOIN 7b inclusion spherique' ;
  336. 'TRACER' (CROB1 'ET' CROB2 'ET' CROB3 'ET' CONT1 'ET' CONT2) ;
  337. 'FINSI' ;
  338. * -------------------------
  339. * formulation NAVIER_STOKES
  340. * -------------------------
  341. *
  342. *
  343. *- Creation MODELE NAVIER_STOKES
  344. *
  345. MNSTOT = MODE PTOTF NAVIER_STOKES LINE ;
  346. MNSZ1 = MODE ZONF1 NAVIER_STOKES LINE ;
  347. MNSZ2 = MODE ZONF2 NAVIER_STOKES LINE ;
  348. *
  349. * --------------------
  350. * = Charge aux SOMMETS
  351. * --------------------
  352. *
  353. XXS YYS = COOR (DOMA MNSTOT 'MAILLAGE') ;
  354. XXS1 = REDU XXS (DOMA MNSZ1 'MAILLAGE') ;
  355. XXS2 = REDU XXS (DOMA MNSZ2 'MAILLAGE') ;
  356. YYS2 = REDU YYS (DOMA MNSZ2 'MAILLAGE') ;
  357. RXS2 = XXS2 * XXS2 ;
  358. RYS2 = YYS2 * YYS2 ;
  359. RRS2 = RXS2 + RYS2 ;
  360. RRS4 = RRS2 * RRS2 ;
  361. *
  362. *
  363. * -----------------------
  364. * = Vitesse AUX SOMMETS =
  365. * -----------------------
  366. *
  367. CSTZ1 = KCSM * KKB * GG * 2.0 / KCPKB ;
  368. UZS1 = 'MANU' 'CHPO' ('DOMA' MNSZ1 'MAILLAGE') 1 'SCAL' CSTZ1 ;
  369. UZS2 = (KBSM * KCMKB / KCPKB * GG * ((AA2 * (RXS2 - RYS2))/(RRS4)))
  370. + (KBSM * GG) ;
  371. VZS1 = 'MANU' 'CHPO' (DOMA MNSZ1 'MAILLAGE') 1 'SCAL' 0. ;
  372. VZS2 = KBSM * KCMKB/KCPKB * GG * 2. * ( XXS2*YYS2*AA2 / (RRS4) ) ;
  373. UZS1 = NOMC VX UZS1 ;
  374. UZS2 = NOMC VX UZS2 ;
  375. VZS1 = NOMC VY VZS1 ;
  376. VZS2 = NOMC VY VZS2 ;
  377. *
  378. UZS1 = CHANGER 'ATTRIBUT' UZS1 'NATURE' 'DISCRET' ;
  379. UZS2 = CHANGER 'ATTRIBUT' UZS2 'NATURE' 'DISCRET' ;
  380. VZS1 = CHANGER 'ATTRIBUT' VZS1 'NATURE' 'DISCRET' ;
  381. VZS2 = CHANGER 'ATTRIBUT' VZS2 'NATURE' 'DISCRET' ;
  382. *
  383. VNS1 = UZS1 'ET' VZS1 ;
  384. VNS2 = UZS2 'ET' VZS2 ;
  385. *
  386. LACHER.1 = (-49.99999 10.) 'ET' (-49.99999 12.) 'ET' (-49.99999 14.)
  387. 'ET' (-49.99999 16.) 'ET' (-49.99999 18.) ;
  388. LACHER.TEMPS_LACHER = 'PROG' 5*0. ;
  389. *
  390. MODS2 UUUS2 = 'TRAJ' MNSZ2 VNS2 LACHER ;
  391.  
  392. LATABS2 = 'EXTR' MODS2 'ZONE';
  393. 'REPETER' BLOC21 5 ;
  394. I = &BLOC21 ;
  395. NBPT = 'NBEL' LATABS2. (2*I) ;
  396. PT1 = 'POINT' LATABS2. (2*I) 'FINAL' ;
  397. TP1 = 'EXTR' UUUS2 'TMPS' I NBPT 2 ;
  398. LACHER.I = 'MANU' 'POI1' PT1 ;
  399. 'REMPLACER' LACHER.TEMPS_LACHER I TP1 ;
  400. 'FIN' BLOC21 ;
  401. *
  402. MODS1 UUUS1= 'TRAJ' MNSZ1 VNS1 LACHER ;
  403.  
  404. LATABS1 = 'EXTR' MODS1 'ZONE';
  405. LACHER.TEMPS_LACHER= 'PROG' 5*0. ;
  406. 'REPETER' BLOC22 5 ;
  407. I = &BLOC22 ;
  408. NBPT = 'NBEL' LATABS1. (2*I) ;
  409. PT1 = 'POINT' LATABS1. (2*I) 'FINAL' ;
  410. TP1 = 'EXTR' UUUS1 'TMPS' I NBPT 2 ;
  411. LACHER.I = 'MANU' 'POI1' PT1 ;
  412. 'REMPLACER' LACHER.TEMPS_LACHER I TP1 ;
  413. 'FIN' BLOC22 ;
  414.  
  415. MODS3 UUUS3 = 'TRAJ' MNSZ2 VNS2 LACHER ;
  416. LATABS3 = 'EXTR' MODS3 'ZONE';
  417. * ------------------------
  418. * contrôle des résultats
  419. * ------------------------
  420. BTTP = 'PROG' 8.3324E+10 8.5795E+10 8.9149E+10 9.3984E+10 10.2586E+10 ;
  421. REPETER BLOC23 5 ;
  422. I = &BLOC23 ;
  423. NBPT = 'NBEL' LATABS3. (2*I) ;
  424. XI2 I2 = 'COOR' ('POINT' LATABS3. (2*I) 'FINAL');
  425. XI1 I1 = 'COOR' ('POINT' LATABS2. (2*I) 'INITIAL') ;
  426. EPSS = 'ABS' (I1 - I2) ;
  427. 'SI' (EPSS > 5.E-4) ;
  428. VERRE = VERRE + 1 ;
  429. 'FINSI' ;
  430. TP1 = 'EXTR' UUUS3 'TMPS' I NBPT 2;
  431. TP2 = 'EXTR' BTTP I ;
  432. EPST = 'ABS' ( TP1 - TP2) ;
  433. 'SI' ( EPST > 5.E+8 ) ;
  434. VERRE = VERRE + 1 ;
  435. 'FINSI' ;
  436. 'FIN' BLOC23 ;
  437. * ----------------------
  438. * tracé des trajectoires
  439. * ----------------------
  440. 'SI' GRAPH ;
  441. CONT1 = CONTOUR (DOMA MNSZ1 'MAILLAGE') ;
  442. CONT2 = CONTOUR (DOMA MNSZ2 'MAILLAGE') ;
  443. CROB1 = EXTR UUUS1 'MAIL' ;
  444. CROB2 = EXTR UUUS2 'MAIL' ;
  445. CROB3 = EXTR UUUS3 'MAIL' ;
  446. TITRE ' Trajectoires HYDROCOIN 7b inclusion spherique' ;
  447. 'TRACER' (CROB1 'ET' CROB2 'ET' CROB3 'ET' CONT1 'ET' CONT2) ;
  448. 'FINSI' ;
  449.  
  450. 'SI' (VERRE 'EGA' 0) ;
  451. 'ERREUR' 0 ;
  452. 'SINON' ;
  453. 'ERREUR' 5 ;
  454. 'FINSI' ;
  455.  
  456. 'FIN' ;
  457. *
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  

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