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
This commit is contained in:
Mark Olesen 2017-11-06 17:06:15 +01:00
parent dc2177cc68
commit 69ea4976ac
3 changed files with 39 additions and 14 deletions

View File

@ -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;

View File

@ -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

View File

@ -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)