      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 }