diff --git a/src/dynamicFvMesh/simplifiedDynamicFvMesh/simplifiedDynamicFvMeshTemplates.C b/src/dynamicFvMesh/simplifiedDynamicFvMesh/simplifiedDynamicFvMeshTemplates.C index 4cbf5fd4f8fca72ae51e9243725566a08f21f0db..37209b20bd798b0190619d855322919338199887 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 9f92cf178872203aef607c6dc754c670034fc3ac..1d5cb0663d6628116aa02823c1b6e291d9862d06 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<pointZoneMesh> + ( + "point", + localInstance_, + mesh.pointZones() + ); + initialiseZone<faceZoneMesh>("face", localInstance_, mesh.faceZones()); + initialiseZone<cellZoneMesh>("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<pointZoneMesh>("point", localInstance_, pointZones()); - initialiseZone<faceZoneMesh>("face", localInstance_, faceZones()); - initialiseZone<cellZoneMesh>("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 d02d4ebeb38ee66581daa174f2df5866537bd41a..01b65bdd9fb09449d4efad67cfe317dee9d89b36 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<class ZoneMeshType> + 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 14097c1e716c8d8c22b76bcbf7301e18573aa014..fdf0e91ab052777ad28cdcb362c683ff2b5e3efd 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 <http://www.gnu.org/licenses/>. \*---------------------------------------------------------------------------*/ - #include "polyMesh.H" template<class ZoneMeshType> -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 8ef8ef2dc3729ddb047d677a222629fcecb6e363..ecaf7935ba35bffc8d7363b0786270b434034852 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 f4a3daa906ff9f5121da68d90e1ac65428fbca5b..e14c4bdeb71ca2b47ef5ec8918b4016336ed0f38 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 978dcbcbef2ccecafe65bd0739d7dfbe9f84ea03..9d149733c15038ce8594e98f726f523d1f6eed4a 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<class ZoneMeshType> - 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 // ************************************************************************* //