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

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