Télécharger lire_med_02.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : lire_med_02.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. * Presentation : Ce cas-test permet de :
  6. * SORTIR des MAILLAGES, CHPOINT et MCHAML au format MED
  7. * LIRE les fichiers MED generes
  8. * VERIFIE et VALIDE les echanges au format MED
  9. *
  10. * Ameliorations a prevoir :
  11. * - Sortir et lire les MCHAML aux Pts d'integration
  12. * - Sortir et lire les CONSTITUANTS dans les MCHAML
  13. *
  14. * Creation : 17/02/2017
  15. * Createur : C. BERTHINIER
  16. *
  17. * Modifications :
  18. * CB215821 01/02/2018 : Sortie des MAILLAGES
  19. * Relecture des MAILLAGES
  20. * Sortie des CHPOINT
  21. * Relecture des CHPOINT
  22. * Sortie des MCHAML aux Noeuds et Gravite
  23. * Relecture des MCHAML aux Noeuds et Gravite
  24. * ...
  25. ************************************************************************
  26.  
  27. 'OPTI' 'TRAC' 'PSC';
  28.  
  29. ***********************************************************************
  30. * Lecture d'un MAILLAGE 'NASTRAN' avec plusieurs types d'elements
  31. ***********************************************************************
  32.  
  33. * Lecture 'NASTRAN' en Double Precision
  34. TAB2 = LIRE 'NAS' '/u2/castem/divers/nastran_long.nas' ;
  35. TAB21 = INDE (TAB2.'MAILLAGES');
  36. * MAILLAGES *
  37. MAILTOT = VIDE 'MAILLAGE';
  38. REPE SURI (DIME TAB21);
  39. MAILTOT = MAILTOT ET (TAB2.'MAILLAGES' . (TAB21 . &SURI));
  40. FIN SURI;
  41.  
  42. * Le MAILLAGE MAILTOT contient 11 types d'elements :
  43. * - 29 element(S) de type SEG2
  44. * - 93 element(S) de type TRI3
  45. * - 164 element(S) de type QUA4
  46. * - 271 element(S) de type TET4
  47. * - 36 element(S) de type PRI6
  48. * - 84 element(S) de type CUB8
  49. *
  50. * - 29 element(S) de type TRI6
  51. * - 27 element(S) de type QUA8
  52. * - 271 element(S) de type TE10
  53. * - 24 element(S) de type PR15
  54. * - 12 element(S) de type CU20
  55.  
  56. MSEG2 = 'ELEM' MAILTOT 'SEG2';
  57. MTRI3 = 'ELEM' MAILTOT 'TRI3';
  58. MQUA4 = 'ELEM' MAILTOT 'QUA4';
  59. MTET4 = 'ELEM' MAILTOT 'TET4';
  60. MPRI6 = 'ELEM' MAILTOT 'PRI6';
  61. MCUB8 = 'ELEM' MAILTOT 'CUB8';
  62. MTRI6 = 'ELEM' MAILTOT 'TRI6';
  63. MQUA8 = 'ELEM' MAILTOT 'QUA8';
  64. MTE10 = 'ELEM' MAILTOT 'TE10';
  65. MPR15 = 'ELEM' MAILTOT 'PR15';
  66. MCU20 = 'ELEM' MAILTOT 'CU20';
  67.  
  68. * Nombre d''elements
  69. NESEG2 = 'NBEL' MSEG2;
  70. NETRI3 = 'NBEL' MTRI3;
  71. NEQUA4 = 'NBEL' MQUA4;
  72. NETET4 = 'NBEL' MTET4;
  73. NEPRI6 = 'NBEL' MPRI6;
  74. NECUB8 = 'NBEL' MCUB8;
  75. NETRI6 = 'NBEL' MTRI6;
  76. NEQUA8 = 'NBEL' MQUA8;
  77. NETE10 = 'NBEL' MTE10;
  78. NEPR15 = 'NBEL' MPR15;
  79. NECU20 = 'NBEL' MCU20;
  80. NEMTOT = 'NBEL' MAILTOT;
  81.  
  82. * Nombre de noeuds
  83. NOSEG2 = 'NBNO' MSEG2;
  84. NOTRI3 = 'NBNO' MTRI3;
  85. NOQUA4 = 'NBNO' MQUA4;
  86. NOTET4 = 'NBNO' MTET4;
  87. NOPRI6 = 'NBNO' MPRI6;
  88. NOCUB8 = 'NBNO' MCUB8;
  89. NOTRI6 = 'NBNO' MTRI6;
  90. NOQUA8 = 'NBNO' MQUA8;
  91. NOTE10 = 'NBNO' MTE10;
  92. NOPR15 = 'NBNO' MPR15;
  93. NOCU20 = 'NBNO' MCU20;
  94. NOMTOT = 'NBNO' MAILTOT;
  95.  
  96. ***********************************************************************
  97. * Sortie MED 3.0 des MAILLAGES SIMPLES et COMPLEXES
  98. ***********************************************************************
  99. 'TRAC' 'QUAL' MAILTOT 'TITR' 'MAILLAGE_MAILTOT CAST3M';
  100. 'TRAC' 'QUAL' MCU20 'TITR' 'MAILLAGE_MCU20 CAST3M';
  101. 'TRAC' 'QUAL' MPR15 'TITR' 'MAILLAGE_MPR15 CAST3M';
  102. 'TRAC' 'QUAL' MTE10 'TITR' 'MAILLAGE_MTE10 CAST3M';
  103. 'TRAC' 'QUAL' MQUA8 'TITR' 'MAILLAGE_MQUA8 CAST3M';
  104. 'TRAC' 'QUAL' MTRI6 'TITR' 'MAILLAGE_MTRI6 CAST3M';
  105. 'TRAC' 'QUAL' MCUB8 'TITR' 'MAILLAGE_MCUB8 CAST3M';
  106. 'TRAC' 'QUAL' MPRI6 'TITR' 'MAILLAGE_MPRI6 CAST3M';
  107. 'TRAC' 'QUAL' MTET4 'TITR' 'MAILLAGE_MTET4 CAST3M';
  108. 'TRAC' 'QUAL' MQUA4 'TITR' 'MAILLAGE_MQUA4 CAST3M';
  109. 'TRAC' 'QUAL' MTRI3 'TITR' 'MAILLAGE_MTRI3 CAST3M';
  110. 'TRAC' 'QUAL' MSEG2 'TITR' 'MAILLAGE_MSEG2 CAST3M';
  111.  
  112. 'OPTI' 'SORT' 'MED_MAILLAGE_simple.med';
  113. 'SORT' 'MED' MSEG2 MTRI3 MQUA4 MTET4 MPRI6 MCUB8
  114. MTRI6 MQUA8 MTE10 MPR15 MCU20 ;
  115.  
  116. 'OPTI' 'SORT' 'MED_MAILLAGE_complexe.med';
  117. 'SORT' 'MED' MAILTOT ;
  118.  
  119. ***********************************************************************
  120. * Sortie MED 3.2 des CHPOINTS
  121. ***********************************************************************
  122. CHPX1 = 'CHAN' 'COMP' ('COOR' 1 MTRI3 ) 'UX';
  123. CHPY1 = 'CHAN' 'COMP' ('COOR' 2 MAILTOT) 'UY';
  124.  
  125. CHPTOT= CHPX1 'ET' CHPY1 ;
  126. 'LIST' 'RESU' CHPX1 ;
  127. 'LIST' 'RESU' CHPTOT ;
  128.  
  129. 'OPTI' 'SORT' 'MED_CHPOIN_simple.med';
  130. 'SORT' 'MED' CHPX1;
  131.  
  132. 'OPTI' 'SORT' 'MED_CHPOIN_complexe.med';
  133. 'SORT' 'MED' CHPTOT;
  134.  
  135. 'OPTI' 'SORT' 'MED_CHPOIN_melange.med';
  136. 'SORT' 'MED' CHPX1 CHPY1 CHPTOT;
  137.  
  138. ***********************************************************************
  139. * Sortie MED 3.2 des MCHAML
  140. ***********************************************************************
  141. * MCHAML au GRAVITE (1 SOUS-ZONE et 11 SOUS-ZONES)
  142. MOD1a = 'MODE' MTRI3 'MECANIQUE' ;
  143. MOD1b = 'MODE' MAILTOT 'MECANIQUE' ;
  144. CHA1a = 'MANU' 'CHML' MOD1a 'SCAL' 1.0 'GRAVITE';
  145. CHA1b = 'MANU' 'CHML' MOD1b 'SCAL' 1.0 'GRAVITE';
  146.  
  147. CHAX1 = 'NOMC' ('COOR' 1 CHA1a) 'UX';
  148. CHAY1 = 'NOMC' ('COOR' 2 CHA1b) 'UY';
  149.  
  150. 'OPTI' 'SORT' 'MED_MCHAML_GRAVITE_SZ1.med';
  151. 'SORT' 'MED' CHAX1 ;
  152.  
  153. 'OPTI' 'SORT' 'MED_MCHAML_GRAVITE_SZ11.med';
  154. 'SORT' 'MED' CHAY1 ;
  155.  
  156. * MCHAML au NOEUD
  157. CHA2a = 'MANU' 'CHML' MOD1a 'SCAL' 1.0 'NOEUD';
  158. CHA2b = 'MANU' 'CHML' MOD1b 'SCAL' 1.0 'NOEUD';
  159. CHAZ1 = 'NOMC' ('COOR' 3 CHA2a) 'UZ';
  160. CHAZ2 = 'NOMC' ('COOR' 3 CHA2b) 'UZ';
  161.  
  162. 'OPTI' 'SORT' 'MED_MCHAML_NOEUD_SZ1.med';
  163. 'SORT' 'MED' CHAZ1 ;
  164.  
  165. 'OPTI' 'SORT' 'MED_MCHAML_NOEUD_SZ11.med';
  166. 'SORT' 'MED' CHAZ2;
  167.  
  168. * MCHAML melange
  169. 'OPTI' 'SORT' 'MED_MCHAML_melange.med';
  170. 'SORT' 'MED' CHAX1 CHAY1 CHAZ1 CHAZ2;
  171.  
  172.  
  173. ***********************************************************************
  174. * Relecture des fichiers MED 3.2 generes
  175. ***********************************************************************
  176.  
  177.  
  178. *#####################################################################*
  179. * Verification relecture des MAILLAGES
  180. *#####################################################################*
  181. TAB1 = 'LIRE' 'MED' 'MED_MAILLAGE_simple.med' ;
  182. TAB2 = 'LIRE' 'MED' 'MED_MAILLAGE_complexe.med';
  183.  
  184. *#####################################################################*
  185. * Validation relecture des MAILLAGES
  186. *#####################################################################*
  187. 'LIST' TAB1;
  188. MSEG2a = TAB1.'MSEG2' ;
  189. MCU20a = TAB1.'MCU20' ;
  190. MPR15a = TAB1.'MPR15' ;
  191. MTE10a = TAB1.'MTE10' ;
  192. MQUA8a = TAB1.'MQUA8' ;
  193. MTRI6a = TAB1.'MTRI6' ;
  194. MCUB8a = TAB1.'MCUB8' ;
  195. MPRI6a = TAB1.'MPRI6' ;
  196. MTET4a = TAB1.'MTET4' ;
  197. MQUA4a = TAB1.'MQUA4' ;
  198. MTRI3a = TAB1.'MTRI3' ;
  199.  
  200. 'TRAC' 'QUAL' MSEG2a 'TITR' 'MAILLAGE_MSEG2 LU MED';
  201. 'TRAC' 'QUAL' MCU20a 'TITR' 'MAILLAGE_MCU20 LU MED';
  202. 'TRAC' 'QUAL' MPR15a 'TITR' 'MAILLAGE_MPR15 LU MED';
  203. 'TRAC' 'QUAL' MTE10a 'TITR' 'MAILLAGE_MTE10 LU MED';
  204. 'TRAC' 'QUAL' MQUA8a 'TITR' 'MAILLAGE_MQUA8 LU MED';
  205. 'TRAC' 'QUAL' MTRI6a 'TITR' 'MAILLAGE_MTRI6 LU MED';
  206. 'TRAC' 'QUAL' MCUB8a 'TITR' 'MAILLAGE_MCUB8 LU MED';
  207. 'TRAC' 'QUAL' MPRI6a 'TITR' 'MAILLAGE_MPRI6 LU MED';
  208. 'TRAC' 'QUAL' MTET4a 'TITR' 'MAILLAGE_MTET4 LU MED';
  209. 'TRAC' 'QUAL' MQUA4a 'TITR' 'MAILLAGE_MQUA4 LU MED';
  210. 'TRAC' 'QUAL' MTRI3a 'TITR' 'MAILLAGE_MTRI3 LU MED';
  211.  
  212. * Nombre d''elements
  213. NESEG2a = 'NBEL' MSEG2a;
  214. NETRI3a = 'NBEL' MTRI3a;
  215. NEQUA4a = 'NBEL' MQUA4a;
  216. NETET4a = 'NBEL' MTET4a;
  217. NEPRI6a = 'NBEL' MPRI6a;
  218. NECUB8a = 'NBEL' MCUB8a;
  219. NETRI6a = 'NBEL' MTRI6a;
  220. NEQUA8a = 'NBEL' MQUA8a;
  221. NETE10a = 'NBEL' MTE10a;
  222. NEPR15a = 'NBEL' MPR15a;
  223. NECU20a = 'NBEL' MCU20a;
  224.  
  225. * Nombre de noeuds
  226. NOSEG2a = 'NBNO' MSEG2a;
  227. NOTRI3a = 'NBNO' MTRI3a;
  228. NOQUA4a = 'NBNO' MQUA4a;
  229. NOTET4a = 'NBNO' MTET4a;
  230. NOPRI6a = 'NBNO' MPRI6a;
  231. NOCUB8a = 'NBNO' MCUB8a;
  232. NOTRI6a = 'NBNO' MTRI6a;
  233. NOQUA8a = 'NBNO' MQUA8a;
  234. NOTE10a = 'NBNO' MTE10a;
  235. NOPR15a = 'NBNO' MPR15a;
  236. NOCU20a = 'NBNO' MCU20a;
  237.  
  238. * Fusion des Noeuds geometriquement confondus
  239. 'ELIM' MSEG2a MSEG2 1.D-5;
  240. 'ELIM' MTRI3a MTRI3 1.D-5;
  241. 'ELIM' MQUA4a MQUA4 1.D-5;
  242. 'ELIM' MTET4a MTET4 1.D-5;
  243. 'ELIM' MPRI6a MPRI6 1.D-5;
  244. 'ELIM' MCUB8a MCUB8 1.D-5;
  245. 'ELIM' MTRI6a MTRI6 1.D-5;
  246. 'ELIM' MQUA8a MQUA8 1.D-5;
  247. 'ELIM' MTE10a MTE10 1.D-5;
  248. 'ELIM' MPR15a MPR15 1.D-5;
  249. 'ELIM' MCU20a MCU20 1.D-5;
  250.  
  251. * Difference symetrique (Union MOINS Intersection)
  252. DSEG2a = 'DIFF' MSEG2 MSEG2a ;
  253. DTRI3a = 'DIFF' MTRI3 MTRI3a ;
  254. DQUA4a = 'DIFF' MQUA4 MQUA4a ;
  255. DTET4a = 'DIFF' MTET4 MTET4a ;
  256. DPRI6a = 'DIFF' MPRI6 MPRI6a ;
  257. DCUB8a = 'DIFF' MCUB8 MCUB8a ;
  258. DTRI6a = 'DIFF' MTRI6 MTRI6a ;
  259. DQUA8a = 'DIFF' MQUA8 MQUA8a ;
  260. DTE10a = 'DIFF' MTE10 MTE10a ;
  261. DPR15a = 'DIFF' MPR15 MPR15a ;
  262. DCU20a = 'DIFF' MCU20 MCU20a ;
  263.  
  264. * Verification Nombre d''elements
  265. SI ((NESEG2a NEG NESEG2) OU (NETRI3a NEG NETRI3) OU (NEQUA4a NEG NEQUA4) OU
  266. (NETET4a NEG NETET4) OU (NEPRI6a NEG NEPRI6) OU (NECUB8a NEG NECUB8) OU
  267. (NETRI6a NEG NETRI6) OU (NEQUA8a NEG NEQUA8) OU (NETE10a NEG NETE10) OU
  268. (NEPR15a NEG NEPR15) OU (NECU20a NEG NECU20));
  269. OPTI 'ECHO' 0;
  270. MESS '############################################################';
  271. MESS '# LES MAILLAGES MED RELUS NE SONT PAS CONFORMES AUX #';
  272. MESS '# MAILLAGES MED EXPORTES #';
  273. MESS '# ERREUR NOMBRE ELEMENTS #';
  274. MESS '############################################################';
  275. ERRE 5;
  276. FINS;
  277.  
  278. * Verification Nombre de Noeuds
  279. SI ((NOSEG2a NEG NOSEG2) OU (NOTRI3a NEG NOTRI3) OU (NOQUA4a NEG NOQUA4) OU
  280. (NOTET4a NEG NOTET4) OU (NOPRI6a NEG NOPRI6) OU (NOCUB8a NEG NOCUB8) OU
  281. (NOTRI6a NEG NOTRI6) OU (NOQUA8a NEG NOQUA8) OU (NOTE10a NEG NOTE10) OU
  282. (NOPR15a NEG NOPR15) OU (NOCU20a NEG NOCU20));
  283. OPTI 'ECHO' 0;
  284. MESS '############################################################';
  285. MESS '# LES MAILLAGES MED RELUS NE SONT PAS CONFORMES AUX #';
  286. MESS '# MAILLAGES MED EXPORTES: #';
  287. MESS '# ERREUR NOMBRE DE NOEUDS #';
  288. MESS '############################################################';
  289. ERRE 5;
  290. FINS;
  291.  
  292. * Verification Connectivite identique
  293. SI ((NEG ('NBEL' DSEG2a ) 0) OU (NEG ('NBEL' DTRI3a ) 0) OU
  294. (NEG ('NBEL' DQUA4a ) 0) OU (NEG ('NBEL' DTET4a ) 0) OU
  295. (NEG ('NBEL' DPRI6a ) 0) OU (NEG ('NBEL' DCUB8a ) 0) OU
  296. (NEG ('NBEL' DTRI6a ) 0) OU (NEG ('NBEL' DQUA8a ) 0) OU
  297. (NEG ('NBEL' DTE10a ) 0) OU (NEG ('NBEL' DPR15a ) 0) OU
  298. (NEG ('NBEL' DCU20a ) 0) );
  299. OPTI 'ECHO' 0;
  300. MESS '############################################################';
  301. MESS '# LES MAILLAGES MED RELUS NE SONT PAS CONFORMES AUX #';
  302. MESS '# MAILLAGES MED EXPORTES #';
  303. MESS '# ERREUR CONNECTIVITE #';
  304. MESS '############################################################';
  305. ERRE 5;
  306. FINS;
  307.  
  308.  
  309. 'LIST' TAB2;
  310. MAILTOTa= TAB2.'MAILTOT';
  311. MSEG2a = TAB2.'MSEG2' ;
  312. MCU20a = TAB2.'MCU20' ;
  313. MPR15a = TAB2.'MPR15' ;
  314. MTE10a = TAB2.'MTE10' ;
  315. MQUA8a = TAB2.'MQUA8' ;
  316. MTRI6a = TAB2.'MTRI6' ;
  317. MCUB8a = TAB2.'MCUB8' ;
  318. MPRI6a = TAB2.'MPRI6' ;
  319. MTET4a = TAB2.'MTET4' ;
  320. MQUA4a = TAB2.'MQUA4' ;
  321. MTRI3a = TAB2.'MTRI3' ;
  322.  
  323. 'TRAC' 'QUAL' MAILTOTa 'TITR' 'MAILLAGE_MAILTOT LU MED';
  324. 'TRAC' 'QUAL' MSEG2a 'TITR' 'MAILLAGE_MSEG2 LU MED';
  325. 'TRAC' 'QUAL' MCU20a 'TITR' 'MAILLAGE_MCU20 LU MED';
  326. 'TRAC' 'QUAL' MPR15a 'TITR' 'MAILLAGE_MPR15 LU MED';
  327. 'TRAC' 'QUAL' MTE10a 'TITR' 'MAILLAGE_MTE10 LU MED';
  328. 'TRAC' 'QUAL' MQUA8a 'TITR' 'MAILLAGE_MQUA8 LU MED';
  329. 'TRAC' 'QUAL' MTRI6a 'TITR' 'MAILLAGE_MTRI6 LU MED';
  330. 'TRAC' 'QUAL' MCUB8a 'TITR' 'MAILLAGE_MCUB8 LU MED';
  331. 'TRAC' 'QUAL' MPRI6a 'TITR' 'MAILLAGE_MPRI6 LU MED';
  332. 'TRAC' 'QUAL' MTET4a 'TITR' 'MAILLAGE_MTET4 LU MED';
  333. 'TRAC' 'QUAL' MQUA4a 'TITR' 'MAILLAGE_MQUA4 LU MED';
  334. 'TRAC' 'QUAL' MTRI3a 'TITR' 'MAILLAGE_MTRI3 LU MED';
  335.  
  336. * Nombre d''elements
  337. NESEG2a = 'NBEL' MSEG2a;
  338. NETRI3a = 'NBEL' MTRI3a;
  339. NEQUA4a = 'NBEL' MQUA4a;
  340. NETET4a = 'NBEL' MTET4a;
  341. NEPRI6a = 'NBEL' MPRI6a;
  342. NECUB8a = 'NBEL' MCUB8a;
  343. NETRI6a = 'NBEL' MTRI6a;
  344. NEQUA8a = 'NBEL' MQUA8a;
  345. NETE10a = 'NBEL' MTE10a;
  346. NEPR15a = 'NBEL' MPR15a;
  347. NECU20a = 'NBEL' MCU20a;
  348. NEMTOTa = 'NBEL' MAILTOTa;
  349.  
  350. * Nombre de noeuds
  351. NOSEG2a = 'NBNO' MSEG2a;
  352. NOTRI3a = 'NBNO' MTRI3a;
  353. NOQUA4a = 'NBNO' MQUA4a;
  354. NOTET4a = 'NBNO' MTET4a;
  355. NOPRI6a = 'NBNO' MPRI6a;
  356. NOCUB8a = 'NBNO' MCUB8a;
  357. NOTRI6a = 'NBNO' MTRI6a;
  358. NOQUA8a = 'NBNO' MQUA8a;
  359. NOTE10a = 'NBNO' MTE10a;
  360. NOPR15a = 'NBNO' MPR15a;
  361. NOCU20a = 'NBNO' MCU20a;
  362. NOMTOTa = 'NBNO' MAILTOTa;
  363.  
  364. * Fusion des Noeuds geometriquement confondus
  365. 'ELIM' MSEG2a MSEG2 1.D-5;
  366. 'ELIM' MTRI3a MTRI3 1.D-5;
  367. 'ELIM' MQUA4a MQUA4 1.D-5;
  368. 'ELIM' MTET4a MTET4 1.D-5;
  369. 'ELIM' MPRI6a MPRI6 1.D-5;
  370. 'ELIM' MCUB8a MCUB8 1.D-5;
  371. 'ELIM' MTRI6a MTRI6 1.D-5;
  372. 'ELIM' MQUA8a MQUA8 1.D-5;
  373. 'ELIM' MTE10a MTE10 1.D-5;
  374. 'ELIM' MPR15a MPR15 1.D-5;
  375. 'ELIM' MCU20a MCU20 1.D-5;
  376. 'ELIM' MAILTOTa MAILTOT 1.D-5;
  377.  
  378. * Difference symetrique (Union MOINS Intersection)
  379. DSEG2a = 'DIFF' MSEG2 MSEG2a ;
  380. DTRI3a = 'DIFF' MTRI3 MTRI3a ;
  381. DQUA4a = 'DIFF' MQUA4 MQUA4a ;
  382. DTET4a = 'DIFF' MTET4 MTET4a ;
  383. DPRI6a = 'DIFF' MPRI6 MPRI6a ;
  384. DCUB8a = 'DIFF' MCUB8 MCUB8a ;
  385. DTRI6a = 'DIFF' MTRI6 MTRI6a ;
  386. DQUA8a = 'DIFF' MQUA8 MQUA8a ;
  387. DTE10a = 'DIFF' MTE10 MTE10a ;
  388. DPR15a = 'DIFF' MPR15 MPR15a ;
  389. DCU20a = 'DIFF' MCU20 MCU20a ;
  390. DAILTOTa = 'DIFF' MAILTOT MAILTOTa;
  391.  
  392. * Verification Nombre d''elements
  393. SI ((NESEG2a NEG NESEG2) OU (NETRI3a NEG NETRI3) OU (NEQUA4a NEG NEQUA4) OU
  394. (NETET4a NEG NETET4) OU (NEPRI6a NEG NEPRI6) OU (NECUB8a NEG NECUB8) OU
  395. (NETRI6a NEG NETRI6) OU (NEQUA8a NEG NEQUA8) OU (NETE10a NEG NETE10) OU
  396. (NEPR15a NEG NEPR15) OU (NECU20a NEG NECU20) OU (NEMTOTa NEG NEMTOT));
  397. OPTI 'ECHO' 0;
  398. MESS '############################################################';
  399. MESS '# LES MAILLAGES MED RELUS NE SONT PAS CONFORMES AUX #';
  400. MESS '# MAILLAGES MED EXPORTES #';
  401. MESS '# ERREUR NOMBRE ELEMENTS #';
  402. MESS '############################################################';
  403. ERRE 5;
  404. FINS;
  405.  
  406. * Verification Nombre de Noeuds
  407. SI ((NOSEG2a NEG NOSEG2) OU (NOTRI3a NEG NOTRI3) OU (NOQUA4a NEG NOQUA4) OU
  408. (NOTET4a NEG NOTET4) OU (NOPRI6a NEG NOPRI6) OU (NOCUB8a NEG NOCUB8) OU
  409. (NOTRI6a NEG NOTRI6) OU (NOQUA8a NEG NOQUA8) OU (NOTE10a NEG NOTE10) OU
  410. (NOPR15a NEG NOPR15) OU (NOCU20a NEG NOCU20) OU (NOMTOTa NEG NOMTOT));
  411. OPTI 'ECHO' 0;
  412. MESS '############################################################';
  413. MESS '# LES MAILLAGES MED RELUS NE SONT PAS CONFORMES AUX #';
  414. MESS '# MAILLAGES MED EXPORTES: #';
  415. MESS '# ERREUR NOMBRE DE NOEUDS #';
  416. MESS '############################################################';
  417. ERRE 5;
  418. FINS;
  419.  
  420. * Verification Connectivite identique
  421. SI ((NEG ('NBEL' DSEG2a ) 0) OU (NEG ('NBEL' DTRI3a ) 0) OU
  422. (NEG ('NBEL' DQUA4a ) 0) OU (NEG ('NBEL' DTET4a ) 0) OU
  423. (NEG ('NBEL' DPRI6a ) 0) OU (NEG ('NBEL' DCUB8a ) 0) OU
  424. (NEG ('NBEL' DTRI6a ) 0) OU (NEG ('NBEL' DQUA8a ) 0) OU
  425. (NEG ('NBEL' DTE10a ) 0) OU (NEG ('NBEL' DPR15a ) 0) OU
  426. (NEG ('NBEL' DCU20a ) 0) OU (NEG ('NBEL' DAILTOTa) 0) );
  427. OPTI 'ECHO' 0;
  428. MESS '############################################################';
  429. MESS '# LES MAILLAGES MED RELUS NE SONT PAS CONFORMES AUX #';
  430. MESS '# MAILLAGES MED EXPORTES #';
  431. MESS '# ERREUR CONNECTIVITE #';
  432. MESS '############################################################';
  433. ERRE 5;
  434. FINS;
  435.  
  436.  
  437. *#####################################################################*
  438. * Verification relecture des CHPOINT
  439. *#####################################################################*
  440. TAB3 = 'LIRE' 'MED' 'MED_CHPOIN_simple.med' ;
  441. TAB4 = 'LIRE' 'MED' 'MED_CHPOIN_complexe.med';
  442. TAB5 = 'LIRE' 'MED' 'MED_CHPOIN_melange.med' ;
  443.  
  444. *#####################################################################*
  445. * Validation relecture des CHPOINT
  446. *#####################################################################*
  447. * CONTROLE VISUEL POUR LE MOMENT, COMPARER LES VALEURS !!! A FAIRE !!!
  448. 'LIST' TAB3;
  449. CHPX2 = TAB3.'CHPX1';
  450. 'TRAC' CHPX1 MTRI3 'TITR' 'CHPOINT_SIMPLE CAST3M';
  451. 'TRAC' CHPX2 TAB3.'MTRI3' 'TITR' 'CHPOINT_SIMPLE LU MED';
  452.  
  453. 'LIST' TAB4;
  454. CHPTO2 = TAB4.'CHPTOT';
  455. LISCOM = 'EXTR' CHPTO2 'COMP' ;
  456. NBCOMP = 'DIME' LISCOM ;
  457. REPE SURC NBCOMP;
  458. NOMCO='EXTR' LISCOM &SURC ;
  459. CORIG='EXCO' CHPTOT NOMCO NOMCO ;
  460. CLMED='EXCO' CHPTO2 NOMCO NOMCO ;
  461. TIT1 ='CHAI' 'CHPOINT_COMPLEXE CAST3M, Composante ' &SURC ' :' NOMCO;
  462. 'TRAC' CORIG MAILTOT 'TITR' TIT1;
  463. TIT2 ='CHAI' 'CHPOINT_COMPLEXE LU MED, Composante ' &SURC ' :' NOMCO;
  464. 'TRAC' CLMED TAB4.'MAILTOT' 'TITR' TIT2;
  465. FIN SURC;
  466.  
  467. 'LIST' TAB5;
  468. CHPX2 = TAB5.'CHPX1';
  469. 'TRAC' CHPX1 MTRI3 'TITR' 'MED plusieurs Champs : CHPOINT 1 SIMPLE CAST3M';
  470. 'TRAC' CHPX2 TAB5.'MTRI3' 'TITR' 'MED plusieurs Champs : CHPOINT 1 SIMPLE LU MED';
  471. CHPY2 = TAB5.'CHPY1';
  472. 'TRAC' CHPY1 MAILTOT 'TITR' 'MED plusieurs Champs : CHPOINT 2 SIMPLE CAST3M';
  473. 'TRAC' CHPY2 TAB5.'MAILTOT' 'TITR' 'MED plusieurs Champs : CHPOINT 2 SIMPLE LU MED';
  474. CHPTO2 = TAB5.'CHPTOT';
  475. LISCOM = 'EXTR' CHPTO2 'COMP' ;
  476. NBCOMP = 'DIME' LISCOM ;
  477. REPE SURC NBCOMP;
  478. NOMCO='EXTR' LISCOM &SURC ;
  479. CORIG='EXCO' CHPTOT NOMCO NOMCO ;
  480. CLMED='EXCO' CHPTO2 NOMCO NOMCO ;
  481. TIT1 ='CHAI' 'MED plusieurs Champs : CHPOINT 3 COMPLEXE CAST3M, Composante ' &SURC ' :' NOMCO;
  482. 'TRAC' CORIG MAILTOT 'TITR' TIT1;
  483. TIT2 ='CHAI' 'MED plusieurs Champs : CHPOINT 3 COMPLEXE LU MED, Composante ' &SURC ' :' NOMCO;
  484. 'TRAC' CLMED TAB5.'MAILTOT' 'TITR' TIT2;
  485. FIN SURC;
  486.  
  487. *#####################################################################*
  488. * Verification relecture des MCHAML
  489. *#####################################################################*
  490. TAB6 = 'LIRE' 'MED' 'MED_MCHAML_GRAVITE_SZ1.med' ;
  491. TAB7 = 'LIRE' 'MED' 'MED_MCHAML_GRAVITE_SZ11.med';
  492. TAB8 = 'LIRE' 'MED' 'MED_MCHAML_NOEUD_SZ1.med' ;
  493. TAB9 = 'LIRE' 'MED' 'MED_MCHAML_NOEUD_SZ11.med' ;
  494. TAB10= 'LIRE' 'MED' 'MED_MCHAML_melange.med' ;
  495.  
  496. *#####################################################################*
  497. * Validation relecture des MCHAML
  498. *#####################################################################*
  499. 'LIST' TAB6;
  500. CHAX2 = 'CHAN' 'CONS' TAB6.'CHAX1' 'CONS1';
  501. MOCHAX2 = 'MODE' ('EXTR' CHAX2 'MAILLAGE') 'MECANIQUE' 'CONS' 'CONS1';
  502. 'TRAC' MOD1a CHAX1 'TITR' 'MCHAML_GRAVITE_SZ1 CAST3M';
  503. 'TRAC' MOCHAX2 CHAX2 'TITR' 'MCHAML_GRAVITE_SZ1 LU MED';
  504.  
  505. *Verification : Le champ lu est un champ de coordonnees, on le recree
  506. CHAX2v = 'MANU' 'CHML' MOCHAX2 'SCAL' 1.0 'GRAVITE';
  507. CHAX2v = 'NOMC' ('COOR' 1 CHAX2v) 'UX' ;
  508. ValX2 = 'MAXI' ((CHAX2 - CHAX2v) ** 2);
  509. SI(NEG ValX2 0.D0);
  510. OPTI 'ECHO' 0;
  511. MESS '############################################################';
  512. MESS '# LE MCHAML MED CHAX2 RELUS EST NON CONFORMES AUX #';
  513. MESS '# MCHAML EXPORTES #';
  514. MESS '############################################################';
  515. ERRE 5;
  516. FINS;
  517.  
  518. 'LIST' TAB7;
  519. CHAY2 = 'CHAN' 'CONS' TAB7.'CHAY1' 'CONS1';
  520. MOCHAY2 = 'MODE' ('EXTR' CHAY2 'MAILLAGE') 'MECANIQUE' 'CONS' 'CONS1';
  521. 'TRAC' MOD1b CHAY1 'TITR' 'MCHAML_GRAVITE_SZ11 CAST3M';
  522. 'TRAC' MOCHAY2 CHAY2 'TITR' 'MCHAML_GRAVITE_SZ11 LU MED';
  523.  
  524. *Verification : Le champ lu est un champ de coordonnees, on le recree
  525. CHAY2v = 'MANU' 'CHML' MOCHAY2 'SCAL' 1.0 'GRAVITE';
  526. CHAY2v = 'NOMC' ('COOR' 2 CHAY2v) 'UY' ;
  527. ValY2 = 'MAXI' ((CHAY2 - CHAY2v) ** 2);
  528. SI(NEG ValY2 0.D0);
  529. OPTI 'ECHO' 0;
  530. MESS '############################################################';
  531. MESS '# LE MCHAML MED CHAY2 RELUS EST NON CONFORMES AUX #';
  532. MESS '# MCHAML EXPORTES #';
  533. MESS '############################################################';
  534. ERRE 5;
  535. FINS;
  536.  
  537. 'LIST' TAB8;
  538. CHAZ3 = 'CHAN' 'CONS' TAB8.'CHAZ1' 'CONS1';
  539. MOCHAZ3 = 'MODE' ('EXTR' CHAZ3 'MAILLAGE') 'MECANIQUE' 'CONS' 'CONS1';
  540. 'TRAC' MOD1a CHAZ1 'TITR' 'MED_MCHAML_NOEUD_SZ1 CAST3M';
  541. 'TRAC' MOCHAZ3 CHAZ3 'TITR' 'MED_MCHAML_NOEUD_SZ1 LU MED';
  542.  
  543. *Verification : Le champ lu est un champ de coordonnees, on le recree
  544. CHAZ3v = 'MANU' 'CHML' MOCHAZ3 'SCAL' 1.0 'NOEUD';
  545. CHAZ3v = 'NOMC' ('COOR' 3 CHAZ3v) 'UZ' ;
  546. ValZ3 = 'MAXI' ((CHAZ3 - CHAZ3v) ** 2);
  547. SI(NEG ValZ3 0.D0);
  548. OPTI 'ECHO' 0;
  549. MESS '############################################################';
  550. MESS '# LE MCHAML MED CHAZ3 RELUS EST NON CONFORMES AUX #';
  551. MESS '# MCHAML EXPORTES #';
  552. MESS '############################################################';
  553. ERRE 5;
  554. FINS;
  555.  
  556. 'LIST' TAB9;
  557. CHAZ4 = 'CHAN' 'CONS' TAB9.'CHAZ2' 'CONS1';
  558. MOCHAZ4 = 'MODE' ('EXTR' CHAZ4 'MAILLAGE') 'MECANIQUE' 'CONS' 'CONS1';
  559. 'TRAC' MOD1b CHAZ2 'TITR' 'MED_MCHAML_NOEUD_SZ11 CAST3M';
  560. 'TRAC' MOCHAZ4 CHAZ4 'TITR' 'MED_MCHAML_NOEUD_SZ11 LU MED';
  561.  
  562. *Verification : Le champ lu est un champ de coordonnees, on le recree
  563. CHAZ4v = 'MANU' 'CHML' MOCHAZ4 'SCAL' 1.0 'NOEUD';
  564. CHAZ4v = 'NOMC' ('COOR' 3 CHAZ4v) 'UZ' ;
  565. ValZ4 = 'MAXI' ((CHAZ4 - CHAZ4v) ** 2);
  566. SI(NEG ValZ4 0.D0);
  567. OPTI 'ECHO' 0;
  568. MESS '############################################################';
  569. MESS '# LE MCHAML MED CHAZ4 RELUS EST NON CONFORMES AUX #';
  570. MESS '# MCHAML EXPORTES #';
  571. MESS '############################################################';
  572. ERRE 5;
  573. FINS;
  574.  
  575. 'LIST' TAB10;
  576. CHAX2 = 'CHAN' 'CONS' TAB10.'CHAX1' 'CONS1';
  577. MOCHAX2 = 'MODE' ('EXTR' CHAX2 'MAILLAGE') 'MECANIQUE' 'CONS' 'CONS1';
  578. 'TRAC' MOD1a CHAX1 'TITR' 'MCHAML_GRAVITE_SZ1 CAST3M';
  579. 'TRAC' MOCHAX2 CHAX2 'TITR' 'MCHAML_GRAVITE_SZ1 LU MED';
  580. CHAY2 = 'CHAN' 'CONS' TAB10.'CHAY1' 'CONS1';
  581. MOCHAY2 = 'MODE' ('EXTR' CHAY2 'MAILLAGE') 'MECANIQUE' 'CONS' 'CONS1';
  582. 'TRAC' MOD1b CHAY1 'TITR' 'MCHAML_GRAVITE_SZ11 CAST3M';
  583. 'TRAC' MOCHAY2 CHAY2 'TITR' 'MCHAML_GRAVITE_SZ11 LU MED';
  584. CHAZ3 = 'CHAN' 'CONS' TAB10.'CHAZ1' 'CONS1';
  585. MOCHAZ3 = 'MODE' ('EXTR' CHAZ3 'MAILLAGE') 'MECANIQUE' 'CONS' 'CONS1';
  586. 'TRAC' MOD1a CHAZ1 'TITR' 'MED_MCHAML_NOEUD_SZ1 CAST3M';
  587. 'TRAC' MOCHAZ3 CHAZ3 'TITR' 'MED_MCHAML_NOEUD_SZ1 LU MED';
  588. CHAZ4 = 'CHAN' 'CONS' TAB10.'CHAZ2' 'CONS1';
  589. MOCHAZ4 = 'MODE' ('EXTR' CHAZ4 'MAILLAGE') 'MECANIQUE' 'CONS' 'CONS1';
  590. 'TRAC' MOD1b CHAZ2 'TITR' 'MED_MCHAML_NOEUD_SZ11 CAST3M';
  591. 'TRAC' MOCHAZ4 CHAZ4 'TITR' 'MED_MCHAML_NOEUD_SZ11 LU MED';
  592.  
  593. *Verification : Les champs lus sont des champs de coordonnees, on les recree
  594. CHAX2v = 'MANU' 'CHML' MOCHAX2 'SCAL' 1.0 'GRAVITE';
  595. CHAX2v = 'NOMC' ('COOR' 1 CHAX2v) 'UX' ;
  596. ValX2 = 'MAXI' ((CHAX2 - CHAX2v) ** 2);
  597.  
  598. CHAY2v = 'MANU' 'CHML' MOCHAY2 'SCAL' 1.0 'GRAVITE';
  599. CHAY2v = 'NOMC' ('COOR' 2 CHAY2v) 'UY' ;
  600. ValY2 = 'MAXI' ((CHAY2 - CHAY2v) ** 2);
  601.  
  602. CHAZ3v = 'MANU' 'CHML' MOCHAZ3 'SCAL' 1.0 'NOEUD';
  603. CHAZ3v = 'NOMC' ('COOR' 3 CHAZ3v) 'UZ' ;
  604. ValZ3 = 'MAXI' ((CHAZ3 - CHAZ3v) ** 2);
  605.  
  606. CHAZ4v = 'MANU' 'CHML' MOCHAZ4 'SCAL' 1.0 'NOEUD';
  607. CHAZ4v = 'NOMC' ('COOR' 3 CHAZ4v) 'UZ' ;
  608. ValZ4 = 'MAXI' ((CHAZ4 - CHAZ4v) ** 2);
  609. SI((NEG ValX2 0.D0) OU (NEG ValY2 0.D0) OU
  610. (NEG ValZ3 0.D0) OU (NEG ValZ4 0.D0) );
  611. OPTI 'ECHO' 0;
  612. MESS '############################################################';
  613. MESS '# LES MCHAML MED RELUS SONT NON CONFORMES AUX #';
  614. MESS '# MCHAML EXPORTES #';
  615. MESS '############################################################';
  616. ERRE 5;
  617. FINS;
  618. FIN;
  619.  
  620.  
  621.  
  622.  

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