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 : test23.c
22 *
23 * - Description : ecriture de mailles/faces de type MED_POLYGONE
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 index[4] = {1,6,12,17};
40 med_int con[16] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
41 med_int n=3,ni = 4;
42 /* 123456789012345612345678901234561234567890123456 */
43 char nom[MED_TAILLE_PNOM*3+1]="poly1 poly2 poly3 ";
44 med_int num[3] = {1,2,3};
45 med_int fam[3] = {0,-1,-2};
46
47 /* Creation du fichier test23.med */
48 fid = MEDouvrir("test23.med",MED_CREATION);
49 if (fid == -1) {
50 MESSAGE("Erreur a la creation du fichier test23.med");
51 return -1;
52 }
53 printf("Creation du fichier test23.med \n");
54
55 /* Creation du maillage */
56 if (MEDmaaCr(fid,maa,mdim,MED_NON_STRUCTURE,
57 "un maillage pour test23") < 0) {
58 MESSAGE("Erreur a la creation du maillage");
59 return -1;
60 }
61 printf("Creation du maillage \n");
62
63 /* Ecriture de la connectivite des mailles polygones en mode nodal */
64 if (MEDpolygoneConnEcr(fid,maa,index,ni,con,MED_MAILLE,MED_NOD) < 0) {
65 MESSAGE("Erreur a l'ecriture de la connectivite des mailles MED_POLYGONE");
66 return -1;
67 }
68 printf("Ecriture des connectivites de mailles de type MED_POLYGONE en mode nodal \n");
69
70 /* Ecriture des noms des polygones */
71 if (MEDnomEcr(fid,maa,nom,n,MED_MAILLE,MED_POLYGONE) < 0) {
72 MESSAGE("Erreur a l'ecriture des noms mailles MED_POLYGONE");
73 return -1;
74 }
75 printf("Ecriture des noms des polygones \n");
76
77 /* Ecriture des numeros des polygones */
78 if (MEDnumEcr(fid,maa,num,n,MED_MAILLE,MED_POLYGONE) < 0) {
79 MESSAGE("Erreur a l'ecriture des numeros des mailles MED_POLYGONE");
80 return -1;
81 }
82 printf("Ecriture des numeros des polygones \n");
83
84 /* Ecriture des numeros des familles des polygones */
85 if (MEDfamEcr(fid,maa,fam,n,MED_MAILLE,MED_POLYGONE) < 0) {
86 MESSAGE("Erreur a l'ecriture des numeros de famille des mailles MED_POLYGONE");
87 return -1;
88 }
89 printf("Ecriture des numeros des familles des polygones \n");
90
91 /* Fermeture du fichier */
92 if (MEDfermer(fid) < 0) {
93 MESSAGE("Erreur a la fermeture du fichier");
94 return -1;
95 }
96 printf("Fermeture du fichier test23.med \n");
97
98 return 0;
99 }