diff --git a/source/Applications/DLR-F16-Solid/f16-solid-coarse.cfg b/source/Applications/DLR-F16-Solid/f16-solid-coarse.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..c2408171de9f669a083d168e38d8cb5d29d61c65
--- /dev/null
+++ b/source/Applications/DLR-F16-Solid/f16-solid-coarse.cfg
@@ -0,0 +1,61 @@
+pathOut = d:/temp/DLR-F16-Solid
+pathGeo = d:/Projects/SFB880/DLR-F16/Geometry
+
+fngFileWhole1 = F16_broad_Quad_noTape_full.stl
+fngFileWhole2 = F16_broad_Quad_full.stl
+
+accuracy = 0
+
+reinit = false
+pathReInit = /work/koskuche/DLR-F16_L7
+stepReInit = 10000
+
+numOfThreads = 4
+availMem = 10e9
+
+logToFile = false
+
+#x1min x1max x2min x2max x3min x3max [m]
+#boundingBox = -0.90 2.1 0.0 0.03 -0.66 0.66
+#boundingBox = -0.90 1.5 0.0 0.03 -0.66 0.66
+boundingBox = -0.125 0.45 0.0 0.03 -1.05 0.1
+
+blockNx = 10 10 10
+
+refineLevel = 5
+
+#deltaXfine = 5e-4
+#deltaXfine = 0.003
+#deltaXfine = 0.0015
+#deltaXfine = 0.00075 #level 0
+#deltaXfine = 0.000375 #level 1
+#deltaXfine = 0.0001875 #level 2
+#deltaXfine = 0.00009375 #level 3
+#deltaXfine = 0.000046875 #level 4
+deltaXfine = 0.0000234375 #level 5
+
+startDistance = -1.0e-3
+refineDistance = 0.6e-3
+
+writeBlocks = true
+
+newStart = true
+restartStep = 2000
+
+cpStep = 1000
+cpStart = 3000
+
+outTimeStep = 100
+outTimeStart = 100
+
+endTime = 10000
+
+
+#Cp
+pcpStart = 1000000
+pcpStop  = 1000000
+
+timeAvStart = 100
+timeAvStop  = 40000
+
+nupsStep = 1000 1000 10000000
diff --git a/source/Applications/DLR-F16-Solid/f16-solid.cfg b/source/Applications/DLR-F16-Solid/f16-solid.cfg
index 304613a23faf1df6ddfd2e964ce7c4199607634a..afdbcea262ef818b2cf0239dd7cca6dcd9723865 100644
--- a/source/Applications/DLR-F16-Solid/f16-solid.cfg
+++ b/source/Applications/DLR-F16-Solid/f16-solid.cfg
@@ -1,4 +1,4 @@
-pathOut = d:/temp/DLR-F16-Solid-comp
+pathOut = N:/DLR-F16-Solid
 pathGeo = d:/Projects/SFB880/DLR-F16/Geometry
 
 fngFileWhole1 = F16_broad_Quad_noTape_full.stl
@@ -37,8 +37,8 @@ refineDistance = 0.6e-3
 
 writeBlocks = false
 
-newStart = true
-restartStep = 2000
+newStart = false
+restartStep = 238000
 
 cpStep = 1000
 cpStart = 3000
@@ -46,7 +46,7 @@ cpStart = 3000
 outTimeStep = 100
 outTimeStart = 100
 
-endTime = 10000
+endTime = 238000
 
 
 #Cp
diff --git a/source/Applications/DLR-F16-Solid/f16.cpp b/source/Applications/DLR-F16-Solid/f16.cpp
index 177fa424682675f6967a063cad1981cb0c98bbeb..1924ae35277580005677b1f39854b304a0e29f51 100644
--- a/source/Applications/DLR-F16-Solid/f16.cpp
+++ b/source/Applications/DLR-F16-Solid/f16.cpp
@@ -185,6 +185,7 @@ void run(string configname)
       restartCoProcessor->setBCProcessor(bcProc);
 
       SPtr<UbScheduler> mSch(new UbScheduler(cpStep, cpStart));
+      //SPtr<MPIIOMigrationCoProcessor> migCoProcessor(new MPIIOMigrationCoProcessor(grid, mSch, pathOut+"/mig", comm));
       SPtr<MPIIOMigrationCoProcessor> migCoProcessor(new MPIIOMigrationCoProcessor(grid, mSch, pathOut+"/mig", comm));
       migCoProcessor->setLBMKernel(kernel);
       migCoProcessor->setBCProcessor(bcProc);
@@ -649,7 +650,8 @@ void run(string configname)
 
          //return;
 
-         restartCoProcessor->restart((int)restartStep);
+         //restartCoProcessor->restart((int)restartStep);
+         migCoProcessor->restart((int)restartStep);
          grid->setTimeStep(restartStep);
          ////////////////////////////////////////////////////////////////////////////
          InterpolationProcessorPtr iProcessor(new CompressibleOffsetInterpolationProcessor());
@@ -657,16 +659,16 @@ void run(string configname)
          grid->accept(setConnsVisitor);
 
 ///////////////////////////////////////////////////////////////////////////////////////////////
