Télécharger lire_med_01.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : lire_med_01.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. * Presentation : Ce cas-test permet de 'LIRE' des fichiers au format MED
  6. * fournis par le LGLS pour validation
  7. * - v3.0.7
  8. * - v3.2.1
  9. *
  10. * Ameliorations a prevoir :
  11. * - 'LIRE' les MCHAML aux points d'intégration
  12. *
  13. * Creation : 11/03/2014
  14. * Createur : C. BERTHINIER
  15. *
  16. * Modifications :
  17. * CB215821 26/06/2015 : Passage à la lecture dans une TABLE pour les
  18. * noms à plus de 8 caractères
  19. * CB215821 01/02/2018 : Passage a la version 3.2.1 de MED
  20. * Ajout de la lecture des CHPOINT (Statiques & Temporels)
  21. * Ajout de la lecture des MCHAML (Statiques & Temporels)
  22. ************************************************************************
  23.  
  24. * repertoire des fichiers "divers"
  25. DIVERS = VENV 'CASTEM_DIVERS';
  26. * Test si 64 bits. Sortie sinon
  27. 'SI' (2**31 < 0) ; 'MESS' 'MED 32 bits non disponible'; 'FIN'; 'FINSI';
  28.  
  29. *
  30. 'OPTI' 'TRAC' 'PSC';
  31.  
  32. ************************************************************************
  33. * PROCEDURE POUR PARCOURIR LA TABLE LUES DE MANIERE INCREMENTALE
  34. ************************************************************************
  35. 'DEBP' MEDTAB ITAB*'TABLE';
  36. 'LIST' ITAB ;
  37. LIST_EXCEPTION ='MOTS' 'TRI7' 'QUA9';'COMM' 'Exception car MODE ne les prends pas en compte';
  38. TAB2 ='INDE' ITAB;
  39. DIMT ='DIME' TAB2;
  40. 'REPE' SURDIM DIMT;
  41. OBJ1 = ITAB.('MOT' TAB2. &SURDIM);
  42. TYP1 ='TYPE' OBJ1;
  43. Tit1 ='CHAI' FIC1 ' : ' ('MOT' TAB2. &SURDIM) ;
  44.  
  45. * Cas des POINTS
  46. 'SI' ('EGA' TYP1 'POINT ');
  47. Tit1 ='CHAI' Tit1 ':POINT';
  48. 'TRAC' 'CACH' ('MANU' 'POI1' OBJ1) 'TITR' Tit1;
  49. 'FINS';
  50. * Cas des MAILLAGES
  51. 'SI' ('EGA' TYP1 'MAILLAGE');
  52. Tit1 ='CHAI' Tit1 ':MAILLAGE';
  53. 'TRAC' 'CACH' OBJ1 'TITR' Tit1;
  54. 'FINS';
  55.  
  56. * Cas des CHAMPS uniques
  57. 'SI' ('EGA' TYP1 'CHPOINT');
  58. Tit1 ='CHAI' Tit1 ':CHPOINT';
  59. 'TRAC' OBJ1 ITAB.(TAB2. 1) 'TITR' Tit1;
  60. 'FINS';
  61. 'SI' ('EGA' TYP1 'MCHAML' );
  62. MCH ='CHAN' 'CONS' OBJ1 'CONS1';
  63. MAILi='EXTR' MCH 'MAILLAGE' ;
  64. TYPEL='ELEM' MAILi 'TYPE';
  65. 'SI' ('NON' ('EXIS' LIST_EXCEPTION TYPEL 'OU'));
  66. MOCH ='MODE' MAILi 'MECANIQUE' 'CONS' 'CONS1';
  67. Tit1 ='CHAI' Tit1 ':MCHAML';
  68. 'TRAC' MOCH MCH 'TITR' Tit1;
  69. 'FINS';
  70. 'FINS';
  71.  
  72. * Cas des Champs a plusieurs instants
  73. 'SI' ('EGA' TYP1 'TABLE');
  74. TAB3 ='INDE' OBJ1 ;
  75. DIM2 ='DIME' OBJ1.'TEMPS' ;
  76. TAB_TE = OBJ1.('MOT' TAB3. 1);
  77. IND_TE ='INDE' TAB_TE ;
  78. TAB_CH = OBJ1.('MOT' TAB3. 2);
  79. 'REPE' SURJ DIM2;
  80. Tps = OBJ1.'TEMPS' .(IND_TE.&SURJ) ;
  81. OBJ2= TAB_CH .(IND_TE.&SURJ) ;
  82. TYP2='TYPE' OBJ2 ;
  83. Tit2='CHAI' Tit1 ' - Temps=' Tps ;
  84. 'SI'('EGA' TYP2 'CHPOINT');
  85. Tit2 ='CHAI' Tit2 ':CHPOINT';
  86. 'TRAC' ITAB.(TAB2. 1) OBJ2 'TITR' Tit2;
  87. 'FINS';
  88. 'SI' ('EGA' TYP2 'MCHAML');
  89. MCH ='CHAN' 'CONS' OBJ2 'CONS1';
  90. MAILi='EXTR' MCH 'MAILLAGE' ;
  91. TYPEL='ELEM' MAILi 'TYPE';
  92. 'SI' ('NON' ('EXIS' LIST_EXCEPTION TYPEL 'OU'));
  93. MOCH ='MODE' MAILi 'MECANIQUE' 'CONS' 'CONS1';
  94. Tit2 ='CHAI' Tit2 ':MCHAML';
  95. 'TRAC' MOCH MCH 'TITR' Tit2;
  96. 'FINS';
  97. 'FINS';
  98. 'FIN' SURJ;
  99. 'FINS';
  100. 'FIN' SURDIM;
  101. 'FINP';
  102.  
  103.  
  104. ***********************************************************************
  105. * Lecture de MAILLAGES Statiques avec plusieurs types d'éléments
  106. * Version 3.0.7
  107. ***********************************************************************
  108. FIC1 = 'CHAI' 'v3.0.7/Mesh_2D_biquadratic_arc.med';
  109. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  110. TAB1 = 'LIRE' 'MED' FIC2 ;
  111. MEDTAB TAB1;
  112.  
  113. FIC1 = 'CHAI' 'v3.0.7/Mesh_2D_quadratic.med';
  114. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  115. TAB1 = 'LIRE' 'MED' FIC2 ;
  116. MEDTAB TAB1;
  117.  
  118. FIC1 = 'CHAI' 'v3.0.7/Mesh_2D_quadratic_arc.med';
  119. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  120. TAB1 = 'LIRE' 'MED' FIC2 ;
  121. MEDTAB TAB1;
  122.  
  123. FIC1 = 'CHAI' 'v3.0.7/Mesh_plan_3D.med';
  124. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  125. TAB1 = 'LIRE' 'MED' FIC2 ;
  126. MEDTAB TAB1;
  127.  
  128. FIC1 = 'CHAI' 'v3.0.7/Mesh_mechanic_tetra.med';
  129. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  130. TAB1 = 'LIRE' 'MED' FIC2 ;
  131. MEDTAB TAB1;
  132.  
  133. FIC1 = 'CHAI' 'v3.0.7/Mesh_mechanic_t_quad_arc.med';
  134. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  135. TAB1 = 'LIRE' 'MED' FIC2 ;
  136. MEDTAB TAB1;
  137.  
  138. FIC1 = 'CHAI' 'v3.0.7/Mesh_mechanic_t_quad.med';
  139. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  140. TAB1 = 'LIRE' 'MED' FIC2 ;
  141. MEDTAB TAB1;
  142.  
  143. FIC1 = 'CHAI' 'v3.0.7/Mesh_pyramids.med';
  144. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  145. TAB1 = 'LIRE' 'MED' FIC2 ;
  146. MEDTAB TAB1;
  147.  
  148. FIC1 = 'CHAI' 'v3.0.7/Mesh_pyramids_quadratic.med';
  149. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  150. TAB1 = 'LIRE' 'MED' FIC2 ;
  151. MEDTAB TAB1;
  152.  
  153. FIC1 = 'CHAI' 'v3.0.7/Mesh_sphere_hexa.med';
  154. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  155. TAB1 = 'LIRE' 'MED' FIC2 ;
  156. MEDTAB TAB1;
  157.  
  158. FIC1 = 'CHAI' 'v3.0.7/Mesh_sphere_h_quad_arc.med';
  159. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  160. TAB1 = 'LIRE' 'MED' FIC2 ;
  161. MEDTAB TAB1;
  162.  
  163. ***********************************************************************
  164. * Lecture de MAILLAGES Statiques avec plusieurs types d'éléments
  165. * - MAILLAGES avec plusieurs groupes par famille
  166. ***********************************************************************
  167. FIC1 = 'CHAI' 'v3.0.7/Mesh_structelem.med';
  168. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  169. TAB1 = 'LIRE' 'MED' FIC2 ;
  170. MEDTAB TAB1;
  171.  
  172. ***********************************************************************
  173. * Lecture de CHPOINT Statiques
  174. * -MAILLAGES
  175. * -CHPOINT
  176. ***********************************************************************
  177. FIC1 = 'CHAI' 'v3.0.7/testNodeFieldOnAll.med';
  178. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  179. TAB1 = 'LIRE' 'MED' FIC2 ;
  180. MEDTAB TAB1;
  181.  
  182. FIC1 = 'CHAI' 'v3.0.7/testNodeFieldOnPart.med';
  183. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  184. TAB1 = 'LIRE' 'MED' FIC2 ;
  185. MEDTAB TAB1;
  186.  
  187.  
  188.  
  189.  
  190. ***********************************************************************
  191. * Lecture de MAILLAGES Statiques avec plusieurs types d'éléments
  192. * Version 3.2.1
  193. ***********************************************************************
  194. FIC1 = 'CHAI' 'v3.2.1/Mesh_2D_biquadratic_arc.med';
  195. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  196. TAB1 = 'LIRE' 'MED' FIC2 ;
  197. MEDTAB TAB1;
  198.  
  199. FIC1 = 'CHAI' 'v3.2.1/Mesh_2D_quadratic.med';
  200. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  201. TAB1 = 'LIRE' 'MED' FIC2 ;
  202. MEDTAB TAB1;
  203.  
  204. FIC1 = 'CHAI' 'v3.2.1/Mesh_2D_quadratic_arc.med';
  205. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  206. TAB1 = 'LIRE' 'MED' FIC2 ;
  207. MEDTAB TAB1;
  208.  
  209. FIC1 = 'CHAI' 'v3.2.1/Mesh_plan_3D.med';
  210. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  211. TAB1 = 'LIRE' 'MED' FIC2 ;
  212. MEDTAB TAB1;
  213.  
  214. FIC1 = 'CHAI' 'v3.2.1/Mesh_mechanic_tetra.med';
  215. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  216. TAB1 = 'LIRE' 'MED' FIC2 ;
  217. MEDTAB TAB1;
  218.  
  219. FIC1 = 'CHAI' 'v3.2.1/Mesh_mechanic_t_quad_arc.med';
  220. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  221. TAB1 = 'LIRE' 'MED' FIC2 ;
  222. MEDTAB TAB1;
  223.  
  224. FIC1 = 'CHAI' 'v3.2.1/Mesh_mechanic_t_quad.med';
  225. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  226. TAB1 = 'LIRE' 'MED' FIC2 ;
  227. MEDTAB TAB1;
  228.  
  229. FIC1 = 'CHAI' 'v3.2.1/Mesh_pyramids.med';
  230. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  231. TAB1 = 'LIRE' 'MED' FIC2 ;
  232. MEDTAB TAB1;
  233.  
  234. FIC1 = 'CHAI' 'v3.2.1/Mesh_pyramids_quadratic.med';
  235. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  236. TAB1 = 'LIRE' 'MED' FIC2 ;
  237. MEDTAB TAB1;
  238.  
  239. FIC1 = 'CHAI' 'v3.2.1/Mesh_sphere_hexa.med';
  240. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  241. TAB1 = 'LIRE' 'MED' FIC2 ;
  242. MEDTAB TAB1;
  243.  
  244. FIC1 = 'CHAI' 'v3.2.1/Mesh_sphere_h_quad_arc.med';
  245. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  246. TAB1 = 'LIRE' 'MED' FIC2 ;
  247. MEDTAB TAB1;
  248.  
  249. ***********************************************************************
  250. * Lecture de MAILLAGES Statiques avec plusieurs types d'éléments
  251. * - MAILLAGES avec plusieurs groupes par famille
  252. ***********************************************************************
  253. FIC1 = 'CHAI' 'v3.2.1/Mesh_structelem.med';
  254. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  255. TAB1 = 'LIRE' 'MED' FIC2 ;
  256. MEDTAB TAB1;
  257.  
  258. ***********************************************************************
  259. * Lecture de CHPOINT Statiques
  260. * -MAILLAGES
  261. * -CHPOINT
  262. ***********************************************************************
  263. FIC1 = 'CHAI' 'v3.2.1/testNodeFieldOnAll.med';
  264. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  265. TAB1 = 'LIRE' 'MED' FIC2 ;
  266. MEDTAB TAB1;
  267.  
  268. FIC1 = 'CHAI' 'v3.2.1/testNodeFieldOnPart.med';
  269. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  270. TAB1 = 'LIRE' 'MED' FIC2 ;
  271. MEDTAB TAB1;
  272.  
  273. ***********************************************************************
  274. * Lecture de CHAMPS Temporels
  275. * -MAILLAGES
  276. * -CHPOINT
  277. * -MCHAML
  278. ***********************************************************************
  279. FIC1 = 'CHAI' 'v3.2.1/ForMEDReader10.med' ;
  280. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  281. TAB1 = 'LIRE' 'MED' FIC2 ;
  282. MEDTAB TAB1;
  283.  
  284. FIC1 = 'CHAI' 'v3.2.1/ForMEDReader11.med' ;
  285. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  286. * TAB1 = 'LIRE' 'MED' FIC2 ;
  287. * Incompatible actuellement car : Valeurs aux points de Gauss
  288.  
  289. FIC1 = 'CHAI' 'v3.2.1/ForMEDReader13.med';
  290. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  291. * TAB1 = 'LIRE' 'MED' FIC2 ;
  292. * Incompatible actuellement car : Type d'element incompatible:POLYGON & HEXAGON
  293.  
  294. FIC1 = 'CHAI' 'v3.2.1/ForMEDReader17.med' ;
  295. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  296. TAB1 = 'LIRE' 'MED' FIC2 ;
  297. MEDTAB TAB1;
  298.  
  299. FIC1 = 'CHAI' 'v3.2.1/ForMEDReader25.med';
  300. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  301. * TAB1 = 'LIRE' 'MED' FIC2 ;
  302. * Incompatible actuellement car : Valeurs aux points de Gauss
  303.  
  304. FIC1 = 'CHAI' 'v3.2.1/ForMEDReader29.med';
  305. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  306. * TAB1 = 'LIRE' 'MED' FIC2 ;
  307. * Incompatible actuellement car : Valeurs aux points de Gauss
  308.  
  309. FIC1 = 'CHAI' 'v3.2.1/ForMEDReader33.med';
  310. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  311. TAB1 = 'LIRE' 'MED' FIC2 ;
  312. MEDTAB TAB1;
  313.  
  314. FIN;
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  

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