From 9f45a939bb468e48a5ca440050190c4337210dd6 Mon Sep 17 00:00:00 2001 From: HOCH PHILIPPE <philippe.hoch@gmail.com> Date: Sun, 17 Nov 2024 18:44:12 +0100 Subject: [PATCH] limitation is parallelised ok for second order schemes.. --- src/scheme/CellbyCellLimitation.hpp | 3 +++ src/scheme/RoeViscousFormEulerianCompositeSolver_v2_o2.cpp | 5 ++++- src/scheme/RusanovEulerianCompositeSolver_v2_o2.cpp | 6 ++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/scheme/CellbyCellLimitation.hpp b/src/scheme/CellbyCellLimitation.hpp index 5369c4fd6..73a8ae06b 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 371129c55..8e9f257b6 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 9e38262d5..0133f85d5 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(); -- GitLab