* fichier : lire_med_01.dgibi
************************************************************************
************************************************************************
* Presentation : Ce cas-test permet de 'LIRE' des fichiers au format MED
* fournis par le LGLS pour validation
* - v3.0.7
* - v3.2.1
*
* Ameliorations a prevoir :
* - 'LIRE' les MCHAML aux points d'intégration
*
* Creation : 11/03/2014
* Createur : C. BERTHINIER
*
* Modifications :
* CB215821 26/06/2015 : Passage à la lecture dans une TABLE pour les
* noms à plus de 8 caractères
* CB215821 01/02/2018 : Passage a la version 3.2.1 de MED
* Ajout de la lecture des CHPOINT (Statiques & Temporels)
* Ajout de la lecture des MCHAML (Statiques & Temporels)
************************************************************************
* repertoire des fichiers "divers"
DIVERS
= VENV 'CASTEM_DIVERS'
;* Test si 64 bits. Sortie sinon
'
SI'
(2**31 < 0) ; '
MESS' 'MED
32 bits
non disponible'
; '
FIN'
; '
FINSI'
;
*
************************************************************************
* PROCEDURE POUR PARCOURIR LA TABLE LUES DE MANIERE INCREMENTALE
************************************************************************
'DEBP' MEDTAB ITAB*'TABLE';
LIST_EXCEPTION
='
MOTS' 'TRI7' 'QUA9'
;'
COMM' 'Exception car
MODE ne les prends pas en compte'
; 'REPE' SURDIM DIMT;
OBJ1
= ITAB.
('
MOT' TAB2.
&SURDIM
); Tit1
='
CHAI' FIC1 ' : '
('
MOT' TAB2.
&SURDIM
) ;
* Cas des POINTS
'SI' ('EGA' TYP1 'POINT ');
Tit1
='
CHAI' Tit1 ':POINT'
; 'FINS';
* Cas des MAILLAGES
'SI' ('EGA' TYP1 'MAILLAGE');
Tit1
='
CHAI' Tit1 ':MAILLAGE'
; 'FINS';
* Cas des CHAMPS uniques
'SI' ('EGA' TYP1 'CHPOINT');
Tit1
='
CHAI' Tit1 ':CHPOINT'
; 'FINS';
'SI' ('EGA' TYP1 'MCHAML' );
MCH
='
CHAN' 'CONS' OBJ1 'CONS1'
; MAILi
='
EXTR' MCH 'MAILLAGE'
; '
SI'
('
NON'
('
EXIS' LIST_EXCEPTION TYPEL '
OU'
)); MOCH
='
MODE' MAILi 'MECANIQUE' 'CONS' 'CONS1'
; Tit1
='
CHAI' Tit1 ':MCHAML'
; 'FINS';
'FINS';
* Cas des Champs a plusieurs instants
'SI' ('EGA' TYP1 'TABLE');
DIM2
='
DIME' OBJ1.'TEMPS'
; TAB_TE
= OBJ1.
('
MOT' TAB3.
1); TAB_CH
= OBJ1.
('
MOT' TAB3.
2); 'REPE' SURJ DIM2;
Tps = OBJ1.'TEMPS' .(IND_TE.&SURJ) ;
OBJ2= TAB_CH .(IND_TE.&SURJ) ;
Tit2
='
CHAI' Tit1 '
- Temps
=' Tps
; 'SI'('EGA' TYP2 'CHPOINT');
Tit2
='
CHAI' Tit2 ':CHPOINT'
; 'FINS';
'SI' ('EGA' TYP2 'MCHAML');
MCH
='
CHAN' 'CONS' OBJ2 'CONS1'
; MAILi
='
EXTR' MCH 'MAILLAGE'
; '
SI'
('
NON'
('
EXIS' LIST_EXCEPTION TYPEL '
OU'
)); MOCH
='
MODE' MAILi 'MECANIQUE' 'CONS' 'CONS1'
; Tit2
='
CHAI' Tit2 ':MCHAML'
; 'FINS';
'FINS';
'FIN' SURJ;
'FINS';
'FIN' SURDIM;
'FINP';
***********************************************************************
* Lecture de MAILLAGES Statiques avec plusieurs types d'éléments
* Version 3.0.7
***********************************************************************
FIC1
= '
CHAI' 'v3.0.7
/Mesh_2D_biquadratic_arc.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.0.7
/Mesh_2D_quadratic.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.0.7
/Mesh_2D_quadratic_arc.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.0.7
/Mesh_plan_3D.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.0.7
/Mesh_mechanic_tetra.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.0.7
/Mesh_mechanic_t_quad_arc.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.0.7
/Mesh_mechanic_t_quad.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.0.7
/Mesh_pyramids.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.0.7
/Mesh_pyramids_quadratic.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.0.7
/Mesh_sphere_hexa.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.0.7
/Mesh_sphere_h_quad_arc.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
***********************************************************************
* Lecture de MAILLAGES Statiques avec plusieurs types d'éléments
* - MAILLAGES avec plusieurs groupes par famille
***********************************************************************
FIC1
= '
CHAI' 'v3.0.7
/Mesh_structelem.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
***********************************************************************
* Lecture de CHPOINT Statiques
* -MAILLAGES
* -CHPOINT
***********************************************************************
FIC1
= '
CHAI' 'v3.0.7
/testNodeFieldOnAll.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.0.7
/testNodeFieldOnPart.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
***********************************************************************
* Lecture de MAILLAGES Statiques avec plusieurs types d'éléments
* Version 3.2.1
***********************************************************************
FIC1
= '
CHAI' 'v3.2.1
/Mesh_2D_biquadratic_arc.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.2.1
/Mesh_2D_quadratic.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.2.1
/Mesh_2D_quadratic_arc.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.2.1
/Mesh_plan_3D.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.2.1
/Mesh_mechanic_tetra.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.2.1
/Mesh_mechanic_t_quad_arc.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.2.1
/Mesh_mechanic_t_quad.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.2.1
/Mesh_pyramids.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.2.1
/Mesh_pyramids_quadratic.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.2.1
/Mesh_sphere_hexa.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.2.1
/Mesh_sphere_h_quad_arc.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
***********************************************************************
* Lecture de MAILLAGES Statiques avec plusieurs types d'éléments
* - MAILLAGES avec plusieurs groupes par famille
***********************************************************************
FIC1
= '
CHAI' 'v3.2.1
/Mesh_structelem.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
***********************************************************************
* Lecture de CHPOINT Statiques
* -MAILLAGES
* -CHPOINT
***********************************************************************
FIC1
= '
CHAI' 'v3.2.1
/testNodeFieldOnAll.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.2.1
/testNodeFieldOnPart.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
***********************************************************************
* Lecture de CHAMPS Temporels
* -MAILLAGES
* -CHPOINT
* -MCHAML
***********************************************************************
FIC1
= '
CHAI' 'v3.2.1
/ForMEDReader10.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.2.1
/ForMEDReader11.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;* TAB1 = 'LIRE' 'MED' FIC2 ;
* Incompatible actuellement car : Valeurs aux points de Gauss
FIC1
= '
CHAI' 'v3.2.1
/ForMEDReader13.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;* TAB1 = 'LIRE' 'MED' FIC2 ;
* Incompatible actuellement car : Type d'element incompatible:POLYGON & HEXAGON
FIC1
= '
CHAI' 'v3.2.1
/ForMEDReader17.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIC1
= '
CHAI' 'v3.2.1
/ForMEDReader25.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;* TAB1 = 'LIRE' 'MED' FIC2 ;
* Incompatible actuellement car : Valeurs aux points de Gauss
FIC1
= '
CHAI' 'v3.2.1
/ForMEDReader29.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;* TAB1 = 'LIRE' 'MED' FIC2 ;
* Incompatible actuellement car : Valeurs aux points de Gauss
FIC1
= '
CHAI' 'v3.2.1
/ForMEDReader33.
med'
;FIC2
= '
CHAI'
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1
= '
LIRE' 'MED' FIC2
;MEDTAB TAB1;
FIN;