Salome HOME
Merge from V6_main_20120808 08Aug12
[modules/med.git] / src / MEDMEMBinTest / create_mesh_c2q4s2.c
index 3b4f8423633a95f539f3f6fa6a3e43ec81267275..c847e544b58b22c25bae25e648238d602462d640 100644 (file)
@@ -1,24 +1,25 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 //
-//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 //
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
 //
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
 //
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 /*
   creation d'une geometrie 2d : un cube [0,1]^2
   maillĂ© uniformement en quadrangle reguliers;
 
 #include <med.h>
 #include <string.h>
+#include <stdlib.h>
 
 int main (int argc, char **argv)
 {
   med_err ret;
   med_idt fid;
-  char maa[MED_TAILLE_NOM+1] = "carre_en_quad4_seg2";
-  char maadesc[MED_TAILLE_DESC+1] = "Example de maillage non structure 2D";
+  char maa[MED_NAME_SIZE+1] = "carre_en_quad4_seg2";
+  char maadesc[MED_COMMENT_SIZE+1] = "Example de maillage non structure 2D";
   med_int mdim = 2;
   med_int nnoe = 9;
   /*
@@ -52,11 +54,10 @@ int main (int argc, char **argv)
     0.5, 1.0,
     1.0, 1.0
   };
-  char nomcoo[2*MED_TAILLE_PNOM+1] = "x               y               ";
-  char unicoo[2*MED_TAILLE_PNOM+1] = "cm              cm              ";
-  /*  char nomnoe[19*MED_TAILLE_PNOM+1] = "nom1    nom2    nom3    nom4";*/
-  char *nomnoe ;
-  med_int numnoe[9] = {1,2,3,4,5,6,7,8,9};
+  char nomcoo[2*MED_SNAME_SIZE+1] = "x               y               ";
+  char unicoo[2*MED_SNAME_SIZE+1] = "cm              cm              ";
+  //char *nomnoe ;
+//  med_int numnoe[9] = {1,2,3,4,5,6,7,8,9};
   med_int nufano[9] = {0,0,0,0,0,0,0,0,0};
   /*
     les elements:
@@ -68,8 +69,8 @@ int main (int argc, char **argv)
     7, 8, 5, 4,
     8, 9, 6, 5
   };
-  char nomquad4[MED_TAILLE_PNOM*4+1] = "quad1           quad2           quad3           quad4           ";
-  med_int numquad4[4] = {1,2,3,4};
// char nomquad4[MED_TAILLE_PNOM*4+1] = "quad1           quad2           quad3           quad4           ";
// med_int numquad4[4] = {1,2,3,4};
   med_int nufaquad4[4] = {-10,-10,0,0};
 
   /*
@@ -85,43 +86,41 @@ int main (int argc, char **argv)
     2, 5, 0,
     5, 8, 0
   };
-  char nomseg2[MED_TAILLE_PNOM*6+1] = "seg1            seg2            seg3            seg4            seg5            seg6            ";
-  med_int numseg2[6] = {1,2,3,4,5,6};
// char nomseg2[MED_TAILLE_PNOM*6+1] = "seg1            seg2            seg3            seg4            seg5            seg6            ";
// med_int numseg2[6] = {1,2,3,4,5,6};
   med_int nufaseg2[6] = {-1,-2,-1,-1,-2,-2};
 
-  char nomfam[MED_TAILLE_NOM+1];
+  char nomfam[MED_NAME_SIZE+1];
   med_int numfam;
-  char attdes[MED_TAILLE_DESC+1];
+  //char attdesMED_TAILLE_DESC+1];
   med_int natt;
   med_int attide;
   med_int attval;
   med_int ngro;
-  char gro[MED_TAILLE_LNOM+1];
-  int i;
-  int nfame = 1; 
-  int nfamn = 1;
+  char gro[MED_LNAME_SIZE+1];
+  char dtunitp3[MED_LNAME_SIZE+1]="";
 
   /*
     Some fields : 2 on nodes : one int and one double , one on cells : double
    */
-  char champ1[MED_TAILLE_NOM+1]="fieldnodeint" ;
-  char champ1_comp[MED_TAILLE_PNOM+1]="comp1           " ;
-  char champ1_unit[MED_TAILLE_PNOM+1]="M               " ;
+  char champ1[MED_NAME_SIZE+1]="fieldnodeint" ;
+  char champ1_comp[MED_SNAME_SIZE+1]="comp1           " ;
+  char champ1_unit[MED_SNAME_SIZE+1]="M               " ;
   med_int     fieldnodeint[9]    = {1,1,3,2,2,3,4,4,5};
 