-         SPtr<GbTriFaceMesh3D> fngMeshWhole2;
-         if (myid==0) UBLOG(logINFO, "Read fngFileWhole2:start");
-         fngMeshWhole2 = SPtr<GbTriFaceMesh3D>(GbTriFaceMesh3DCreator::getInstance()->readMeshFromSTLFile2(pathGeo+"/"+fngFileWhole2, "fngMeshWhole2", GbTriFaceMesh3D::KDTREE_SAHPLIT, false));
-         if (myid==0) UBLOG(logINFO, "Read fngFileWhole2:end");
-         fngMeshWhole2->rotate(0.0, 0.5, 0.0);
-         if (myid==0) GbSystem3D::writeGeoObject(fngMeshWhole2.get(), pathOut+"/geo/fngMeshWhole3", WbWriterVtkXmlBinary::getInstance());
-         SPtr<Interactor3D> fngIntrWhole2 = SPtr<D3Q27TriFaceMeshInteractor>(new D3Q27TriFaceMeshInteractor(fngMeshWhole2, grid, noSlipBCAdapter, Interactor3D::SOLID, (Interactor3D::Accuracy)accuracy));
-         SetBcBlocksBlockVisitor v(fngIntrWhole2);
-         grid->accept(v);
-         fngIntrWhole2->initInteractor();
+         //SPtr<GbTriFaceMesh3D> fngMeshWhole2;
+         //if (myid==0) UBLOG(logINFO, "Read fngFileWhole2:start");
+         //fngMeshWhole2 = SPtr<GbTriFaceMesh3D>(GbTriFaceMesh3DCreator::getInstance()->readMeshFromSTLFile2(pathGeo+"/"+fngFileWhole2, "fngMeshWhole2", GbTriFaceMesh3D::KDTREE_SAHPLIT, false));
+         //if (myid==0) UBLOG(logINFO, "Read fngFileWhole2:end");
+         //fngMeshWhole2->rotate(0.0, 0.5, 0.0);
+         //if (myid==0) GbSystem3D::writeGeoObject(fngMeshWhole2.get(), pathOut+"/geo/fngMeshWhole3", WbWriterVtkXmlBinary::getInstance());
+         //SPtr<Interactor3D> fngIntrWhole2 = SPtr<D3Q27TriFaceMeshInteractor>(new D3Q27TriFaceMeshInteractor(fngMeshWhole2, grid, noSlipBCAdapter, Interactor3D::SOLID, (Interactor3D::Accuracy)accuracy));
+         //SetBcBlocksBlockVisitor v(fngIntrWhole2);
+         //grid->accept(v);
+         //fngIntrWhole2->initInteractor();
 ///////////////////////////////////////////////////////////////////////////////////////////////
 
          grid->accept(bcVisitor);
diff --git a/source/CMake/cmake_config_files/PHOENIX.config.cmake b/source/CMake/cmake_config_files/PHOENIX.config.cmake
index ce204f104eb27aba236a2c9b5f1d563cb9978d95..dec6c89211880d379a8566174292d10623e9e8ca 100644
--- a/source/CMake/cmake_config_files/PHOENIX.config.cmake
+++ b/source/CMake/cmake_config_files/PHOENIX.config.cmake
@@ -7,9 +7,9 @@ SET(BOOST_VERSION "1.63.0" CACHE STRING "std: 1.63.0")
 #  METIS  
 #################################################################################
 IF(${USE_METIS})
-  SET(METIS_INCLUDEDIR "/cluster/lib/metis/5.1.0/intel/include")
-  SET(METIS_DEBUG_LIBRARY "/cluster/lib/metis/5.1.0/intel/lib/libmetis.a") 
-  SET(METIS_RELEASE_LIBRARY "/cluster/lib/metis/5.1.0/intel/lib/libmetis.a") 
+  SET(METIS_INCLUDEDIR "/cluster/lib/metis/5.1.0/gcc/include")
+  SET(METIS_DEBUG_LIBRARY "/cluster/lib/metis/5.1.0/gcc/lib/libmetis.a") 
+  SET(METIS_RELEASE_LIBRARY "/cluster/lib/metis/5.1.0/gcc/lib/libmetis.a")
 ENDIF()
 
 #################################################################################
diff --git a/source/VirtualFluidsCore/CoProcessors/MPIIOMigrationCoProcessor.cpp b/source/VirtualFluidsCore/CoProcessors/MPIIOMigrationCoProcessor.cpp
index fba8b6b49523276aa832bcde53d8c18ff5f50642..a32cc411d8006c64439a981f10cb92db51e8c38b 100644
--- a/source/VirtualFluidsCore/CoProcessors/MPIIOMigrationCoProcessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/MPIIOMigrationCoProcessor.cpp
@@ -1536,7 +1536,12 @@ void MPIIOMigrationCoProcessor::readBlocks(int step)
    // read parameters of the grid
    MPI_File_read_at(file_handler, read_offset, gridParameters, 1, gridParamType, MPI_STATUS_IGNORE);
    // read all the blocks
-   MPI_File_read_at(file_handler, (MPI_Offset)(read_offset + sizeof(GridParam)), &block3dArray[0], blocksCount, block3dType, MPI_STATUS_IGNORE);
+   if (comm->isRoot())
+   {
+      MPI_File_read_at(file_handler, (MPI_Offset)(read_offset + sizeof(GridParam)), &block3dArray[0], blocksCount, block3dType, MPI_STATUS_IGNORE);
+   }
+
+   MPI_Bcast(block3dArray, blocksCount, block3dType, comm->getRoot(), MPI_COMM_WORLD);
 
    MPI_File_close(&file_handler);