diff --git a/src/meshTools/regionSplit/regionSplit.C b/src/meshTools/regionSplit/regionSplit.C index 77e1ca434630f17363de2ae8e4c764b40a71bc5a..70b0759c711a6b734d30b2385e6432af8f0c66e0 100644 --- a/src/meshTools/regionSplit/regionSplit.C +++ b/src/meshTools/regionSplit/regionSplit.C @@ -69,7 +69,7 @@ void Foam::regionSplit::transferCoupledFaceRegion "regionSplit::transferCoupledFaceRegion" "(const label, const label, labelList&, labelList&) const" ) << "Problem : coupled face " << faceI - << " on patch " << mesh_.boundaryMesh().whichPatch(faceI) + << " on patch " << mesh().boundaryMesh().whichPatch(faceI) << " has region " << faceRegion[faceI] << " but coupled face " << otherFaceI << " has region " << faceRegion[otherFaceI] @@ -109,7 +109,7 @@ void Foam::regionSplit::fillSeedMask // Collect faces on seed cell - const cell& cFaces = mesh_.cells()[seedCellID]; + const cell& cFaces = mesh().cells()[seedCellID]; label nFaces = 0; @@ -144,7 +144,7 @@ void Foam::regionSplit::fillSeedMask { label faceI = changedFaces[i]; - label own = mesh_.faceOwner()[faceI]; + label own = mesh().faceOwner()[faceI]; if (cellRegion[own] == -1) { @@ -152,9 +152,9 @@ void Foam::regionSplit::fillSeedMask changedCells.append(own); } - if (mesh_.isInternalFace(faceI)) + if (mesh().isInternalFace(faceI)) { - label nei = mesh_.faceNeighbour()[faceI]; + label nei = mesh().faceNeighbour()[faceI]; if (cellRegion[nei] == -1) { @@ -178,7 +178,7 @@ void Foam::regionSplit::fillSeedMask { label cellI = changedCells[i]; - const cell& cFaces = mesh_.cells()[cellI]; + const cell& cFaces = mesh().cells()[cellI]; forAll(cFaces, cFaceI) { @@ -203,7 +203,7 @@ void Foam::regionSplit::fillSeedMask // Check for changes to any locally coupled face. // Global connections are done later. - const polyBoundaryMesh& patches = mesh_.boundaryMesh(); + const polyBoundaryMesh& patches = mesh().boundaryMesh(); forAll(patches, patchI) { @@ -274,7 +274,7 @@ Foam::label Foam::regionSplit::calcLocalRegionSplit { // Check that blockedFace is synced. boolList syncBlockedFace(blockedFace); - syncTools::swapFaceList(mesh_, syncBlockedFace); + syncTools::swapFaceList(mesh(), syncBlockedFace); forAll(syncBlockedFace, faceI) { @@ -295,7 +295,7 @@ Foam::label Foam::regionSplit::calcLocalRegionSplit // Region per face. // -1 unassigned // -2 blocked - labelList faceRegion(mesh_.nFaces(), -1); + labelList faceRegion(mesh().nFaces(), -1); if (blockedFace.size()) { @@ -321,7 +321,7 @@ Foam::label Foam::regionSplit::calcLocalRegionSplit { // Find first unset cell - for (; unsetCellI < mesh_.nCells(); unsetCellI++) + for (; unsetCellI < mesh().nCells(); unsetCellI++) { if (cellRegion[unsetCellI] == -1) { @@ -329,7 +329,7 @@ Foam::label Foam::regionSplit::calcLocalRegionSplit } } - if (unsetCellI >= mesh_.nCells()) + if (unsetCellI >= mesh().nCells()) { break; } @@ -430,9 +430,9 @@ Foam::autoPtr<Foam::globalIndex> Foam::regionSplit::calcRegionSplit } - const polyBoundaryMesh& patches = mesh_.boundaryMesh(); + const polyBoundaryMesh& patches = mesh().boundaryMesh(); - labelList nbrRegion(mesh_.nFaces()-mesh_.nInternalFaces(), -1); + labelList nbrRegion(mesh().nFaces()-mesh().nInternalFaces(), -1); forAll(patches, patchI) { const polyPatch& pp = patches[patchI]; @@ -444,7 +444,7 @@ Foam::autoPtr<Foam::globalIndex> Foam::regionSplit::calcRegionSplit ( nbrRegion, pp.size(), - pp.start()-mesh_.nInternalFaces() + pp.start()-mesh().nInternalFaces() ); forAll(patchCells, i) @@ -457,9 +457,9 @@ Foam::autoPtr<Foam::globalIndex> Foam::regionSplit::calcRegionSplit } } } - syncTools::swapBoundaryFaceList(mesh_, nbrRegion); + syncTools::swapBoundaryFaceList(mesh(), nbrRegion); - Map<label> globalToMerged(mesh_.nFaces()-mesh_.nInternalFaces()); + Map<label> globalToMerged(mesh().nFaces()-mesh().nInternalFaces()); forAll(patches, patchI) { @@ -472,7 +472,7 @@ Foam::autoPtr<Foam::globalIndex> Foam::regionSplit::calcRegionSplit ( nbrRegion, pp.size(), - pp.start()-mesh_.nInternalFaces() + pp.start()-mesh().nInternalFaces() ); forAll(patchCells, i) @@ -486,7 +486,7 @@ Foam::autoPtr<Foam::globalIndex> Foam::regionSplit::calcRegionSplit //Pout<< "on patch:" << pp.name() // << " cell:" << patchCells[i] // << " at:" - // << mesh_.cellCentres()[patchCells[i]] + // << mesh().cellCentres()[patchCells[i]] // << " was:" << cellRegion[patchCells[i]] // << " nbr:" << patchNbrRegion[i] // << endl; @@ -534,7 +534,7 @@ Foam::autoPtr<Foam::globalIndex> Foam::regionSplit::calcRegionSplit // 4a: count. Use a labelHashSet to count regions only once. label nCompact = 0; { - labelHashSet localRegion(mesh_.nFaces()-mesh_.nInternalFaces()); + labelHashSet localRegion(mesh().nFaces()-mesh().nInternalFaces()); forAll(cellRegion, cellI) { if @@ -692,8 +692,8 @@ Foam::autoPtr<Foam::globalIndex> Foam::regionSplit::calcRegionSplit Foam::regionSplit::regionSplit(const polyMesh& mesh) : - labelList(mesh.nCells(), -1), - mesh_(mesh) + MeshObject<polyMesh, regionSplit>(mesh), + labelList(mesh.nCells(), -1) { globalNumberingPtr_ = calcRegionSplit ( @@ -710,8 +710,8 @@ Foam::regionSplit::regionSplit const boolList& blockedFace ) : - labelList(mesh.nCells(), -1), - mesh_(mesh) + MeshObject<polyMesh, regionSplit>(mesh), + labelList(mesh.nCells(), -1) { globalNumberingPtr_ = calcRegionSplit ( @@ -729,8 +729,8 @@ Foam::regionSplit::regionSplit const List<labelPair>& explicitConnections ) : - labelList(mesh.nCells(), -1), - mesh_(mesh) + MeshObject<polyMesh, regionSplit>(mesh), + labelList(mesh.nCells(), -1) { globalNumberingPtr_ = calcRegionSplit ( diff --git a/src/meshTools/regionSplit/regionSplit.H b/src/meshTools/regionSplit/regionSplit.H index 83a055a8e08af1c53a9b2a844a4ce1c115f7abf8..6c41d1fb8380204c2d2eed02ff1c0a703feff48c 100644 --- a/src/meshTools/regionSplit/regionSplit.H +++ b/src/meshTools/regionSplit/regionSplit.H @@ -98,6 +98,7 @@ SourceFiles #include "globalIndex.H" #include "labelPair.H" #include "boolList.H" +#include "MeshObject.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -112,13 +113,11 @@ class polyMesh; class regionSplit : + public MeshObject<polyMesh, regionSplit>, public labelList { // Private data - //- Reference to mesh - const polyMesh& mesh_; - mutable autoPtr<globalIndex> globalNumberingPtr_; @@ -161,11 +160,13 @@ class regionSplit labelList& cellRegion ) const; + public: //- Runtime type information ClassName("regionSplit"); + // Constructors //- Construct from mesh @@ -185,6 +186,7 @@ public: const List<labelPair>& ); + // Member Functions //- Return global region numbering @@ -198,7 +200,6 @@ public: { return globalNumbering().size(); } - };