Télécharger domaxi.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : domaxi.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ************************************************************************
  5. ************************************************************************
  6. **** Finite Volume, "Cell-Centred Formulation". ****
  7. **** 'MODE' 'AXIS' ****
  8. **** We check that 3D axis-symmetrical = 2D 'MODE' 'AXIS' ****
  9. **** Operateur 'DOMA' ****
  10. **** ****
  11. **** A. BECCANTINI, LTMF FEBRUARY 2004 ****
  12. ************************************************************************
  13. ************************************************************************
  14. *
  15. **** Compatibility check
  16. *
  17. GRAPH = FAUX ;
  18. *
  19. **** Nothing from here
  20. *
  21. 'SI' FAUX ;
  22. *
  23. **** Till here
  24. *
  25. 'FINSI' ;
  26.  
  27. *
  28. * 1) Mesh with one element
  29. *
  30. *****************************
  31. **** SEG2 *******************
  32. *****************************
  33. *
  34. 'OPTION' 'DIME' 2 'ELEM' 'TRI3' 'MODE' 'AXIS' ;
  35. *
  36. P1 = 1.0 2.0 ;
  37. P2 = 3.11 4.15 ;
  38. *
  39. MAIL = P1 'DROIT' 1 P2 ;
  40. *
  41. MODM = 'MODELISER' MAIL 'EULER' ;
  42. TABM = 'DOMA' MODM 'VF' ;
  43. QMAIL = TABM . 'QUAF' ;
  44. *
  45. CEN1 = 'POIN' 1 (TABM . 'CENTRE') ;
  46. * XCEN = 'COORDONNEE' 1 CEN1 ;
  47. * YCEN = 'COORDONNEE' 2 CEN1 ;
  48. XVOL = 'EXTRAIRE' (TABM . 'XXVOLUM') CEN1 'SCAL' ;
  49.  
  50. 'OPTION' 'DIME' 3 'ELEM' CUB8 ;
  51.  
  52. * ANGLE in degrees
  53. LISTTH = 'PROG' 20 10 5 2.5 1.25 ;
  54. LISTER = 'PROG' ;
  55. 'REPETER' BLTH ('DIME' LISTTH) ;
  56. TH = ('EXTRAIRE' LISTTH &BLTH) ;
  57. LIG1 = MAIL 'TOURNER' (-0.5 * TH)
  58. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  59. LIG2 = MAIL 'TOURNER' (0.5 * TH)
  60. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  61. MAIL2 = 'REGLER' LIG1 1 LIG2 ;
  62. MODM2 = 'MODELISER' MAIL2 'EULER' ;
  63. TABM2 = 'DOMA' MODM2 'VF' ;
  64. QMAIL2 = TABM2 . 'QUAF' ;
  65. 'SI' GRAPH ;
  66. 'TRACER' (0.0 0.0 1.0)
  67. (MAIL2 'ET' MAIL 'ET' ((TABM . 'CENTRE') 'COUL' 'ROUG')
  68. 'ET' ((TABM2 . 'CENTRE') 'COUL' 'VERT'))
  69. 'TITR' '3D vs 2Daxi' ;
  70. 'FINSI' ;
  71. CEN2 = 'POIN' 1 (TABM2 . 'CENTRE') ;
  72. VOL2 = 'EXTRAIRE' (TABM2 . 'XXVOLUM') CEN2 'SCAL' ;
  73. XVOL2 = VOL2 '/' ((TH '*' PI) '/' 180) ;
  74. ERRO = 'ABS' (XVOL2 '-' XVOL) ;
  75. ERRO = ERRO '/' XVOL ;
  76. LISTER = LISTER 'ET' ('PROG' ERRO) ;
  77. 'FIN' BLTH ;
  78. *
  79. 'SI' (ERRO > 1.0D-4) ;
  80. 'ERREUR' 'Probleme axi' ;
  81. 'FINSI' ;
  82.  
  83. 'SI' GRAPH ;
  84. EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Log10(err)'
  85. (('LOG' LISTER) '/' ('LOG' 10.)) ;
  86. 'DESSIN' EVERR 'Error on volume' ;
  87. 'FINSI' ;
  88.  
  89. *****************************
  90. **** TRI3 *******************
  91. *****************************
  92.  
  93. 'OPTION' 'DIME' 2 'ELEM' 'TRI3' 'MODE' 'AXIS' ;
  94. *
  95. P1 = 1.0 2.0 ;
  96. P2 = 3.11 4.15 ;
  97. P3 = 2.0 6.0 ;
  98. *
  99. MAIL = 'MANUEL' 'TRI3' P1 P2 P3 ;
  100. *
  101. MODM = 'MODELISER' MAIL 'EULER' ;
  102. TABM = 'DOMA' MODM 'VF' ;
  103. QMAIL = TABM . 'QUAF' ;
  104. *
  105. CEN1 = 'POIN' 1 (TABM . 'CENTRE') ;
  106. * XCEN = 'COORDONNEE' 1 CEN1 ;
  107. * YCEN = 'COORDONNEE' 2 CEN1 ;
  108. XVOL = 'EXTRAIRE' (TABM . 'XXVOLUM') CEN1 'SCAL' ;
  109.  
  110. 'OPTION' 'DIME' 3 'ELEM' CUB8 ;
  111.  
  112. * ANGLE in degrees
  113. LISTTH = 'PROG' 20 10 5 2.5 1.25 ;
  114. LISTER = 'PROG' ;
  115. LISTERS = 'PROG' ;
  116. LISTERM = 'PROG' ;
  117. 'REPETER' BLTH ('DIME' LISTTH) ;
  118. TH = ('EXTRAIRE' LISTTH &BLTH) ;
  119. SUR1 = MAIL 'TOURNER' (-0.5 * TH)
  120. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  121. SUR2 = MAIL 'TOURNER' (0.5 * TH)
  122. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  123. MAIL2 = 'VOLU' SUR1 1 SUR2 ;
  124. MODM2 = 'MODELISER' MAIL2 'EULER' ;
  125. TABM2 = 'DOMA' MODM2 'VF' ;
  126. QMAIL2 = TABM2 . 'QUAF' ;
  127. 'SI' GRAPH ;
  128. 'TRACER' (0.0 0.0 1.0)
  129. (MAIL2 'ET' MAIL 'ET' ((TABM . 'CENTRE') 'COUL' 'ROUG')
  130. 'ET' ((TABM2 . 'CENTRE') 'COUL' 'VERT'))
  131. 'TITR' '3D vs 2Daxi: centers' ;
  132. 'TRACER' (0.0 0.0 1.0)
  133. (MAIL2 'ET' MAIL 'ET' ((TABM . 'FACE') 'COUL' 'ROUG')
  134. 'ET' ((TABM2 . 'FACE') 'COUL' 'VERT'))
  135. 'TITR' '3D vs 2Daxi: faces' ;
  136. 'FINSI' ;
  137. * Test on the center position
  138. CEN2 = 'POIN' 1 (TABM2 . 'CENTRE') ;
  139. VOL2 = 'EXTRAIRE' (TABM2 . 'XXVOLUM') CEN2 'SCAL' ;
  140. XVOL2 = VOL2 '/' ((TH '*' PI) '/' 180) ;
  141. ERRO = 'ABS' (XVOL2 '-' XVOL) ;
  142. ERRO = ERRO '/' XVOL ;
  143. LISTER = LISTER 'ET' ('PROG' ERRO) ;
  144. * Test on the face position
  145. 'ELIMINATION' (TABM . 'FACE') 1.0D-1 (TABM2 . 'FACE') ;
  146. AA = 'REDU' (TABM2 . 'XXSURFAC') (TABM . 'FACE') ;
  147. AA = AA '/' ((TH '*' PI) '/' 180) ;
  148. ERROS = 'MAXIMUM' ((AA '-' (TABM . 'XXSURFAC')) '/'
  149. AA) 'ABS' ;
  150. LISTERS = LISTERS 'ET' ('PROG' ERROS) ;
  151. * Test on NORMAF
  152. AA = 'REDU' (TABM2 . 'XXNORMAF') (TABM . 'FACE') ;
  153. ERROMA = 'MAXIMUM' (AA '-' (TABM . 'XXNORMAF')) ;
  154. LISTERM = LISTERM 'ET' ('PROG' ERROMA) ;
  155. 'FIN' BLTH ;
  156. *
  157. 'SI' (ERRO > 1.0D-4) ;
  158. 'ERREUR' 'Probleme axi' ;
  159. 'FINSI' ;
  160. *
  161. 'SI' (ERROS > 1.0D-4) ;
  162. 'ERREUR' 'Probleme axi' ;
  163. 'FINSI' ;
  164.  
  165. 'SI' (ERROMA > 1.0D-4) ;
  166. 'ERREUR' 'Probleme axi' ;
  167. 'FINSI' ;
  168.  
  169. 'SI' GRAPH ;
  170. EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Log10(err)'
  171. (('LOG' LISTER) '/' ('LOG' 10.)) ;
  172. 'DESSIN' EVERR 'TITR' 'Error on volume' ;
  173. EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Log10(err)'
  174. (('LOG' LISTERS) '/' ('LOG' 10.)) ;
  175. 'DESSIN' EVERR 'TITR' 'Error on surfaces' ;
  176. EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Log10(err)'
  177. (('LOG' LISTERM) '/' ('LOG' 10.)) ;
  178. 'DESSIN' EVERR 'TITR' 'Error on normals' ;
  179. 'FINSI' ;
  180.  
  181. *****************************
  182. **** QUA4 *******************
  183. *****************************
  184.  
  185. 'OPTION' 'DIME' 2 'ELEM' 'QUA4' ;
  186. *
  187. P1 = 1.01 0.0 ;
  188. P2 = 2.01 0.0 ;
  189. P3 = 2.0 1.01 ;
  190. P4 = 1.0 1.0 ;
  191. *
  192. MAIL = 'MANUEL' 'QUA4' P1 P2 P3 P4 ;
  193. *
  194. 'OPTION' 'MODE' 'PLAN' ;
  195. MODM = 'MODELISER' MAIL 'EULER' ;
  196. TABM = 'DOMA' MODM 'VF' ;
  197. XCEN0 = 'MAXIMUM' ('COORDONNEE' 1 (TABM . 'CENTRE')) ;
  198. YCEN0 = 'MAXIMUM' ('COORDONNEE' 2 (TABM . 'CENTRE')) ;
  199. SUR2D0 = 'MAXIMUM' (TABM . 'XXVOLUM') ;
  200. *
  201. 'OPTION' 'MODE' 'AXIS' ;
  202. MODM = 'MODELISER' MAIL 'EULER' ;
  203. TABM = 'DOMA' MODM 'VF' ;
  204. QMAIL = TABM . 'QUAF' ;
  205. *
  206. XCEN2D = 'MAXIMUM' (TABM . 'XCEN2D') ;
  207. YCEN2D = 'MAXIMUM' (TABM . 'YCEN2D') ;
  208. ERRO = 'MAXIMUM' ('PROG' (XCEN2D '-' XCEN0) (YCEN2D '-' YCEN0))
  209. 'ABS' ;
  210. 'SI' (ERRO > 1.0D-8) ;
  211. 'ERREUR' 'Probleme axi' ;
  212. 'FINSI' ;
  213. SUR2D = 'MAXIMUM' (TABM . 'XXSUR2D') ;
  214. ERRO = 'ABS' (SUR2D '-' SUR2D0) ;
  215. 'SI' (ERRO > 1.0D-8) ;
  216. 'ERREUR' 'Probleme axi' ;
  217. 'FINSI' ;
  218. *
  219. CEN1 = 'POIN' 1 (TABM . 'CENTRE') ;
  220. * XCEN = 'COORDONNEE' 1 CEN1 ;
  221. * YCEN = 'COORDONNEE' 2 CEN1 ;
  222. XVOL = 'EXTRAIRE' (TABM . 'XXVOLUM') CEN1 'SCAL' ;
  223.  
  224. 'OPTION' 'DIME' 3 'ELEM' CUB8 ;
  225.  
  226. * ANGLE in degrees
  227. LISTTH = 'PROG' 20 10 5 2.5 1.25 ;
  228. LISTER = 'PROG' ;
  229. LISTERS = 'PROG' ;
  230. LISTERM = 'PROG' ;
  231. 'REPETER' BLTH ('DIME' LISTTH) ;
  232. TH = ('EXTRAIRE' LISTTH &BLTH) ;
  233. SUR1 = MAIL 'TOURNER' (-0.5 * TH)
  234. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  235. SUR2 = MAIL 'TOURNER' (0.5 * TH)
  236. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  237. MAIL2 = 'VOLU' SUR1 1 SUR2 ;
  238. MODM2 = 'MODELISER' MAIL2 'EULER' ;
  239. TABM2 = 'DOMA' MODM2 'VF' ;
  240. QMAIL2 = TABM2 . 'QUAF' ;
  241. 'SI' GRAPH ;
  242. 'TRACER' (0.0 0.0 1.0)
  243. (MAIL2 'ET' MAIL 'ET' ((TABM . 'CENTRE') 'COUL' 'ROUG')
  244. 'ET' ((TABM2 . 'CENTRE') 'COUL' 'VERT'))
  245. 'TITR' '3D vs 2Daxi' ;
  246. 'FINSI' ;
  247. * Test on center position
  248. CEN2 = 'POIN' 1 (TABM2 . 'CENTRE') ;
  249. VOL2 = 'EXTRAIRE' (TABM2 . 'XXVOLUM') CEN2 'SCAL' ;
  250. XVOL2 = VOL2 '/' ((TH '*' PI) '/' 180) ;
  251. ERRO = 'ABS' (XVOL2 '-' XVOL) ;
  252. ERRO = ERRO '/' XVOL ;
  253. LISTER = LISTER 'ET' ('PROG' ERRO) ;
  254. * Test on the face position
  255. 'ELIMINATION' (TABM . 'FACE') 1.0D-1 (TABM2 . 'FACE') ;
  256. AA = 'REDU' (TABM2 . 'XXSURFAC') (TABM . 'FACE') ;
  257. AA = AA '/' ((TH '*' PI) '/' 180) ;
  258. ERROS = 'MAXIMUM' ((AA '-' (TABM . 'XXSURFAC')) '/'
  259. AA) 'ABS' ;
  260. LISTERS = LISTERS 'ET' ('PROG' ERROS) ;
  261. * Test on NORMAF
  262. AA = 'REDU' (TABM2 . 'XXNORMAF') (TABM . 'FACE') ;
  263. ERROMA = 'MAXIMUM' (AA '-' (TABM . 'XXNORMAF')) ;
  264. LISTERM = LISTERM 'ET' ('PROG' ERROMA) ;
  265. 'FIN' BLTH ;
  266. *
  267. 'SI' (ERRO > 1.0D-4) ;
  268. 'ERREUR' 'Probleme axi' ;
  269. 'FINSI' ;
  270. *
  271. 'SI' (ERROS > 1.0D-4) ;
  272. 'ERREUR' 'Probleme axi' ;
  273. 'FINSI' ;
  274.  
  275. 'SI' (ERROMA > 1.0D-4) ;
  276. 'ERREUR' 'Probleme axi' ;
  277. 'FINSI' ;
  278.  
  279. 'SI' GRAPH ;
  280. EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Log10(err)'
  281. (('LOG' LISTER) '/' ('LOG' 10.)) ;
  282. 'DESSIN' EVERR 'TITR' 'Error on volume' ;
  283. EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Log10(err)'
  284. (('LOG' LISTERS) '/' ('LOG' 10.)) ;
  285. 'DESSIN' EVERR 'TITR' 'Error on surfaces' ;
  286. EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Err'
  287. (LISTERM) ;
  288. 'DESSIN' EVERR 'TITR' 'Error on normals' ;
  289. 'FINSI' ;
  290. *
  291. * 2) Mesh with more than one element
  292. *
  293. *****************************
  294. **** SEG2 *******************
  295. *****************************
  296. *
  297. 'OPTION' 'DIME' 2 'ELEM' 'TRI3' 'MODE' 'AXIS' ;
  298. *
  299. P1 = 1.0 2.0 ;
  300. P2 = 3.11 4.15 ;
  301. DX = 0.1 ;
  302. *
  303. MAIL = P1 'DROIT' P2 'DINI' DX 'DFIN' DX ;
  304. *
  305. MODM = 'MODELISER' MAIL 'EULER' ;
  306. TABM = 'DOMA' MODM 'VF' ;
  307. QMAIL = TABM . 'QUAF' ;
  308. *
  309. 'OPTION' 'DIME' 3 'ELEM' CUB8 ;
  310.  
  311. * ANGLE in degrees
  312. TH = 1.25 ;
  313. LIG1 = MAIL 'TOURNER' (-0.5 * TH)
  314. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  315. LIG2 = MAIL 'TOURNER' (0.5 * TH)
  316. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  317. MAIL2 = 'REGLER' LIG1 1 LIG2 ;
  318. MODM2 = 'MODELISER' MAIL2 'EULER' ;
  319. TABM2 = 'DOMA' MODM2 'VF' ;
  320. 'SI' GRAPH ;
  321. 'TRACER' (0.0 0.0 1.0)
  322. (MAIL2 'ET' MAIL 'ET' ((TABM . 'CENTRE') 'COUL' 'ROUG')
  323. 'ET' ((TABM2 . 'CENTRE') 'COUL' 'VERT'))
  324. 'TITR' '3D vs 2Daxi' ;
  325. 'FINSI' ;
  326. AA = (TABM . 'CENTRE') 'ET' (TABM2 . 'CENTRE') ;
  327. NBN1 = 'NBNO' AA ;
  328. 'ELIMINATION' (TABM . 'CENTRE') (DX '/' 10) (TABM2 . 'CENTRE') ;
  329. NBN2 = 'NBNO' AA ;
  330. 'SI' ((NBN1 '-' NBN2) 'NEG' ('NBNO' (TABM . 'CENTRE'))) ;
  331. 'ERREUR' 'Probleme axi' ;
  332. 'FINSI' ;
  333. XVOL = TABM . 'XXVOLUM' ;
  334. XVOL2 = TABM2 . 'XXVOLUM' '/' ((TH '*' PI) '/' 180) ;
  335. ERRO = 'MAXIMUM' ((XVOL '-' XVOL2) '/' XVOL) 'ABS' ;
  336. 'SI' (ERRO > 1.0D-4) ;
  337. 'ERREUR' 'Probleme axi' ;
  338. 'FINSI' ;
  339.  
  340. *****************************
  341. **** TRI3 *******************
  342. *****************************
  343. *
  344. * Axi
  345. *
  346. 'OPTION' 'DIME' 2 'ELEM' 'TRI3' 'MODE' 'AXIS' ;
  347. *
  348. P1 = 1.0 2.0 ;
  349. P2 = 3.11 4.15 ;
  350. P3 = 2.0 6.0 ;
  351. *
  352. DX = 0.1 ;
  353. *
  354. MAIL = 'SURFACE' ((P1 'DROIT' P2 'DINI' DX 'DFIN' DX)
  355. 'ET' (P2 'DROIT' P3 'DINI' DX 'DFIN' DX) 'ET'
  356. (P3 'DROIT' P1 'DINI' DX 'DFIN' DX)) 'PLAN' ;
  357. *
  358. MODM = 'MODELISER' MAIL 'EULER' ;
  359. TABM = 'DOMA' MODM 'VF' ;
  360. QMAIL = TABM . 'QUAF' ;
  361. MOD2 = 'MODELISER' (TABM . 'MAILLAGE') 'THERMIQUE' ;
  362. *
  363. *
  364. 'OPTION' 'DIME' 3 'ELEM' CUB8 ;
  365.  
  366. * ANGLE in degrees
  367. TH = 1.25 ;
  368. MAI1 = MAIL 'TOURNER' (-0.5 * TH)
  369. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  370. MAI2 = MAIL 'TOURNER' (0.5 * TH)
  371. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  372. MAIL2 = 'VOLU' MAI1 1 MAI2 ;
  373. MODM2 = 'MODELISER' MAIL2 'EULER' ;
  374. TABM2 = 'DOMA' MODM2 'VF' ;
  375. 'SI' GRAPH ;
  376. 'TRACER' (0.0 0.0 1.0)
  377. (MAIL2 'ET' MAIL 'ET' ((TABM . 'CENTRE') 'COUL' 'ROUG')
  378. 'ET' ((TABM2 . 'CENTRE') 'COUL' 'VERT'))
  379. 'TITR' '3D vs 2Daxi' ;
  380. 'FINSI' ;
  381. AA = (TABM . 'CENTRE') 'ET' (TABM2 . 'CENTRE') ;
  382. NBN1 = 'NBNO' AA ;
  383. 'ELIMINATION' (TABM . 'CENTRE') (DX '/' 10) (TABM2 . 'CENTRE') ;
  384. NBN2 = 'NBNO' AA ;
  385. 'SI' ((NBN1 '-' NBN2) 'NEG' ('NBNO' (TABM . 'CENTRE'))) ;
  386. 'ERREUR' 'Probleme axi' ;
  387. 'FINSI' ;
  388. XVOL = TABM . 'XXVOLUM' ;
  389. XVOL2 = TABM2 . 'XXVOLUM' '/' ((TH '*' PI) '/' 180) ;
  390. ERRO = 'MAXIMUM' ((XVOL '-' XVOL2) '/' XVOL) 'ABS' ;
  391. 'SI' (ERRO > 1.0D-4) ;
  392. 'ERREUR' 'Probleme axi' ;
  393. 'FINSI' ;
  394. *
  395. **** Test of XXSUR2D
  396. * Last test to do
  397. * After that, the support of centres is deplaced
  398. *
  399. 'DEPLACER' 'TOUR' (TABM . 'CENTRE') (0.5 * TH)
  400. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  401. 'ELIMINATION' (TABM2 . 'FACE') (DX '/' 10) (TABM . 'CENTRE') ;
  402. aa = 'REDU' (TABM2 . 'XXSURFAC') (TABM . 'CENTRE') ;
  403. ERRO = 'MAXIMUM' (aa '-' (TABM . 'XXSUR2D')) ;
  404. 'SI' (ERRO > 1.0D-8) ;
  405. 'ERREUR' 'Probleme axi' ;
  406. 'FINSI' ;
  407.  
  408. *****************************
  409. **** QUA4 *******************
  410. *****************************
  411. *
  412. * Axi
  413. *
  414. 'OPTION' 'DIME' 2 'ELEM' 'QUA4' 'MODE' 'AXIS' ;
  415. *
  416. P1 = 1.0 0.0 ;
  417. P2 = 2.0 0.0 ;
  418. P3 = 2.0 1.0 ;
  419. P4 = 1.0 1.0 ;
  420. *
  421. DX = 0.1 ;
  422. *
  423. MAIL = 'SURFACE' ((P1 'DROIT' P2 'DINI' DX 'DFIN' DX)
  424. 'ET' (P2 'DROIT' P3 'DINI' DX 'DFIN' DX) 'ET'
  425. (P3 'DROIT' P4 'DINI' DX 'DFIN' DX) 'ET'
  426. (P4 'DROIT' P1 'DINI' DX 'DFIN' DX)) 'PLAN' ;
  427. *
  428. MODM = 'MODELISER' MAIL 'EULER' ;
  429. TABM = 'DOMA' MODM 'VF' ;
  430. QMAIL = TABM . 'QUAF' ;
  431. MOD2 = 'MODELISER' (TABM . 'MAILLAGE') 'THERMIQUE' ;
  432. *
  433. *
  434. 'OPTION' 'DIME' 3 'ELEM' CUB8 ;
  435.  
  436. * ANGLE in degrees
  437. TH = 1.25 ;
  438. MAI1 = MAIL 'TOURNER' (-0.5 * TH)
  439. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  440. MAI2 = MAIL 'TOURNER' (0.5 * TH)
  441. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  442. MAIL2 = 'VOLU' MAI1 1 MAI2 ;
  443. MODM2 = 'MODELISER' MAIL2 'EULER' ;
  444. TABM2 = 'DOMA' MODM2 'VF' ;
  445. 'SI' GRAPH ;
  446. 'TRACER' (0.0 0.0 1.0)
  447. (MAIL2 'ET' MAIL 'ET' ((TABM . 'CENTRE') 'COUL' 'ROUG')
  448. 'ET' ((TABM2 . 'CENTRE') 'COUL' 'VERT'))
  449. 'TITR' '3D vs 2Daxi' ;
  450. 'FINSI' ;
  451. AA = (TABM . 'CENTRE') 'ET' (TABM2 . 'CENTRE') ;
  452. NBN1 = 'NBNO' AA ;
  453. 'ELIMINATION' (TABM . 'CENTRE') (DX '/' 10) (TABM2 . 'CENTRE') ;
  454. NBN2 = 'NBNO' AA ;
  455. 'SI' ((NBN1 '-' NBN2) 'NEG' ('NBNO' (TABM . 'CENTRE'))) ;
  456. 'ERREUR' 'Probleme axi' ;
  457. 'FINSI' ;
  458. XVOL = TABM . 'XXVOLUM' ;
  459. XVOL2 = TABM2 . 'XXVOLUM' '/' ((TH '*' PI) '/' 180) ;
  460. ERRO = 'MAXIMUM' ((XVOL '-' XVOL2) '/' XVOL) 'ABS' ;
  461. 'SI' (ERRO > 1.0D-4) ;
  462. 'ERREUR' 'Probleme axi' ;
  463. 'FINSI' ;
  464. *
  465. **** Test of XXSUR2D
  466. * Last test to do
  467. * After that, the support of centres is deplaced
  468. *
  469. 'DEPLACER' 'TOUR' (TABM . 'CENTRE') (0.5 * TH)
  470. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  471. 'ELIMINATION' (TABM2 . 'FACE') (DX '/' 10) (TABM . 'CENTRE') ;
  472. aa = 'REDU' (TABM2 . 'XXSURFAC') (TABM . 'CENTRE') ;
  473. ERRO = 'MAXIMUM' (aa '-' (TABM . 'XXSUR2D')) ;
  474. 'SI' (ERRO > 1.0D-8) ;
  475. 'ERREUR' 'Probleme axi' ;
  476. 'FINSI' ;
  477.  
  478. *****************************
  479. **** QUA4 and TRI3 **********
  480. *****************************
  481. *
  482. * Axi
  483. *
  484. 'OPTION' 'DIME' 2 'ELEM' 'QUA4' 'MODE' 'AXIS' ;
  485. *
  486. P1 = 1.0 1.0 ;
  487. P2 = 2.5 0.0 ;
  488. P3 = 2.0 1.0 ;
  489. P4 = 1.0 2.0 ;
  490. *
  491. DX = 0.1 ;
  492. *
  493. MAIL = 'SURFACE' ((P1 'DROIT' P2 'DINI' DX 'DFIN' DX)
  494. 'ET' (P2 'DROIT' P3 'DINI' DX 'DFIN' DX) 'ET'
  495. (P3 'DROIT' P4 'DINI' DX 'DFIN' DX) 'ET'
  496. (P4 'DROIT' P1 'DINI' DX 'DFIN' DX)) 'PLAN' ;
  497. AA = MAIL 'ELEM' 'TYPE' ;
  498. 'SI' (('DIME' AA) 'NEG' 2) ;
  499. 'ERREUR' 21 ;
  500. 'FINSI' ;
  501. *
  502. MODM = 'MODELISER' MAIL 'EULER' ;
  503. TABM = 'DOMA' MODM 'VF' ;
  504. QMAIL = TABM . 'QUAF' ;
  505. MOD2 = 'MODELISER' (TABM . 'MAILLAGE') 'THERMIQUE' ;
  506. *
  507. * FACE, FACEL and FACEP has the same order
  508. *
  509. NN = 'NBEL' (TABM . 'FACEL') ;
  510. 'REPETER' BL1 NN ;
  511. AA = (TABM . 'FACEL') 'ELEM' &BL1 ;
  512. BB = 'CHANGER' AA 'POI1' ;
  513. PF1 = 'POIN' 2 BB ;
  514. PF2 = 'POIN' 1 ((TABM . 'FACE') 'ELEM' &BL1) ;
  515. AA = (TABM . 'FACEP') 'ELEM' &BL1 ;
  516. BB = 'CHANGER' AA 'POI1' ;
  517. PF3 = 'POIN' 3 BB ;
  518. 'SI' (PF1 'NEG' PF2) ;
  519. 'ERREUR' 'Probleme axi' ;
  520. 'FINSI' ;
  521. 'SI' (PF3 'NEG' PF2) ;
  522. 'ERREUR' 'Probleme axi' ;
  523. 'FINSI' ;
  524. 'FIN' BL1 ;
  525. *
  526. * SOMMET = 'CHANGER' (TABM . 'MAILLAGE') 'POI1' ;
  527. *
  528. SOMMET = 'CHANGER' (TABM . 'MAILLAGE') 'POI1' ;
  529. AA = 'DIFF' SOMMET (TABM . 'SOMMET') ;
  530. NN = 'NBEL' AA ;
  531. 'SI' (NN 'NEG' 0) ;
  532. 'ERREUR' 'Probleme axi' ;
  533. 'FINSI' ;
  534. *
  535. **** Test of XXDIEMIN
  536. *
  537. AA = 'ELEM' (TABM . 'ELTFA') 'TYPE' ;
  538. AAT = ((TABM . 'ELTFA') 'ELEM' ('EXTRAIRE' AA 1)) ;
  539. 'REPETER' BLNEL ('NBEL' AAT) ;
  540. NEL = &BLNEL ;
  541. AA = 'ELEM' AAT NEL ;
  542. CC = 'POIN' NEL (TABM . 'CENTRE') ;
  543. 'SI' GRAPH ;
  544. 'TRACER' (AA 'ET' CC) 'TITR' 'Test on XXDIEMIN' ;
  545. 'FINSI' ;
  546. AA = 'CHANGER' AA 'POI1' ;
  547. XC = 'COORDONNEE' 1 CC ;
  548. YC = 'COORDONNEE' 2 CC ;
  549. USDIE = 0.0 ;
  550. 'REPETER' BL1 ('NBNO' AA) ;
  551. PP = 'POIN' &BL1 AA ;
  552. XP = 'COORDONNEE' 1 PP ;
  553. YP = 'COORDONNEE' 2 PP ;
  554. NORX = 'EXTRAIRE' (TABM . 'XXNORMAF') PP 'UX' ;
  555. NORY = 'EXTRAIRE' (TABM . 'XXNORMAF') PP 'UY' ;
  556. DIE = ((XP '-' XC) '*' NORX) '+' ((YP '-' YC) '*' NORY) ;
  557. DIE = 'ABS' DIE ;
  558. USDIE = 'MAXIMUM' ('PROG' USDIE (1. '/' DIE)) ;
  559. 'FIN' BL1 ;
  560. DIEM = 2.0 '/' USDIE ;
  561. ERRO = 'ABS' (DIEM '-' ('EXTRAIRE' (TABM . 'XXDIEMIN') CC 'SCAL')) ;
  562. ERRO = ERRO '/' DIEM ;
  563. *
  564. 'SI' (ERRO > 1.0D-6) ;
  565. 'ERREUR' 'Probleme axi' ;
  566. 'FINSI' ;
  567. 'FIN' BLNEL ;
  568. *
  569. 'OPTION' 'DIME' 3 'ELEM' CUB8 ;
  570.  
  571. * ANGLE in degrees
  572. TH = 1.25 ;
  573. MAI1 = MAIL 'TOURNER' (-0.5 * TH)
  574. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  575. MAI2 = MAIL 'TOURNER' (0.5 * TH)
  576. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  577. MAIL2 = 'VOLU' MAI1 1 MAI2 ;
  578. MODM2 = 'MODELISER' MAIL2 'EULER' ;
  579. TABM2 = 'DOMA' MODM2 'VF' ;
  580. 'SI' GRAPH ;
  581. 'TRACER' (0.0 0.0 1.0)
  582. (MAIL2 'ET' MAIL 'ET' ((TABM . 'CENTRE') 'COUL' 'ROUG')
  583. 'ET' ((TABM2 . 'CENTRE') 'COUL' 'VERT'))
  584. 'TITR' '3D vs 2Daxi' ;
  585. 'FINSI' ;
  586. * Center of gravity has the same positions
  587. AA = (TABM . 'CENTRE') 'ET' (TABM2 . 'CENTRE') ;
  588. NBN1 = 'NBNO' AA ;
  589. 'ELIMINATION' (TABM . 'CENTRE') (DX '/' 10) (TABM2 . 'CENTRE') ;
  590. NBN2 = 'NBNO' AA ;
  591. 'SI' ((NBN1 '-' NBN2) 'NEG' ('NBNO' (TABM . 'CENTRE'))) ;
  592. 'ERREUR' 'Probleme axi' ;
  593. 'FINSI' ;
  594. XVOL = TABM . 'XXVOLUM' ;
  595. XVOL2 = TABM2 . 'XXVOLUM' '/' ((TH '*' PI) '/' 180) ;
  596. ERRO = 'MAXIMUM' ((XVOL '-' XVOL2) '/' XVOL) 'ABS' ;
  597. 'SI' (ERRO > 1.0D-4) ;
  598. 'ERREUR' 'Probleme axi' ;
  599. 'FINSI' ;
  600. *
  601. * Test on XXSURFAC
  602. *
  603. 'ELIMINATION' (TABM . 'FACE') (DX '/' 10.) (TABM2 . 'FACE') ;
  604. AA = 'REDU' (TABM2 . 'XXSURFAC') (TABM . 'FACE') ;
  605. AA = AA '/' ((TH '*' PI) '/' 180) ;
  606. ERROS = 'MAXIMUM' ((AA '-' (TABM . 'XXSURFAC')) '/'
  607. AA) 'ABS' ;
  608. 'SI' (ERROS > 1.0D-4) ;
  609. 'ERREUR' 'Probleme axi' ;
  610. 'FINSI' ;
  611. *
  612. * Test on XXNORMAF and MATROT
  613. *
  614. AA = 'EXCO' (TABM . 'MATROT') ('MOTS' 'MX' 'MY') ('MOTS' 'UX' 'UY') ;
  615. ERRO = 'MAXIMUM' (AA '-' (TABM . 'XXNORMAF')) 'ABS' ;
  616. 'SI' (ERRO > 1.0D-4) ;
  617. 'ERREUR' 'Probleme axi' ;
  618. 'FINSI' ;
  619. AA = 'PSCAL' (TABM . 'MATROT') (TABM . 'MATROT')
  620. ('MOTS' 'MX' 'MY') ('MOTS' 'RX' 'RY') ;
  621. ERRO = 'MAXIMUM' AA 'ABS' ;
  622. 'SI' (ERRO > 1.0D-6) ;
  623. 'ERREUR' 'Probleme axi' ;
  624. 'FINSI' ;
  625. AA = 'PSCAL' (TABM . 'MATROT') (TABM . 'MATROT')
  626. ('MOTS' 'MX' 'MY') ('MOTS' 'MX' 'MY') ;
  627. ERRO = 'MAXIMUM' (AA '-' 1.0) 'ABS' ;
  628. 'SI' (ERRO > 1.0D-6) ;
  629. 'ERREUR' 'Probleme axi' ;
  630. 'FINSI' ;
  631. AA = 'PSCAL' (TABM . 'MATROT') (TABM . 'MATROT')
  632. ('MOTS' 'RX' 'RY') ('MOTS' 'RX' 'RY') ;
  633. ERRO = 'MAXIMUM' (AA '-' 1.0) 'ABS' ;
  634. 'SI' (ERRO > 1.0D-6) ;
  635. 'ERREUR' 'Probleme axi' ;
  636. 'FINSI' ;
  637. *
  638. **** Test graphique
  639. *
  640. 'SI' FAUX ;
  641. DIM = 'VALEUR' 'DIME' ;
  642. 'OPTION' 'DIME' 2 ;
  643. 'REPETER' BL1 ('NBEL' TABM . 'FACEL') ;
  644. AA = ((TABM . 'FACEL') 'ELEM' &BL1) 'COULEUR' 'ROUG' ;
  645. BB = ((TABM . 'FACEP') 'ELEM' &BL1) 'COULEUR' 'VERT' ;
  646. 'TRACER' ((TABM . 'MAILLAGE') 'ET' AA) ;
  647. 'LISTE' AA ;
  648. 'TRACER' ((TABM . 'MAILLAGE') 'ET' BB) ;
  649. 'LISTE' BB ;
  650. 'FIN' BL1 ;
  651. 'OPTION' 'DIME' DIM ;
  652. 'FINSI' ;
  653. *
  654. **** Test of XXSUR2D
  655. * Last test to do
  656. * After that, the support of centres is deplaced
  657. *
  658. 'DEPLACER' 'TOUR' (TABM . 'CENTRE') (0.5 * TH)
  659. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  660. 'ELIMINATION' (TABM2 . 'FACE') (DX '/' 10) (TABM . 'CENTRE') ;
  661. aa = 'REDU' (TABM2 . 'XXSURFAC') (TABM . 'CENTRE') ;
  662. ERRO = 'MAXIMUM' (aa '-' (TABM . 'XXSUR2D')) ;
  663. 'SI' (ERRO > 1.0D-8) ;
  664. 'ERREUR' 'Probleme axi' ;
  665. 'FINSI' ;
  666.  
  667. 'FIN' ;
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  

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