From bacb35a4df3991a9bd017c4b884489f40e0ea741 Mon Sep 17 00:00:00 2001 From: Kutalmis Bercin <kutalmis.bercin@esi-group.com> Date: Thu, 12 Sep 2024 16:30:03 +0100 Subject: [PATCH] ENH: functionObjects: add optional flag to suppress warnings for missing patches --- src/functionObjects/field/Curle/Curle.C | 7 +++++-- src/functionObjects/field/Curle/Curle.H | 3 +++ .../field/binField/binModels/binModel/binModel.C | 6 +++++- .../field/binField/binModels/binModel/binModel.H | 3 +++ .../field/columnAverage/columnAverage.C | 8 ++++++-- .../field/columnAverage/columnAverage.H | 3 +++ .../heatTransferCoeffModel/heatTransferCoeffModel.C | 7 +++++-- .../heatTransferCoeffModel/heatTransferCoeffModel.H | 3 +++ .../field/nearWallFields/nearWallFields.C | 7 +++++-- .../field/nearWallFields/nearWallFields.H | 3 +++ .../regionSizeDistribution/regionSizeDistribution.C | 10 ++++++++-- .../regionSizeDistribution/regionSizeDistribution.H | 3 +++ src/functionObjects/field/wallHeatFlux/wallHeatFlux.C | 6 ++++-- src/functionObjects/field/wallHeatFlux/wallHeatFlux.H | 3 +++ .../field/wallShearStress/wallShearStress.C | 6 ++++-- .../field/wallShearStress/wallShearStress.H | 3 +++ src/functionObjects/forces/forces/forces.C | 11 ++++++++--- src/functionObjects/forces/forces/forces.H | 3 +++ 18 files changed, 77 insertions(+), 18 deletions(-) diff --git a/src/functionObjects/field/Curle/Curle.C b/src/functionObjects/field/Curle/Curle.C index 6b53be07234..71fe3476e93 100644 --- a/src/functionObjects/field/Curle/Curle.C +++ b/src/functionObjects/field/Curle/Curle.C @@ -67,7 +67,8 @@ Foam::functionObjects::Curle::Curle c0_(0), rawFilePtrs_(), inputSurface_(), - surfaceWriterPtr_(nullptr) + surfaceWriterPtr_(nullptr), + warnOnNoPatch_(true) { read(dict); } @@ -85,8 +86,10 @@ bool Foam::functionObjects::Curle::read(const dictionary& dict) } dict.readIfPresent("p", pName_); + dict.readIfPresent("warnOnNoPatch", warnOnNoPatch_); - patchIDs_ = pbm.patchSet(dict.get<wordRes>("patches")).sortedToc(); + patchIDs_ = + pbm.patchSet(dict.get<wordRes>("patches"), warnOnNoPatch_).sortedToc(); if (patchIDs_.empty()) { diff --git a/src/functionObjects/field/Curle/Curle.H b/src/functionObjects/field/Curle/Curle.H index 06beac04f67..07cf5525ee3 100644 --- a/src/functionObjects/field/Curle/Curle.H +++ b/src/functionObjects/field/Curle/Curle.H @@ -181,6 +181,9 @@ class Curle //- Ouput surface when sampling a surface autoPtr<surfaceWriter> surfaceWriterPtr_; + //- Flag to suppress warnings for missing patches + bool warnOnNoPatch_; + public: diff --git a/src/functionObjects/field/binField/binModels/binModel/binModel.C b/src/functionObjects/field/binField/binModels/binModel/binModel.C index b8fd5cbe655..09b8d9e61e5 100644 --- a/src/functionObjects/field/binField/binModels/binModel/binModel.C +++ b/src/functionObjects/field/binField/binModels/binModel/binModel.C @@ -122,6 +122,7 @@ Foam::binModel::binModel mesh_(mesh), decomposePatchValues_(false), cumulative_(false), + warnOnNoPatch_(true), coordSysPtr_(nullptr), nBin_(1) {} @@ -138,8 +139,11 @@ bool Foam::binModel::read(const dictionary& dict) return false; } + dict.readIfPresent("warnOnNoPatch", warnOnNoPatch_); + // Can also use pbm.indices(), but no warnings... - patchIDs_ = pbm.patchSet(dict.get<wordRes>("patches")).sortedToc(); + patchIDs_ = + pbm.patchSet(dict.get<wordRes>("patches"), warnOnNoPatch_).sortedToc(); fieldNames_ = dict.get<wordHashSet>("fields").sortedToc(); wordRes zoneNames; diff --git a/src/functionObjects/field/binField/binModels/binModel/binModel.H b/src/functionObjects/field/binField/binModels/binModel/binModel.H index 1531507e677..26a2c595c3b 100644 --- a/src/functionObjects/field/binField/binModels/binModel/binModel.H +++ b/src/functionObjects/field/binField/binModels/binModel/binModel.H @@ -77,6 +77,9 @@ protected: //- increasing distance in binning direction bool cumulative_; + //- Flag to suppress warnings for missing patches + bool warnOnNoPatch_; + //- Local coordinate system of bins autoPtr<coordinateSystem> coordSysPtr_; diff --git a/src/functionObjects/field/columnAverage/columnAverage.C b/src/functionObjects/field/columnAverage/columnAverage.C index c9ea8f81ac4..6cab72ca732 100644 --- a/src/functionObjects/field/columnAverage/columnAverage.C +++ b/src/functionObjects/field/columnAverage/columnAverage.C @@ -128,7 +128,8 @@ Foam::functionObjects::columnAverage::columnAverage : fvMeshFunctionObject(name, runTime, dict), patchIDs_(), - fieldSet_(mesh_) + fieldSet_(mesh_), + warnOnNoPatch_(true) { read(dict); } @@ -140,10 +141,13 @@ bool Foam::functionObjects::columnAverage::read(const dictionary& dict) { fvMeshFunctionObject::read(dict); + dict.readIfPresent("warnOnNoPatch", warnOnNoPatch_); + patchIDs_ = mesh_.boundaryMesh().patchSet ( - dict.get<wordRes>("patches") + dict.get<wordRes>("patches"), + warnOnNoPatch_ ).sortedToc(); fieldSet_.read(dict); diff --git a/src/functionObjects/field/columnAverage/columnAverage.H b/src/functionObjects/field/columnAverage/columnAverage.H index 0a5352954fe..f91d25c04e8 100644 --- a/src/functionObjects/field/columnAverage/columnAverage.H +++ b/src/functionObjects/field/columnAverage/columnAverage.H @@ -132,6 +132,9 @@ class columnAverage mutable autoPtr<globalIndex> globalPoints_; mutable autoPtr<meshStructure> meshStructurePtr_; + //- Flag to suppress warnings for missing patches + bool warnOnNoPatch_; + // Private Member Functions diff --git a/src/functionObjects/field/heatTransferCoeff/heatTransferCoeffModels/heatTransferCoeffModel/heatTransferCoeffModel.C b/src/functionObjects/field/heatTransferCoeff/heatTransferCoeffModels/heatTransferCoeffModel/heatTransferCoeffModel.C index 125fccea7cf..0092f65f4a0 100644 --- a/src/functionObjects/field/heatTransferCoeff/heatTransferCoeffModels/heatTransferCoeffModel/heatTransferCoeffModel.C +++ b/src/functionObjects/field/heatTransferCoeff/heatTransferCoeffModels/heatTransferCoeffModel/heatTransferCoeffModel.C @@ -51,7 +51,8 @@ Foam::heatTransferCoeffModel::heatTransferCoeffModel : mesh_(mesh), TName_(TName), - qrName_("qr") + qrName_("qr"), + warnOnNoPatch_(true) {} @@ -150,8 +151,10 @@ bool Foam::heatTransferCoeffModel::read(const dictionary& dict) const polyBoundaryMesh& pbm = mesh_.boundaryMesh(); dict.readIfPresent("qr", qrName_); + dict.readIfPresent("warnOnNoPatch", warnOnNoPatch_); - patchIDs_ = pbm.patchSet(dict.get<wordRes>("patches")).sortedToc(); + patchIDs_ = + pbm.patchSet(dict.get<wordRes>("patches"), warnOnNoPatch_).sortedToc(); return true; } diff --git a/src/functionObjects/field/heatTransferCoeff/heatTransferCoeffModels/heatTransferCoeffModel/heatTransferCoeffModel.H b/src/functionObjects/field/heatTransferCoeff/heatTransferCoeffModels/heatTransferCoeffModel/heatTransferCoeffModel.H index 9d44e94dbb3..6732730b576 100644 --- a/src/functionObjects/field/heatTransferCoeff/heatTransferCoeffModels/heatTransferCoeffModel/heatTransferCoeffModel.H +++ b/src/functionObjects/field/heatTransferCoeff/heatTransferCoeffModels/heatTransferCoeffModel/heatTransferCoeffModel.H @@ -76,6 +76,9 @@ protected: //- Name of radiative heat flux field word qrName_; + //- Flag to suppress warnings for missing patches + bool warnOnNoPatch_; + // Protected Member Functions diff --git a/src/functionObjects/field/nearWallFields/nearWallFields.C b/src/functionObjects/field/nearWallFields/nearWallFields.C index efd3f273ecd..7e6b17996ee 100644 --- a/src/functionObjects/field/nearWallFields/nearWallFields.C +++ b/src/functionObjects/field/nearWallFields/nearWallFields.C @@ -245,7 +245,8 @@ Foam::functionObjects::nearWallFields::nearWallFields ) : fvMeshFunctionObject(name, runTime, dict), - fieldSet_() + fieldSet_(), + warnOnNoPatch_(true) { read(dict); } @@ -261,9 +262,11 @@ bool Foam::functionObjects::nearWallFields::read(const dictionary& dict) dict.readEntry("fields", fieldSet_); dict.readEntry("distance", distance_); + dict.readIfPresent("warnOnNoPatch", warnOnNoPatch_); // Can also use pbm.indices(), but no warnings... - patchIDs_ = pbm.patchSet(dict.get<wordRes>("patches")).sortedToc(); + patchIDs_ = + pbm.patchSet(dict.get<wordRes>("patches"), warnOnNoPatch_).sortedToc(); // Clear out any previously loaded fields diff --git a/src/functionObjects/field/nearWallFields/nearWallFields.H b/src/functionObjects/field/nearWallFields/nearWallFields.H index 587f601d1b3..1483ec30e73 100644 --- a/src/functionObjects/field/nearWallFields/nearWallFields.H +++ b/src/functionObjects/field/nearWallFields/nearWallFields.H @@ -134,6 +134,9 @@ protected: //- From resulting back to original field HashTable<word> reverseFieldMap_; + //- Flag to suppress warnings for missing patches + bool warnOnNoPatch_; + // Calculated addressing diff --git a/src/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C b/src/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C index c5e86068c65..5d08705ce1e 100644 --- a/src/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C +++ b/src/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C @@ -206,7 +206,10 @@ Foam::functionObjects::regionSizeDistribution::findPatchRegions labelHashSet patchRegions(2*regions.nRegions()); - labelHashSet patchSet(mesh_.boundaryMesh().patchSet(patchNames_)); + labelHashSet patchSet + ( + mesh_.boundaryMesh().patchSet(patchNames_, warnOnNoPatch_) + ); for (const label patchi : patchSet) { @@ -369,7 +372,8 @@ Foam::functionObjects::regionSizeDistribution::regionSizeDistribution writeFile(obr_, name), alphaName_(dict.get<word>("field")), patchNames_(dict.get<wordRes>("patches")), - isoPlanes_(dict.getOrDefault("isoPlanes", false)) + isoPlanes_(dict.getOrDefault("isoPlanes", false)), + warnOnNoPatch_(true) { read(dict); } @@ -416,6 +420,8 @@ bool Foam::functionObjects::regionSizeDistribution::read(const dictionary& dict) direction_.normalise(); } + dict.readIfPresent("warnOnNoPatch", warnOnNoPatch_); + return true; } diff --git a/src/functionObjects/field/regionSizeDistribution/regionSizeDistribution.H b/src/functionObjects/field/regionSizeDistribution/regionSizeDistribution.H index b9cd7f96deb..72b54c9415c 100644 --- a/src/functionObjects/field/regionSizeDistribution/regionSizeDistribution.H +++ b/src/functionObjects/field/regionSizeDistribution/regionSizeDistribution.H @@ -249,6 +249,9 @@ class regionSizeDistribution //- Switch to enable iso-planes sampling bool isoPlanes_; + //- Flag to suppress warnings for missing patches + bool warnOnNoPatch_; + // Private Member Functions diff --git a/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C b/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C index 70618231d07..5cc9e9eeb65 100644 --- a/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C +++ b/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C @@ -106,7 +106,8 @@ Foam::functionObjects::wallHeatFlux::wallHeatFlux : fvMeshFunctionObject(name, runTime, dict), writeFile(obr_, name, typeName, dict), - qrName_("qr") + qrName_("qr"), + warnOnNoPatch_(true) { read(dict); @@ -144,12 +145,13 @@ bool Foam::functionObjects::wallHeatFlux::read(const dictionary& dict) writeFile::read(dict); dict.readIfPresent("qr", qrName_); + dict.readIfPresent("warnOnNoPatch", warnOnNoPatch_); wordRes patchNames; labelHashSet patchSet; if (dict.readIfPresent("patches", patchNames) && !patchNames.empty()) { - patchSet = pbm.patchSet(patchNames); + patchSet = pbm.patchSet(patchNames, warnOnNoPatch_); } labelHashSet allWalls(pbm.findPatchIDs<wallPolyPatch>()); diff --git a/src/functionObjects/field/wallHeatFlux/wallHeatFlux.H b/src/functionObjects/field/wallHeatFlux/wallHeatFlux.H index 7938d13d94c..387b6f22311 100644 --- a/src/functionObjects/field/wallHeatFlux/wallHeatFlux.H +++ b/src/functionObjects/field/wallHeatFlux/wallHeatFlux.H @@ -123,6 +123,9 @@ protected: //- Name of radiative heat flux name word qrName_; + //- Flag to suppress warnings for missing patches + bool warnOnNoPatch_; + // Protected Member Functions diff --git a/src/functionObjects/field/wallShearStress/wallShearStress.C b/src/functionObjects/field/wallShearStress/wallShearStress.C index 1a7325e03f9..679de4f23f5 100644 --- a/src/functionObjects/field/wallShearStress/wallShearStress.C +++ b/src/functionObjects/field/wallShearStress/wallShearStress.C @@ -90,7 +90,8 @@ Foam::functionObjects::wallShearStress::wallShearStress : fvMeshFunctionObject(name, runTime, dict), writeFile(mesh_, name, typeName, dict), - writeFields_(true) // May change in the future + writeFields_(true), // May change in the future + warnOnNoPatch_(true) { read(dict); @@ -127,6 +128,7 @@ bool Foam::functionObjects::wallShearStress::read(const dictionary& dict) writeFields_ = true; // May change in the future dict.readIfPresent("writeFields", writeFields_); + dict.readIfPresent("warnOnNoPatch", warnOnNoPatch_); const polyBoundaryMesh& pbm = mesh_.boundaryMesh(); @@ -134,7 +136,7 @@ bool Foam::functionObjects::wallShearStress::read(const dictionary& dict) labelHashSet patchSet; if (dict.readIfPresent("patches", patchNames) && !patchNames.empty()) { - patchSet = pbm.patchSet(patchNames); + patchSet = pbm.patchSet(patchNames, warnOnNoPatch_); } labelHashSet allWalls(pbm.findPatchIDs<wallPolyPatch>()); diff --git a/src/functionObjects/field/wallShearStress/wallShearStress.H b/src/functionObjects/field/wallShearStress/wallShearStress.H index 4d1c95d6144..c62d46a41fc 100644 --- a/src/functionObjects/field/wallShearStress/wallShearStress.H +++ b/src/functionObjects/field/wallShearStress/wallShearStress.H @@ -133,6 +133,9 @@ class wallShearStress //- Write the shear stress field ? bool writeFields_; + //- Flag to suppress warnings for missing patches + bool warnOnNoPatch_; + protected: diff --git a/src/functionObjects/forces/forces/forces.C b/src/functionObjects/forces/forces/forces.C index fd7ab2f8760..b1e05db39cc 100644 --- a/src/functionObjects/forces/forces/forces.C +++ b/src/functionObjects/forces/forces/forces.C @@ -550,7 +550,8 @@ Foam::functionObjects::forces::forces directForceDensity_(false), porosity_(false), writeFields_(false), - initialised_(false) + initialised_(false), + warnOnNoPatch_(true) { if (readFields) { @@ -589,7 +590,8 @@ Foam::functionObjects::forces::forces directForceDensity_(false), porosity_(false), writeFields_(false), - initialised_(false) + initialised_(false), + warnOnNoPatch_(true) { if (readFields) { @@ -613,10 +615,13 @@ bool Foam::functionObjects::forces::read(const dictionary& dict) initialised_ = false; + dict.readIfPresent("warnOnNoPatch", warnOnNoPatch_); + Info<< type() << ' ' << name() << ':' << endl; // Can also use pbm.indices(), but no warnings... - patchIDs_ = pbm.patchSet(dict.get<wordRes>("patches")).sortedToc(); + patchIDs_ = + pbm.patchSet(dict.get<wordRes>("patches"), warnOnNoPatch_).sortedToc(); dict.readIfPresent("directForceDensity", directForceDensity_); if (directForceDensity_) diff --git a/src/functionObjects/forces/forces/forces.H b/src/functionObjects/forces/forces/forces.H index cd96a754e0d..182734a36c3 100644 --- a/src/functionObjects/forces/forces/forces.H +++ b/src/functionObjects/forces/forces/forces.H @@ -264,6 +264,9 @@ protected: //- Flag of initialisation (internal) bool initialised_; + //- Flag to suppress warnings for missing patches + bool warnOnNoPatch_; + // Protected Member Functions -- GitLab