-  char champ2[MED_TAILLE_NOM+1]="fieldnodedouble" ;
-  char champ2_comp[MED_TAILLE_PNOM+1]="comp1           " ;
-  char champ2_unit[MED_TAILLE_PNOM+1]="J               " ;
+  char champ2[MED_NAME_SIZE+1]="fieldnodedouble" ;
+  char champ2_comp[MED_SNAME_SIZE+1]="comp1           " ;
+  char champ2_unit[MED_SNAME_SIZE+1]="J               " ;
   med_float   fieldnodedouble1[9] = {1.,3.,4.,1.,3.,4.,3.,2.,5.};
   med_float   fieldnodedouble2[9] = {1.,2.,2.,3.,3.,3.,4.,4.,5.};
 
-  char champ3[MED_TAILLE_NOM+1]="fieldcelldouble" ;
-  char champ3_comp[MED_TAILLE_PNOM*2+1]="comp1           comp2           " ;
-  char champ3_unit[MED_TAILLE_PNOM*2+1]="M/S             m/s             " ;
+  char champ3[MED_NAME_SIZE+1]="fieldcelldouble" ;
+  char champ3_comp[MED_SNAME_SIZE*2+1]="comp1           comp2           " ;
+  char champ3_unit[MED_SNAME_SIZE*2+1]="M/S             m/s             " ;
   med_float   fieldcelldouble[4*2] = {0.,1.,1.,1.,1.,2.,2.,3.};
 
   /***************************************************************************/
-  fid = MEDouvrir("carre_en_quad4_seg2.med",MED_LECTURE_ECRITURE);
+  fid = MEDfileOpen("carre_en_quad4_seg2.med",MED_ACC_RDWR);
   if (fid < 0)
     ret = -1;
   else
@@ -130,7 +129,8 @@ int main (int argc, char **argv)
 
   /***************************************************************************/
   if (ret == 0)
-    ret = MEDmaaCr(fid,maa,mdim,MED_NON_STRUCTURE,maadesc);
+    ret = MEDmeshCr(fid,maa,mdim,mdim,MED_UNSTRUCTURED_MESH,maadesc,dtunitp3,
+                    MED_SORT_DTIT,MED_CARTESIAN,nomcoo,unicoo);
   printf("MEDmaaCr : %d\n",ret);
   if (ret == 0)
     ret = MEDunvCr(fid,maa);
@@ -138,9 +138,8 @@ int main (int argc, char **argv)
 
   /***************************************************************************/
   if (ret == 0)
-    ret = MEDnoeudsEcr(fid,maa,mdim,coo,MED_FULL_INTERLACE,MED_CART,
-                      nomcoo,unicoo,nomnoe,MED_FAUX,numnoe,MED_VRAI,
-                      nufano,nnoe);
+    ret = MEDmeshNodeCoordinateWr(fid,maa,MED_NO_DT,MED_NO_IT,MED_NO_DT,MED_FULL_INTERLACE,nnoe,coo);
+  MEDmeshEntityFamilyNumberWr(fid,maa,MED_NO_DT,MED_NO_IT,MED_NODE,0,nnoe,nufano);
   printf("MEDnoeudsEcr : %d\n",ret);
 
   /* ecriture des mailles MED_QUAD4 :
@@ -149,9 +148,10 @@ int main (int argc, char **argv)
      - numeros (optionnel)
      - numeros des familles */
   if (ret == 0) 
-    ret = MEDelementsEcr(fid,maa,mdim,quad4,MED_FULL_INTERLACE,
-                        nomquad4,MED_FAUX,numquad4,MED_VRAI,nufaquad4,nquad4,
-                        MED_MAILLE,MED_QUAD4,MED_NOD);
+    ret = MEDmeshElementConnectivityWr(fid,maa,MED_NO_DT,MED_NO_IT,MED_NO_DT,
+                                       MED_CELL,MED_QUAD4,MED_NODAL,MED_FULL_INTERLACE,
+                                       nquad4,quad4);
+  MEDmeshEntityFamilyNumberWr(fid,maa,MED_NO_DT,MED_NO_IT,MED_CELL,MED_QUAD4,nquad4,nufaquad4);
   printf("MEDelementsEcr : %d \n",ret);
 
   /* ecriture des mailles MED_SEG2 :
@@ -160,9 +160,10 @@ int main (int argc, char **argv)
      - numeros (optionnel)
      - numeros des familles */
   if (ret == 0) 
