From 324ae8cbcdc71f0facbb569bd6bc4b573c547493 Mon Sep 17 00:00:00 2001 From: mattijs <mattijs> Date: Mon, 4 Mar 2019 10:56:41 +0000 Subject: [PATCH] BUG: faMesh: processors without faMesh. See #1090. pointNormals calculation gets triggered through processorfvPatches so on processors that don't have these bypass this. This leads to the global reduction hanging. --- .../faMesh/faBoundaryMesh/faBoundaryMesh.C | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.C b/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.C index bc904e8e27..53dda11eac 100644 --- a/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.C +++ b/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2018 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2018-2019 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- | Copyright (C) 2016-2017 Wikki Ltd @@ -173,6 +173,12 @@ Foam::faBoundaryMesh::faBoundaryMesh void Foam::faBoundaryMesh::calcGeometry() { + // processorFaPatch geometry triggers calculation of pointNormals. + // This uses parallel comms and hence will not be trigggered + // on processors that do not have a processorFaPatch so instead + // force construction. + (void)mesh_.pointAreaNormals(); + forAll(*this, patchi) { operator[](patchi).initGeometry(); @@ -377,6 +383,12 @@ bool Foam::faBoundaryMesh::checkDefinition(const bool report) const void Foam::faBoundaryMesh::movePoints(const pointField& p) { + // processorFaPatch geometry triggers calculation of pointNormals. + // This uses parallel comms and hence will not be trigggered + // on processors that do not have a processorFaPatch so instead + // force construction. + (void)mesh_.pointAreaNormals(); + faPatchList& patches = *this; forAll(patches, patchi) -- GitLab