#define MESGERR 1
#include <string.h>
int main (
int argc,
char **argv) {
const char meshname[
MED_NAME_SIZE+1] =
"3D Unstructured Mesh With 2 polyhedrons";
int i;
int k,ind1,ind2;
int j, jind1,jind2;
if (fid < 0) {
MESSAGE(
"ERROR : open file in READ ONLY ACCESS mode ...");
return -1;
}
if (
MEDmeshInfoByName(fid, meshname, &spacedim, &meshdim, &meshtype, meshdescription,
dtunit, &sortingtype, &nstep, &axistype, axisname, unitname) < 0) {
return -1;
}
{
MESSAGE(
"ERROR : number of nodes ...");
return -1;
}
&coordinatechangement, &geotransformation)) < 0)
{
MESSAGE(
"ERROR : read number of polyhedrons ...");
return -1;
}
npoly = faceindexsize-1;
&coordinatechangement, &geotransformation)) < 0)
{
MESSAGE(
"ERROR : read number of polyhedrons ...");
return -1;
}
&coordinatechangement, &geotransformation)) < 0)
{
MESSAGE(
"ERROR : read connectivity size ...");
return -1;
}
MESSAGE(
"ERROR : memory allocation ...");
return -1;
}
coordinates) < 0) {
MESSAGE(
"ERROR : nodes coordinates ...");
return -1;
}
for (i=0;i<nnodes*spacedim;i++)
printf("%f - ",*(coordinates+i));
printf("\n");
faceindex,nodeindex,connectivity) < 0)
{
MESSAGE(
"ERROR : read polyhedron connectivity ...");
return -1;
}
for (i=0;i<npoly;i++)
{
printf(">> MED_POLYHEDRON %d : \n",i+1);
printf("---- Face Index ----- : [\n");
ind1 = *(faceindex+i)-1;
ind2 = *(faceindex+i+1)-1;
for (k=ind1;k<ind2;k++)
printf(" ] \n");
printf("---- Connectivity ----- : [\n");
for (k=ind1;k<ind2;k++)
{
jind1 = *(nodeindex+k)-1;
jind2 = *(nodeindex+k+1)-1;
for (j=jind1;j<jind2;j++)
printf(
IFORMAT" ",*(connectivity+j));
printf(" \n");
}
printf(" ] \n");
}
return -1;
}
if (coordinates)
free(coordinates);
if (faceindex)
free(faceindex);
if (nodeindex)
free(nodeindex);
if (connectivity)
free(connectivity);
return 0;
}
int main(int argc, char **argv)
MEDC_EXPORT med_err MEDfileClose(med_idt fid)
Fermeture d'un fichier MED.
MEDC_EXPORT med_idt MEDfileOpen(const char *const filename, const med_access_mode accessmode)
Ouverture d'un fichier MED.
MEDC_EXPORT med_err MEDmeshNodeCoordinateRd(const med_idt fid, const char *const meshname, const med_int numdt, const med_int numit, const med_switch_mode switchmode, med_float *const coordinates)
Cette routine permet de lire dans un maillage le tableau des coordonnées des noeuds,...
MEDC_EXPORT med_err MEDmeshPolyhedronRd(const med_idt fid, const char *const meshname, const med_int numdt, const med_int numit, const med_entity_type entitype, const med_connectivity_mode cmode, med_int *const faceindex, med_int *const nodeindex, med_int *const connectivity)
Cette routine permet la lecture dans un maillage des connectivités de polyèdres.
MEDC_EXPORT med_int MEDmeshnEntity(const med_idt fid, const char *const meshname, const med_int numdt, const med_int numit, const med_entity_type entitype, const med_geometry_type geotype, const med_data_type datatype, const med_connectivity_mode cmode, med_bool *const changement, med_bool *const transformation)
Cette routine permet de lire le nombre d'entités dans un maillage pour une étape de calcul donnée.
MEDC_EXPORT med_err MEDmeshInfoByName(const med_idt fid, const char *const meshname, med_int *const spacedim, med_int *const meshdim, med_mesh_type *const meshtype, char *const description, char *const dtunit, med_sorting_type *const sortingtype, med_int *const nstep, med_axis_type *const axistype, char *const axisname, char *const axisunit)
Cette routine permet de lire les informations relatives à un maillage en précisant son nom.