Télécharger deduad3d.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : deduad3d.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. 'OPTI' 'ECHO' 0 ;
  5. ************************************************************************
  6. * NOM : DEDUAD3D
  7. * DESCRIPTION : cas test 3d pour deduadap
  8. *
  9. *
  10. * LANGAGE : GIBIANE-CAST3M
  11. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  12. * mél : gounand@semt2.smts.cea.fr
  13. **********************************************************************
  14. * VERSION : v1, 21/09/2005, version initiale
  15. * HISTORIQUE : v1, 21/09/2005, création
  16. * HISTORIQUE :
  17. * HISTORIQUE :
  18. ************************************************************************
  19. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  20. * en cas de modification de ce sous-programme afin de faciliter
  21. * la maintenance !
  22. ************************************************************************
  23. *
  24. 'SAUTER' 2 'LIGNE' ;
  25. 'MESSAGE' ' Execution de deduad3d.dgibi' ;
  26. 'SAUTER' 2 'LIGNE' ;
  27. *
  28. *
  29. *
  30. interact= FAUX ;
  31. graph = FAUX ;
  32. debug = FAUX ;
  33. *
  34. *BEGINPROCEDUR cas3d
  35. ************************************************************************
  36. * NOM : CAS3D
  37. * DESCRIPTION : Construit les cas pour deduadap 3D
  38. *
  39. *
  40. *
  41. * LANGAGE : GIBIANE-CAST3M
  42. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  43. * mél : gounand@semt2.smts.cea.fr
  44. **********************************************************************
  45. * VERSION : v1, 15/12/2004, version initiale
  46. * HISTORIQUE : v1, 15/12/2004, création
  47. * HISTORIQUE :
  48. * HISTORIQUE :
  49. ************************************************************************
  50. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  51. * en cas de modification de ce sous-programme afin de faciliter
  52. * la maintenance !
  53. ************************************************************************
  54. *
  55. *
  56. 'DEBPROC' CAS3D ;
  57. 'ARGUMENT' mesh*'ENTIER' ;
  58. 'ARGUMENT' nbmail2*'ENTIER' ;
  59. 'ARGUMENT' ltri/'LOGIQUE' ;
  60. *
  61. 'SI' ('NON' ('EXISTE' ltri)) ;
  62. ltri = 'VRAI' ;
  63. 'FINSI' ;
  64. *
  65. 'ARGUMENT' disc/'MOT' ;
  66. 'SI' ('NON' ('EXISTE' disc)) ;
  67. disc = 'LINE' ;
  68. 'FINSI' ;
  69. *
  70. 'SI' ('<' nbmail2 1) ;
  71. cherr = 'CHAINE' 'Nombre de mailles inférieur à 2...' ;
  72. 'ERREUR' cherr ;
  73. 'FINSI' ;
  74. nbmail = '*' nbmail2 2 ;
  75. *
  76. 'SI' ltri ;
  77. 'SI' ('EGA' disc 'LINE') ;
  78. 'OPTION' 'ELEM' 'TRI3' ;
  79. 'SINON' ;
  80. 'OPTION' 'ELEM' 'TRI6' ;
  81. 'FINSI' ;
  82. 'SINON' ;
  83. 'SI' ('EGA' disc 'LINE') ;
  84. 'OPTION' 'ELEM' 'QUA4' ;
  85. 'SINON' ;
  86. 'OPTION' 'ELEM' 'QUA8' ;
  87. 'FINSI' ;
  88. 'FINSI' ;
  89. *
  90. p000 = 0. 0. 0. ; p100 = .5 0. 0. ; p200 = 1. 0. 0. ;
  91. p010 = 0. .5 0. ; p110 = .5 .5 0. ; p210 = 1. .5 0. ;
  92. p020 = 0. 1. 0. ; p120 = .5 1. 0. ; p220 = 1. 1. 0. ;
  93. p001 = 0. 0. .5 ; p101 = .5 0. .5 ; p201 = 1. 0. .5 ;
  94. p011 = 0. .5 .5 ; p111 = .5 .5 .5 ; p211 = 1. .5 .5 ;
  95. p021 = 0. 1. .5 ; p121 = .5 1. .5 ; p221 = 1. 1. .5 ;
  96. p002 = 0. 0. 1. ; p102 = .5 0. 1. ; p202 = 1. 0. 1. ;
  97. p012 = 0. .5 1. ; p112 = .5 .5 1. ; p212 = 1. .5 1. ;
  98. p022 = 0. 1. 1. ; p122 = .5 1. 1. ; p222 = 1. 1. 1. ;
  99. *
  100. n2 = nbmail2 ; n1 = '-' nbmail 1 ;
  101. crit = 1.D-4 ;
  102. 'SI' ('OU' ('EGA' mesh 1) ('EGA' mesh 3)) ;
  103. ba = 'ET' ('DROIT' n2 p000 p100) ('DROIT' n2 p100 p200) ;
  104. dr = 'ET' ('DROIT' n2 p200 p210) ('DROIT' n2 p210 p220) ;
  105. ha = 'ET' ('DROIT' n2 p220 p120) ('DROIT' n2 p120 p020) ;
  106. ga = 'ET' ('DROIT' n2 p020 p010) ('DROIT' n2 p010 p000) ;
  107. ligg = 'ET' ('DROIT' n2 p000 p001) ('DROIT' n2 p001 p002) ;
  108. 'FINSI' ;
  109. 'SI' ('EGA' mesh 2) ;
  110. ba = 'ET' ('DROIT' n1 p000 p100) ('DROIT' 1 p100 p200) ;
  111. dr = 'ET' ('DROIT' n1 p200 p210) ('DROIT' 1 p210 p220) ;
  112. ha = 'ET' ('DROIT' 1 p220 p120) ('DROIT' n1 p120 p020) ;
  113. ga = 'ET' ('DROIT' 1 p020 p010) ('DROIT' n1 p010 p000) ;
  114. ligg = 'ET' ('DROIT' n1 p000 p001) ('DROIT' 1 p001 p002) ;
  115. 'FINSI' ;
  116. *
  117. bas = 'DALLER' ba dr ha ga ;
  118. 'SI' ('EGA' disc 'LINE') ;
  119. 'OPTION' 'ELEM' 'CUB8' ;
  120. 'SINON' ;
  121. 'OPTION' 'ELEM' 'CU20' ;
  122. 'FINSI' ;
  123. mt = 'VOLUME' bas 'GENE' ligg ;
  124. emt = 'ENVELOPPE' mt ;
  125. * amt = 'ARETE' mt ;
  126. * 'TRACER' 'CACH' mt ;
  127. pmt = 'CHANGER' emt 'POI1' ;
  128. pmtz0 = 'POIN' pmt 'PLAN' p000 p200 p020 crit ;
  129. pmtz1 = 'POIN' pmt 'PLAN' p002 p202 p022 crit ;
  130. pmty0 = 'POIN' pmt 'PLAN' p000 p200 p002 crit ;
  131. pmty1 = 'POIN' pmt 'PLAN' p020 p220 p022 crit ;
  132. pmtx0 = 'POIN' pmt 'PLAN' p000 p020 p002 crit ;
  133. pmtx1 = 'POIN' pmt 'PLAN' p200 p220 p202 crit ;
  134. * 'TRACER' (emt 'ET' ('COULEUR' pmtz0 'ROUG')) ;
  135. * 'LISTE' pmtz0 ;
  136. fz0 = 'ELEM' emt 'APPUYE' 'STRICTEMENT' pmtz0 ;
  137. * 'TRACER' (emt 'ET' ('COULEUR' fz0 'ROUG')) ;
  138. * 'LISTE' pmtz1 ;
  139. fz1 = 'ELEM' emt 'APPUYE' 'STRICTEMENT' pmtz1 ;
  140. fy0 = 'ELEM' emt 'APPUYE' 'STRICTEMENT' pmty0 ;
  141. fy1 = 'ELEM' emt 'APPUYE' 'STRICTEMENT' pmty1 ;
  142. fx0 = 'ELEM' emt 'APPUYE' 'STRICTEMENT' pmtx0 ;
  143. fx1 = 'ELEM' emt 'APPUYE' 'STRICTEMENT' pmtx1 ;
  144. *
  145. * Cas QUAF
  146. *
  147. 'SI' ('EGA' disc 'QUAF') ;
  148. mt = 'CHANGER' mt 'QUAF' ;
  149. fz0 = 'CHANGER' fz0 'QUAF' ;
  150. fz1 = 'CHANGER' fz1 'QUAF' ;
  151. fy0 = 'CHANGER' fy0 'QUAF' ;
  152. fy1 = 'CHANGER' fy1 'QUAF' ;
  153. fx0 = 'CHANGER' fx0 'QUAF' ;
  154. fx1 = 'CHANGER' fx1 'QUAF' ;
  155. 'ELIMINATION' (mt 'ET' fx0 'ET' fx1 'ET' fy0 'ET' fy1
  156. 'ET' fz0 'ET' fz1 'ET' ba) 1.D-6 ;
  157. _mt = mt ;
  158. 'SINON' ;
  159. _mt = 'CHANGER' mt 'QUAF' ;
  160. 'FINSI' ;
  161. *
  162. * Blocages
  163. *
  164. rigblo = ('BLOQUE' 'UX' (fx0 'ET' fx1))
  165. 'ET' ('BLOQUE' 'UY' (fy0 'ET' fy1))
  166. 'ET' ('BLOQUE' 'UZ' (fz0 'ET' fz1))
  167. ;
  168. cblo = 'DEPIMPOSE' rigblo 0. ;
  169. *
  170. * Métrique
  171. *
  172. $mt = 'MODELISER' mt 'THERMIQUE' ;
  173. 'SI' ('ET' ('>EG' mesh 1) ('&lt;EG' mesh 2)) ;
  174. met = 'CHAINE' 'rien' ;
  175. 'FINSI' ;
  176. 'SI' ('EGA' mesh 3) ;
  177. * xmt ymt zmt = 'COORDONNEE' mt ;
  178. * g11 = 'NOMC' 'G11' ('+' ('*' xmt 10.) 0.1);
  179. * g22 = 'NOMC' 'G22' ('+' ('*' ymt 10.) 0.1) ;
  180. * g33 = 'NOMC' 'G33' ('+' ('*' zmt 10.) 0.1) ;
  181. * g21 = 'NOMC' 'G21' ('*' xmt 0.D0) ;
  182. * g31 = 'NOMC' 'G31' g21 ;
  183. * g32 = 'NOMC' 'G32' g21 ;
  184. * cg11 = 'CHANGER' 'CHAM' g11 $mt 'NOEUD' ;
  185. * cg22 = 'CHANGER' 'CHAM' g22 $mt 'NOEUD' ;
  186. * cg33 = 'CHANGER' 'CHAM' g33 $mt 'NOEUD' ;
  187. * cg12 = 'CHANGER' 'CHAM' g12 $mt 'NOEUD' ;
  188. * cg13 = 'CHANGER' 'CHAM' g13 $mt 'NOEUD' ;
  189. * cg23 = 'CHANGER' 'CHAM' g23 $mt 'NOEUD' ;
  190. * met = cg11 'ET' cg22 'ET' cg33 'ET' cg12 'ET' cg13 'ET' cg23 ;
  191. $mt = 'MODELISER' _mt 'NAVIER_STOKES' 'QUAF' ;
  192. mtc = 'DOMA' $mt 'CENTRE' ;
  193. xmt ymt zmt = 'COORDONNEE' mtc ;
  194. g11 = 'NOMC' 'G11' ('+' ('*' xmt 100.) 0.);
  195. g22 = 'NOMC' 'G22' ('+' ('*' ymt 100.) 0.) ;
  196. g33 = 'NOMC' 'G33' ('+' ('*' zmt 100.) 0.) ;
  197. g21 = 'NOMC' 'G21' ('*' xmt 0.) ;
  198. g31 = 'NOMC' 'G31' g21 ;
  199. g32 = 'NOMC' 'G32' g21 ;
  200. met = g11 'ET' g22 'ET' g33 'ET' g21 'ET' g31 'ET' g32 ;
  201. 'FINSI' ;
  202. 'RESPRO' mt _mt met rigblo cblo ;
  203. *
  204. * End of procedure file CAS3D
  205. *
  206. 'FINPROC' ;
  207. *ENDPROCEDUR cas3d
  208. *
  209.  
  210. 'OPTION' 'DIME' 3 ;
  211. 'SI' ('NON' interact) ;
  212. 'OPTION' 'TRAC' 'PS' ;
  213. 'SINON' ;
  214. 'OPTION' 'TRAC' 'X' ;
  215. 'FINSI' ;
  216. *
  217. * Pour les tests, on regarde les valeurs max. des indicateurs
  218. * d'isotropie et d'equidistribution
  219. *
  220. lmaiso = 'PROG' ;
  221. lmaequ = 'PROG' ;
  222. *
  223. * Ici les valeurs de référence
  224. *
  225. lok = VRAI ;
  226. idx = 0 ;
  227. lmaisor = 'PROG' 1.2 1.2 1.2 1. 1. 1. 1.2 1.2 1.2 1. 1. 1. ;
  228. lmaequr = 'PROG' 1.2 1.2 1.5 1. 1. 1. 1.2 1.2 1.2 1. 1. 1. ;
  229. *
  230. * Maillage :
  231. * mesh = 1 : maillage régulier
  232. * mesh = 2 : maillage concentré à gauche
  233. * mesh = 3 : maillage régulier + métrique concentrée à gauche
  234. * ltri = VRAI
  235. * nbmail2 : nombre de mailles divisé par 2
  236. * 'QUAI' : quadratique incomplet (mécanique)
  237. * 'QUAF' : quadratique fluide
  238. tdisc = 'TABLE' ;
  239. tdisc . 1 = 'LINE' ;
  240. tdisc . 2 = 'QUAI' ;
  241. tdisc . 3 = 'QUAF' ;
  242. 'REPETER' idisc 2 ;
  243. 'REPETER' itri 2 ;
  244. 'REPETER' imesh 3 ;
  245. iidisc = &idisc ;
  246. iitri = &itri ;
  247. iimesh = &imesh ;
  248. * iidisc = 1 ;
  249. * iitri = 2 ;
  250. * iimesh = 3 ;
  251. gdisc = tdisc . iidisc ;
  252. 'SI' ('EGA' iidisc 1) ;
  253. nbmail2 = 3 ;
  254. 'SINON' ;
  255. nbmail2 = 2 ;
  256. 'FINSI' ;
  257. 'SI' ('EGA' iitri 1) ;
  258. ltri = VRAI ;
  259. 'SINON' ;
  260. ltri = FAUX ;
  261. 'FINSI' ;
  262. *
  263. * Maillage
  264. *
  265. mail _mt met mblo cblo = CAS3D iimesh nbmail2 ltri gdisc ;
  266. 'SI' ltri ;
  267. mtri = 'CHAINE' 'triangle' ;
  268. 'SINON' ;
  269. mtri = 'CHAINE' 'carre' ;
  270. 'FINSI' ;
  271. mes = 'CHAINE' 'mesh=' iimesh ' ; ' mtri ' ; ' gdisc ;
  272. 'MESSAGE' mes ;
  273. 'SI' graph ;
  274. tit = 'CHAINE' 'Maillage initial ' mes ;
  275. 'SI' interact ;
  276. 'TRACER' 'CACH' mail 'TITR' tit ;
  277. 'SINON' ;
  278. 'TRACER' 'CACH' mail 'TITR' tit 'NCLK' ;
  279. 'FINSI' ;
  280. 'FINSI' ;
  281. *
  282. * adaptation
  283. *
  284. 'SI' ('EGA' ('TYPE' met) 'CHPOINT ') ;
  285. * dep = 'DEDU' 'ADAP' mail mblo cblo 'METR' met 'CSTE'
  286. * debug ;
  287. dep = 'DEDU' 'ADAP' _mt mblo cblo 'DISG' gdisc
  288. 'METR' met 'CSTE'
  289. debug ;
  290. 'SINON' ;
  291. dep = 'DEDU' 'ADAP' mail mblo cblo debug ;
  292. 'FINSI' ;
  293. *
  294. * tracé
  295. *
  296. orig = 'FORME' ;
  297. 'FORME' dep ;
  298. 'SI' ('EGA' ('TYPE' met) 'CHPOINT ') ;
  299. ciso = DEADUTIL 'QISO' _mt gdisc 'GAU7' met 'CSTE' ;
  300. cequ = DEADUTIL 'QEQU' _mt gdisc 'GAU7' met 'CSTE' ;
  301. 'SINON' ;
  302. ciso = DEADUTIL 'QISO' _mt gdisc 'GAU7' ;
  303. cequ = DEADUTIL 'QEQU' _mt gdisc 'GAU7' ;
  304. 'FINSI' ;
  305. maciso = 'MAXIMUM' ciso ; miciso = 'MINIMUM' ciso ;
  306. macequ = 'MAXIMUM' cequ ; micequ = 'MINIMUM' cequ ;
  307. 'MESSAGE' ('CHAINE' 'CISO : max. = ' maciso
  308. ' min. = ' miciso) ;
  309. 'MESSAGE' ('CHAINE' 'CEQU : max. = ' macequ
  310. ' min. = ' micequ) ;
  311. * Tests
  312. lmaiso = 'ET' lmaiso ('PROG' maciso) ;
  313. lmaequ = 'ET' lmaequ ('PROG' macequ) ;
  314. idx = '+' idx 1 ;
  315. visor='EXTRAIRE' lmaisor idx ;
  316. tiso = ('<' maciso ('*' visor 1.05)) ;
  317. 'SI' ('NON' tiso) ;
  318. cherr = 'CHAINE' '!!! Erreur, on aurait voulu max. ciso. < '
  319. visor ;
  320. 'MESSAGE' cherr ;
  321. 'FINSI' ;
  322. lok = 'ET' lok tiso ;
  323.  
  324. vequr='EXTRAIRE' lmaequr idx ;
  325. tequ = ('<' macequ ('*' vequr 1.05)) ;
  326. 'SI' ('NON' tequ) ;
  327. cherr = 'CHAINE' '!!! Erreur, on aurait voulu max. cequ. < '
  328. vequr ;
  329. 'MESSAGE' cherr ;
  330. 'FINSI' ;
  331. lok = 'ET' lok tequ ;
  332. *
  333. 'SI' graph ;
  334. tit = 'CHAINE' 'Maillage final ' mes ;
  335. 'SI' interact ;
  336. 'TRACER' 'CACH' mail 'TITR' tit ;
  337. 'SINON' ;
  338. 'TRACER' 'CACH' mail 'TITR' tit 'NCLK' ;
  339. 'FINSI' ;
  340. $mt = 'MODELISER' _mt 'NAVIER_STOKES' 'LINE' ;
  341. mb = 'MODE' ('DOMA' $mt 'MAILLAGE') 'THERMIQUE' ;
  342. cliso = 'KCHA' $mt ciso 'CHAM' ;
  343. tit = 'CHAINE' 'Isotropie ' mes ;
  344. 'SI' interact ;
  345. 'TRACER' cliso mb 'TITR' tit ;
  346. 'SINON' ;
  347. 'TRACER' cliso mb 'TITR' tit 'NCLK' ;
  348. 'FINSI' ;
  349. clequ = 'KCHA' $mt cequ 'CHAM' ;
  350. tit = 'CHAINE' 'Equidis. ' mes ;
  351. 'SI' interact ;
  352. 'TRACER' clequ mb 'TITR' tit ;
  353. 'SINON' ;
  354. 'TRACER' clequ mb 'TITR' tit 'NCLK' ;
  355. 'FINSI' ;
  356. 'FINSI' ;
  357. 'FORME' orig ;
  358. * 'TEMPS' 'SGAC' 'IMPR' ;
  359. 'FIN' imesh ;
  360. 'FIN' itri ;
  361. 'FIN' idisc ;
  362. *
  363. * Fin du jeu de données
  364. *
  365. 'SAUTER' 2 'LIGNE' ;
  366. 'SI' lok ;
  367. 'MESSAGE' 'Tout sest bien passe' ;
  368. 'SINON' ;
  369. 'MESSAGE' 'Il y a eu des erreurs' ;
  370. 'FINSI' ;
  371. 'SAUTER' 2 'LIGNE' ;
  372. 'SI' interact ;
  373. 'OPTION' 'DONN' 5 ;
  374. 'FINSI' ;
  375. 'SI' ('NON' lok) ;
  376. 'ERREUR' 5 ;
  377. 'FINSI' ;
  378. *
  379. * End of dgibi file DEDUAD3D
  380. *
  381. 'FIN' ;
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  

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