From 31600c96d4465643c96649d74a89d617384ced82 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Mon, 8 May 2023 18:55:23 +0200 Subject: [PATCH] ENH: output finiteArea patchID with foamToVTK -with-ids - can be quite useful for debugging/orientation with complex geometries --- .../foamToVTK/convertAreaFields.H | 20 ++++++++++++++----- .../foamToVTK/convertLagrangian.H | 6 +++--- .../foamToVTK/convertProcessorPatches.H | 17 ++++++++-------- .../foamToVTK/convertSurfaceFields.H | 8 ++++---- .../dataConversion/foamToVTK/convertTopoSet.H | 4 ++-- .../foamToVTK/convertVolumeFields.H | 8 ++++---- .../dataConversion/foamToVTK/foamToVTK.C | 8 ++++---- 7 files changed, 40 insertions(+), 31 deletions(-) diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/convertAreaFields.H b/applications/utilities/postProcessing/dataConversion/foamToVTK/convertAreaFields.H index d72c251c27..bdfe96ceb5 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToVTK/convertAreaFields.H +++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/convertAreaFields.H @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2018-2022 OpenCFD Ltd. + Copyright (C) 2018-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM, distributed under GPL-3.0-or-later. @@ -52,7 +52,7 @@ if (doFiniteArea) outputDir/regionDir/"finite-area" / "finiteArea" + timeDesc ), - Pstream::parRun() + UPstream::parRun() ); Info<< " Area : " << args.relativePath(writer.output()) << nl; @@ -62,10 +62,10 @@ if (doFiniteArea) writer.writeTimeValue(timeValue); writer.writeGeometry(); - // Optionally with (cellID, faceLabels, procID) fields + // Optionally with (cellID, patchID, faceLabels, procID) fields writer.beginCellData ( - (withMeshIds ? 2 + (writer.parallel() ? 1 : 0) : 0) + (withMeshIds ? 3 + (writer.parallel() ? 1 : 0) : 0) + nAreaFields ); @@ -76,6 +76,16 @@ if (doFiniteArea) // Use global indexed values for the 'cell' ids writer.writeCellData("cellID", identity(procAddr.range())); + // The patch ids can also be quite useful + const polyBoundaryMesh& pbm = areaMesh.mesh().boundaryMesh(); + + labelList patchIds + ( + areaMesh.mesh().boundaryMesh().patchID(areaMesh.faceLabels()) + ); + + writer.writeCellData("patchID", patchIds); + // Use proc-local data for faceLabels // (confusing enough already without renumbering) writer.writeCellData("faceLabels", areaMesh.faceLabels()); @@ -95,7 +105,7 @@ if (doFiniteArea) writer.close(); - if (Pstream::master()) + if (UPstream::master()) { // Add to file-series and emit as JSON diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/convertLagrangian.H b/applications/utilities/postProcessing/dataConversion/foamToVTK/convertLagrangian.H index 7233b0cacf..cc533e3a9b 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToVTK/convertLagrangian.H +++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/convertLagrangian.H @@ -30,7 +30,7 @@ if (doLagrangian) nameOp() ); - if (Pstream::parRun()) + if (UPstream::parRun()) { // Synchronise cloud names Pstream::combineReduce(cloudNames, ListOps::uniqueEqOp()); @@ -78,7 +78,7 @@ if (doLagrangian) outputDir/regionDir/cloud::prefix / cloudName/cloudName + timeDesc ), - Pstream::parRun() + UPstream::parRun() ); Info<< " Lagrangian: " @@ -101,7 +101,7 @@ if (doLagrangian) writer.close(); - if (Pstream::master()) + if (UPstream::master()) { // Add to file-series and emit as JSON diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/convertProcessorPatches.H b/applications/utilities/postProcessing/dataConversion/foamToVTK/convertProcessorPatches.H index a220bfecdc..32198a6eb9 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToVTK/convertProcessorPatches.H +++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/convertProcessorPatches.H @@ -71,9 +71,8 @@ Description label nPatchWriters = 0; - List procPatchNames(Pstream::nProcs()); - - procPatchNames[Pstream::myProcNo()].resize(patchIds.size()); + List procPatchNames(UPstream::nProcs()); + procPatchNames[UPstream::myProcNo()].resize(patchIds.size()); for (const label patchId : patchIds) { @@ -87,13 +86,13 @@ Description nearCellValue, ( vtmOutputBase - / subDirNaming(Pstream::myProcNo()) + / subDirNaming(UPstream::myProcNo()) / pp.name() ), false // This MUST be non-parallel (serial only) ); - procPatchNames[Pstream::myProcNo()][nPatchWriters] = pp.name(); + procPatchNames[UPstream::myProcNo()][nPatchWriters] = pp.name(); writer->writeTimeValue(timeValue); writer->writeGeometry(); @@ -111,10 +110,10 @@ Description for (vtk::patchWriter& writer : patchWriters) { // Optionally with patchID, procID, neighID fields - // - use Pstream::parRun() not writer.parallel() !! + // - use UPstream::parRun() not writer.parallel() !! writer.beginCellData ( - (withMeshIds ? 1 + (Pstream::parRun() ? 2 : 0) : 0) + (withMeshIds ? 1 + (UPstream::parRun() ? 2 : 0) : 0) + nVolFields ); @@ -158,10 +157,10 @@ Description const label nProcPatches = returnReduce(nPatchWriters, sumOp