1 /*************************************************************************
  2 * COPYRIGHT (C) 1999 - 2007  EDF R&D, CEA/DEN
  3 * THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
  4 * IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE 
  5 * AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION; 
  6 * EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
  7 *  
  8 * THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
  9 * WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
 10 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
 11 * LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
 12 *
 13 * YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
 14 * ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
 15 * INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
 16 *
 17 *************************************************************************/
 18 
 19 
 20 /******************************************************************************
 21  * - Nom du fichier : test25.c
 22  *
 23  * - Description : ecriture de mailles de type MED_POLYEDRE
 24  *                 dans un maillage MED
 25  *
 26  *****************************************************************************/
 27 
 28 #include <med.h>
 29 #define MESGERR
 30 #include <med_utils.h>
 31 
 32 #ifdef DEF_LECT_ECR
 33 #define MODE_ACCES MED_LECTURE_ECRITURE
 34 #elif DEF_LECT_AJOUT
 35 #define MODE_ACCES MED_LECTURE_AJOUT
 36 #else
 37 #define MODE_ACCES MED_CREATION
 38 #endif
 39 
 40 int main (int argc, char **argv)
 41 
 42 
 43 {
 44   med_idt fid;
 45   char maa[MED_TAILLE_NOM+1] = "maa1";
 46   med_int mdim = 3;
 47   med_int n=2;
 48   /* connectivite nodale */
 49   med_int indexp[3] = {1,5,9};
 50   med_int np = 3;
 51   med_int indexf[9] = {1,4,7,10,13,16,19,22,25};
 52   med_int nf = 9;
 53   med_int conn[24] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
 54                       20,21,22,23,24};
 55   /* connectivite descendante */
 56   med_int indexp2[3] = {1,5,9};
 57   med_int np2 = 3;
 58   med_int conn2[8] = {1,2,3,4,5,6,7,8};
 59   med_int indexf2[8] = {MED_TRIA3,MED_TRIA3,MED_TRIA3,MED_TRIA3,
 60                         MED_TRIA3,MED_TRIA3,MED_TRIA3,MED_TRIA3};
 61   med_int nf2=8;
 62   /*                             12345678901234561234567890123456*/
 63   char nom[MED_TAILLE_PNOM*2+1]="polyedre1       polyedre2       ";
 64   med_int num[2] = {1,2};
 65   med_int fam[2] = {0,-1};
 66 
 67   /* Creation du fichier test25.med */
 68   if ((fid = MEDouvrir("test25.med",MODE_ACCES)) < 0) {
 69     MESSAGE("Erreur a la creation du fichier test25.med");
 70     return -1;
 71   }
 72   printf("Creation du fichier test25.med \n");
 73 
 74   /* Creation du maillage */
 75   if (MEDmaaCr(fid,maa,mdim,MED_NON_STRUCTURE,
 76                    "un maillage pour test25") < 0) {
 77     MESSAGE("Erreur a la creation du maillage");
 78     return -1;
 79    }
 80   printf("Creation du maillage \n");
 81 
 82   /* Ecriture des connectivites des mailles polyedres en mode nodal */
 83   if (MEDpolyedreConnEcr(fid,maa,indexp,np,indexf,nf,conn,MED_NOD) < 0) {
 84     MESSAGE("Erreur a l'ecriture de la connectivite des mailles MED_POLYEDRE");
 85     return -1;
 86   }
 87   printf("Ecriture des connectivites de mailles de type MED_POLYEDRE en mode nodal \n");
 88 
 89   /* Ecriture des connectivites des mailles polyedres en mode descendant */
 90   if (MEDpolyedreConnEcr(fid,maa,indexp2,np2,indexf2,nf2,conn2,MED_DESC) < 0) {
 91     MESSAGE("Erreur a l'ecriture des connectivites des mailles MED_POLYEDRE en mode descendant");
 92     return -1;
 93   }
 94   printf("Ecriture des connectivites de mailles de type MED_POLYEDRE en mode descendant \n");
 95 
 96   /* Ecriture des noms des polyedres */
 97   if (MEDnomEcr(fid,maa,nom,n,MED_MAILLE,MED_POLYEDRE) < 0) {
 98     MESSAGE("Erreur a l'ecriture des noms des mailles MED_POLYEDRE");
 99     return -1;
100   }
101   printf("Ecriture des noms des polyedres \n");
102 
103   /* Ecriture des numeros des polyedres */
104   if (MEDnumEcr(fid,maa,num,n,MED_MAILLE,MED_POLYEDRE) < 0) {
105     MESSAGE("Erreur a l'ecriture des numeros des mailles MED_POLYEDRE");
106     return -1;
107   }
108   printf("Ecriture des numeros des polyedres \n");
109 
110   /* Ecriture des numeros des familles des polyedres */
111   if (MEDfamEcr(fid,maa,fam,n,MED_MAILLE,MED_POLYEDRE) < 0) {
112     MESSAGE("Erreur a l'ecriture des familles des mailles MED_POLYEDRE");
113     return -1;
114   }
115   printf("Ecriture des numeros des familles des polyedres \n");
116 
117   /* Fermeture du fichier */
118   if (MEDfermer(fid) < 0) {
119     MESSAGE("Erreur a la fermeture du fichier");
120     return -1;
121   }
122   printf("Fermeture du fichier test25.med \n");
123 
124   return 0;
125 }