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 }