]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
MEDMEM Industrialization 2008
authoreap <eap@opencascade.com>
Wed, 17 Dec 2008 17:50:33 +0000 (17:50 +0000)
committereap <eap@opencascade.com>
Wed, 17 Dec 2008 17:50:33 +0000 (17:50 +0000)
   support poly meshes

src/ParaMEDMEM/ParaMESH.cxx

index 68e72fb2e862a8c4a40c6c2b551a09d649538b57..0a70464f3ce5f01a09ff6a64d049ee288618c4e8 100644 (file)
@@ -128,7 +128,7 @@ throw (MEDMEM::MEDEXCEPTION) :_has_mesh_ownership(true)
     //
     // Reading global numbering
     // 
-    int ncell=_mesh->getNumberOfElements(MED_EN::MED_CELL,MED_EN::MED_ALL_ELEMENTS);
+    int ncell=_mesh->getNumberOfElementsWithPoly(MED_EN::MED_CELL,MED_EN::MED_ALL_ELEMENTS);
     int * array=new int[ncell];
     int offset=0;
     MESSAGE("Reading cell global numbering for mesh "<< domain_id);
@@ -141,7 +141,7 @@ throw (MEDMEM::MEDEXCEPTION) :_has_mesh_ownership(true)
     {
       MED_EN::medGeometryElement type=*iter;
       if (type/100 != _mesh->getMeshDimension()) continue;
-      int ntype = _mesh->getNumberOfElements(MED_EN::MED_CELL,type);
+      int ntype = _mesh->getNumberOfElementsWithPoly(MED_EN::MED_CELL,type);
       if (ntype==0) continue;
       med_2_3::MEDglobalNumLire(fid,meshname, array+offset, ntype,
                                 med_2_3::MED_MAILLE, (med_2_3::med_geometrie_element)type);
@@ -157,7 +157,7 @@ throw (MEDMEM::MEDEXCEPTION) :_has_mesh_ownership(true)
     _nodeglobal=array;
 
     MESSAGE("Reading face global numbering for mesh "<<domain_id);
-    int nbface=_mesh->getNumberOfElements(MED_EN::MED_FACE,MED_EN::MED_ALL_ELEMENTS);
+    int nbface=_mesh->getNumberOfElementsWithPoly(MED_EN::MED_FACE,MED_EN::MED_ALL_ELEMENTS);
     array=new int[nbface];
     currentEntity  = MED_EN::meshEntities.find(MED_EN::MED_FACE);
     offset=0;
@@ -165,7 +165,7 @@ throw (MEDMEM::MEDEXCEPTION) :_has_mesh_ownership(true)
     {
       MED_EN::medGeometryElement type=*iter;
       if (type/100 != _mesh->getMeshDimension()-1) continue;
-      int ntype = _mesh->getNumberOfElements(MED_EN::MED_FACE,type);
+      int ntype = _mesh->getNumberOfElementsWithPoly(MED_EN::MED_FACE,type);
       if (ntype==0) continue;
       med_2_3::MEDglobalNumLire(fid,meshname, array+offset, ntype,
                                 med_2_3::MED_FACE, (med_2_3::med_geometrie_element)type);
@@ -202,16 +202,17 @@ throw (MEDMEM::MEDEXCEPTION) :_has_mesh_ownership(true)
 ParaMESH::ParaMESH(MEDMEM::MESH& subdomain_mesh, const ProcessorGroup& proc_group, const string& name):
   _mesh(&subdomain_mesh),
   _my_domain_id(proc_group.myRank()),
-  _block_topology (new BlockTopology(proc_group, subdomain_mesh.getNumberOfElements(MED_EN::MED_CELL,MED_EN::MED_ALL_ELEMENTS))),
+  _block_topology (new BlockTopology(proc_group, subdomain_mesh.getNumberOfElementsWithPoly(MED_EN::MED_CELL,MED_EN::MED_ALL_ELEMENTS))),
   _has_mesh_ownership(false)
 {
   ostringstream stream;
   stream<<name<<"_"<<_my_domain_id+1;
   _name=stream.str();
 
-  _cellglobal = new int[subdomain_mesh.getNumberOfElements(MED_EN::MED_CELL, MED_EN::MED_ALL_ELEMENTS)];
+  int nbCells = subdomain_mesh.getNumberOfElementsWithPoly(MED_EN::MED_CELL, MED_EN::MED_ALL_ELEMENTS);
+  _cellglobal = new int[nbCells];
   int offset = _block_topology->localToGlobal(make_pair(_my_domain_id,0));
-  for (int i=0; i<subdomain_mesh.getNumberOfElements(MED_EN::MED_CELL, MED_EN::MED_ALL_ELEMENTS); i++)
+  for (int i=0; i<nbCells; i++)
   {
     _cellglobal[i]=offset+i;
   }