]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
Some helpers for debugging
authorAnthony Geay <anthony.geay@edf.fr>
Tue, 28 Apr 2020 20:35:36 +0000 (22:35 +0200)
committerAnthony Geay <anthony.geay@edf.fr>
Tue, 28 Apr 2020 20:35:36 +0000 (22:35 +0200)
src/MEDCoupling/MEDCouplingMemArray.hxx
src/ParaMEDMEM/ParaUMesh.hxx

index 501cea75e7e63e29d8b7ebecb79a7982ba71ff5e..dd2b5f15377413f06cf5761e0e2137eb85ea4cde 100755 (executable)
@@ -235,6 +235,13 @@ namespace MEDCoupling
     static MCAuto< typename Traits<T>::ArrayTypeCh > NewFromArray(const T *arrBegin, const T *arrEnd);
     std::vector< MCAuto< typename Traits<T>::ArrayTypeCh > > explodeComponents() const;
     //
+    void printForDebug(std::ostream& oss) const
+    {
+      this->checkAllocated();
+      char comma[3] = {'\0',' ','\0'};
+      std::for_each(this->begin(),this->end(),[&comma,&oss](const T& elt) { oss << comma << elt; comma[0]=','; } );
+      oss << std::endl;
+    }
     std::size_t getHeapMemorySizeWithoutChildren() const;
     void updateTime() const { }
     //
index ec404a6535c5e4fcf9cbb9a64017afb9530765e6..8086d85b1358f618689e9b7187eeccfbad905cfb 100644 (file)
@@ -64,6 +64,8 @@ namespace MEDCoupling
       using DataArrayT = typename Traits<T>::ArrayType;
       MPI_Comm comm(MPI_COMM_WORLD);
       CommInterface ci;
+      if( _cell_global->getNumberOfTuples() != fieldValueToRed->getNumberOfTuples() )
+        throw INTERP_KERNEL::Exception("PAraUMesh::redistributeCellFieldT : invalid input length of array !");
       std::unique_ptr<mcIdType[]> allGlobalCellIds,allGlobalCellIdsIndex;
       int size(ci.allGatherArrays(comm,globalCellIds,allGlobalCellIds,allGlobalCellIdsIndex));
       // Prepare ParaUMesh parts to be sent : compute for each proc the contribution of current rank.
@@ -103,6 +105,8 @@ namespace MEDCoupling
       using DataArrayT = typename Traits<T>::ArrayType;
       MPI_Comm comm(MPI_COMM_WORLD);
       CommInterface ci;
+      if( _node_global->getNumberOfTuples() != fieldValueToRed->getNumberOfTuples() )
+        throw INTERP_KERNEL::Exception("PAraUMesh::redistributeNodeFieldT : invalid input length of array !");
       std::unique_ptr<mcIdType[]> allGlobalCellIds,allGlobalCellIdsIndex;
       int size(ci.allGatherArrays(comm,globalCellIds,allGlobalCellIds,allGlobalCellIdsIndex));
       // Prepare ParaUMesh parts to be sent : compute for each proc the contribution of current rank.