1 /*************************************************************************
2 * COPYRIGHT (C) 1999 - 2003 EDF R&D
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 #include <med_utils.h>
30 #include <stdio.h>
31 #include <string.h>
32 #include <stdlib.h>
33
34 int main (int argc, char **argv)
35 {
36 med_idt fid;
37 char maa[MED_TAILLE_NOM+1] = "maa1";
38 med_int mdim = 3;
39 med_int n=2;
40 /* connectivite nodale */
41 med_int indexp[3] = {1,5,9};
42 med_int np = 3;
43 med_int indexf[9] = {1,4,7,10,13,16,19,22,25};
44 med_int nf = 9;
45 med_int conn[24] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
46 20,21,22,23,24};
47 /* connectivite descendante */
48 med_int indexp2[3] = {1,5,9};
49 med_int np2 = 3;
50 med_int conn2[8] = {1,2,3,4,5,6,7,8};
51 med_int indexf2[8] = {MED_TRIA3,MED_TRIA3,MED_TRIA3,MED_TRIA3,
52 MED_TRIA3,MED_TRIA3,MED_TRIA3,MED_TRIA3};
53 med_int nf2=8;
54 /* 12345678901234561234567890123456*/
55 char nom[MED_TAILLE_PNOM*2+1]="polyedre1 polyedre2 ";
56 med_int num[2] = {1,2};
57 med_int fam[2] = {0,-1};
58
59 /* Creation du fichier test25.med */
60 if ((fid = MEDouvrir("test25.med",MED_CREATION)) < 0) {
61 MESSAGE("Erreur a la creation du fichier test25.med");
62 return -1;
63 }
64 printf("Creation du fichier test25.med \n");
65
66 /* Creation du maillage */
67 if (MEDmaaCr(fid,maa,mdim,MED_NON_STRUCTURE,
68 "un maillage pour test25") < 0) {
69 MESSAGE("Erreur a la creation du maillage");
70 return -1;
71 }
72 printf("Creation du maillage \n");
73
74 /* Ecriture des connectivites des mailles polyedres en mode nodal */
75 if (MEDpolyedreConnEcr(fid,maa,indexp,np,indexf,nf,conn,MED_NOD) < 0) {
76 MESSAGE("Erreur a l'ecriture de la connectivite des mailles MED_POLYEDRE");
77 return -1;
78 }
79 printf("Ecriture des connectivites de mailles de type MED_POLYEDRE en mode nodal \n");
80
81 /* Ecriture des connectivites des mailles polyedres en mode descendant */
82 if (MEDpolyedreConnEcr(fid,maa,indexp2,np2,indexf2,nf2,conn2,MED_DESC) < 0) {
83 MESSAGE("Erreur a l'ecriture des connectivites des mailles MED_POLYEDRE en mode descendant");
84 return -1;
85 }
86 printf("Ecriture des connectivites de mailles de type MED_POLYEDRE en mode descendant \n");
87
88 /* Ecriture des noms des polyedres */
89 if (MEDnomEcr(fid,maa,nom,n,MED_MAILLE,MED_POLYEDRE) < 0) {
90 MESSAGE("Erreur a l'ecriture des noms des mailles MED_POLYEDRE");
91 return -1;
92 }
93 printf("Ecriture des noms des polyedres \n");
94
95 /* Ecriture des numeros des polyedres */
96 if (MEDnumEcr(fid,maa,num,n,MED_MAILLE,MED_POLYEDRE) < 0) {
97 MESSAGE("Erreur a l'ecriture des numeros des mailles MED_POLYEDRE");
98 return -1;
99 }
100 printf("Ecriture des numeros des polyedres \n");
101
102 /* Ecriture des numeros des familles des polyedres */
103 if (MEDfamEcr(fid,maa,fam,n,MED_MAILLE,MED_POLYEDRE) < 0) {
104 MESSAGE("Erreur a l'ecriture des familles des mailles MED_POLYEDRE");
105 return -1;
106 }
107 printf("Ecriture des numeros des familles des polyedres \n");
108
109 /* Fermeture du fichier */
110 if (MEDfermer(fid) < 0) {
111 MESSAGE("Erreur a la fermeture du fichier");
112 return -1;
113 }
114 printf("Fermeture du fichier test25.med \n");
115
116 return 0;
117 }