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

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