diff --git a/src/scheme/CellbyCellLimitation.hpp b/src/scheme/CellbyCellLimitation.hpp
index 5369c4fd6f5485c9cccf303a22d14cddfb0bef7b..73a8ae06bec59c9b637c032bbb5f165c131fe15b 100644
--- a/src/scheme/CellbyCellLimitation.hpp
+++ b/src/scheme/CellbyCellLimitation.hpp
@@ -5,6 +5,7 @@
 #include <mesh/MeshData.hpp>
 
 #include <language/utils/InterpolateItemArray.hpp>
+#include <mesh/ItemValueUtils.hpp>
 #include <mesh/Mesh.hpp>
 #include <mesh/MeshData.hpp>
 #include <mesh/MeshDataManager.hpp>
@@ -253,6 +254,7 @@ class CellByCellLimitation
           // grad(i) *= alfa;
         });
     }
+    synchronize(Limitor_q);
   }
 
   void
@@ -542,6 +544,7 @@ class CellByCellLimitation
           Limitor_eps[j] = alfa;
         });
     }
+    synchronize(Limitor_eps);
   }
 };
 #endif
diff --git a/src/scheme/RoeViscousFormEulerianCompositeSolver_v2_o2.cpp b/src/scheme/RoeViscousFormEulerianCompositeSolver_v2_o2.cpp
index 371129c55dfd93db8db5fc4eca93a4362f6c82f2..8e9f257b688a343e65ea7dfb2aa6b46c046e6f63 100644
--- a/src/scheme/RoeViscousFormEulerianCompositeSolver_v2_o2.cpp
+++ b/src/scheme/RoeViscousFormEulerianCompositeSolver_v2_o2.cpp
@@ -12,6 +12,7 @@
 #include <mesh/MeshNodeBoundary.hpp>
 #include <mesh/MeshTraits.hpp>
 #include <mesh/MeshVariant.hpp>
+#include <mesh/SubItemValuePerItemUtils.hpp>
 #include <scheme/DiscreteFunctionDPk.hpp>
 #include <scheme/DiscreteFunctionDPkVariant.hpp>
 #include <scheme/DiscreteFunctionDPkVector.hpp>
@@ -1652,7 +1653,7 @@ class RoeViscousFormEulerianCompositeSolver_v2_o2
           Gjr[j][l] *= 1. / node_to_cell.size();
         }
       });
-
+    synchronize(Gjr);
     if (checkLocalConservation) {
       auto is_boundary_node = p_mesh->connectivity().isBoundaryNode();
 
@@ -1772,6 +1773,7 @@ class RoeViscousFormEulerianCompositeSolver_v2_o2
           Gjf[j][l] *= 1. / face_to_cell.size();
         }
       });
+    synchronize(Gjf);
 
     if (checkLocalConservation) {
       auto is_boundary_face = p_mesh->connectivity().isBoundaryFace();
@@ -1902,6 +1904,7 @@ class RoeViscousFormEulerianCompositeSolver_v2_o2
             Gje[j][l] *= 1. / edge_to_cell.size();
           }
         });
+      synchronize(Gje);
 
       if (checkLocalConservation) {
         auto is_boundary_edge = p_mesh->connectivity().isBoundaryEdge();
diff --git a/src/scheme/RusanovEulerianCompositeSolver_v2_o2.cpp b/src/scheme/RusanovEulerianCompositeSolver_v2_o2.cpp
index 9e38262d569a33429b4f225d3849e4328e8219bb..0133f85d5162f24d410d9f4a56650307b9bb1d6f 100644
--- a/src/scheme/RusanovEulerianCompositeSolver_v2_o2.cpp
+++ b/src/scheme/RusanovEulerianCompositeSolver_v2_o2.cpp
@@ -12,6 +12,7 @@
 #include <mesh/MeshNodeBoundary.hpp>
 #include <mesh/MeshTraits.hpp>
 #include <mesh/MeshVariant.hpp>
+#include <mesh/SubItemValuePerItemUtils.hpp>
 #include <scheme/DiscreteFunctionDPk.hpp>
 #include <scheme/DiscreteFunctionDPkVariant.hpp>
 #include <scheme/DiscreteFunctionDPkVector.hpp>
@@ -1221,7 +1222,7 @@ class RusanovEulerianCompositeSolver_v2_o2
           Gjr[j][l] *= 1. / node_to_cell.size();
         }
       });
-
+    synchronize(Gjr);
     if (checkLocalConservation) {
       auto is_boundary_node = p_mesh->connectivity().isBoundaryNode();
 
@@ -1294,7 +1295,7 @@ class RusanovEulerianCompositeSolver_v2_o2
           Gjf[j][l] *= 1. / face_to_cell.size();
         }
       });
-
+    synchronize(Gjf);
     if (checkLocalConservation) {
       auto is_boundary_face = p_mesh->connectivity().isBoundaryFace();
 
@@ -1376,6 +1377,7 @@ class RusanovEulerianCompositeSolver_v2_o2
             Gje[j][l] *= 1. / edge_to_cell.size();
           }
         });
+      synchronize(Gje);
 
       if (checkLocalConservation) {
         auto is_boundary_edge = p_mesh->connectivity().isBoundaryEdge();