From 69ea4976aca78d9d539237af95d8ea21668d2a5c Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Mon, 6 Nov 2017 17:06:15 +0100 Subject: [PATCH] ENH: reduced verbosity when decomposing/reconstructing empty meshes - only warn about missing cells/points if the mesh is also missing boundary patches. - reduce verbosity when decomposing to an empty mesh - skip face matching when either mesh has no faces --- .../decomposePar/domainDecomposition.C | 24 +++++++++++++------ src/OpenFOAM/meshes/polyMesh/polyMesh.C | 20 ++++++++++------ .../polyMeshAdder/faceCoupleInfo.C | 9 +++++++ 3 files changed, 39 insertions(+), 14 deletions(-) diff --git a/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C b/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C index b2a14692578..bf722cfbae3 100644 --- a/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C +++ b/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C @@ -831,11 +831,18 @@ bool Foam::domainDecomposition::writeDecomposition(const bool decomposeSets) // Statistics + Info<< nl << "Processor " << proci; - Info<< endl - << "Processor " << proci << nl - << " Number of cells = " << procMesh.nCells() - << endl; + if (procMesh.nCells()) + { + Info<< nl << " "; + } + else + { + Info<< ": "; + } + + Info<< "Number of cells = " << procMesh.nCells() << nl; maxProcCells = max(maxProcCells, procMesh.nCells()); @@ -865,9 +872,12 @@ bool Foam::domainDecomposition::writeDecomposition(const bool decomposeSets) } } - Info<< " Number of processor patches = " << nProcPatches << nl - << " Number of processor faces = " << nProcFaces << nl - << " Number of boundary faces = " << nBoundaryFaces << endl; + if (procMesh.nCells() && (nBoundaryFaces || nProcFaces)) + { + Info<< " Number of processor patches = " << nProcPatches << nl + << " Number of processor faces = " << nProcFaces << nl + << " Number of boundary faces = " << nBoundaryFaces << nl; + } totProcFaces += nProcFaces; totProcPatches += nProcPatches; diff --git a/src/OpenFOAM/meshes/polyMesh/polyMesh.C b/src/OpenFOAM/meshes/polyMesh/polyMesh.C index 6c44d9e8d1b..de8d164ef75 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyMesh.C +++ b/src/OpenFOAM/meshes/polyMesh/polyMesh.C @@ -325,15 +325,21 @@ Foam::polyMesh::polyMesh(const IOobject& io) boundary_.calcGeometry(); // Warn if global empty mesh - if (returnReduce(nPoints(), sumOp<label>()) == 0) + if (returnReduce(boundary_.empty(), orOp<bool>())) { WarningInFunction - << "no points in mesh" << endl; - } - if (returnReduce(nCells(), sumOp<label>()) == 0) - { - WarningInFunction - << "no cells in mesh" << endl; + << "mesh missing boundary on one or more domains" << endl; + + if (returnReduce(nPoints(), sumOp<label>()) == 0) + { + WarningInFunction + << "no points in mesh" << endl; + } + if (returnReduce(nCells(), sumOp<label>()) == 0) + { + WarningInFunction + << "no cells in mesh" << endl; + } } // Initialise demand-driven data diff --git a/src/dynamicMesh/polyMeshAdder/faceCoupleInfo.C b/src/dynamicMesh/polyMeshAdder/faceCoupleInfo.C index e1c8a08e64d..3c3edde47d7 100644 --- a/src/dynamicMesh/polyMeshAdder/faceCoupleInfo.C +++ b/src/dynamicMesh/polyMeshAdder/faceCoupleInfo.C @@ -886,6 +886,15 @@ void Foam::faceCoupleInfo::findPerfectMatchingFaces labelList& mesh1Faces ) { + // Quick check: skip face matching if either mesh has no faces + if (!mesh0.nFaces() || !mesh1.nFaces()) + { + mesh0Faces.clear(); + mesh1Faces.clear(); + + return; + } + // Face centres of external faces (without invoking // mesh.faceCentres since mesh might have been clearedOut) -- GitLab