]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
checkDeepEquivalWith: simpler cell checking logic to account for redundant cells
authorabn <adrien.bruneton@cea.fr>
Wed, 4 Jun 2014 07:14:06 +0000 (09:14 +0200)
committergeay <anthony.geay@cea.fr>
Fri, 20 Jun 2014 13:21:35 +0000 (15:21 +0200)
in a given mesh.

src/MEDCoupling/MEDCouplingPointSet.cxx

index d44c666dc7e524a719a328d78459fe7318c1b454..27ce1b93b0c1dccf1c6ac5daa8b63e6480c4bb8b 100644 (file)
@@ -1472,25 +1472,19 @@ void MEDCouplingPointSet::checkDeepEquivalWith(const MEDCouplingMesh *other, int
   //
   da=m->zipConnectivityTraducer(cellCompPol);
   int nbCells=getNumberOfCells();
+  if (nbCells != other->getNumberOfCells())
+    throw INTERP_KERNEL::Exception("checkDeepEquivalWith : some cells in other are not in this !");
   int maxId=-1;
   int dan = da->getNumberOfTuples();
   if (dan)
     {
-      if (dan & 1)
-        throw INTERP_KERNEL::Exception("checkDeepEquivalWith : some cells in other are not in this !");
       MEDCouplingAutoRefCountObjectPtr<DataArrayInt> da1 = DataArrayInt::New(), da2 = DataArrayInt::New();
       da1->alloc(dan/2,1); da2->alloc(dan/2,1);
       std::copy(da->getConstPointer(), da->getConstPointer()+dan/2, da1->getPointer());
       std::copy(da->getConstPointer()+dan/2, da->getConstPointer()+dan, da2->getPointer());
       da1->sort(); da2->sort();
-      if (*da1->getConstPointer() != *da2->getConstPointer())
+      if (!da1->isEqualWithoutConsideringStr(*da2))
         throw INTERP_KERNEL::Exception("checkDeepEquivalWith : some cells in other are not in this !");
-      if (dan > 2)
-        {
-          MEDCouplingAutoRefCountObjectPtr<DataArrayInt> dsi1 = da1->deltaShiftIndex(), dsi2 = da2->deltaShiftIndex();
-          if (!(dsi1->isUniform(1) && dsi2->isUniform(1)))
-            throw INTERP_KERNEL::Exception("checkDeepEquivalWith : some cells in other are not in this !");
-        }
     }
   MEDCouplingAutoRefCountObjectPtr<DataArrayInt> cellCor2=da->selectByTupleId2(nbCells,da->getNbOfElems(),1);
   nodeCor=nodeCor2->isIdentity()?0:nodeCor2.retn();