Salome HOME
Just do it
[tools/medcoupling.git] / src / MEDLoader / MEDFileMeshLL.cxx
index b3a76b444d4701f1c4d09b9a238903cfe38928a8..65d4e4c4cde45496570400039e6c177e310a1b7f 100644 (file)
@@ -2091,9 +2091,11 @@ MEDFileEltStruct4Mesh::MEDFileEltStruct4Mesh(med_idt fid, const std::string& mNa
   }
   MCAuto<MEDFileMeshSupports> mss(MEDFileMeshSupports::New(fid));
   MCAuto<MEDFileStructureElements> mse(MEDFileStructureElements::New(fid,mss));
-  int nbOfNodesPerCell(mse->getNumberOfNodesPerCellOf(_geo_type_name));
-  _conn=DataArrayInt::New(); _conn->alloc(nCells,nbOfNodesPerCell);
+  int nbEntities(mse->getNumberOfNodesPerSE(_geo_type_name));
+  _conn=DataArrayInt::New(); _conn->alloc(nCells*nbEntities);
   MEDFILESAFECALLERRD0(MEDmeshElementConnectivityRd,(fid,mName.c_str(),dt,it,MED_STRUCT_ELEMENT,_geo_type,MED_NODAL,MED_FULL_INTERLACE,_conn->getPointer()));
+  _conn->applyLin(1,-1);
+  _conn->rearrange(nbEntities);
   _common=MEDFileUMeshPerTypeCommon::New();
   _common->loadCommonPart(fid,mName.c_str(),dt,it,nCells,geoType,MED_STRUCT_ELEMENT,mrs);
   std::vector<std::string> vns(mse->getVarAttsOf(_geo_type_name));
@@ -2107,5 +2109,6 @@ MEDFileEltStruct4Mesh::MEDFileEltStruct4Mesh(med_idt fid, const std::string& mNa
       arr->alloc(nCells,var->getNbOfComponents());
       arr->setName(vns[i]);
       MEDFILESAFECALLERRD0(MEDmeshStructElementVarAttRd,(fid,mName.c_str(),dt,it,_geo_type,vns[i].c_str(),arr->getVoidStarPointer()));
+      _vars[i]=arr;
     }
 }