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

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