From e57a1fe02ec0eb6f195803021bcb4ae085c0b8bf Mon Sep 17 00:00:00 2001 From: wmayer Date: Sat, 24 Feb 2024 19:03:23 +0100 Subject: [PATCH] Fixes #12586: FEM requires OpenMP 5.0 (e.g. GCC >= 9) --- src/Mod/Fem/App/FemMesh.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Mod/Fem/App/FemMesh.cpp b/src/Mod/Fem/App/FemMesh.cpp index 378291c470..008412acb3 100644 --- a/src/Mod/Fem/App/FemMesh.cpp +++ b/src/Mod/Fem/App/FemMesh.cpp @@ -910,7 +910,8 @@ std::set FemMesh::getNodesBySolid(const TopoDS_Solid& solid) const } #pragma omp parallel for schedule(dynamic) - for (auto aNode : nodes) { + for (size_t i = 0; i < nodes.size(); ++i) { + const SMDS_MeshNode* aNode = nodes[i]; double xyz[3]; aNode->GetXYZ(xyz); Base::Vector3d vec(xyz[0], xyz[1], xyz[2]); @@ -962,7 +963,8 @@ std::set FemMesh::getNodesByFace(const TopoDS_Face& face) const } #pragma omp parallel for schedule(dynamic) - for (auto aNode : nodes) { + for (size_t i = 0; i < nodes.size(); ++i) { + const SMDS_MeshNode* aNode = nodes[i]; double xyz[3]; aNode->GetXYZ(xyz); Base::Vector3d vec(xyz[0], xyz[1], xyz[2]); @@ -1012,7 +1014,8 @@ std::set FemMesh::getNodesByEdge(const TopoDS_Edge& edge) const } #pragma omp parallel for schedule(dynamic) - for (auto aNode : nodes) { + for (size_t i = 0; i < nodes.size(); ++i) { + const SMDS_MeshNode* aNode = nodes[i]; double xyz[3]; aNode->GetXYZ(xyz); Base::Vector3d vec(xyz[0], xyz[1], xyz[2]); @@ -1061,7 +1064,8 @@ std::set FemMesh::getNodesByVertex(const TopoDS_Vertex& vertex) const } #pragma omp parallel for schedule(dynamic) - for (auto aNode : nodes) { + for (size_t i = 0; i < nodes.size(); ++i) { + const SMDS_MeshNode* aNode = nodes[i]; double xyz[3]; aNode->GetXYZ(xyz); Base::Vector3d vec(xyz[0], xyz[1], xyz[2]);