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. 'FINSI' ;
  158. *
  159. * Blocages
  160. *
  161. rigblo = ('BLOQUE' 'UX' (fx0 'ET' fx1))
  162. 'ET' ('BLOQUE' 'UY' (fy0 'ET' fy1))
  163. 'ET' ('BLOQUE' 'UZ' (fz0 'ET' fz1))
  164. ;
  165. cblo = 'DEPIMPOSE' rigblo 0. ;
  166. *
  167. * Métrique
  168. *
  169. 'SI' ('ET' ('>EG' mesh 1) ('&lt;EG' mesh 2)) ;
  170. met = 'CHAINE' 'rien' ;
  171. 'FINSI' ;
  172. 'SI' ('EGA' mesh 3) ;
  173. xmt ymt zmt = 'COORDONNEE' mt ;
  174. g11 = 'NOMC' 'G11' ('+' ('*' xmt 100.) 0.);
  175. g22 = 'NOMC' 'G22' ('+' ('*' ymt 100.) 0.) ;
  176. g33 = 'NOMC' 'G33' ('+' ('*' zmt 100.) 0.) ;
  177. g21 = 'NOMC' 'G21' ('*' xmt 0.) ;
  178. g31 = 'NOMC' 'G31' g21 ;
  179. g32 = 'NOMC' 'G32' g21 ;
  180. met = g11 'ET' g22 'ET' g33 'ET' g21 'ET' g31 'ET' g32 ;
  181. *
  182. mod = 'MODE' mt 'MECANIQUE' ;
  183. met = 'CHANGER' 'CHAM' met mod 'GRAVITE' ;
  184. 'FINSI' ;
  185. 'RESPRO' mt met mod rigblo cblo ;
  186. *
  187. * End of procedure file CAS3D
  188. *
  189. 'FINPROC' ;
  190. *ENDPROCEDUR cas3d
  191. *
  192.  
  193. 'OPTION' 'DIME' 3 ;
  194. 'SI' ('NON' interact) ;
  195. 'OPTION' 'TRAC' 'PSC' ;
  196. 'SINON' ;
  197. 'OPTION' 'TRAC' 'X' ;
  198. 'FINSI' ;
  199. *
  200. * Pour les tests, on regarde les valeurs max. des indicateurs
  201. * d'isotropie et d'equidistribution
  202. *
  203. lmaiso = 'PROG' ;
  204. lmaequ = 'PROG' ;
  205. *
  206. * Ici les valeurs de référence
  207. *
  208. lok = VRAI ;
  209. idx = 0 ;
  210. lmaisor = 'PROG' 1.2 1.2 1.2 1. 1. 1. 1.2 1.2 1.2 1. 1. 1. ;
  211. lmaequr = 'PROG' 1.2 1.2 1.5 1. 1. 1. 1.2 1.2 1.2 1. 1. 1. ;
  212. *
  213. * Maillage :
  214. * mesh = 1 : maillage régulier
  215. * mesh = 2 : maillage concentré à gauche
  216. * mesh = 3 : maillage régulier + métrique concentrée à gauche
  217. * ltri = VRAI
  218. * nbmail2 : nombre de mailles divisé par 2
  219. * 'QUAI' : quadratique incomplet (mécanique)
  220. * 'QUAF' : quadratique fluide
  221. tdisc = 'TABLE' ;
  222. tdisc . 1 = 'LINE' ;
  223. tdisc . 2 = 'QUAI' ;
  224. tdisc . 3 = 'QUAF' ;
  225. 'REPETER' idisc 2 ;
  226. 'REPETER' itri 2 ;
  227. 'REPETER' imesh 3 ;
  228. iidisc = &idisc ;
  229. iitri = &itri ;
  230. iimesh = &imesh ;
  231. * iidisc = 1 ;
  232. * iitri = 2 ;
  233. * iimesh = 3 ;
  234. gdisc = tdisc . iidisc ;
  235. 'SI' ('EGA' iidisc 1) ;
  236. nbmail2 = 3 ;
  237. 'SINON' ;
  238. nbmail2 = 2 ;
  239. 'FINSI' ;
  240. 'SI' ('EGA' iitri 1) ;
  241. ltri = VRAI ;
  242. 'SINON' ;
  243. ltri = FAUX ;
  244. 'FINSI' ;
  245. *
  246. * Maillage
  247. *
  248. mail met mod mblo cblo = CAS3D iimesh nbmail2 ltri gdisc ;
  249. 'SI' ltri ;
  250. mtri = 'CHAINE' 'triangle' ;
  251. 'SINON' ;
  252. mtri = 'CHAINE' 'carre' ;
  253. 'FINSI' ;
  254. mes = 'CHAINE' 'mesh=' iimesh ' ; ' mtri ' ; ' gdisc ;
  255. 'MESSAGE' mes ;
  256. 'SI' graph ;
  257. tit = 'CHAINE' 'Maillage initial ' mes ;
  258. 'SI' interact ;
  259. 'TRACER' 'CACH' mail 'TITR' tit ;
  260. 'SINON' ;
  261. 'TRACER' 'CACH' mail 'TITR' tit 'NCLK' ;
  262. 'FINSI' ;
  263. 'FINSI' ;
  264. *
  265. * adaptation
  266. *
  267. 'SI' ('EGA' ('TYPE' met) 'MCHAML') ;
  268. dep = 'DEDU' 'ADAP' mail mblo cblo 'METR' met mod debug ;
  269. 'SINON' ;
  270. dep = 'DEDU' 'ADAP' mail mblo cblo debug ;
  271. 'FINSI' ;
  272. *
  273. * tracé
  274. *
  275. orig = 'FORME' ;
  276. 'FORME' dep ;
  277. 'SI' ('EGA' ('TYPE' met) 'MCHAML') ;
  278. ciso = DEADUTIL 'QISO' mail 'METR' met mod ;
  279. cequ = DEADUTIL 'QEQU' mail 'METR' met mod ;
  280. 'SINON' ;
  281. ciso = DEADUTIL 'QISO' mail ;
  282. cequ = DEADUTIL 'QEQU' mail ;
  283. 'FINSI' ;
  284. maciso = 'MAXIMUM' ciso ; miciso = 'MINIMUM' ciso ;
  285. macequ = 'MAXIMUM' cequ ; micequ = 'MINIMUM' cequ ;
  286. 'MESSAGE' ('CHAINE' 'CISO : max. = ' maciso
  287. ' min. = ' miciso) ;
  288. 'MESSAGE' ('CHAINE' 'CEQU : max. = ' macequ
  289. ' min. = ' micequ) ;
  290. * Tests
  291. lmaiso = 'ET' lmaiso ('PROG' maciso) ;
  292. lmaequ = 'ET' lmaequ ('PROG' macequ) ;
  293. idx = '+' idx 1 ;
  294. visor='EXTRAIRE' lmaisor idx ;
  295. tiso = ('<' maciso ('*' visor 1.05)) ;
  296. 'SI' ('NON' tiso) ;
  297. cherr = 'CHAINE' '!!! Erreur, on aurait voulu max. ciso. < '
  298. visor ;
  299. 'MESSAGE' cherr ;
  300. 'FINSI' ;
  301. lok = 'ET' lok tiso ;
  302.  
  303. vequr='EXTRAIRE' lmaequr idx ;
  304. tequ = ('<' macequ ('*' vequr 1.05)) ;
  305. 'SI' ('NON' tequ) ;
  306. cherr = 'CHAINE' '!!! Erreur, on aurait voulu max. cequ. < '
  307. vequr ;
  308. 'MESSAGE' cherr ;
  309. 'FINSI' ;
  310. lok = 'ET' lok tequ ;
  311. *
  312. 'SI' graph ;
  313. tit = 'CHAINE' 'Maillage final ' mes ;
  314. 'SI' interact ;
  315. 'TRACER' 'CACH' mail 'TITR' tit ;
  316. 'SINON' ;
  317. 'TRACER' 'CACH' mail 'TITR' tit 'NCLK' ;
  318. 'FINSI' ;
  319. mod = 'MODE' mail 'MECANIQUE' ;
  320. tit = 'CHAINE' 'Isotropie ' mes ;
  321. 'SI' interact ;
  322. 'TRACER' ciso mod 'TITR' tit ;
  323. 'SINON' ;
  324. 'TRACER' ciso mod 'TITR' tit 'NCLK' ;
  325. 'FINSI' ;
  326. tit = 'CHAINE' 'Equidis. ' mes ;
  327. 'SI' interact ;
  328. 'TRACER' cequ mod 'TITR' tit ;
  329. 'SINON' ;
  330. 'TRACER' cequ mod 'TITR' tit 'NCLK' ;
  331. 'FINSI' ;
  332. 'FINSI' ;
  333. 'FORME' orig ;
  334. * 'TEMPS' 'SGAC' 'IMPR' ;
  335. 'FIN' imesh ;
  336. 'FIN' itri ;
  337. 'FIN' idisc ;
  338. *
  339. * Fin du jeu de données
  340. *
  341. 'SAUTER' 2 'LIGNE' ;
  342. 'SI' lok ;
  343. 'MESSAGE' 'Tout sest bien passe' ;
  344. 'SINON' ;
  345. 'MESSAGE' 'Il y a eu des erreurs' ;
  346. 'FINSI' ;
  347. 'SAUTER' 2 'LIGNE' ;
  348. 'SI' interact ;
  349. 'OPTION' 'DONN' 5 ;
  350. 'FINSI' ;
  351. 'SI' ('NON' lok) ;
  352. 'ERREUR' 5 ;
  353. 'FINSI' ;
  354. *
  355. * End of dgibi file DEDUAD3D
  356. *
  357. 'FIN' ;
  358.  
  359.  
  360.  

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