From 3dcb180a03379b542641d387eddc0e672f5a12ae Mon Sep 17 00:00:00 2001
From: "hanouvit@vz" <vithanousek@seznam.cz>
Date: Sat, 5 May 2018 14:06:17 +0200
Subject: [PATCH] Fix explicit updater synchronization and distributed Heat
 equation initial condition load This version should compute same results if
 distributed or not distributed.

---
 src/TNL/Problems/HeatEquationProblem_impl.h | 2 ++
 src/TNL/Solvers/PDE/ExplicitUpdater.h       | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/TNL/Problems/HeatEquationProblem_impl.h b/src/TNL/Problems/HeatEquationProblem_impl.h
index a25a7d8f4d..e4fec6154f 100644
--- a/src/TNL/Problems/HeatEquationProblem_impl.h
+++ b/src/TNL/Problems/HeatEquationProblem_impl.h
@@ -149,6 +149,7 @@ setInitialCondition( const Config::ParameterContainer& parameters,
    if(CommunicatorType::isDistributed())
     {
         Meshes::DistributedMeshes::DistributedGridIO<MeshFunctionType,Meshes::DistributedMeshes::MpiIO> ::load(initialConditionFile, *uPointer );
+        uPointer->template Synchronize<CommunicatorType>();
     }
     else
     {
@@ -253,6 +254,7 @@ getExplicitUpdate( const RealType& time,
    this->explicitUpdater.setBoundaryConditions( this->boundaryConditionPointer ),
    this->explicitUpdater.setRightHandSide( this->rightHandSidePointer ),
    this->explicitUpdater.template update< typename Mesh::Cell, CommType >( time, tau, meshPointer, this->uPointer, fuPointer );
+
 }
 
 template< typename Mesh,
diff --git a/src/TNL/Solvers/PDE/ExplicitUpdater.h b/src/TNL/Solvers/PDE/ExplicitUpdater.h
index 0baf5e6de8..21608dc84e 100644
--- a/src/TNL/Solvers/PDE/ExplicitUpdater.h
+++ b/src/TNL/Solvers/PDE/ExplicitUpdater.h
@@ -150,7 +150,7 @@ class ExplicitUpdater
                                              userDataPointer );
 
          if(CommunicatorType::isDistributed())
-            uPointer->template Synchronize<CommunicatorType>();
+            fuPointer->template Synchronize<CommunicatorType>();
 
       }
       
-- 
GitLab