-    ret = MEDelementsEcr(fid,maa,mdim,seg2,MED_FULL_INTERLACE,
-                        nomseg2,MED_FAUX,numseg2,MED_VRAI,nufaseg2,nseg2,
-                        MED_MAILLE,MED_SEG2,MED_NOD);
+    ret = MEDmeshElementConnectivityWr(fid,maa,MED_NO_DT,MED_NO_IT,MED_NO_DT,
+                                       MED_CELL,MED_SEG2,MED_NODAL,MED_FULL_INTERLACE,
+                                       nseg2,seg2);
+  MEDmeshEntityFamilyNumberWr(fid,maa,MED_NO_DT,MED_NO_IT,MED_CELL,MED_SEG2,nseg2,nufaseg2);
   printf("%d \n",ret);
 
   /***************************************************************************/
@@ -181,8 +182,7 @@ int main (int argc, char **argv)
     {
       strcpy(nomfam,"FAMILLE_0");
       numfam = 0;
-      ret = MEDfamCr(fid,maa,nomfam,numfam,&attide,&attval,attdes,0,
-                    gro,0);
+      ret = MEDfamilyCr(fid,maa,nomfam,numfam,0,gro);
     }
   printf("%d \n",ret);
 
@@ -203,12 +203,11 @@ int main (int argc, char **argv)
       attide = 1;
       attval = numfam*100;
       natt = 1;
-      strcpy(attdes,"description attribut");
+      //strcpy(attdes,"description attribut");
       strcpy(gro,"groupe1");
       ngro = 1;
 
-      ret = MEDfamCr(fid,maa,nomfam,numfam,&attide,&attval,attdes,
-                    natt,gro,ngro);
+      ret = MEDfamilyCr(fid,maa,nomfam,numfam,ngro,gro);
       printf("MEDfamCr : %d\n",ret);
     }
   if (ret == 0)
@@ -219,12 +218,11 @@ int main (int argc, char **argv)
       attide = 1;
       attval = numfam*100;
       natt = 1;
-      strcpy(attdes,"description attribut");
+      //strcpy(attdes,"description attribut");
       strcpy(gro,"groupe1");
       ngro = 1;
 
-      ret = MEDfamCr(fid,maa,nomfam,numfam,&attide,&attval,attdes,
-                    natt,gro,ngro);
+      ret = MEDfamilyCr(fid,maa,nomfam,numfam,ngro,gro);
       printf("MEDfamCr : %d\n",ret);
     }
   if (ret == 0)
@@ -235,12 +233,11 @@ int main (int argc, char **argv)
       attide = 1;
       attval = numfam*100;
       natt = 1;
-      strcpy(attdes,"description attribut");
+      //strcpy(attdes,"description attribut");
       strcpy(gro,"groupe0");
       ngro = 1;
 
-      ret = MEDfamCr(fid,maa,nomfam,numfam,&attide,&attval,attdes,
-                    natt,gro,ngro);
+      ret = MEDfamilyCr(fid,maa,nomfam,numfam,ngro,gro);
       printf("MEDfamCr : %d\n",ret);
     }
   /***************************************************************************/
