From 6692ecfbbc813664b357cac5c7411204ee864e07 Mon Sep 17 00:00:00 2001 From: Mattijs Janssens Date: Mon, 18 Mar 2024 19:58:06 +0000 Subject: [PATCH] topoSet: allow use of 'zone' instead 'set', 'zones' instead of 'sets' in all set sources --- .../topoSet/cellSources/boxToCell/boxToCell.H | 2 +- .../cellSources/cellToCell/cellToCell.C | 50 +++--- .../cellSources/cellToCell/cellToCell.H | 37 +++-- .../cellSources/faceToCell/faceToCell.C | 65 +++++--- .../cellSources/faceToCell/faceToCell.H | 41 +++-- .../faceZoneToCell/faceZoneToCell.H | 4 +- .../cellSources/patchToCell/patchToCell.H | 2 +- .../cellSources/pointToCell/pointToCell.C | 59 ++++--- .../cellSources/pointToCell/pointToCell.H | 45 +++-- .../cellSources/regionToCell/regionToCell.C | 54 ++++-- .../cellSources/regionToCell/regionToCell.H | 14 +- .../cellSources/zoneToCell/zoneToCell.H | 2 +- .../setToCellZone/setToCellZone.C | 10 +- .../topoSet/faceSources/boxToFace/boxToFace.H | 2 +- .../faceSources/cellToFace/cellToFace.C | 69 +++++--- .../faceSources/cellToFace/cellToFace.H | 37 ++++- .../faceSources/faceToFace/faceToFace.C | 48 ++++-- .../faceSources/faceToFace/faceToFace.H | 28 +++- .../faceSources/holeToFace/holeToFace.C | 6 +- .../faceSources/patchToFace/patchToFace.H | 2 +- .../faceSources/pointToFace/pointToFace.C | 59 ++++--- .../faceSources/pointToFace/pointToFace.H | 43 +++-- .../faceSources/regionToFace/regionToFace.C | 58 +++++-- .../faceSources/regionToFace/regionToFace.H | 14 +- .../faceSources/zoneToFace/zoneToFace.H | 2 +- .../cellToFaceZone/cellToFaceZone.C | 66 +++++--- .../cellToFaceZone/cellToFaceZone.H | 33 +++- .../pointSources/boxToPoint/boxToPoint.H | 2 +- .../pointSources/cellToPoint/cellToPoint.C | 56 +++++-- .../pointSources/cellToPoint/cellToPoint.H | 45 +++-- .../pointSources/faceToPoint/faceToPoint.C | 55 +++--- .../pointSources/faceToPoint/faceToPoint.H | 17 +- .../pointSources/pointToPoint/pointToPoint.C | 46 ++++-- .../pointSources/pointToPoint/pointToPoint.H | 30 +++- .../pointSources/zoneToPoint/zoneToPoint.H | 2 +- .../setToPointZone/setToPointZone.C | 10 +- .../topoSet/topoSetSource/topoSetSource.C | 48 ++++++ .../topoSet/topoSetSource/topoSetSource.H | 5 + src/meshTools/topoSet/topoSets/cellZoneSet.C | 54 ++++++ src/meshTools/topoSet/topoSets/cellZoneSet.H | 11 ++ src/meshTools/topoSet/topoSets/faceZoneSet.C | 156 ++++++++++++------ src/meshTools/topoSet/topoSets/faceZoneSet.H | 36 ++++ src/meshTools/topoSet/topoSets/pointZoneSet.C | 54 ++++++ src/meshTools/topoSet/topoSets/pointZoneSet.H | 12 ++ src/meshTools/topoSet/topoSets/topoBitSet.C | 28 ++++ src/meshTools/topoSet/topoSets/topoBitSet.H | 11 ++ src/meshTools/topoSet/topoSets/topoBoolSet.C | 39 +++++ src/meshTools/topoSet/topoSets/topoBoolSet.H | 11 ++ src/meshTools/topoSet/topoSets/topoSet.C | 34 +++- src/meshTools/topoSet/topoSets/topoSet.H | 19 ++- 50 files changed, 1218 insertions(+), 415 deletions(-) diff --git a/src/meshTools/topoSet/cellSources/boxToCell/boxToCell.H b/src/meshTools/topoSet/cellSources/boxToCell/boxToCell.H index 1da35b00b0..0775939338 100644 --- a/src/meshTools/topoSet/cellSources/boxToCell/boxToCell.H +++ b/src/meshTools/topoSet/cellSources/boxToCell/boxToCell.H @@ -50,7 +50,7 @@ Usage source boxToCell; // Conditional mandatory entries - // Select either of the below + // Select one of the below // Option-1 boxes diff --git a/src/meshTools/topoSet/cellSources/cellToCell/cellToCell.C b/src/meshTools/topoSet/cellSources/cellToCell/cellToCell.C index e43ab9ee64..667ccd02c3 100644 --- a/src/meshTools/topoSet/cellSources/cellToCell/cellToCell.C +++ b/src/meshTools/topoSet/cellSources/cellToCell/cellToCell.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2018-2020 OpenCFD Ltd. + Copyright (C) 2018-2024 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -60,7 +60,8 @@ Foam::cellToCell::cellToCell ) : topoSetCellSource(mesh), - names_(one{}, setName) + names_(Foam::one{}, setName), + isZone_(false) {} @@ -71,15 +72,9 @@ Foam::cellToCell::cellToCell ) : topoSetCellSource(mesh, dict), - names_() -{ - // Look for 'sets' or 'set' - if (!dict.readIfPresent("sets", names_)) - { - names_.resize(1); - dict.readEntry("set", names_.front()); - } -} + names_(), + isZone_(topoSetSource::readNames(dict, names_)) +{} Foam::cellToCell::cellToCell @@ -89,7 +84,8 @@ Foam::cellToCell::cellToCell ) : topoSetCellSource(mesh), - names_(one{}, word(checkIs(is))) + names_(Foam::one{}, word(checkIs(is))), + isZone_(false) {} @@ -105,30 +101,44 @@ void Foam::cellToCell::applyToSet { if (verbose_) { - Info<< " Adding all elements of cell sets: " + Info<< " Adding all elements of cell " + << (isZone_ ? "zones: " : "sets: ") << flatOutput(names_) << nl; } for (const word& setName : names_) { - cellSet loadedSet(mesh_, setName); - - set.addSet(loadedSet); + if (isZone_) + { + set.addSet(mesh_.cellZones()[setName]); + } + else + { + cellSet loadedSet(mesh_, setName); + set.addSet(loadedSet); + } } } else if (action == topoSetSource::SUBTRACT) { if (verbose_) { - Info<< " Removing all elements of cell sets: " + Info<< " Removing all elements of cell " + << (isZone_ ? "zones: " : "sets: ") << flatOutput(names_) << nl; } for (const word& setName : names_) { - cellSet loadedSet(mesh_, setName); - - set.subtractSet(loadedSet); + if (isZone_) + { + set.subtractSet(mesh_.cellZones()[setName]); + } + else + { + cellSet loadedSet(mesh_, setName); + set.subtractSet(loadedSet); + } } } } diff --git a/src/meshTools/topoSet/cellSources/cellToCell/cellToCell.H b/src/meshTools/topoSet/cellSources/cellToCell/cellToCell.H index 1a42aa8b00..fb595cb787 100644 --- a/src/meshTools/topoSet/cellSources/cellToCell/cellToCell.H +++ b/src/meshTools/topoSet/cellSources/cellToCell/cellToCell.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011 OpenFOAM Foundation - Copyright (C) 2018-2020 OpenCFD Ltd. + Copyright (C) 2018-2024 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -28,7 +28,8 @@ Class Foam::cellToCell Description - A \c topoSetCellSource to select all the cells from given \c cellSet(s). + A \c topoSetCellSource to select all the cells from given \c cellSet(s) + or \c cellZone(s). Operands: \table @@ -50,7 +51,7 @@ Usage source cellToCell; // Conditional mandatory entries - // Select either of the below + // Select one of the below // Option-1 sets @@ -61,7 +62,18 @@ Usage ); // Option-2 - set ; + zones + ( + + + ... + ); + + // Option-3 + set ; + + // Option-4 + zone ; } \endverbatim @@ -81,17 +93,15 @@ Usage subtract | Remove selected cells from this cellSet \endverbatim - Options for the conditional mandatory entries: + Options for the conditional mandatory entries (in order of precedence): \verbatim Entry | Description | Type | Req'd | Dflt sets | Names of input cellSets | wordList | cond'l | - + zones | Names of input cellZones | wordList | cond'l | - set | Name of input cellSet | word | cond'l | - + zone | Name of input cellZone | word | cond'l | - \endverbatim -Note - The order of precedence among the conditional mandatory entries from the - highest to the lowest is \c sets, and \c set. - See also - Foam::topoSetSource - Foam::topoSetCellSource @@ -101,8 +111,8 @@ SourceFiles \*---------------------------------------------------------------------------*/ -#ifndef cellToCell_H -#define cellToCell_H +#ifndef Foam_cellToCell_H +#define Foam_cellToCell_H #include "topoSetCellSource.H" @@ -124,9 +134,12 @@ class cellToCell //- Add usage string static addToUsageTable usage_; - //- Names of sets to use + //- Names of sets or zones to use wordList names_; + //- Is name a set or a zone + const bool isZone_; + public: diff --git a/src/meshTools/topoSet/cellSources/faceToCell/faceToCell.C b/src/meshTools/topoSet/cellSources/faceToCell/faceToCell.C index ec52df9e2d..a71a70760b 100644 --- a/src/meshTools/topoSet/cellSources/faceToCell/faceToCell.C +++ b/src/meshTools/topoSet/cellSources/faceToCell/faceToCell.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2018-2020 OpenCFD Ltd. + Copyright (C) 2018-2024 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -66,18 +66,14 @@ Foam::faceToCell::faceActionNames_ // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // -void Foam::faceToCell::combine +template +void Foam::faceToCell::combineImpl ( topoSet& set, const bool add, - const word& setName + const Selector& faceLabels ) const { - // Load the set - faceSet loadedSet(mesh_, setName); - - const labelHashSet& faceLabels = loadedSet; - // Handle owner/neighbour/any selection for (const label facei : faceLabels) { @@ -104,7 +100,7 @@ void Foam::faceToCell::combine { // Count number of selected faces per cell. - Map