2 creation d'une geometrie 2d : un cube [0,1]^2
3 maillé uniformement en quadrangle reguliers;
4 avec en plus une partie des aretes (une partie
5 des arretes de la frontiere) du maillage.
6 ATTENTION : 3 noeuds dans chaque direction
12 int main (int argc, char **argv)
16 char maa[MED_TAILLE_NOM+1] = "carre_en_quad4";
33 char nomcoo[2*MED_TAILLE_PNOM+1] = "x y ";
34 char unicoo[2*MED_TAILLE_PNOM+1] = "cm cm ";
35 /* char nomnoe[19*MED_TAILLE_PNOM+1] = "nom1 nom2 nom3 nom4";*/
37 med_int numnoe[9] = {1,2,3,4,5,6,7,8,9};
38 med_int nufano[9] = {0,0,0,0,0,0,0,0,0};
49 char nomquad4[MED_TAILLE_PNOM*4+1] = "quad1 quad2 quad3 quad4 ";
50 med_int numquad4[4] = {1,2,3,4};
51 med_int nufaquad4[4] = {-1,-1,0,0};
53 char nomfam[MED_TAILLE_NOM+1];
55 char attdes[MED_TAILLE_DESC+1];
60 char gro[MED_TAILLE_LNOM+1];
66 Some fields : 2 on nodes : one int and one double , one on cells : double
68 char champ1[MED_TAILLE_NOM+1]="fieldnodeint" ;
69 char champ1_comp[MED_TAILLE_PNOM+1]="comp1 " ;
70 char champ1_unit[MED_TAILLE_PNOM+1]="M " ;
71 med_int fieldnodeint[9] = {1,1,3,2,2,3,4,4,5};
73 char champ2[MED_TAILLE_NOM+1]="fieldnodedouble" ;
74 char champ2_comp[MED_TAILLE_PNOM+1]="comp1 " ;
75 char champ2_unit[MED_TAILLE_PNOM+1]="J " ;
76 med_float fieldnodedouble1[9] = {1.,3.,4.,1.,3.,4.,3.,2.,5.};
77 med_float fieldnodedouble2[9] = {1.,2.,2.,3.,3.,3.,4.,4.,5.};
79 char champ3[MED_TAILLE_NOM+1]="fieldcelldouble" ;
80 char champ3_comp[MED_TAILLE_PNOM*2+1]="comp1 comp2 " ;
81 char champ3_unit[MED_TAILLE_PNOM*2+1]="M/S m/s " ;
82 med_float fieldcelldouble[4*2] = {0.,1.,1.,1.,1.,2.,2.,3.};
84 /***************************************************************************/
85 fid = MEDouvrir("carre_en_quad4.med",MED_REMP);
92 /***************************************************************************/
94 ret = MEDmaaCr(fid,maa,mdim);
97 ret = MEDunvCr(fid,maa);
100 /***************************************************************************/
102 ret = MEDnoeudsEcr(fid,maa,mdim,coo,MED_FULL_INTERLACE,MED_CART,
103 nomcoo,unicoo,nomnoe,MED_FAUX,numnoe,MED_VRAI,
104 nufano,nnoe,MED_ECRI);
107 /* ecriture des mailles MED_QUAD4 :
110 - numeros (optionnel)
111 - numeros des familles */
113 ret = MEDelementsEcr(fid,maa,mdim,quad4,MED_FULL_INTERLACE,
114 nomquad4,MED_FAUX,numquad4,MED_VRAI,nufaquad4,nquad4,
115 MED_MAILLE,MED_QUAD4,MED_NOD,MED_ECRI);
118 /***************************************************************************/
119 /* ecriture des familles */
121 - toujours creer une famille de numero 0 ne comportant aucun attribut
122 ni groupe (famille de reference pour les noeuds ou les elements
123 qui ne sont rattaches a aucun groupe ni attribut)
124 - les numeros de familles de noeuds sont > 0
125 - les numeros de familles des elements sont < 0
126 - rien d'imposer sur les noms de familles
132 strcpy(nomfam,"FAMILLE_0");
134 ret = MEDfamCr(fid,maa,nomfam,numfam,&attide,&attval,attdes,0,
140 - 1 familles d'elements de dimension (d)
141 en fait de face (-10)
147 strcpy(nomfam,"FAMILLE_CELL_");
148 sprintf(nomfam,"%s%d",nomfam,-numfam);
152 strcpy(attdes,"description attribut");
153 strcpy(gro,"groupe0");
156 ret = MEDfamCr(fid,maa,nomfam,numfam,&attide,&attval,attdes,
158 printf("MEDfamCr : %d\n",ret);
160 /***************************************************************************/
166 ret = MEDchampCr(fid,champ1,MED_INT32,champ1_comp,champ1_unit,1);
167 printf("MEDchampCr : %d \n",ret);
169 ret = MEDchampEcr(fid, maa, champ1, (unsigned char *)fieldnodeint,
170 MED_NO_INTERLACE, nnoe,
171 MED_NOPG, MED_ALL, MED_NOPFL, MED_ECRI, MED_NOEUD,
172 0, MED_NOPDT," ", 0., MED_NONOR);
174 printf("MEDchampEcr : %d \n",ret);
180 ret = MEDchampCr(fid,champ2,MED_REEL64,champ2_comp,champ2_unit,1);
181 printf("MEDchampCr : %d \n",ret);
183 ret = MEDchampEcr(fid, maa, champ2, (unsigned char *)fieldnodedouble1,
184 MED_NO_INTERLACE, nnoe,
185 MED_NOPG, MED_ALL, MED_NOPFL, MED_ECRI, MED_NOEUD,
186 0, 1,"S ", 1.1 , MED_NONOR);
187 printf("MEDchampEcr1 : %d \n",ret);
188 ret = MEDchampEcr(fid, maa, champ2, (unsigned char *)fieldnodedouble2,
189 MED_NO_INTERLACE, nnoe,
190 MED_NOPG, MED_ALL, MED_NOPFL, MED_ECRI, MED_NOEUD,
191 0, 2,"S ", 1.2 , MED_NONOR);
192 printf("MEDchampEcr2 : %d \n",ret);
196 // on met champ2 sans pas de temps pour pouvoir le lire aussi par defaut !
199 ret = MEDchampEcr(fid, maa, champ2, (unsigned char *)fieldnodedouble1,
200 MED_NO_INTERLACE, nnoe,
201 MED_NOPG, MED_ALL, MED_NOPFL, MED_ECRI, MED_NOEUD,
202 0, MED_NOPDT," ", 0. , MED_NONOR);
203 printf("MEDchampEcr : %d \n",ret);
208 ret = MEDchampCr(fid,champ3,MED_REEL64,champ3_comp,champ3_unit,2);
209 printf("MEDchampCr : %d \n",ret);
211 ret = MEDchampEcr(fid, maa, champ3, (unsigned char *)fieldcelldouble,
212 MED_NO_INTERLACE, nquad4,
213 MED_NOPG, MED_ALL, MED_NOPFL, MED_ECRI, MED_MAILLE,
214 MED_QUAD4, MED_NOPDT," ", 0., MED_NONOR);
215 printf("MEDchampEcr : %d \n",ret);
219 /***************************************************************************/
221 ret = MEDfermer(fid);