Télécharger t_HISTOG.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : t_HISTOG.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. *---------------------------------------------------------------------*
  5. * Cas-test de l'operateur 'HIST' : *
  6. * *
  7. * Description : HIST renvoie une EVOLUTIOn de type HISTogramme repre- *
  8. * sentant la densite de distribution des valeurs d'un *
  9. * MCHALM sur un maillage. *
  10. * *
  11. * Synthaxe : HIST1 = HIST (COUL) MOD1 CHAM1 (ABS) PROG1 |(MOT1) | ; *
  12. * |(LMOT1)| *
  13. * *
  14. * Options : Pas defaut, ce cas-test verifie le fonctionnement de *
  15. * l'operateur sur 2 cas (2D et 3D). En options : *
  16. * - l'indicateur logique IDESS1 permet d'activer les traces ; *
  17. * - l'indicateur logique ITEST1 permet d'activer le test du trai- *
  18. * tement des erreurs ; *
  19. * - l'indicateur logique ILIST1 permet d'afficher la valeur cou- *
  20. * rante de l'erreur ; *
  21. * - l'indicateur logique IPETI1 permet d'effectuer une serie de *
  22. * test elementaires de fonctionnement de l'operateur. *
  23. * *
  24. *---------------------------------------------------------------------*
  25. * *
  26. * IDESS1 = VRAI => trace des EVOLUTIOns : *
  27. IDESS1 = FAUX ;
  28. * ITEST1 = VRAI => test messages d'erreur : *
  29. ITEST1 = FAUX ;
  30. * ILIST1 = VRAI => on liste la valeur de l'erreur : *
  31. ILIST1 = FAUX ;
  32. * IPETI1 = VRAI => test elementaires : *
  33. IPETI1 = FAUX ;
  34. * *
  35. 'OPTI' 'ECHO' 0 ;
  36. * *
  37. * Tables pour trace dessins : *
  38. TDESS1 = 'TABL' ;
  39. TDESS1 . 1 = 'MOT' 'MARQ CARR PLEI NOLI' ;
  40. TDESS2 = 'TABL' ;
  41. TDESS2 . 1 = 'MOT' 'MARQ CARR PLEI NOLI' ;
  42. TDESS2 . 2 = 'MOT' 'MARQ LOSA PLEI NOLI' ;
  43. * *
  44. ERR1 = 0. ;
  45. * *
  46. *---------------------- TEST TYPAGE EVOLUTIONS -----------------------*
  47. * *
  48. EV1 = 'EVOL' 'VERT' 'MANU' 'SCAL' ('PROG' 0. 4.) ('PROG' 1. 2.) ;
  49. EV2 = 'EVOL' 'ROUG' 'MANU' 'TYPE' 'HIST' 'TEMP' ('PROG' 0. 1. 2.) ('PROG' 0. 1. 0.) ;
  50. EV3 = 'EVOL' 'JAUN' 'MANU' 'TYPE' 'REEL' 'SCAL' ('PROG' 0. 2. 4.) ('PROG' 3. 3.5 4.) ;
  51. EV4 = 'EVOL' 'BLEU' 'MANU' 'TYPE' 'HIST' ('PROG' 0. PAS 0.5 2.) ('PROG' 1. 2. 4. 0.5 0.) ;
  52. * *
  53. EV0 = EV1 + EV3 ;
  54. EV0REF = 'EVOL' 'MANU' ('PROG' 0. 4.) ('PROG' 4. 6.) ;
  55. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV0 - EV0REF) 'ORDO')) ;
  56. 'SI' ILIST1 ;
  57. 'LIST' ERR1 ;
  58. 'FINS' ;
  59. * *
  60. EV0 = (EV1 'ET' EV4) + (EV2 'ET' EV3) ;
  61. EV0REF = EV0REF 'ET' (EV2 + EV4) ;
  62. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV0 - EV0REF) 'ORDO')) ;
  63. 'SI' ILIST1 ;
  64. 'LIST' ERR1 ;
  65. 'FINS' ;
  66. * *
  67. 'SI' IDESS1 ;
  68. 'TITR' 'Test dessin d une courbe et de 2 histogrammes' ;
  69. 'DESS' (EV0 'ET' EV2) ;
  70. 'FINS' ;
  71. 'SI' ITEST1 ;
  72. 'OPTI' 'ERRE' 'IGNO' ;
  73. * Addition d'une courbe et d'un histogramme ? *
  74. EV0 = EV1 + EV2 ;
  75. * Addition de 2 courbes avec une courbe et un histogramme ? *
  76. EV0 = (EV1 'ET' EV3) + (EV2 'ET' EV1) ;
  77. * Si pas meme nombre de courbe ? *
  78. EV5 = 'EVOL' 'VERT' 'MANU' ('PROG' 0. 4.) ('PROG' 1. 2.) ;
  79. EV0 = (EV1 'ET' EV5) + EV1 ;
  80. * Test addition 2 EVOL dont une de Type pas autorise pour l'addition ?*
  81. EV5 = 'EVOL' 'MANU' 'TYPE' 'TOTO' ('PROG' 0. 4.) ('PROG' 1. 2.) ;
  82. EV0 = EV1 + EV5 ;
  83. 'OPTI' 'ERRE' 'NORM' ;
  84. 'FINS' ;
  85. * *
  86. *---------------------------------------------------------------------*
  87. * *
  88. * TESTS OPERATEUR "HIST" *
  89. * *
  90. *---------------------------------------------------------------------*
  91. * *
  92. 'SI' IPETI1 ;
  93. * *
  94. *---------------------------------------------------------------------*
  95. * *
  96. * <<~PETITS TESTS~>> *
  97. * *
  98. *---------------------------------------------------------------------*
  99. * *
  100. *-------------------------------- 1D ---------------------------------*
  101. * *
  102. 'OPTI' 'DIME' 1 'ELEM' 'SEG2' ;
  103. * *
  104. L1 = ('POIN' 0.) 'DROI' 2 ('POIN' 2.) ;
  105. MOD1 = 'MODE' L1 'MECANIQUE' ;
  106. * *
  107. * Champ a 1 composante : *
  108. CH1 = 'MANU' 'CHML' MOD1 'SCAL' -1.0 'STRESSES' ;
  109. * *
  110. * Test fonctionnement : *
  111. EV1 = 'HIST' MOD1 CH1 ('PROG' -2. PAS 0.25 0.) ;
  112. EV1REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' 'SCAL' ('PROG' -2. PAS 0.25 0.) ('PROG' 4 * 0. 4. 4 * 0.) ;
  113. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
  114. 'SI' ILIST1 ;
  115. 'LIST' ERR1 ;
  116. 'FINS' ;
  117. 'SI' IDESS1 ;
  118. 'TITR' 'test valeurs negatives' ;
  119. 'DESS' TDESS1 (EV1REF 'ET' EV1) ;
  120. 'FINS' ;
  121. * *
  122. * Test affectation couleur : *
  123. CH1 = 'MANU' 'CHML' MOD1 'SCAL' -0.5 'STRESSES' ;
  124. EV1 = 'HIST' 'ROUG' MOD1 CH1 ('PROG' -1. PAS 0.25 0.) ;
  125. EV1REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' 'SCAL' ('PROG' -1. PAS 0.25 -0.25) ('PROG' 2 * 0. 4. 0.) ;
  126. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
  127. 'SI' ILIST1 ;
  128. 'LIST' ERR1 ;
  129. 'FINS' ;
  130. * Ca marche partout ?
  131. EV1 = 'HIST' MOD1 'ROUG' CH1 ('PROG' -1. PAS 0.25 0.) ;
  132. EV1 = 'HIST' MOD1 CH1 'ROUG' ('PROG' -1. PAS 0.25 0.) ;
  133. EV1 = 'HIST' MOD1 CH1 ('PROG' -1. PAS 0.25 0.) 'ROUG' ;
  134. * *
  135. 'SI' IDESS1 ;
  136. 'TITR' 'Affectation couleur rouge a l"histogramme' ;
  137. 'DESS' TDESS1 (EV1REF 'ET' EV1) ;
  138. 'FINS' ;
  139. * *
  140. * Test option 'ABS' : *
  141. EV1 = 'HIST' MOD1 CH1 'ABS' ('PROG' 0. PAS 0.25 1.) ;
  142. EV1REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' 'SCAL' ('PROG' 0. PAS 0.25 1.) ('PROG' 2 * 0. 4. 2 * 0.) ;
  143. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
  144. 'SI' ILIST1 ;
  145. 'LIST' ERR1 ;
  146. 'FINS' ;
  147. * Ca marche avec couleur ?
  148. EV1 = 'HIST' 'VERT' MOD1 CH1 'ABS' ('PROG' 0. PAS 0.25 1.) ;
  149. * *
  150. 'SI' IDESS1 ;
  151. 'TITR' 'Test mot-cle ABS + affectation couleur VERTE' ;
  152. 'DESS' TDESS1 (EV1REF 'ET' EV1) ;
  153. 'FINS' ;
  154. * *
  155. * Test donnee nom de composante ?
  156. EV1 = 'HIST' MOD1 CH1 ('PROG' -1. PAS 0.25 0.) 'SCAL' ;
  157. EV1REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' 'SCAL' ('PROG' -1. PAS 0.25 -0.25) ('PROG' 2 * 0. 4. 0.) ;
  158. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
  159. 'SI' ILIST1 ;
  160. 'LIST' ERR1 ;
  161. 'FINS' ;
  162. * Avec un listmots ?
  163. EV1 = 'HIST' MOD1 CH1 ('PROG' -1. PAS 0.25 0.) ('MOTS' 'SCAL') ;
  164. EV1REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' 'SCAL' ('PROG' -1. PAS 0.25 -0.25) ('PROG' 2 * 0. 4. 0.) ;
  165. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
  166. 'SI' ILIST1 ;
  167. 'LIST' ERR1 ;
  168. 'FINS' ;
  169. * Si plusieurs Mots ?
  170. EV1 = 'HIST' MOD1 CH1 ('PROG' -1. PAS 0.25 0.) ('MOTS' 'SCAL' 'YOUN') ;
  171. EV1REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' 'SCAL' ('PROG' -1. PAS 0.25 -0.25) ('PROG' 2 * 0. 4. 0.) ;
  172. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
  173. 'SI' ILIST1 ;
  174. 'LIST' ERR1 ;
  175. 'FINS' ;
  176. * *
  177. * Avec couleur ?
  178. EV1 = 'HIST' 'ORAN' MOD1 CH1 ('PROG' -1. PAS 0.25 0.) 'SCAL' ;
  179. EV1REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' 'SCAL' ('PROG' -1. PAS 0.25 -0.25) ('PROG' 2 * 0. 4. 0.) ;
  180. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
  181. 'SI' ILIST1 ;
  182. 'LIST' ERR1 ;
  183. 'FINS' ;
  184. * Et Mot-cle ABS ?
  185. EV1 = 'HIST' MOD1 CH1 'ABS' ('PROG' 0. PAS 0.25 1.) 'SCAL' ;
  186. EV1REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' 'SCAL' ('PROG' 0. PAS 0.25 1.) ('PROG' 2 * 0. 4. 2 * 0.) ;
  187. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
  188. 'SI' ILIST1 ;
  189. 'LIST' ERR1 ;
  190. 'FINS' ;
  191. * Toutes options MOT ?
  192. EV1 = 'HIST' 'ORAN' MOD1 CH1 'ABS' ('PROG' 0. PAS 0.25 1.) 'SCAL' ;
  193. EV1REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' 'SCAL' ('PROG' 0. PAS 0.25 1.) ('PROG' 2 * 0. 4. 2 * 0.) ;
  194. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
  195. 'SI' ILIST1 ;
  196. 'LIST' ERR1 ;
  197. 'FINS' ;
  198. * Toutes options + LISTMOTS ?
  199. EV1 = 'HIST' 'ORAN' MOD1 CH1 'ABS' ('PROG' 0. PAS 0.25 1.) ('MOTS' 'SCAL' 'NU') ;
  200. EV1REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' 'SCAL' ('PROG' 0. PAS 0.25 1.) ('PROG' 2 * 0. 4. 2 * 0.) ;
  201. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
  202. 'SI' ILIST1 ;
  203. 'LIST' ERR1 ;
  204. 'FINS' ;
  205. * *
  206. 'SI' IDESS1 ;
  207. 'TITR' 'Test donnee nom composante + couleur ORANGE + mot-cle ABS' ;
  208. 'DESS' TDESS1 (EV1REF 'ET' EV1) ;
  209. 'FINS' ;
  210. * *
  211. * Tests Hachage : *
  212. CH1 = 'MANU' 'CHML' MOD1 'SCAL' 0.5 'RIGIDITE' ;
  213. EV1 = 'HIST' 'ROUG' MOD1 CH1 ('PROG' 0. 0.3 0.5 0.52 0.67 0.93) ;
  214. EV1REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' 'SCAL' ('PROG' 0. 0.3 0.5 0.52 0.67 0.93) ('PROG' 0. 0. 50. 3 * 0.) ;
  215. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
  216. 'SI' ILIST1 ;
  217. 'LIST' ERR1 ;
  218. 'FINS' ;
  219. * *
  220. CH1 = 'MANU' 'CHML' MOD1 'SCAL' -0.5 'RIGIDITE' ;
  221. EV1 = 'HIST' 'ROUG' MOD1 CH1 'ABS' ('PROG' 0. 0.3 0.5 0.52 0.67 0.93) ;
  222. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
  223. 'SI' ILIST1 ;
  224. 'LIST' ERR1 ;
  225. 'FINS' ;
  226. * *
  227. 'SI' IDESS1 ;
  228. 'TITR' 'Test Hachage' ;
  229. 'DESS' TDESS1 (EV1REF 'ET' EV1) ;
  230. 'FINS' ;
  231.  
  232. CH1 = 'MANU' 'CHML' MOD1 'SCAL' -0.5 'RIGIDITE' ;
  233. EV1 = 'HIST' 'ROUG' MOD1 CH1 ('PROG' -1.1 -0.67 -0.52 -0.5 0.22) ;
  234. EV1REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' 'SCAL' ('PROG' -1.1 -0.67 -0.52 -0.5 0.22) ('PROG' 3 * 0. (1. / 0.72) 0.) ;
  235. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
  236. 'SI' ILIST1 ;
  237. 'LIST' ERR1 ;
  238. 'FINS' ;
  239. * *
  240. 'SI' IDESS1 ;
  241. 'TITR' 'Test Hachage' ;
  242. 'DESS' TDESS1 (EV1REF 'ET' EV1) ;
  243. 'FINS' ;
  244. * *
  245. *-------------------------------- 2D ---------------------------------*
  246. * *
  247. 'OPTI' 'DIME' 2 'ELEM' 'TRI3' ;
  248. * *
  249. * Maillage : *
  250. P0 = 0. 0. ;
  251. P1 = 1. 0. ;
  252. P2 = 0. 1. ;
  253. P3 = 1. 1. ;
  254. * *
  255. *---------------- Test sur un champ a une composante -----------------*
  256. * *
  257. S1 = 'MANU' 'TRI3' P0 P1 P2 ;
  258. MOD1 = 'MODE' S1 'MECANIQUE' ;
  259. * *
  260. * Par defaut, definir aux rigidites car pas d'appel a CHASUP : *
  261. CHE1 = 'MANU' 'CHML' MOD1 'SCAL' 1. 'RIGIDITE' ;
  262. EV1 = 'HIST' 'ROUG' MOD1 CHE1 ('PROG' 0.9 PAS 0.02 1.1) ;
  263. EVREF1 = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' ('PROG' 0.9 PAS 0.02 1.08) (('PROG' 5 * 0.)'ET' ('PROG' 50.0) 'ET' ('PROG' 4 * 0.)) ;
  264. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EVREF1 - EV1) 'ORDO')) ;
  265. 'SI' ILIST1 ;
  266. 'LIST' ERR1 ;
  267. 'FINS' ;
  268. * *
  269. * Aux stresses ?
  270. CHE1 = 'MANU' 'CHML' MOD1 'SCAL' 1. 'STRESSES' ;
  271. EV2 = 'HIST' 'ORAN' MOD1 CHE1 ('PROG' 0.9 PAS 0.02 1.1) 'SCAL' ;
  272. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EVREF1 - EV2) 'ORDO')) ;
  273. 'SI' ILIST1 ;
  274. 'LIST' ERR1 ;
  275. 'FINS' ;
  276. * *
  277. * Au centre de gravite ?
  278. CHE1 = 'MANU' 'CHML' MOD1 'SCAL' 1. 'GRAVITE' ;
  279. EV3 = 'HIST' 'VERT' MOD1 CHE1 ('PROG' 0.9 PAS 0.02 1.1) 'SCAL' ;
  280. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EVREF1 - EV3) 'ORDO')) ;
  281. 'SI' ILIST1 ;
  282. 'LIST' ERR1 ;
  283. 'FINS' ;
  284. * *
  285. * Aux noeuds ?
  286. CHE1 = 'MANU' 'CHML' MOD1 'SCAL' 1. 'NOEUD' ;
  287. EV4 = 'HIST' 'BLEU' MOD1 CHE1 ('PROG' 0.9 PAS 0.02 1.1) ;
  288. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EVREF1 - EV4) 'ORDO')) ;
  289. 'SI' ILIST1 ;
  290. 'LIST' ERR1 ;
  291. 'FINS' ;
  292. * *
  293. CHE1 = 'MANU' 'CHML' MOD1 'SCAL' 1. 'MASSE' ;
  294. EV5 = 'HIST' 'JAUN' MOD1 CHE1 ('PROG' 0.9 PAS 0.02 1.1) ;
  295. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EVREF1 - EV5) 'ORDO')) ;
  296. 'SI' ILIST1 ;
  297. 'LIST' ERR1 ;
  298. 'FINS' ;
  299. * *
  300. 'SI' IDESS1 ;
  301. 'TITR' 'Champ avec 1 composante : aux points supports des RIGIDITEs' ;
  302. 'DESS' TDESS1 (EVREF1 'ET' EV1) 'XBOR' 0.88 1.12 'YBOR' -5.0 55. ;
  303. 'TITR' 'Champ avec 1 composante : aux points supports des STRESSES' ;
  304. 'DESS' TDESS1 (EVREF1 'ET' EV2) 'XBOR' 0.88 1.12 'YBOR' -5.0 55. ;
  305. 'TITR' 'Champ avec 1 composante : au centre de GRAVITE' ;
  306. 'DESS' TDESS1 (EVREF1 'ET' EV3) 'XBOR' 0.88 1.12 'YBOR' -5.0 55. ;
  307. 'TITR' 'Champ avec 1 composante : aux NOEUDs' ;
  308. 'DESS' TDESS1 (EVREF1 'ET' EV4) 'XBOR' 0.88 1.12 'YBOR' -5.0 55. ;
  309. 'TITR' 'Champ avec 1 composante : aux points supports de la MASSE' ;
  310. 'DESS' TDESS1 (EVREF1 'ET' EV5) 'XBOR' 0.88 1.12 'YBOR' -5.0 55. ;
  311. 'FINS' ;
  312. * *
  313. *------------- Test sur un champ a plusieurs composantes -------------*
  314. * *
  315. * On en profite pour tester sur des elements TRI6 : *
  316. S1 = 'CHAN' 'QUAD' S1 ;
  317. MOD1 = 'MODE' S1 'MECANIQUE' ;
  318. * *
  319. CHE1 = 'MANU' 'CHML' MOD1 'TOTO' 1.1 'TITI' 0.5 'RIGIDITE' ;
  320. * *
  321. * Traitement de toutes les composantes ?
  322. EV1 = 'HIST' 'ROUG' MOD1 CHE1 ('PROG' 0. PAS 0.2 2.) ;
  323. * *
  324. EVREF1 = ('EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' 'TOTO' ('PROG' 0. PAS 0.2 2.0) (('PROG' 5 * 0.) 'ET' ('PROG' 5.0) 'ET' ('PROG' 5 * 0.))) ;
  325. EVREF2 = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' 'TITI' ('PROG' 0. PAS 0.2 2.0) (('PROG' 2 * 0.) 'ET' ('PROG' 5.0) 'ET' ('PROG' 8 * 0.)) ;
  326. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (('EXTR' EV1 'COUR' 1) - EVREF1) 'ORDO')) + ('MAXI' 'ABS' ('EXTR' (('EXTR' EV1 'COUR' 2) - EVREF2) 'ORDO')) ;
  327. 'SI' ILIST1 ;
  328. 'LIST' ERR1 ;
  329. 'FINS' ;
  330. * *
  331. * Avec un LISMOTS :
  332. CHE1 = 'MANU' 'CHML' MOD1 'TOTO' 1. 'GRAVITE' ;
  333. CHE1 = CHE1 'ET' ('MANU' 'CHML' MOD1 'TITI' 0.5 'GRAVITE') ;
  334. EV2 = 'HIST' 'GRIS' MOD1 CHE1 ('PROG' 0. PAS 0.2 2.) ('MOTS' 'TITI' 'TOTO' 'TATA') ;
  335. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (('EXTR' EV2 'COUR' 1) - EVREF1) 'ORDO')) + ('MAXI' 'ABS' ('EXTR' (('EXTR' EV2 'COUR' 2) - EVREF2) 'ORDO')) ;
  336. 'SI' ILIST1 ;
  337. 'LIST' ERR1 ;
  338. 'FINS' ;
  339. EVREF1 = EVREF1 + EVREF2 ;
  340. * *
  341. * Une seule composante demande avec un MOT : *
  342. CHE1 = 'MANU' 'CHML' MOD1 'TOTO' 1. 'NOEUD' ;
  343. CHE1 = CHE1 'ET' ('MANU' 'CHML' MOD1 'TITI' 0.5 'NOEUD') ;
  344. EV3 = 'HIST' 'AZUR' MOD1 CHE1 ('PROG' 0. PAS 0.1 1.) 'TITI' ;
  345. EVREF2 = 'EVOL' 'ROUG' 'MANU' 'TYPE' 'HIST' 'TITI' ('PROG' 0. PAS 0.1 0.9) (('PROG' 5 * 0.) 'ET' ('PROG' 10.0) 'ET' ('PROG' 4 * 0.)) ;
  346. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EVREF2 - EV3) 'ORDO')) ;
  347. 'SI' ILIST1 ;
  348. 'LIST' ERR1 ;
  349. 'FINS' ;
  350. * *
  351. * Une seule composante demande avec un LISTMOTS : *
  352. CHE1 = 'MANU' 'CHML' MOD1 'TOTO' 1. 'MASSE' ;
  353. CHE1 = CHE1 'ET' ('MANU' 'CHML' MOD1 'TITI' 0.5 'MASSE') ;
  354. EV4 = 'HIST' 'VIOL' MOD1 CHE1 ('PROG' 0. PAS 0.1 1.) ('MOTS' 'TITI' 'SCAL') ;
  355. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EVREF2 - EV4) 'ORDO')) ;
  356. 'SI' ILIST1 ;
  357. 'LIST' ERR1 ;
  358. 'FINS' ;
  359. * *
  360. 'SI' IDESS1 ;
  361. 'TITR' 'Champ a 2 composantes : sans les preciser' ;
  362. 'DESS' TDESS1 (EVREF1 'ET' EV1) ;
  363. 'TITR' 'Champ a 2 composantes : en les precisant avec un Listmots' ;
  364. 'DESS' TDESS1 (EVREF1 'ET' EV2) ;
  365. 'TITR' 'Champ a 2 composantes : composante demandee avec MOT' ;
  366. 'DESS' TDESS1 (EVREF2 'ET' EV3) ;
  367. 'TITR' 'Champ a 2 composantes : composante demandee avec LISTMOTS' ;
  368. 'DESS' TDESS1 (EVREF2 'ET' EV4) ;
  369. 'FINS' ;
  370. * *
  371. *-------------------- Test sur element quadrangle --------------------*
  372. * *
  373. S1 = 'MANU' 'QUA4' P0 P1 P3 P2 ;
  374. MOD1 = 'MODE' S1 'MECANIQUE' ;
  375. CHE1 = 'MANU' 'CHML' MOD1 'TOTO' 1. 'TITI' 0.5 'STRESSES' ;
  376. EV1 = 'HIST' 'ROSE' MOD1 CHE1 ('PROG' 0. PAS 0.5 2.) 'TOTO' ;
  377. EVREF1 = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' ('PROG' 0. PAS 0.5 1.5) (('PROG' 2 * 0.)'ET' ('PROG' 2.0) 'ET' ('PROG' 0.)) ;
  378. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EVREF1 - EV1) 'ORDO')) ;
  379. 'SI' ILIST1 ;
  380. 'LIST' ERR1 ;
  381. 'FINS' ;
  382. * *
  383. 'SI' IDESS1 ;
  384. 'TITR' 'Avec QUA4 aux points supports des STRESSES' ;
  385. 'DESS' TDESS1 (EVREF1 'ET' EV1) ;
  386. 'FINS' ;
  387. * *
  388. MOD1 = 'MODE' S1 'THERMIQUE' ;
  389. CHE1 = 'MANU' 'CHML' MOD1 'TOTO' -1. 'TITI' 0.5 'GRAVITE' ;
  390. EV1 = 'HIST' 'VERT' MOD1 CHE1 ('PROG' -2. PAS 0.08 0.) 'TOTO' ;
  391. EVREF1 = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' ('PROG' -2. PAS 0.08 0.) (('PROG' 12 * 0.)'ET' ('PROG' 12.5) 'ET' ('PROG' 13 * 0.)) ;
  392. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EVREF1 - EV1) 'ORDO')) ;
  393. 'SI' ILIST1 ;
  394. 'LIST' ERR1 ;
  395. 'FINS' ;
  396. * *
  397. 'SI' IDESS1 ;
  398. 'TITR' 'Thermique avec QUA4 au centre de gravite' ;
  399. 'DESS' TDESS1 (EVREF1 'ET' EV1) ;
  400. 'FINS' ;
  401. * *
  402. S1 = 'CHAN' 'QUAD' S1 ;
  403. MOD1 = 'MODE' S1 'THERMIQUE' ;
  404. CHE1 = 'MANU' 'CHML' MOD1 'TOTO' 1. 'TITI' 0.5 'RIGIDITE' ;
  405. EV1 = 'HIST' 'JAUN' MOD1 CHE1 ('PROG' 0. PAS 0.25 1.) 'TITI' ;
  406. EVREF1 = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' ('PROG' 0. PAS 0.25 0.75) (('PROG' 2 * 0.)'ET' ('PROG' 4.0) 'ET' ('PROG' 0.)) ;
  407. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EVREF1 - EV1) 'ORDO')) ;
  408. 'SI' ILIST1 ;
  409. 'LIST' ERR1 ;
  410. 'FINS' ;
  411. * *
  412. 'SI' IDESS1 ;
  413. 'TITR' 'Thermique avec QUA8 aux points supports de la RIGIDITE' ;
  414. 'DESS' TDESS1 (EVREF1 'ET' EV1) ;
  415. 'FINS' ;
  416. * *
  417. *-------------- Test sur maillages a plusieurs elements --------------*
  418. * *
  419. 'OPTI' 'ELEM' 'QUA4' ;
  420. * *
  421. L1 = P0 'DROI' 2 P1 ;
  422. S1 = L1 'TRAN' 2 P2 ;
  423. S2 = S1 'SYME' 'DROI' P0 P2 ;
  424. S2 = 'CHAN' 'TRI3' S2 ;
  425. S0 = S1 'ET' S2 ;
  426. 'ELIM' S0 0.001 ;
  427. 'SI' IDESS1 ;
  428. 'TITR' 'Maillage a plusieurs elements' ;
  429. 'TRAC' S0 ;
  430. 'FINS' ;
  431. * *
  432. MOD1 = 'MODE' S1 'THERMIQUE' ;
  433. MOD2 = 'MODE' S2 'THERMIQUE' ;
  434. MOD0 = MOD1 'ET' MOD2 ;
  435. * *
  436. * Champ constant sur modele a 2 sous-zones : *
  437. CH1 = 'MANU' 'CHML' MOD0 'SCAL' 1. 'STRESSES' ;
  438. EV1 = 'HIST' 'ROUG' CH1 MOD0 ('PROG' 0. PAS 0.5 2.) 'SCAL' ;
  439. EV1REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' ('PROG' 0. PAS 0.5 2.) (('PROG' 2 * 0.) 'ET' ('PROG' 2.) 'ET' ('PROG' 2 * 0.)) ;
  440. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1 - EV1REF) 'ORDO')) ;
  441. 'SI' ILIST1 ;
  442. 'LIST' ERR1 ;
  443. 'FINS' ;
  444. * *
  445. * Champ constant a partir de 2 champs : *
  446. CH1 = ('MANU' 'CHML' MOD1 'SCAL' 1. 'NOEUD') 'ET' ('MANU' 'CHML' MOD2 'SCAL' 1. 'NOEUD') ;
  447. EV1 = 'HIST' 'ROUG' CH1 MOD0 ('PROG' 0. PAS 0.5 2.) 'SCAL' ;
  448. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1 - EV1REF) 'ORDO')) ;
  449. 'SI' ILIST1 ;
  450. 'LIST' ERR1 ;
  451. 'FINS' ;
  452. * *
  453. * Composantes differentes dans chaque zone : *
  454. CH2 = ('MANU' 'CHML' MOD1 'SCAL' 1. 'STRESSES') 'ET' ('MANU' 'CHML' MOD2 'TEST' 3. 'STRESSES') ;
  455. EV2 = 'HIST' 'ROUG' CH2 MOD0 ('PROG' 0. PAS 0.5 2.) 'SCAL' ;
  456. EV2REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' ('PROG' 0. PAS 0.5 2.) (('PROG' 2 * 0.) 'ET' ('PROG' 2.) 'ET' ('PROG' 2 * 0.)) ;
  457. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV2 - EV2REF) 'ORDO')) ;
  458. 'SI' ILIST1 ;
  459. 'LIST' ERR1 ;
  460. 'FINS' ;
  461. * *
  462. * Idem mais Listmots en argument : *
  463. EV2 = 'HIST' 'ROUG' CH2 MOD0 ('PROG' 0. PAS 0.5 2.) ('MOTS' 'SCAL' 'TITI') ;
  464. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV2 - EV2REF) 'ORDO')) ;
  465. 'SI' ILIST1 ;
  466. 'LIST' ERR1 ;
  467. 'FINS' ;
  468. * *
  469. * Idem mais on veut toutes les composantes : *
  470. EV3 = 'HIST' 'VERT' CH2 MOD0 ('PROG' 0. PAS 1. 4.) ;
  471. EV3REF = ('EVOL' 'JAUN' 'MANU' 'TYPE' 'HIST' ('PROG' 0. PAS 1. 4.) ('PROG' 0. 1. 0. 0. 0.)) 'ET' ('EVOL' 'ORAN' 'MANU' 'TYPE' 'HIST' ('PROG' 0. PAS 1. 4.) ('PROG' 0. 0. 0. 1. 0.)) ;
  472. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (('EXTR' EV3REF 'COUR' 1) - ('EXTR' EV3 'COUR' 1)) 'ORDO')) + ('MAXI' 'ABS' ('EXTR' (('EXTR' EV3REF 'COUR' 2) - ('EXTR' EV3 'COUR' 2)) 'ORDO')) ;
  473. 'SI' ILIST1 ;
  474. 'LIST' ERR1 ;
  475. 'FINS' ;
  476. * *
  477. * Idem en donnant un Listmots : *
  478. EV3 = 'HIST' 'VERT' CH2 MOD0 ('PROG' 0. PAS 1. 4.) ('MOTS' 'SCAL' 'TEST') ;
  479. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (('EXTR' EV3REF 'COUR' 1) - ('EXTR' EV3 'COUR' 1)) 'ORDO')) + ('MAXI' 'ABS' ('EXTR' (('EXTR' EV3REF 'COUR' 2) - ('EXTR' EV3 'COUR' 2)) 'ORDO')) ;
  480. 'SI' ILIST1 ;
  481. 'LIST' ERR1 ;
  482. 'FINS' ;
  483. * *
  484. * Une composante sur tout le maillage, un que sur 1 zone : *
  485. CH4 = ('MANU' 'CHML' MOD0 'SCAL' 1. 'STRESSES') 'ET' ('MANU' 'CHML' MOD2 'TEST' 3. 'STRESSES') ;
  486. EV4 = 'HIST' CH4 MOD0 ('PROG' 0. PAS 1. 4.) 'SCAL' ;
  487. EV4REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' ('PROG' 0. 1. 2. 4.) ('PROG' 0. 1. 0. 0.) ;
  488. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV4 - EV4REF) 'ORDO')) ;
  489. 'SI' ILIST1 ;
  490. 'LIST' ERR1 ;
  491. 'FINS' ;
  492. * *
  493. * Idem mais uniquement compsante 1 zone : *
  494. EV4 = 'HIST' CH4 MOD0 ('PROG' 0. PAS 1. 4.) 'TEST' ;
  495. EV4REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' ('PROG' 0. PAS 1. 4.) ('PROG' 0. 0. 0. 1. 0.) ;
  496. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV4 - EV4REF) 'ORDO')) ;
  497. 'SI' ILIST1 ;
  498. 'LIST' ERR1 ;
  499. 'FINS' ;
  500. * *
  501. * Sur 2 composantes : *
  502. EV4 = 'HIST' 'BLEU' CH4 MOD0 ('PROG' 0. PAS 1. 4.) ;
  503. EV4REF = ('EVOL' 'JAUN' 'MANU' 'TYPE' 'HIST' ('PROG' 0. PAS 1. 4.) ('PROG' 0. 1. 0. 0. 0.)) 'ET' ('EVOL' 'ORAN' 'MANU' 'TYPE' 'HIST' ('PROG' 0. PAS 1. 4.) ('PROG' 0. 0. 0. 1. 0.)) ;
  504. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (('EXTR' EV4REF 'COUR' 1) - ('EXTR' EV4 'COUR' 1)) 'ORDO')) + ('MAXI' 'ABS' ('EXTR' (('EXTR' EV4REF 'COUR' 2) - ('EXTR' EV4 'COUR' 2)) 'ORDO')) ;
  505. 'SI' ILIST1 ;
  506. 'LIST' ERR1 ;
  507. 'FINS' ;
  508. * *
  509. 'SI' IDESS1 ;
  510. 'TITR' 'Resultats sur maillage a plusieurs elts.' ;
  511. 'DESS' TDESS1 (EV1REF 'ET' EV1) ;
  512. 'DESS' TDESS1 (EV2REF 'ET' EV2) ;
  513. 'DESS' TDESS2 (EV3REF 'ET' EV3) ;
  514. 'DESS' TDESS2 (EV4REF 'ET' EV4) ;
  515. 'FINS' ;
  516. * *
  517. * Avec 2 modeles Meca. : *
  518. MOD1 = 'MODE' S1 'MECANIQUE' ;
  519. MOD2 = 'MODE' S2 'MECANIQUE' ;
  520. MOD0 = MOD1 'ET' MOD2 ;
  521. * *
  522. * Melange de points supports : *
  523. CH1 = ('MANU' 'CHML' MOD0 'SCAL' 1. 'MASSE') 'ET' ('MANU' 'CHML' MOD2 'TEST' 3. 'MASSE') ;
  524. EV1 = 'HIST' 'ROUG' CH1 MOD0 ('PROG' 0. PAS 0.6 3. PAS 1.4 10.) ('MOTS' 'SCAL' 'TEST') ;
  525. EV1REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' ('PROG' 0. PAS 0.6 3. PAS 1.4 10.) 'SCAL' ('PROG' 0. (1. / 0.6) 9 * 0.) ;
  526. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - ('EXTR' EV1 'COUR' 1)) 'ORDO')) ;
  527. EV2REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' ('PROG' 0. PAS 0.6 3. PAS 1.4 10.) 'SCAL' ('PROG' 5 * 0. (1. / 1.4) 5 * 0.) ;
  528. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV2REF - ('EXTR' EV1 'COUR' 2)) 'ORDO')) ;
  529. 'SI' ILIST1 ;
  530. 'LIST' ERR1 ;
  531. 'FINS' ;
  532. * *
  533. 'SI' IDESS1 ;
  534. 'DESS' TDESS1 ((EV1REF + EV2REF) 'ET' EV1) ;
  535. 'FINS' ;
  536. * *
  537. *---------------------------------------------------------------------*
  538. * *
  539. * FIN <<~PETITS TESTS~>> *
  540. * *
  541. *---------------------------------------------------------------------*
  542. * *
  543. 'SINO' ;
  544. 'OPTI' 'DIME' 2 ;
  545. P0 = 0. 0. ;
  546. P1 = 1. 0. ;
  547. P2 = 0. 1. ;
  548. P3 = 1. 1. ;
  549. 'FINS' ;
  550. * *
  551. *------------------------ "Vrai Gros Maillage" -----------------------*
  552. * *
  553. 'OPTI' 'ELEM' 'QUA8' ;
  554. L1 = P0 'DROI' 10 P1 ;
  555. S1 = L1 'TRAN' 10 P2 ;
  556. S2 = S1 'SYME' 'DROI' P0 P2 ;
  557. 'OPTI' 'ELEM' 'TRI3' ;
  558. S2 = 'SURF' ('CONT' S2) ;
  559. S0 = S1 'ET' S2 ;
  560. 'ELIM' S0 0.001 ;
  561. * *
  562. * Avec 2 modeles Meca. : *
  563. MOD1 = 'MODE' S1 'MECANIQUE' ;
  564. MOD2 = 'MODE' S2 'MECANIQUE' ;
  565. MOD0 = MOD1 'ET' MOD2 ;
  566. * *
  567. * Creation d'un champ de variable aleatoires : *
  568. CHPO1 = 'BRUI' 'BLAN' 'UNIF' 5. 6.66 S0 ;
  569. CHAM1 = 'CHAN' 'CHAM' CHPO1 MOD0 'GRAVITE' ;
  570. 'SI' IDESS1 ;
  571. 'TITR' ' Champ d"une variable scalaire aleatoire (ditrib. uniforme)' ;
  572. 'TRAC' CHAM1 MOD1 ;
  573. 'FINS' ;
  574. * *
  575. * ATTENTION : X1 + grand que le MINI de CHAM1, LX1 ne couvre donc pas *
  576. * tout l'intervalle de valeurs : *
  577. X1 = -4.5 ;
  578. X2 = 19. ;
  579. XPAS1 = 0.5 ;
  580. LX1 = 'PROG' X1 PAS XPAS1 X2 ;
  581. N1 = 'DIME' LX1 ;
  582. LY1 = 'PROG' N1 * 0. ;
  583. NB1 = 'NBEL' S1 ;
  584. 'REPE' BOU1 NB1 ;
  585. ELI1 = S1 'ELEM' &BOU1 ;
  586. XI1 = 'EXTR' ('REDU' CHAM1 ELI1) 'SCAL' 1 1 1 ;
  587. 'SI' (XI1 '<' X1) ;
  588. 'ITER' BOU1 ;
  589. 'FINS' ;
  590. NI1 = ('ENTI' ((XI1 - X1) / XPAS1)) + 1 ;
  591. 'SI' (NI1 'EGA' 0) ;
  592. 'ITER' BOU1 ;
  593. 'FINS' ;
  594. YI1 = ('MESU' ELI1) / XPAS1 ;
  595. 'SI' (NI1 '>' 1) ;
  596. LYI1 = ('PROG' (NI1 - 1) * 0.) 'ET' ('PROG' YI1) 'ET' ('PROG' (N1 - NI1) * 0.) ;
  597. 'SINO' ;
  598. LYI1 = ('PROG' YI1) 'ET' ('PROG' (N1 - NI1) * 0.) ;
  599. 'FINS' ;
  600. LY1 = LY1 + LYI1 ;
  601. 'FIN' BOU1 ;
  602. NB1 = 'NBEL' S2 ;
  603. 'REPE' BOU1 NB1 ;
  604. ELI1 = S2 'ELEM' &BOU1 ;
  605. XI1 = 'EXTR' ('REDU' CHAM1 ELI1) 'SCAL' 1 1 1 ;
  606. 'SI' (XI1 '<' X1) ;
  607. 'ITER' BOU1 ;
  608. 'FINS' ;
  609. NI1 = ('ENTI' ((XI1 - X1) / XPAS1)) + 1 ;
  610. 'SI' (NI1 'EGA' 0) ;
  611. 'ITER' BOU1 ;
  612. 'FINS' ;
  613. YI1 = ('MESU' ELI1) / XPAS1 ;
  614. 'SI' (NI1 '>' 1) ;
  615. LYI1 = ('PROG' (NI1 - 1) * 0.) 'ET' ('PROG' YI1) 'ET' ('PROG' (N1 - NI1) * 0.) ;
  616. 'SINO' ;
  617. LYI1 = ('PROG' YI1) 'ET' ('PROG' (N1 - NI1) * 0.) ;
  618. 'FINS' ;
  619. LY1 = LY1 + LYI1 ;
  620. 'FIN' BOU1 ;
  621. EV1REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' 'SCAL' LX1 LY1 ;
  622. EV1REF = EV1REF / ('MESU' S0) ;
  623. * *
  624. EV1 = 'HIST' 'VERT' CHAM1 MOD0 LX1 ('MOTS' 'TITI' 'SCAL' 'GREE') ;
  625. * *
  626. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1 - EV1REF) 'ORDO')) ;
  627. 'SI' ILIST1 ;
  628. 'LIST' ERR1 ;
  629. 'FINS' ;
  630. * *
  631. * Verification que l'integrale de la densite de distribution sur *
  632. * sur l'intervalle d'echantillonnage vaut la fraction surfacique des *
  633. * valeurs du champ concernees : *
  634. MESU1 = ('INTG' EV1) 'EXTR' 1 ;
  635. MESU1REF = ('INTG' MOD0 ('MASQ' CHAM1 'EGSUPE' -4.5)) / ('MESU' S0) ;
  636. ERR1 = ERR1 + (MESU1REF - MESU1) ;
  637. 'SI' ILIST1 ;
  638. 'LIST' ERR1 ;
  639. 'FINS' ;
  640. * *
  641. 'SI' IDESS1 ;
  642. 'TITR' 'Resultat test HIST en 2D' ;
  643. 'DESS' TDESS1 (EV1REF 'ET' EV1) ;
  644. 'FINS' ;
  645. * *
  646. *-------------------------------- 3D ---------------------------------*
  647. * *
  648. 'OPTI' 'DIME' 3 ;
  649. * *
  650. 'OPTI' 'ELEM' 'CU20' ;
  651. V1 = S1 'VOLU' 'TRAN' 5 (0. 0. 1.) ;
  652. 'OPTI' 'ELEM' 'TET4' ;
  653. V2 = S2 'VOLU' 'TRAN' 5 (0. 0. 1.) ;
  654. V2 = 'VOLU' (('ENVE' V2 'ELEM' 'QUA4' 'CHAN' 'TRI3') 'ET' ('ENVE' V2 'ELEM' 'TRI3')) ;
  655. V0 = 'ELIM' (V1 'ET' V2) 0.001 ;
  656. MOD1 = 'MODE' V1 'MECANIQUE' ;
  657. MOD2 = 'MODE' V2 'MECANIQUE' ;
  658. MOD0 = MOD1 'ET' MOD2 ;
  659. * *
  660. * Construction d'un champ de variables aleatoires ; *
  661. CHPO1 = 'BRUI' 'BLAN' 'UNIF' PI ('EXP' 2.) V0 ;
  662. CHPO1 = CHPO1 'NOMC' 'VAR1' ;
  663. CHPO2 = 'BRUI' 'BLAN' 'GAUS' (-4. / 3.) ('LOG' 29.) V0 ;
  664. CHPO2 = CHPO2 'NOMC' 'VAR2' ;
  665. CHAM1 = 'CHAN' 'CHAM' (CHPO1 'ET' CHPO2) MOD0 'GRAVITE' ;
  666. 'SI' IDESS1 ;
  667. 'TITR' ' Champ de 2 variables scalaires aleatoires' ;
  668. 'TRAC' CHAM1 MOD0 ;
  669. 'FINS' ;
  670. * *
  671. X1 = -15. ;
  672. X2 = 17. ;
  673. XPAS1 = 0.8 ;
  674. LX1 = 'PROG' X1 PAS XPAS1 X2 ;
  675. N1 = 'DIME' LX1 ;
  676. * *
  677. 'TEMP' 'ZERO' ;
  678. LY1 = 'PROG' N1 * 0. ;
  679. NB1 = 'NBEL' V1 ;
  680. 'REPE' BOU1 NB1 ;
  681. ELI1 = V1 'ELEM' &BOU1 ;
  682. XI1 = 'EXTR' ('REDU' CHAM1 ELI1) 'VAR1' 1 1 1 ;
  683. 'SI' (XI1 '<' X1) ;
  684. 'ITER' BOU1 ;
  685. 'FINS' ;
  686. NI1 = ('ENTI' ((XI1 - X1) / XPAS1)) + 1 ;
  687. 'SI' (NI1 'EGA' 0) ;
  688. 'ITER' BOU1 ;
  689. 'FINS' ;
  690. YI1 = ('MESU' ELI1) / XPAS1 ;
  691. 'SI' (NI1 '>' 1) ;
  692. LYI1 = ('PROG' (NI1 - 1) * 0.) 'ET' ('PROG' YI1) 'ET' ('PROG' (N1 - NI1) * 0.) ;
  693. 'SINO' ;
  694. LYI1 = ('PROG' YI1) 'ET' ('PROG' (N1 - NI1) * 0.) ;
  695. 'FINS' ;
  696. LY1 = LY1 + LYI1 ;
  697. 'FIN' BOU1 ;
  698. NB1 = 'NBEL' V2 ;
  699. 'REPE' BOU1 NB1 ;
  700. ELI1 = V2 'ELEM' &BOU1 ;
  701. XI1 = 'EXTR' ('REDU' CHAM1 ELI1) 'VAR1' 1 1 1 ;
  702. 'SI' (XI1 '<' X1) ;
  703. 'ITER' BOU1 ;
  704. 'FINS' ;
  705. NI1 = ('ENTI' ((XI1 - X1) / XPAS1)) + 1 ;
  706. 'SI' (NI1 'EGA' 0) ;
  707. 'ITER' BOU1 ;
  708. 'FINS' ;
  709. YI1 = ('MESU' ELI1) / XPAS1 ;
  710. 'SI' (NI1 '>' 1) ;
  711. LYI1 = ('PROG' (NI1 - 1) * 0.) 'ET' ('PROG' YI1) 'ET' ('PROG' (N1 - NI1) * 0.) ;
  712. 'SINO' ;
  713. LYI1 = ('PROG' YI1) 'ET' ('PROG' (N1 - NI1) * 0.) ;
  714. 'FINS' ;
  715. LY1 = LY1 + LYI1 ;
  716. 'FIN' BOU1 ;
  717. EV1REF = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' 'VAR1' LX1 LY1 ;
  718. EV1REF = EV1REF / ('MESU' V0) ;
  719. * *
  720. LY2 = 'PROG' N1 * 0. ;
  721. NB1 = 'NBEL' V1 ;
  722. 'REPE' BOU1 NB1 ;
  723. ELI1 = V1 'ELEM' &BOU1 ;
  724. XI1 = 'EXTR' ('REDU' CHAM1 ELI1) 'VAR2' 1 1 1 ;
  725. 'SI' (XI1 '<' X1) ;
  726. 'ITER' BOU1 ;
  727. 'FINS' ;
  728. NI1 = ('ENTI' ((XI1 - X1) / XPAS1)) + 1 ;
  729. 'SI' (NI1 'EGA' 0) ;
  730. 'ITER' BOU1 ;
  731. 'FINS' ;
  732. YI1 = ('MESU' ELI1) / XPAS1 ;
  733. 'SI' (NI1 '>' 1) ;
  734. LYI1 = ('PROG' (NI1 - 1) * 0.) 'ET' ('PROG' YI1) 'ET' ('PROG' (N1 - NI1) * 0.) ;
  735. 'SINO' ;
  736. LYI1 = ('PROG' YI1) 'ET' ('PROG' (N1 - NI1) * 0.) ;
  737. 'FINS' ;
  738. LY2 = LY2 + LYI1 ;
  739. 'FIN' BOU1 ;
  740. NB1 = 'NBEL' V2 ;
  741. 'REPE' BOU1 NB1 ;
  742. ELI1 = V2 'ELEM' &BOU1 ;
  743. XI1 = 'EXTR' ('REDU' CHAM1 ELI1) 'VAR2' 1 1 1 ;
  744. 'SI' (XI1 '<' X1) ;
  745. 'ITER' BOU1 ;
  746. 'FINS' ;
  747. NI1 = ('ENTI' ((XI1 - X1) / XPAS1)) + 1 ;
  748. 'SI' (NI1 'EGA' 0) ;
  749. 'ITER' BOU1 ;
  750. 'FINS' ;
  751. YI1 = ('MESU' ELI1) / XPAS1 ;
  752. 'SI' (NI1 '>' 1) ;
  753. LYI1 = ('PROG' (NI1 - 1) * 0.) 'ET' ('PROG' YI1) 'ET' ('PROG' (N1 - NI1) * 0.) ;
  754. 'SINO' ;
  755. LYI1 = ('PROG' YI1) 'ET' ('PROG' (N1 - NI1) * 0.) ;
  756. 'FINS' ;
  757. LY2 = LY2 + LYI1 ;
  758. 'FIN' BOU1 ;
  759. EV2REF = 'EVOL' 'JAUN' 'MANU' 'TYPE' 'HIST' 'VAR2' LX1 LY2 ;
  760. EV2REF = EV2REF / ('MESU' V0) ;
  761. 'SAUT' 1 'LIGN' ;
  762. TABTPS = TEMP 'NOEC';
  763. 'MESS' ' **** Duree Gibiane en 3D = ' (0.001 * TABTPS.'TEMPS_CPU'.'INITIAL') ' (s)' ;
  764. * *
  765. 'TEMP' 'ZERO' ;
  766. EV1 = 'HIST' 'VERT' CHAM1 MOD0 LX1 ('MOTS' 'VAR2' 'VAR1' 'CHUE');
  767. 'SAUT' 1 'LIGN' ;
  768. TABTPS = TEMP 'NOEC';
  769. 'MESS' ' **** Duree d"execution HIST en 3D = ' (0.001 * TABTPS.'TEMPS_CPU'.'INITIAL') ' (s)' ;
  770. EV1 = ('EXTR' EV1 'COUR' 1) 'ET' (('EXTR' EV1 'COUR' 2) 'COUL' 'TURQ') ;
  771. * *
  772. ERR1 = ERR1 + ('MAXI' 'ABS' ('EXTR' (('EXTR' EV1 'COUR' 1) - EV1REF) 'ORDO')) + ('MAXI' 'ABS' ('EXTR' (('EXTR' EV1 'COUR' 2) - EV2REF) 'ORDO')) ;
  773. 'SI' ILIST1 ;
  774. 'LIST' ERR1 ;
  775. 'FINS' ;
  776. * *
  777. * Verification que la somme des ordonnees vaut 1 : *
  778. MESU1 = ('INTG' ('EXTR' EV1 'COUR' 1)) 'EXTR' 1 ;
  779. ERR1 = ERR1 + (1. - MESU1) ;
  780. 'SI' ILIST1 ;
  781. 'LIST' ERR1 ;
  782. 'FINS' ;
  783. MESU1 = ('INTG' ('EXTR' EV1 'COUR' 2)) 'EXTR' 1 ;
  784. ERR1 = ERR1 + (1. - MESU1) ;
  785. 'SI' ILIST1 ;
  786. 'LIST' ERR1 ;
  787. 'FINS' ;
  788. * *
  789. 'SI' IDESS1 ;
  790. 'TITR' 'Resultat test HIST en 3D' ;
  791. 'DESS' TDESS2 (EV1REF 'ET' EV2REF 'ET' EV1) ;
  792. 'FINS' ;
  793. * *
  794. * Tests raffinement pas d'echantillonnage : *
  795. 'SI' FAUX ;
  796. XPAS2 = 0.4 ;
  797. LX2 = 'PROG' X1 PAS XPAS2 X2 ;
  798. EV2 = 'HIST' 'ROUG' MOD0 CHAM1 LX2 ('MOTS' 'VAR2') ;
  799. XPAS3 = 0.8 / 3. ;
  800. LX3 = 'PROG' X1 PAS XPAS3 X2 ;
  801. EV3 = 'HIST' 'JAUN' MOD0 CHAM1 LX3 ('MOTS' 'VAR2') ;
  802. 'DESS' (('EXTR' EV1 'COUR' 2) 'ET' EV2 'ET' EV3) ;
  803. 'FINS' ;
  804. * *
  805. *--------------------------- Tests erreurs ---------------------------*
  806. * *
  807. 'SI' ITEST1 ;
  808. 'SAUT' 1 'LIGN' ;
  809. 'OPTI' 'ERRE' 'IGNO' ;
  810. CHE1 = 'MANU' 'CHML' MOD1 'SCAL' 1. 'STRESSES' ;
  811. LR1 = PROG 0. PAS 0.5 2. ;
  812. * Si on passe un CHPO ? : *
  813. EV0 = 'HIST' ('COOR' 1 V1) MOD1 ;
  814. * Si on ne passe pas le modele ? : *
  815. EV0 = 'HIST' CHE1 ;
  816. * Si on ne passe pas le "bon" modele ? : *
  817. EV0 = 'HIST' CHE1 MOD2 LR1 ;
  818. * Si on ne passe pas le LISTREEL ;
  819. EV0 = 'HIST' MOD1 CHE1 ;
  820. * Si une composante demandee n'existe pas ? *
  821. EV0 = 'HIST' MOD1 CHE1 LR1 'TEST' ;
  822. * Si aucune composante de la liste n'existe ? *
  823. EV0 = 'HIST' MOD1 CHE1 LR1 ('MOTS' 'TEST' 'TOTO') ;
  824. * Si on donne un CHAML de MOT ? *
  825. CHE1 = 'MANU' 'CHML' MOD1 'TITI' xxx 'STRESSES' ;
  826. EV0 = 'HIST' MOD1 CHE1 LR1 ;
  827. 'OPTI' 'ERRE' 'NORM' ;
  828. 'FINS' ;
  829. * *
  830. 'SI' (ERR1 > 1.E-10) ;
  831. 'SAUT' 1 'LIGN' ;
  832. 'MESS' ' **** Erreur = ' ERR1 ;
  833. 'ERRE' 5 ;
  834. 'FINS' ;
  835. * *
  836. 'FIN' ;
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  

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