diff --git a/src/dynamicFvMesh/simplifiedDynamicFvMesh/simplifiedDynamicFvMeshTemplates.C b/src/dynamicFvMesh/simplifiedDynamicFvMesh/simplifiedDynamicFvMeshTemplates.C index 4cbf5fd4f8..37209b20bd 100644 --- a/src/dynamicFvMesh/simplifiedDynamicFvMesh/simplifiedDynamicFvMeshTemplates.C +++ b/src/dynamicFvMesh/simplifiedDynamicFvMesh/simplifiedDynamicFvMeshTemplates.C @@ -61,6 +61,9 @@ SimplifiedDynamicFvMesh // Add the patches addLocalPatches(*this); + + // Add the zones if constructed from mesh + initialiseZones(*this); } diff --git a/src/finiteVolume/fvMesh/simplifiedFvMesh/columnFvMesh/columnFvMesh.C b/src/finiteVolume/fvMesh/simplifiedFvMesh/columnFvMesh/columnFvMesh.C index 9f92cf1788..1d5cb0663d 100644 --- a/src/finiteVolume/fvMesh/simplifiedFvMesh/columnFvMesh/columnFvMesh.C +++ b/src/finiteVolume/fvMesh/simplifiedFvMesh/columnFvMesh/columnFvMesh.C @@ -75,7 +75,8 @@ bool Foam::simplifiedMeshes::columnFvMeshInfo::setPatchEntries { polyBoundaryMeshEntries allPatchEntries(boundaryIO); - Info<< "Creating simplified mesh using " << allPatchEntries.path() << endl; + Info<< "Creating simplified mesh using " << allPatchEntries.path() + << endl; for (const entry& e : allPatchEntries) { @@ -134,7 +135,7 @@ bool Foam::simplifiedMeshes::columnFvMeshInfo::setPatchEntries dictionary simplifiedEntries; simplifiedEntries.add("startFace", 0); simplifiedEntries.add("nFaces", 1); - simplifiedEntries.add("type", "wall"); // default to wall type + simplifiedEntries.add("type", "wall"); // default to wall patchEntries_.add(e.keyword(), simplifiedEntries); } @@ -304,7 +305,12 @@ void Foam::simplifiedMeshes::columnFvMeshInfo::initialise(const Time& runTime) } -void Foam::simplifiedMeshes::columnFvMeshInfo::addLocalPatches(fvMesh& mesh) const +// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // + +void Foam::simplifiedMeshes::columnFvMeshInfo::addLocalPatches +( + fvMesh& mesh +) const { const label nPatch = patchEntries_.size(); @@ -367,6 +373,24 @@ void Foam::simplifiedMeshes::columnFvMeshInfo::addLocalPatches(fvMesh& mesh) con } } + +void Foam::simplifiedMeshes::columnFvMeshInfo::initialiseZones(fvMesh& mesh) +{ + if (createFromMesh_) + { + // Initialise the zones + initialiseZone + ( + "point", + localInstance_, + mesh.pointZones() + ); + initialiseZone("face", localInstance_, mesh.faceZones()); + initialiseZone("cell", localInstance_, mesh.cellZones()); + } +} + + // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam::simplifiedMeshes::columnFvMeshInfo::columnFvMeshInfo(const Time& runTime) @@ -389,6 +413,11 @@ Foam::simplifiedMeshes::columnFvMeshInfo::columnFvMeshInfo(const Time& runTime) nPatchWithFace_(0) { initialise(runTime); + + // Dummy zones and sets created on demand + // Note: zones can be updated post-construction + cellZoneMesh::disallowGenericZones = 1; + topoSet::disallowGenericSets = 1; } @@ -423,24 +452,8 @@ Foam::simplifiedMeshes::columnFvMesh::columnFvMesh(const Time& runTime) // Add the patches addLocalPatches(*this); - // Add the zones - - if (createFromMesh_) - { - // Initialise the zones - initialiseZone("point", localInstance_, pointZones()); - initialiseZone("face", localInstance_, faceZones()); - initialiseZone("cell", localInstance_, cellZones()); - - // Dummy sets created on demand - topoSet::disallowGenericSets = 1; - } - else - { - // Dummy zones and sets created on demand - cellZoneMesh::disallowGenericZones = 1; - topoSet::disallowGenericSets = 1; - } + // Add the zones if constructed from mesh + initialiseZones(*this); if (debug) { diff --git a/src/finiteVolume/fvMesh/simplifiedFvMesh/columnFvMesh/columnFvMesh.H b/src/finiteVolume/fvMesh/simplifiedFvMesh/columnFvMesh/columnFvMesh.H index d02d4ebeb3..01b65bdd9f 100644 --- a/src/finiteVolume/fvMesh/simplifiedFvMesh/columnFvMesh/columnFvMesh.H +++ b/src/finiteVolume/fvMesh/simplifiedFvMesh/columnFvMesh/columnFvMesh.H @@ -59,6 +59,15 @@ class columnFvMeshInfo //- Initialise void initialise(const Time& runTime); + //- Helper function to initialise empty zones + template + void initialiseZone + ( + const word& zoneTypeName, + const fileName& instance, + ZoneMeshType& zoneType + ); + protected: @@ -99,6 +108,9 @@ protected: //- Add the patches to the mesh void addLocalPatches(fvMesh& mesh) const; + //- Initialise zones if constructed from mesh + void initialiseZones(fvMesh& mesh); + public: @@ -133,6 +145,12 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#ifdef NoRepository + #include "columnFvMeshTemplates.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + #endif // ************************************************************************* // diff --git a/src/finiteVolume/fvMesh/simplifiedFvMesh/simplifiedFvMesh/simplifiedFvMeshTemplates.C b/src/finiteVolume/fvMesh/simplifiedFvMesh/columnFvMesh/columnFvMeshTemplates.C similarity index 95% rename from src/finiteVolume/fvMesh/simplifiedFvMesh/simplifiedFvMesh/simplifiedFvMeshTemplates.C rename to src/finiteVolume/fvMesh/simplifiedFvMesh/columnFvMesh/columnFvMeshTemplates.C index 14097c1e71..fdf0e91ab0 100644 --- a/src/finiteVolume/fvMesh/simplifiedFvMesh/simplifiedFvMesh/simplifiedFvMeshTemplates.C +++ b/src/finiteVolume/fvMesh/simplifiedFvMesh/columnFvMesh/columnFvMeshTemplates.C @@ -22,14 +22,13 @@ License along with OpenFOAM. If not, see . \*---------------------------------------------------------------------------*/ - #include "polyMesh.H" template -void Foam::simplifiedFvMesh::initialiseZone +void Foam::simplifiedMeshes::columnFvMeshInfo::initialiseZone ( const word& zoneTypeName, - const fileName& instance, + const fileName& instance, ZoneMeshType& zoneType ) { diff --git a/src/finiteVolume/fvMesh/simplifiedFvMesh/hexCellFvMesh/hexCellFvMesh.C b/src/finiteVolume/fvMesh/simplifiedFvMesh/hexCellFvMesh/hexCellFvMesh.C index 8ef8ef2dc3..ecaf7935ba 100644 --- a/src/finiteVolume/fvMesh/simplifiedFvMesh/hexCellFvMesh/hexCellFvMesh.C +++ b/src/finiteVolume/fvMesh/simplifiedFvMesh/hexCellFvMesh/hexCellFvMesh.C @@ -94,6 +94,8 @@ Foam::simplifiedMeshes::hexCellFvMesh::hexCellFvMesh ); addFvPatches(patches); + + // Note: no sets or zones created } diff --git a/src/finiteVolume/fvMesh/simplifiedFvMesh/simplifiedFvMesh/simplifiedFvMesh.C b/src/finiteVolume/fvMesh/simplifiedFvMesh/simplifiedFvMesh/simplifiedFvMesh.C index f4a3daa906..e14c4bdeb7 100644 --- a/src/finiteVolume/fvMesh/simplifiedFvMesh/simplifiedFvMesh/simplifiedFvMesh.C +++ b/src/finiteVolume/fvMesh/simplifiedFvMesh/simplifiedFvMesh/simplifiedFvMesh.C @@ -25,6 +25,7 @@ License #include "simplifiedFvMesh.H" #include "fvPatchField.H" +#include "topoSet.H" // * * * * * * * * * * * * * * * Static Members * * * * * * * * * * * * * * // @@ -57,6 +58,8 @@ bool Foam::simplifiedFvMesh::fvPatchFieldExists(const word& patchType) } +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + Foam::simplifiedFvMesh::simplifiedFvMesh ( const IOobject& io, diff --git a/src/finiteVolume/fvMesh/simplifiedFvMesh/simplifiedFvMesh/simplifiedFvMesh.H b/src/finiteVolume/fvMesh/simplifiedFvMesh/simplifiedFvMesh/simplifiedFvMesh.H index 978dcbcbef..9d149733c1 100644 --- a/src/finiteVolume/fvMesh/simplifiedFvMesh/simplifiedFvMesh/simplifiedFvMesh.H +++ b/src/finiteVolume/fvMesh/simplifiedFvMesh/simplifiedFvMesh/simplifiedFvMesh.H @@ -52,18 +52,6 @@ class simplifiedFvMesh : public fvMesh { -protected: - - //- Helper function to initialise empty zones - template - void initialiseZone - ( - const word& zoneTypeName, - const fileName& instance, - ZoneMeshType& zoneType - ); - - public: //- Runtime type information @@ -118,12 +106,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -#ifdef NoRepository - #include "simplifiedFvMeshTemplates.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - #endif // ************************************************************************* //