@@ -249,56 +246,41 @@ int main (int argc, char **argv)
   */
   if (ret == 0)
     {
-      ret = MEDchampCr(fid,champ1,MED_INT32,champ1_comp,champ1_unit,1);
+      ret = MEDfieldCr(fid,champ1,MED_INT32,1,champ1_comp,champ1_unit,dtunitp3,maa);
       printf("MEDchampCr : %d \n",ret);
       if (ret == 0) {
-       ret = MEDchampEcr(fid, maa, champ1, (unsigned char *)fieldnodeint,
-                         MED_NO_INTERLACE, nnoe, MED_NOGAUSS, MED_ALL,
-                         MED_NOPFL, MED_NO_PFLMOD, MED_NOEUD, 0,
-                         MED_NOPDT,"        ", 0., MED_NONOR);
-       
-       printf("MEDchampEcr : %d \n",ret);
+        ret = MEDfieldValueWr(fid, champ1,MED_NO_DT,MED_NO_IT,0.,MED_NODE,0,MED_NO_INTERLACE,MED_ALL_CONSTITUENT,nnoe, (unsigned char *)fieldnodeint);
+        
+        printf("MEDchampEcr : %d \n",ret);
       }
     }
   
   if (ret == 0)
     {
-      ret = MEDchampCr(fid,champ2,MED_FLOAT64,champ2_comp,champ2_unit,1);
+      ret = MEDfieldCr(fid,champ2,MED_FLOAT64,1,champ2_comp,champ2_unit,dtunitp3,maa);
       printf("MEDchampCr : %d \n",ret);
       if (ret == 0) {
-       ret = MEDchampEcr(fid, maa, champ2, (unsigned char *)fieldnodedouble1,
-                         MED_NO_INTERLACE, nnoe, MED_NOGAUSS, MED_ALL,
-                         MED_NOPFL, MED_NO_PFLMOD, MED_NOEUD, 0,
-                         1,"S       ", 1.1 , MED_NONOR);
-       printf("MEDchampEcr1 : %d \n",ret);
-       ret = MEDchampEcr(fid, maa, champ2, (unsigned char *)fieldnodedouble2,
-                         MED_NO_INTERLACE, nnoe, MED_NOGAUSS, MED_ALL,
-                         MED_NOPFL, MED_NO_PFLMOD, MED_NOEUD, 0,
-                         2,"S       ", 1.2 , MED_NONOR);
-       printf("MEDchampEcr2 : %d \n",ret);
+        ret = MEDfieldValueWr(fid, champ2,1,MED_NO_IT,1.1 ,MED_NODE,0,MED_NO_INTERLACE,MED_ALL_CONSTITUENT,nnoe, (unsigned char *)fieldnodedouble1);
+        printf("MEDchampEcr1 : %d \n",ret);
+        ret = MEDfieldValueWr(fid, champ2,2,MED_NO_IT,1.2 ,MED_NODE,0,MED_NO_INTERLACE,MED_ALL_CONSTITUENT,nnoe, (unsigned char *)fieldnodedouble2);
+        printf("MEDchampEcr2 : %d \n",ret);
       }
     }
   
   /* on met champ2 sans pas de temps pour pouvoir le lire aussi par defaut !*/
   if (ret == 0)
     {
-      ret = MEDchampEcr(fid, maa, champ2, (unsigned char *)fieldnodedouble1,
-                       MED_NO_INTERLACE, nnoe, MED_NOGAUSS, MED_ALL,
-                       MED_NOPFL, MED_NO_PFLMOD, MED_NOEUD, 0,
-                       MED_NOPDT,"        ", 0. , MED_NONOR);
+      ret = MEDfieldValueWr(fid, champ2,MED_NO_DT,MED_NO_IT,0. ,MED_NODE,0,MED_NO_INTERLACE,MED_ALL_CONSTITUENT,nnoe, (unsigned char *)fieldnodedouble1);
       printf("MEDchampEcr : %d \n",ret); 
     }
 
   if (ret == 0)
     {
-      ret = MEDchampCr(fid,champ3,MED_FLOAT64,champ3_comp,champ3_unit,2);
+      ret = MEDfieldCr(fid,champ3,MED_FLOAT64,2,champ3_comp,champ3_unit,dtunitp3,maa);
       printf("MEDchampCr : %d \n",ret);
       if (ret == 0) {
-       ret = MEDchampEcr(fid, maa, champ3, (unsigned char *)fieldcelldouble,
-                         MED_NO_INTERLACE, nquad4, MED_NOGAUSS, MED_ALL,
-                         MED_NOPFL, MED_NO_PFLMOD, MED_MAILLE, MED_QUAD4,
-                         MED_NOPDT,"        ", 0., MED_NONOR);
-       printf("MEDchampEcr : %d \n",ret);
+        ret = MEDfieldValueWr(fid, champ3,MED_NO_DT,MED_NO_IT,0.,MED_CELL,MED_QUAD4,MED_NO_INTERLACE,MED_ALL_CONSTITUENT,nquad4, (unsigned char *)fieldcelldouble);
+        printf("MEDchampEcr : %d \n",ret);
       }
     }