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.2.1/ForMEDReader33.med';
  124. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  125. TAB1 = 'LIRE' 'MED' FIC2 ;
  126. MEDTAB TAB1;
  127.  
  128. FIC1 = 'CHAI' 'v3.0.7/Mesh_plan_3D.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_tetra.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_arc.med';
  139. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  140. TAB1 = 'LIRE' 'MED' FIC2 ;
  141. MEDTAB TAB1;
  142.  
  143. FIC1 = 'CHAI' 'v3.0.7/Mesh_mechanic_t_quad.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.med';
  149. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  150. TAB1 = 'LIRE' 'MED' FIC2 ;
  151. MEDTAB TAB1;
  152.  
  153. FIC1 = 'CHAI' 'v3.0.7/Mesh_pyramids_quadratic.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_hexa.med';
  159. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  160. TAB1 = 'LIRE' 'MED' FIC2 ;
  161. MEDTAB TAB1;
  162.  
  163. FIC1 = 'CHAI' 'v3.0.7/Mesh_sphere_h_quad_arc.med';
  164. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  165. TAB1 = 'LIRE' 'MED' FIC2 ;
  166. MEDTAB TAB1;
  167.  
  168. ***********************************************************************
  169. * Lecture de MAILLAGES Statiques avec plusieurs types d'éléments
  170. * - MAILLAGES avec plusieurs groupes par famille
  171. ***********************************************************************
  172. FIC1 = 'CHAI' 'v3.0.7/Mesh_structelem.med';
  173. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  174. TAB1 = 'LIRE' 'MED' FIC2 ;
  175. MEDTAB TAB1;
  176.  
  177. ***********************************************************************
  178. * Lecture de CHPOINT Statiques
  179. * -MAILLAGES
  180. * -CHPOINT
  181. ***********************************************************************
  182. FIC1 = 'CHAI' 'v3.0.7/testNodeFieldOnAll.med';
  183. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  184. TAB1 = 'LIRE' 'MED' FIC2 ;
  185. MEDTAB TAB1;
  186.  
  187. FIC1 = 'CHAI' 'v3.0.7/testNodeFieldOnPart.med';
  188. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  189. TAB1 = 'LIRE' 'MED' FIC2 ;
  190. MEDTAB TAB1;
  191.  
  192.  
  193.  
  194.  
  195. ***********************************************************************
  196. * Lecture de MAILLAGES Statiques avec plusieurs types d'éléments
  197. * Version 3.2.1
  198. ***********************************************************************
  199. FIC1 = 'CHAI' 'v3.2.1/Mesh_2D_biquadratic_arc.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.med';
  205. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  206. TAB1 = 'LIRE' 'MED' FIC2 ;
  207. MEDTAB TAB1;
  208.  
  209. FIC1 = 'CHAI' 'v3.2.1/Mesh_2D_quadratic_arc.med';
  210. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  211. TAB1 = 'LIRE' 'MED' FIC2 ;
  212. MEDTAB TAB1;
  213.  
  214. FIC1 = 'CHAI' 'v3.2.1/Mesh_plan_3D.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_tetra.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_arc.med';
  225. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  226. TAB1 = 'LIRE' 'MED' FIC2 ;
  227. MEDTAB TAB1;
  228.  
  229. FIC1 = 'CHAI' 'v3.2.1/Mesh_mechanic_t_quad.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.med';
  235. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  236. TAB1 = 'LIRE' 'MED' FIC2 ;
  237. MEDTAB TAB1;
  238.  
  239. FIC1 = 'CHAI' 'v3.2.1/Mesh_pyramids_quadratic.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_hexa.med';
  245. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  246. TAB1 = 'LIRE' 'MED' FIC2 ;
  247. MEDTAB TAB1;
  248.  
  249. FIC1 = 'CHAI' 'v3.2.1/Mesh_sphere_h_quad_arc.med';
  250. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  251. TAB1 = 'LIRE' 'MED' FIC2 ;
  252. MEDTAB TAB1;
  253.  
  254. ***********************************************************************
  255. * Lecture de MAILLAGES Statiques avec plusieurs types d'éléments
  256. * - MAILLAGES avec plusieurs groupes par famille
  257. ***********************************************************************
  258. FIC1 = 'CHAI' 'v3.2.1/Mesh_structelem.med';
  259. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  260. TAB1 = 'LIRE' 'MED' FIC2 ;
  261. MEDTAB TAB1;
  262.  
  263. ***********************************************************************
  264. * Lecture de CHPOINT Statiques
  265. * -MAILLAGES
  266. * -CHPOINT
  267. ***********************************************************************
  268. FIC1 = 'CHAI' 'v3.2.1/testNodeFieldOnAll.med';
  269. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  270. TAB1 = 'LIRE' 'MED' FIC2 ;
  271. MEDTAB TAB1;
  272.  
  273. FIC1 = 'CHAI' 'v3.2.1/testNodeFieldOnPart.med';
  274. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  275. TAB1 = 'LIRE' 'MED' FIC2 ;
  276. MEDTAB TAB1;
  277.  
  278. ***********************************************************************
  279. * Lecture de CHAMPS Temporels
  280. * -MAILLAGES
  281. * -CHPOINT
  282. * -MCHAML
  283. ***********************************************************************
  284. FIC1 = 'CHAI' 'v3.2.1/ForMEDReader10.med' ;
  285. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  286. TAB1 = 'LIRE' 'MED' FIC2 ;
  287. MEDTAB TAB1;
  288.  
  289. FIC1 = 'CHAI' 'v3.2.1/ForMEDReader11.med' ;
  290. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  291. * TAB1 = 'LIRE' 'MED' FIC2 ;
  292. * Incompatible actuellement car : Valeurs aux points de Gauss
  293.  
  294. FIC1 = 'CHAI' 'v3.2.1/ForMEDReader13.med';
  295. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  296. * TAB1 = 'LIRE' 'MED' FIC2 ;
  297. * Incompatible actuellement car : Type d'element incompatible:POLYGON & HEXAGON
  298.  
  299. FIC1 = 'CHAI' 'v3.2.1/ForMEDReader17.med' ;
  300. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  301. TAB1 = 'LIRE' 'MED' FIC2 ;
  302. MEDTAB TAB1;
  303.  
  304. FIC1 = 'CHAI' 'v3.2.1/ForMEDReader25.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/ForMEDReader29.med';
  310. FIC2 = 'CHAI' ('CHAINE' DIVERS '/MED/' FIC1) ;
  311. * TAB1 = 'LIRE' 'MED' FIC2 ;
  312. * Incompatible actuellement car : Valeurs aux points de Gauss
  313.  
  314. FIN;
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  

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