From d67b58d36fea5a11448b2ea77f9d12b6d469c968 Mon Sep 17 00:00:00 2001
From: alena <akaranchuk@list.ru>
Date: Fri, 7 Jun 2019 12:09:10 +0200
Subject: [PATCH] fix last merge issues in MPIIOMigrationCoProcessor and
 MPIIORestartCoProcessor

---
 .../geometry3d/CoordinateTransformation3D.h         |  1 +
 .../CoProcessors/MPIIOMigrationBECoProcessor.cpp    |  1 +
 .../CoProcessors/MPIIOMigrationCoProcessor.cpp      | 13 +++++++------
 .../CoProcessors/MPIIORestartCoProcessor.cpp        |  1 +
 4 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/source/VirtualFluidsBasic/numerics/geometry3d/CoordinateTransformation3D.h b/source/VirtualFluidsBasic/numerics/geometry3d/CoordinateTransformation3D.h
index 6928c5db2..922d51986 100644
--- a/source/VirtualFluidsBasic/numerics/geometry3d/CoordinateTransformation3D.h
+++ b/source/VirtualFluidsBasic/numerics/geometry3d/CoordinateTransformation3D.h
@@ -153,6 +153,7 @@ private:
    friend class MPIIORestartCoProcessor;
    friend class MPIIOMigrationCoProcessor;
    friend class MPIIOMigrationBECoProcessor;
+   friend class CheckpointConverter;
 };
 
 #endif //COORDINATETRANSFORMATION3D_H
diff --git a/source/VirtualFluidsCore/CoProcessors/MPIIOMigrationBECoProcessor.cpp b/source/VirtualFluidsCore/CoProcessors/MPIIOMigrationBECoProcessor.cpp
index 1992d0726..77e6788bf 100644
--- a/source/VirtualFluidsCore/CoProcessors/MPIIOMigrationBECoProcessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/MPIIOMigrationBECoProcessor.cpp
@@ -1698,6 +1698,7 @@ void MPIIOMigrationBECoProcessor::readDataSet(int step)
 
          // find the nesessary block and fill it
          SPtr<Block3D> block = grid->getBlock(blockID);
+         this->lbmKernel->setBlock(block);
          SPtr<LBMKernel> kernel = this->lbmKernel->clone();
          LBMReal collFactor = LBMSystem::calcCollisionFactor(this->nue, block->getLevel());
          kernel->setCollisionFactor(collFactor);
diff --git a/source/VirtualFluidsCore/CoProcessors/MPIIOMigrationCoProcessor.cpp b/source/VirtualFluidsCore/CoProcessors/MPIIOMigrationCoProcessor.cpp
index 4240eec8e..236cb7135 100644
--- a/source/VirtualFluidsCore/CoProcessors/MPIIOMigrationCoProcessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/MPIIOMigrationCoProcessor.cpp
@@ -1560,13 +1560,14 @@ void MPIIOMigrationCoProcessor::readBlocks(int step)
    }
 
    // clear the grid
-   std::vector<SPtr<Block3D>> blocksVector;
-   grid->getBlocks(0, blocksVector);
-   int del = 0;
-   for (SPtr<Block3D> block : blocksVector)
+   std::vector<SPtr<Block3D>> blocksVector[25];
+   int minInitLevel = this->grid->getCoarsestInitializedLevel();
+   int maxInitLevel = this->grid->getFinestInitializedLevel();
+   for (int level = minInitLevel; level <= maxInitLevel; level++)
    {
-      grid->deleteBlock(block);
-      del++;
+      grid->getBlocks(level, blocksVector[level]);
+      for (SPtr<Block3D> block : blocksVector[level])  //	blocks of the current level
+         grid->deleteBlock(block);
    }
 
    // restore the grid
diff --git a/source/VirtualFluidsCore/CoProcessors/MPIIORestartCoProcessor.cpp b/source/VirtualFluidsCore/CoProcessors/MPIIORestartCoProcessor.cpp
index d8b006804..4e7d3c239 100644
--- a/source/VirtualFluidsCore/CoProcessors/MPIIORestartCoProcessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/MPIIORestartCoProcessor.cpp
@@ -1921,6 +1921,7 @@ void MPIIORestartCoProcessor::readDataSet(int step)
 
       // find the nesessary block and fill it
       SPtr<Block3D> block = grid->getBlock(dataSetArray[n].x1, dataSetArray[n].x2, dataSetArray[n].x3, dataSetArray[n].level);
+      this->lbmKernel->setBlock(block);
       SPtr<LBMKernel> kernel = this->lbmKernel->clone();
       kernel->setGhostLayerWidth(dataSetArray[n].ghostLayerWidth);
       kernel->setCollisionFactor(dataSetArray[n].collFactor);
-- 
GitLab