Télécharger deduad2d.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : deduad2d.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. 'OPTI' 'ECHO' 0 ;
  5. ************************************************************************
  6. * NOM : DEDUAD2D
  7. * DESCRIPTION : cas-test 2d pour 'DEDU' 'ADAP'
  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 deduad2d.dgibi' ;
  26. 'SAUTER' 2 'LIGNE' ;
  27. *
  28. *
  29. *
  30. interact= FAUX ;
  31. graph = FAUX ;
  32. debug = FAUX ;
  33. *
  34. *BEGINPROCEDUR cas2d
  35. ************************************************************************
  36. * NOM : CAS2D
  37. * DESCRIPTION : Construit les cas pour deduadap 2D
  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' CAS2D ;
  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. 'SI' ('OU' ('ET' ('>EG' mesh 1) ('&lt;EG' mesh 2))
  91. ('EGA' mesh 7)) ;
  92. pA = 'POIN' 0. 0. ;
  93. pB = 'POIN' 0.5 0. ;
  94. pC = 'POIN' 1.0 0. ;
  95. pD = 'POIN' 0. 0.5 ;
  96. pE = 'POIN' 0.5 0.5 ;
  97. pF = 'POIN' 1.0 0.5 ;
  98. pG = 'POIN' 0. 1.0 ;
  99. pH = 'POIN' 0.5 1.0 ;
  100. pI = 'POIN' 1.0 1.0 ;
  101. *
  102. 'SI' ('OU' ('EGA' mesh 1) ('EGA' mesh 7)) ;
  103. bas = 'ET' ('DROIT' pA pB nbmail2) ('DROIT' pB pC nbmail2) ;
  104. dro = 'ET' ('DROIT' pC pF nbmail2) ('DROIT' pF pI nbmail2) ;
  105. hau = 'ET' ('DROIT' pI pH nbmail2) ('DROIT' pH pG nbmail2) ;
  106. gau = 'ET' ('DROIT' pG pD nbmail2) ('DROIT' pD pA nbmail2) ;
  107. mt = 'DALLER' bas dro hau gau ;
  108. 'FINSI' ;
  109. *
  110. 'SI' ('EGA' mesh 2) ;
  111. bas = 'ET' ('DROIT' pA pB ('-' nbmail 1)) ('DROIT' pB pC 1) ;
  112. dro = 'ET' ('DROIT' pC pF ('-' nbmail 1)) ('DROIT' pF pI 1) ;
  113. hau = 'ET' ('DROIT' pI pH 1) ('DROIT' pH pG ('-' nbmail 1)) ;
  114. gau = 'ET' ('DROIT' pG pD 1) ('DROIT' pD pA ('-' nbmail 1)) ;
  115. mt = 'DALLER' bas dro hau gau ;
  116. 'FINSI' ;
  117. *
  118. rigblo = 'ET' ('BLOQUE' 'UX' (gau 'ET' dro))
  119. ('BLOQUE' 'UY' (bas 'ET' hau)) ;
  120. cblo = 'DEPIMPOSE' rigblo 0. ;
  121. 'FINSI' ;
  122. *
  123. 'SI' ('ET' ('>EG' mesh 3) ('&lt;EG' mesh 4)) ;
  124. pA = 0. 0. ; pB = 1. 0. ; pC = 1. 1. ;
  125. pD = 2. 1. ; pE = 2. 0. ; pF = 3. 0. ;
  126. pG = 3. 3. ; pH = 0. 3. ;
  127. dCH = 'DROIT' pC pH nbmail2 ; dDG = 'DROIT' pD pG nbmail2 ;
  128. dAB = 'DROIT' pA pB nbmail2 ; dBC = 'DROIT' pB pC nbmail2 ;
  129. dHA = 'DROIT' pH pA nbmail2 ; dCD = 'DROIT' pC pD nbmail2 ;
  130. dGH = 'DROIT' pG pH nbmail2 ; dDE = 'DROIT' pD pE nbmail2 ;
  131. dEF = 'DROIT' pE pF nbmail2 ; dFG = 'DROIT' pF pG nbmail2 ;
  132. cmt = dAB 'ET' dBC 'ET' dCD 'ET' dDE 'ET'
  133. dEF 'ET' dFG 'ET' dGH 'ET' dHA ;
  134. 'SI' ('EGA' mesh 3) ;
  135. s1 = 'DALLER' dAB dBC dCH dHA ;
  136. s2 = 'DALLER' dCD dDG dGH ('INVERSE' dCH) ;
  137. s3 = 'DALLER' dDE dEF dFG ('INVERSE' dDG) ;
  138. mt = s1 'ET' s2 'ET' s3 ;
  139. 'FINSI' ;
  140. 'SI' ('EGA' mesh 4) ;
  141. mt = 'SURFACE' cmt ;
  142. 'FINSI' ;
  143. 'FINSI' ;
  144. 'SI' ('EGA' mesh 5) ;
  145. pA = 0. 0. ; pB = 2. 0. ; pC = 3. 1. ;
  146. pD = 1. 1. ; pE = 3. -1. ; pF = 1. -1. ;
  147. dAB = 'DROIT' pA pB nbmail ; dBC = 'DROIT' pB pC nbmail ;
  148. dCD = 'DROIT' pC pD nbmail ; dDA = 'DROIT' pD pA nbmail ;
  149. dBE = 'DROIT' pB pE nbmail ; dEF = 'DROIT' pE pF nbmail ;
  150. dFA = 'DROIT' pF pA nbmail ;
  151. s1 = 'DALLER' dAB dBC dCD dDA ;
  152. s2 = 'DALLER' dAB dBE dEF dFA ;
  153. mt = s1 'ET' s2 ;
  154. cmt = 'CONTOUR' mt ;
  155. 'FINSI' ;
  156. 'SI' ('EGA' mesh 6) ;
  157. * pA = 0. 0. ; pB = 1. 0. ; p1 = 2. 0.5 ;
  158. * pC = 1. 1. ; pD = 0. 1. ; p2 = 0.5 0. ;
  159. pA = 0. 0. ; pB = 1. 0. ; p1 = 1.8 0.5 ;
  160. pC = 1. 1. ; pD = 0. 1. ; p2 = 0.5 0.25 ;
  161. dAB = 'DROIT' pA pB nbmail ; dBC = 'PARA' pB p1 pC nbmail ;
  162. dCD = 'PARA' pC p2 pD nbmail ; dDA = 'DROIT' pD pA nbmail ;
  163. mt = 'DALLER' dAB dBC dCD dDA ;
  164. cmt = 'CONTOUR' mt ;
  165. * 'TRACER' mt ;
  166. 'FINSI' ;
  167. 'SI' ('EGA' mesh 8) ;
  168. pA = 0. -3. ; pB = 4. -3. ; pC = 4. 1. ; pD = 0. 1. ;
  169. pE = 0. -1. ;
  170. dAB = 'DROIT' pA pB nbmail ; dBC = 'DROIT' pB pC nbmail ;
  171. dCD = 'DROIT' pC pD nbmail ; dDE = 'DROIT' pD pE nbmail ;
  172. dEA = 'DROIT' pE pA nbmail2 ;
  173. cmt = dAB 'ET' dBC 'ET' dCD 'ET' dDE 'ET' dEA ;
  174. mt = 'SURFACE' cmt ;
  175. * mt = 'DALLER' dAB dBC dCD (dDE 'ET' dEA) ;
  176. * cmt = 'CONTOUR' mt ;
  177. bux = 'ET' dBC dEA ;
  178. buy = 'ET' dAB dCD ;
  179. buxuy = dDE ;
  180. rigb1 = 'BLOQUE' 'UX' ('ET' bux buxuy) ;
  181. rigb2 = 'BLOQUE' 'UY' ('ET' buy buxuy) ;
  182. rigblo = 'ET' rigb1 rigb2 ;
  183. ch1 = 'MANUEL' 'CHPO' bux 1 'UX' 0. 'NATURE' 'DISCRET' ;
  184. ch2 = 'MANUEL' 'CHPO' buy 1 'UY' 0. 'NATURE' 'DISCRET' ;
  185. y1 = 'COORDONNEE' 2 buxuy ;
  186. y3 = '**' y1 3 ;
  187. fac = 4. ;
  188. ch3 = 'NOMC' 'UX' ('*' ('-' y3 y1) fac) 'NATURE' 'DISCRET' ;
  189. chblo = ch1 '+' ch2 '+' ch3 ;
  190. cblo = 'DEPIMPOSE' rigblo chblo ;
  191. * 'TRACER' mt ;
  192. 'FINSI' ;
  193. *
  194. 'SI' ('ET' ('>EG' mesh 3) ('&lt;EG' mesh 6)) ;
  195. rigblo = 'ET' ('BLOQUE' 'UX' cmt)
  196. ('BLOQUE' 'UY' cmt) ;
  197. cblo = 'DEPIMPOSE' rigblo 0. ;
  198. 'FINSI' ;
  199.  
  200. *
  201. * Cas QUAF
  202. *
  203. 'SI' ('EGA' disc 'QUAF') ;
  204. mt = 'CHANGER' mt 'QUAF' ;
  205. 'FINSI' ;
  206. *
  207. * Métrique
  208. *
  209. 'SI' ('OU' ('ET' ('>EG' mesh 1) ('&lt;EG' mesh 6))
  210. ('EGA' mesh 8)) ;
  211. met ='CHAINE' 'rien' ;
  212. 'FINSI' ;
  213. 'SI' ('EGA' mesh 7) ;
  214. xmt ymt = 'COORDONNEE' mt ;
  215. g11 = 'NOMC' 'G11' ('+' ('*' xmt 100.) 0.);
  216. g22 = 'NOMC' 'G22' ('+' ('*' ymt 100.) 0.) ;
  217. g21 = 'NOMC' 'G21' ('*' xmt 0.) ;
  218. met = g11 'ET' g21 'ET' g22 ;
  219. *
  220. mod = 'MODE' mt 'MECANIQUE' ;
  221. met = 'CHANGER' 'CHAM' met mod 'GRAVITE' ;
  222. 'FINSI' ;
  223. 'RESPRO' mt met mod rigblo cblo ;
  224. *
  225. * End of procedure file CAS2D
  226. *
  227. 'FINPROC' ;
  228. *ENDPROCEDUR cas2d
  229. *
  230. 'OPTION' 'DIME' 2 ;
  231. 'SI' ('NON' interact) ;
  232. 'OPTION' 'TRAC' 'PSC' ;
  233. 'SINON' ;
  234. 'OPTION' 'TRAC' 'X' ;
  235. 'FINSI' ;
  236. *
  237. * Pour les tests, on regarde les valeurs max. des indicateurs
  238. * d'isotropie et d'equidistribution
  239. *
  240. lmaiso = 'PROG' ;
  241. lmaequ = 'PROG' ;
  242. *
  243. * Ici les valeurs de référence
  244. *
  245. lok = VRAI ;
  246. idx = 0 ;
  247. lmaisor = 'PROG' 3. 2.5 2. 2. 2. 2. 1. 1. 1. 1.
  248. 2. 2.5 2. 3.0 4. 2. 2.5 2.5 1. 1.
  249. 5. 4.5 ;
  250. lmaequr = 'PROG' 3.5 2.5 2.5 2. 2.5 2. 1. 1. 1. 1.
  251. 3.5 2. 3.0 2.5 4. 1.5 2.5 2. 1. 1.
  252. 4.5 2.5 ;
  253. *
  254. * Maillage :
  255. * mesh = 1 : maillage régulier
  256. * mesh = 2 : maillage concentré à gauche
  257. * mesh = 3 : horseshoe avec DALLER
  258. * mesh = 4 : horseshoe avec SURF
  259. * mesh = 5 : chevron
  260. * mesh = 6 : swan
  261. * mesh = 7 : maillage régulier + métrique concentrée en bas à gauche
  262. * mesh = 8 : keyhole
  263. * ltri = VRAI : triangles sinon quadrangles
  264. * nbmail2 : nombre de mailles divisé par 2
  265. * 'QUAI' : quadratique incomplet (mécanique)
  266. * 'QUAF' : quadratique fluide
  267. *
  268. tdisc = 'TABLE' ;
  269. tdisc . 1 = 'LINE' ;
  270. tdisc . 2 = 'QUAI' ;
  271. tdisc . 3 = 'QUAF' ;
  272. ltheta = 'PROG' 1. 0.2 ;
  273. lgamma = 'PROG' 2.5 2. ;
  274. *ltheta = 'PROG' 1. 1. 0.5 0.2 0.05 ;
  275. *lgamma = 'PROG' 1. 2. 2. 2. 2. ;
  276. nparam = 'DIME' lgamma ;
  277. *
  278. * Test 0 : Juste pour moi
  279. *
  280. 'SI' FAUX ;
  281. 'SAUTER' 2 'LIGNE' ;
  282. chs = 'CHAINE' '*****************************************************' ;
  283. ch1 = 'CHAINE' '* Test 0 ' ;
  284. 'MESSAGE' chs ; 'MESSAGE' ch1 ; 'MESSAGE' chs ;
  285. 'SAUTER' 2 'LIGNE' ;
  286. *
  287. iimesh = 4 ;
  288. theta = 0.5 ;
  289. gamma = 3. ;
  290. iidisc = 1 ;
  291. iitri = 2 ;
  292. gdisc = tdisc . iidisc ;
  293. 'SI' ('EGA' iidisc 1) ;
  294. nbmail2 = 8 ;
  295. 'SINON' ;
  296. nbmail2 = 4 ;
  297. 'FINSI' ;
  298. 'SI' ('EGA' iitri 1) ;
  299. ltri = VRAI ;
  300. 'SINON' ;
  301. ltri = FAUX ;
  302. 'FINSI' ;
  303. *
  304. * Maillage
  305. *
  306. mail met mod mblo cblo = CAS2D iimesh nbmail2 ltri gdisc ;
  307. 'SI' ltri ;
  308. mtri = 'CHAINE' 'triangle' ;
  309. 'SINON' ;
  310. mtri = 'CHAINE' 'carre' ;
  311. 'FINSI' ;
  312. mes = 'CHAINE' ' ' 'th=' theta ' ; gam=' gamma
  313. ' mesh=' iimesh ';' mtri ';' gdisc ;
  314. 'MESSAGE' mes ;
  315. 'SI' graph ;
  316. tit = 'CHAINE' 'Maillage initial' mes ;
  317. 'SI' interact ;
  318. 'TRACER' mail 'TITR' tit ;
  319. 'SINON' ;
  320. 'TRACER' mail 'TITR' tit 'NCLK' ;
  321. 'FINSI' ;
  322. 'FINSI' ;
  323. *
  324. * adaptation
  325. *
  326. 'SI' ('EGA' ('TYPE' met) 'MCHAML') ;
  327. dep = 'DEDU' 'ADAP' mail mblo cblo 'METR' met mod
  328. 'THET' theta 'GAMM' gamma debug ;
  329. 'SINON' ;
  330. dep = 'DEDU' 'ADAP' mail mblo cblo 'THET' theta 'GAMM' gamma debug ;
  331. 'FINSI' ;
  332. *
  333. * trace
  334. *
  335. orig = 'FORME' ;
  336. 'FORME' dep ;
  337. 'SI' ('EGA' ('TYPE' met) 'CHPOINT ') ;
  338. ciso = DEADUTIL 'QISO' mail 'METR' met mod ;
  339. cequ = DEADUTIL 'QEQU' mail 'METR' met mod ;
  340. 'SINON' ;
  341. ciso = DEADUTIL 'QISO' mail ;
  342. cequ = DEADUTIL 'QEQU' mail ;
  343. 'FINSI' ;
  344. maciso = 'MAXIMUM' ciso ; miciso = 'MINIMUM' ciso ;
  345. macequ = 'MAXIMUM' cequ ; micequ = 'MINIMUM' cequ ;
  346. 'MESSAGE' ('CHAINE' 'CISO : max.=' maciso ' min.=' miciso) ;
  347. 'MESSAGE' ('CHAINE' 'CEQU : max.=' macequ ' min.=' micequ) ;
  348. 'SI' graph ;
  349. tit = 'CHAINE' 'Maillage final' mes ;
  350. 'SI' interact ;
  351. 'TRACER' mail 'TITR' tit ;
  352. 'SINON' ;
  353. 'TRACER' mail 'TITR' tit 'NCLK' ;
  354. 'FINSI' ;
  355. mod = 'MODE' mail 'MECANIQUE' ;
  356. tit = 'CHAINE' 'Isotropie' mes ;
  357. 'SI' interact ;
  358. 'TRACER' ciso mod 'TITR' tit ;
  359. 'SINON' ;
  360. 'TRACER' ciso mod 'TITR' tit 'NCLK' ;
  361. 'FINSI' ;
  362. tit = 'CHAINE' 'Equidis.' mes ;
  363. 'SI' interact ;
  364. 'TRACER' cequ mod 'TITR' tit ;
  365. 'SINON' ;
  366. 'TRACER' cequ mod 'TITR' tit 'NCLK' ;
  367. 'FINSI' ;
  368. 'FINSI' ;
  369. 'FORME' orig ;
  370. 'FINSI' ;
  371. *
  372. * Test 1 : on fait varier la discrétisation géométrique
  373. * type et degré des éléments sur le cas du swan
  374. *
  375. 'SI' vrai ;
  376. 'SAUTER' 2 'LIGNE' ;
  377. chs = 'CHAINE' '*****************************************************' ;
  378. ch1 = 'CHAINE' '* Test 1 : on fait varier type et degre des elements ' ;
  379. ch2 = 'CHAINE' '* sur le maillage swan ' ;
  380. 'MESSAGE' chs ; 'MESSAGE' ch1 ; 'MESSAGE' ch2 ; 'MESSAGE' chs ;
  381. 'SAUTER' 2 'LIGNE' ;
  382. *
  383. 'REPETER' idisc 3 ;
  384. 'REPETER' itri 2 ;
  385. iimesh = 6 ;
  386. theta = 0.5 ;
  387. gamma = 2. ;
  388. iidisc = &idisc ;
  389. iitri = &itri ;
  390. gdisc = tdisc . iidisc ;
  391. 'SI' ('EGA' iidisc 1) ;
  392. nbmail2 = 8 ;
  393. 'SINON' ;
  394. nbmail2 = 4 ;
  395. 'FINSI' ;
  396. 'SI' ('EGA' iitri 1) ;
  397. ltri = VRAI ;
  398. 'SINON' ;
  399. ltri = FAUX ;
  400. 'FINSI' ;
  401. *
  402. * Maillage
  403. *
  404. mail met mod mblo cblo = CAS2D iimesh nbmail2 ltri gdisc ;
  405. 'SI' ltri ;
  406. mtri = 'CHAINE' 'triangle' ;
  407. 'SINON' ;
  408. mtri = 'CHAINE' 'carre' ;
  409. 'FINSI' ;
  410. mes = 'CHAINE' ' th=' theta ' ; gam=' gamma
  411. ' mesh=' iimesh ' ; ' mtri ' ; ' gdisc ;
  412. 'MESSAGE' mes ;
  413. 'SI' graph ;
  414. tit = 'CHAINE' 'Maillage initial' mes ;
  415. 'SI' interact ;
  416. 'TRACER' mail 'TITR' tit ;
  417. 'SINON' ;
  418. 'TRACER' mail 'TITR' tit 'NCLK' ;
  419. 'FINSI' ;
  420. 'FINSI' ;
  421. *
  422. * adaptation
  423. *
  424. 'SI' ('EGA' ('TYPE' met) 'MCHAML') ;
  425. dep = 'DEDU' 'ADAP' mail mblo cblo 'METR' met mod
  426. 'THET' theta 'GAMM' gamma debug ;
  427. 'SINON' ;
  428. dep = 'DEDU' 'ADAP' mail mblo cblo 'THET' theta 'GAMM' gamma debug ;
  429. 'FINSI' ;
  430. *
  431. * trace
  432. *
  433. orig = 'FORME' ;
  434. 'FORME' dep ;
  435. 'SI' ('EGA' ('TYPE' met) 'MCHAML') ;
  436. ciso = DEADUTIL 'QISO' mail 'METR' met mod ;
  437. cequ = DEADUTIL 'QEQU' mail 'METR' met mod ;
  438. 'SINON' ;
  439. ciso = DEADUTIL 'QISO' mail ;
  440. cequ = DEADUTIL 'QEQU' mail ;
  441. 'FINSI' ;
  442. maciso = 'MAXIMUM' ciso ; miciso = 'MINIMUM' ciso ;
  443. macequ = 'MAXIMUM' cequ ; micequ = 'MINIMUM' cequ ;
  444. 'MESSAGE' ('CHAINE' 'CISO : max. = ' maciso ' min. = ' miciso) ;
  445. 'MESSAGE' ('CHAINE' 'CEQU : max. = ' macequ ' min. = ' micequ) ;
  446. * Tests
  447. lmaiso = 'ET' lmaiso ('PROG' maciso) ;
  448. lmaequ = 'ET' lmaequ ('PROG' macequ) ;
  449. idx = '+' idx 1 ;
  450. visor='EXTRAIRE' lmaisor idx ;
  451. tiso = ('<' maciso ('*' visor 1.05)) ;
  452. 'SI' ('NON' tiso) ;
  453. cherr = 'CHAINE' '!!! Erreur, on aurait voulu max. ciso. < '
  454. visor ;
  455. 'MESSAGE' cherr ;
  456. 'FINSI' ;
  457. lok = 'ET' lok tiso ;
  458.  
  459. vequr='EXTRAIRE' lmaequr idx ;
  460. tequ = ('<' macequ ('*' vequr 1.05)) ;
  461. 'SI' ('NON' tequ) ;
  462. cherr = 'CHAINE' '!!! Erreur, on aurait voulu max. cequ. < '
  463. vequr ;
  464. 'MESSAGE' cherr ;
  465. 'FINSI' ;
  466. lok = 'ET' lok tequ ;
  467. *
  468. 'SI' graph ;
  469. tit = 'CHAINE' 'Maillage final' mes ;
  470. 'SI' interact ;
  471. 'TRACER' mail 'TITR' tit ;
  472. 'SINON' ;
  473. 'TRACER' mail 'TITR' tit 'NCLK' ;
  474. 'FINSI' ;
  475. mod = 'MODE' mail 'MECANIQUE' ;
  476. tit = 'CHAINE' 'Isotropie' mes ;
  477. 'SI' interact ;
  478. 'TRACER' ciso mod 'TITR' tit ;
  479. 'SINON' ;
  480. 'TRACER' ciso mod 'TITR' tit 'NCLK' ;
  481. 'FINSI' ;
  482. tit = 'CHAINE' 'Equidis.' mes ;
  483. 'SI' interact ;
  484. 'TRACER' cequ mod 'TITR' tit ;
  485. 'SINON' ;
  486. 'TRACER' cequ mod 'TITR' tit 'NCLK' ;
  487. 'FINSI' ;
  488. 'FINSI' ;
  489. 'FORME' orig ;
  490. 'FIN' itri ;
  491. 'FIN' idisc ;
  492. 'FINSI' ;
  493. *
  494. * Test 2 : on fait varier le maillage et theta avec des carres LINE
  495. *
  496. 'SI' vrai ;
  497. 'SAUTER' 2 'LIGNE' ;
  498. chs = 'CHAINE' '*****************************************************' ;
  499. ch1 = 'CHAINE' '* Test 2 : on fait varier le maillage, theta, gamma ' ;
  500. ch2 = 'CHAINE' '* avec des carres LINE ' ;
  501. 'MESSAGE' chs ; 'MESSAGE' ch1 ; 'MESSAGE' ch2 ; 'MESSAGE' chs ;
  502. 'SAUTER' 2 'LIGNE' ;
  503. *
  504. 'REPETER' imesh 8 ;
  505. 'REPETER' iparam nparam ;
  506. iimesh = &imesh ;
  507. theta = 'EXTRAIRE' ltheta &iparam ;
  508. gamma = 'EXTRAIRE' lgamma &iparam ;
  509. iidisc = 1 ;
  510. iitri = 2 ;
  511. gdisc = tdisc . iidisc ;
  512. 'SI' ('EGA' iidisc 1) ;
  513. nbmail2 = 8 ;
  514. 'SINON' ;
  515. nbmail2 = 4 ;
  516. 'FINSI' ;
  517. 'SI' ('EGA' iitri 1) ;
  518. ltri = VRAI ;
  519. 'SINON' ;
  520. ltri = FAUX ;
  521. 'FINSI' ;
  522. *
  523. * Maillage
  524. *
  525. mail met mod mblo cblo = CAS2D iimesh nbmail2 ltri gdisc ;
  526. 'SI' ltri ;
  527. mtri = 'CHAINE' 'triangle' ;
  528. 'SINON' ;
  529. mtri = 'CHAINE' 'carre' ;
  530. 'FINSI' ;
  531. mes = 'CHAINE' ' th=' theta ' ; gam=' gamma
  532. ' mesh=' iimesh ' ; ' mtri ' ; ' gdisc ;
  533. 'MESSAGE' mes ;
  534. 'SI' graph ;
  535. tit = 'CHAINE' 'Maillage initial' mes ;
  536. 'SI' interact ;
  537. 'TRACER' mail 'TITR' tit ;
  538. 'SINON' ;
  539. 'TRACER' mail 'TITR' tit 'NCLK' ;
  540. 'FINSI' ;
  541. 'FINSI' ;
  542. *
  543. * adaptation
  544. *
  545. 'SI' ('EGA' ('TYPE' met) 'MCHAML') ;
  546. dep = 'DEDU' 'ADAP' mail mblo cblo 'METR' met mod
  547. 'THET' theta 'GAMM' gamma debug ;
  548. 'SINON' ;
  549. dep = 'DEDU' 'ADAP' mail mblo cblo 'THET' theta 'GAMM' gamma debug ;
  550. 'FINSI' ;
  551. *
  552. * trace
  553. *
  554. orig = 'FORME' ;
  555. 'FORME' dep ;
  556. 'SI' ('EGA' ('TYPE' met) 'MCHAML') ;
  557. ciso = DEADUTIL 'QISO' mail 'METR' met mod ;
  558. cequ = DEADUTIL 'QEQU' mail 'METR' met mod ;
  559. 'SINON' ;
  560. ciso = DEADUTIL 'QISO' mail ;
  561. cequ = DEADUTIL 'QEQU' mail ;
  562. 'FINSI' ;
  563. maciso = 'MAXIMUM' ciso ; miciso = 'MINIMUM' ciso ;
  564. macequ = 'MAXIMUM' cequ ; micequ = 'MINIMUM' cequ ;
  565. 'MESSAGE' ('CHAINE' 'CISO : max. = ' maciso ' min. = ' miciso) ;
  566. 'MESSAGE' ('CHAINE' 'CEQU : max. = ' macequ ' min. = ' micequ) ;
  567. * Tests
  568. lmaiso = 'ET' lmaiso ('PROG' maciso) ;
  569. lmaequ = 'ET' lmaequ ('PROG' macequ) ;
  570. idx = '+' idx 1 ;
  571. visor='EXTRAIRE' lmaisor idx ;
  572. tiso = ('<' maciso ('*' visor 1.05)) ;
  573. 'SI' ('NON' tiso) ;
  574. cherr = 'CHAINE' '!!! Erreur, on aurait voulu max. ciso. < '
  575. visor ;
  576. 'MESSAGE' cherr ;
  577. 'FINSI' ;
  578. lok = 'ET' lok tiso ;
  579.  
  580. vequr='EXTRAIRE' lmaequr idx ;
  581. tequ = ('<' macequ ('*' vequr 1.05)) ;
  582. 'SI' ('NON' tequ) ;
  583. cherr = 'CHAINE' '!!! Erreur, on aurait voulu max. cequ. < '
  584. vequr ;
  585. 'MESSAGE' cherr ;
  586. 'FINSI' ;
  587. lok = 'ET' lok tequ ;
  588. *
  589. 'SI' graph ;
  590. tit = 'CHAINE' 'Maillage final' mes ;
  591. 'SI' interact ;
  592. 'TRACER' mail 'TITR' tit ;
  593. 'SINON' ;
  594. 'TRACER' mail 'TITR' tit 'NCLK' ;
  595. 'FINSI' ;
  596. mod = 'MODE' mail 'MECANIQUE' ;
  597. tit = 'CHAINE' 'Isotropie' mes ;
  598. 'SI' interact ;
  599. 'TRACER' ciso mod 'TITR' tit ;
  600. 'SINON' ;
  601. 'TRACER' ciso mod 'TITR' tit 'NCLK' ;
  602. 'FINSI' ;
  603. tit = 'CHAINE' 'Equidis.' mes ;
  604. 'SI' interact ;
  605. 'TRACER' cequ mod 'TITR' tit ;
  606. 'SINON' ;
  607. 'TRACER' cequ mod 'TITR' tit 'NCLK' ;
  608. 'FINSI' ;
  609. 'FINSI' ;
  610. 'FORME' orig ;
  611. 'FIN' iparam ;
  612. 'FIN' imesh ;
  613. 'FINSI' ;
  614. *
  615. * Fin du jeu de données
  616. *
  617. 'SAUTER' 2 'LIGNE' ;
  618. 'SI' lok ;
  619. 'MESSAGE' 'Tout sest bien passe' ;
  620. 'SINON' ;
  621. 'MESSAGE' 'Il y a eu des erreurs' ;
  622. 'FINSI' ;
  623. 'SAUTER' 2 'LIGNE' ;
  624. 'SI' interact ;
  625. 'OPTION' 'DONN' 5 ;
  626. 'FINSI' ;
  627. 'SI' ('NON' lok) ;
  628. 'ERREUR' 5 ;
  629. 'FINSI' ;
  630. *
  631. * End of dgibi file DEDUAD2D
  632. *
  633. 'FIN' ;
  634.  
  635.  
  636.  

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