diff --git a/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H b/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H index 2f8eb5fda9915385ba9c3495eae989e1c6220de5..02fe559580b3771e58ed9407a0d83b61eaddd53c 100644 --- a/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H +++ b/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H @@ -770,9 +770,7 @@ private: labelList& neighbour, wordList& patchTypes, wordList& patchNames, - labelList& patchSizes, - labelList& patchStarts, - labelList& procNeighbours, + PtrList<dictionary>& patchDicts, pointField& cellCentres, labelList& cellToDelaunayVertex, labelListList& patchToDelaunayVertex, @@ -789,8 +787,7 @@ private: labelList& neighbour, wordList& patchTypes, wordList& patchNames, - labelList& patchSizes, - labelList& patchStarts + PtrList<dictionary>& patchDicts ); //- Determines if the dual face constructed by the Delaunay @@ -873,7 +870,7 @@ private: ( wordList& patchNames, wordList& patchTypes, - labelList& procNeighbours + PtrList<dictionary>& patchDicts ) const; //- Create all of the internal and boundary faces @@ -884,9 +881,7 @@ private: labelList& neighbour, wordList& patchTypes, wordList& patchNames, - labelList& patchSizes, - labelList& patchStarts, - labelList& procNeighbours, + PtrList<dictionary>& patchDicts, labelListList& patchPointPairSlaves, PackedBoolList& boundaryFacesToRemove, bool includeEmptyPatches = false @@ -924,8 +919,7 @@ private: const label nInternalFaces, faceList& faces, labelList& owner, - labelList& patchSizes, - labelList& patchStarts, + PtrList<dictionary>& patchDicts, PackedBoolList& boundaryFacesToRemove, const List<DynamicList<face> >& patchFaces, const List<DynamicList<label> >& patchOwners, @@ -954,9 +948,7 @@ private: const IOobject& io, const wordList& patchTypes, const wordList& patchNames, - const labelList& patchSizes, - const labelList& patchStarts, - const labelList& procNeighbours + const PtrList<dictionary>& patchDicts ) const; //- Create a polyMesh from points. @@ -965,8 +957,7 @@ private: void checkProcessorPatchesMatch ( const wordList& patchTypes, - const labelList& patchSizes, - const labelList& procNeighbours + const PtrList<dictionary>& patchDicts ) const; void reorderPoints @@ -986,9 +977,7 @@ private: faceList& faces, const wordList& patchTypes, const wordList& patchNames, - const labelList& patchSizes, - const labelList& patchStarts, - const labelList& procNeighbours + const PtrList<dictionary>& patchDicts ) const; //- Disallow default bitwise copy construct @@ -1153,9 +1142,7 @@ public: labelList& neighbour, const wordList& patchTypes, const wordList& patchNames, - const labelList& patchSizes, - const labelList& patchStarts, - const labelList& procNeighbours, + const PtrList<dictionary>& patchDicts, const pointField& cellCentres, const PackedBoolList& boundaryFacesToRemove ) const; diff --git a/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshCalcDualMesh.C b/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshCalcDualMesh.C index 37f332472ceb72af2f32146431fde90592c64f43..0cc827f4cb112ece5dfcbf32e25317b49d00136d 100644 --- a/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshCalcDualMesh.C +++ b/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshCalcDualMesh.C @@ -515,9 +515,10 @@ void Foam::conformalVoronoiMesh::calcDualMesh labelList& neighbour, wordList& patchTypes, wordList& patchNames, - labelList& patchSizes, - labelList& patchStarts, - labelList& procNeighbours, + PtrList<dictionary>& patchDicts, + //labelList& patchSizes, + //labelList& patchStarts, + //labelList& procNeighbours, pointField& cellCentres, labelList& cellToDelaunayVertex, labelListList& patchToDelaunayVertex, @@ -564,9 +565,10 @@ void Foam::conformalVoronoiMesh::calcDualMesh neighbour, patchTypes, patchNames, - patchSizes, - patchStarts, - procNeighbours, + patchDicts, +// patchSizes, +// patchStarts, +// procNeighbours, patchToDelaunayVertex, // from patch face to Delaunay vertex (slavePp) boundaryFacesToRemove, false @@ -595,8 +597,7 @@ void Foam::conformalVoronoiMesh::calcTetMesh labelList& neighbour, wordList& patchTypes, wordList& patchNames, - labelList& patchSizes, - labelList& patchStarts + PtrList<dictionary>& patchDicts ) { labelList vertexMap(number_of_vertices()); @@ -771,15 +772,19 @@ void Foam::conformalVoronoiMesh::calcTetMesh sortFaces(faces, owner, neighbour); +// PackedBoolList boundaryFacesToRemove; +// List<DynamicList<bool> > indirectPatchFace; +// // addPatches // ( // nInternalFaces, // faces, // owner, -// patchSizes, -// patchStarts, +// patchDicts, +// boundaryFacesToRemove, // patchFaces, -// patchOwners +// patchOwners, +// indirectPatchFace // ); } @@ -1179,9 +1184,7 @@ Foam::conformalVoronoiMesh::createPolyMeshFromPoints labelList neighbour; wordList patchTypes; wordList patchNames; - labelList patchSizes; - labelList patchStarts; - labelList procNeighbours; + PtrList<dictionary> patchDicts; pointField cellCentres; labelListList patchToDelaunayVertex; PackedBoolList boundaryFacesToRemove; @@ -1197,9 +1200,7 @@ Foam::conformalVoronoiMesh::createPolyMeshFromPoints neighbour, patchTypes, patchNames, - patchSizes, - patchStarts, - procNeighbours, + patchDicts, patchToDelaunayVertex, boundaryFacesToRemove, false @@ -1232,46 +1233,50 @@ Foam::conformalVoronoiMesh::createPolyMeshFromPoints polyMesh& pMesh = meshPtr(); - List<polyPatch*> patches(patchStarts.size()); + List<polyPatch*> patches(patchNames.size()); label nValidPatches = 0; forAll(patches, p) { - if (patchTypes[p] == processorPolyPatch::typeName) - { - // Do not create empty processor patches - if (patchSizes[p] > 0) - { - patches[nValidPatches] = new processorPolyPatch - ( - patchNames[p], - patchSizes[p], - patchStarts[p], - nValidPatches, - pMesh.boundaryMesh(), - Pstream::myProcNo(), - procNeighbours[p], - coupledPolyPatch::COINCIDENTFULLMATCH - ); - - nValidPatches++; - } - } - else - { - patches[nValidPatches] = polyPatch::New - ( - patchTypes[p], - patchNames[p], - patchSizes[p], - patchStarts[p], - nValidPatches, - pMesh.boundaryMesh() - ).ptr(); - - nValidPatches++; - } + label totalPatchSize = readLabel(patchDicts[p].lookup("nFaces")); + + if (patchTypes[p] == processorPolyPatch::typeName) + { + // Do not create empty processor patches + if (totalPatchSize > 0) + { + patches[nValidPatches] = new processorPolyPatch + ( + patchNames[p], + patchDicts[p], + nValidPatches, + pMesh.boundaryMesh(), + patchTypes[p] + ); + + nValidPatches++; + } + } + else + { + // Check that the patch is not empty on every processor + reduce(totalPatchSize, sumOp<label>()); + + if (totalPatchSize > 0) + { + patches[nValidPatches] = polyPatch::New + ( + patchTypes[p], + patchNames[p], + patchDicts[p], + nValidPatches, + pMesh.boundaryMesh() + ).ptr(); + + nValidPatches++; + } + } } patches.setSize(nValidPatches); @@ -1816,12 +1821,13 @@ Foam::label Foam::conformalVoronoiMesh::createPatchInfo ( wordList& patchNames, wordList& patchTypes, - labelList& procNeighbours + PtrList<dictionary>& patchDicts ) const { patchNames = geometryToConformTo_.patchNames(); + patchTypes.setSize(patchNames.size() + 1, wallPolyPatch::typeName); - procNeighbours.setSize(patchNames.size() + 1, -1); + patchDicts.setSize(patchNames.size() + 1); const PtrList<dictionary>& patchInfo = geometryToConformTo_.patchInfo(); @@ -1836,11 +1842,14 @@ Foam::label Foam::conformalVoronoiMesh::createPatchInfo wallPolyPatch::typeName ); } + + patchDicts.set(patchI, new dictionary()); } patchNames.setSize(patchNames.size() + 1); label defaultPatchIndex = patchNames.size() - 1; patchNames[defaultPatchIndex] = "cvMesh_defaultPatch"; + patchDicts.set(defaultPatchIndex, new dictionary()); label nProcPatches = 0; @@ -1895,10 +1904,15 @@ Foam::label Foam::conformalVoronoiMesh::createPatchInfo } label nNonProcPatches = patchNames.size(); + label nTotalPatches = nNonProcPatches + nProcPatches; - patchNames.setSize(nNonProcPatches + nProcPatches); - patchTypes.setSize(nNonProcPatches + nProcPatches); - procNeighbours.setSize(nNonProcPatches + nProcPatches, -1); + patchNames.setSize(nTotalPatches); + patchTypes.setSize(nTotalPatches); + patchDicts.setSize(nTotalPatches); + for (label pI = nNonProcPatches; pI < nTotalPatches; ++pI) + { + patchDicts.set(pI, new dictionary()); + } label procAddI = 0; @@ -1915,7 +1929,12 @@ Foam::label Foam::conformalVoronoiMesh::createPatchInfo + "to" + name(pUI); - procNeighbours[nNonProcPatches + procAddI] = pUI; + patchDicts[nNonProcPatches + procAddI].set + ( + "myProcNo", + Pstream::myProcNo() + ); + patchDicts[nNonProcPatches + procAddI].set("neighbProcNo", pUI); procAddI++; } @@ -1933,9 +1952,7 @@ void Foam::conformalVoronoiMesh::createFacesOwnerNeighbourAndPatches labelList& neighbour, wordList& patchTypes, wordList& patchNames, - labelList& patchSizes, - labelList& patchStarts, - labelList& procNeighbours, + PtrList<dictionary>& patchDicts, labelListList& patchPointPairSlaves, PackedBoolList& boundaryFacesToRemove, bool includeEmptyPatches @@ -1945,11 +1962,25 @@ void Foam::conformalVoronoiMesh::createFacesOwnerNeighbourAndPatches ( patchNames, patchTypes, - procNeighbours + patchDicts ); const label nPatches = patchNames.size(); + labelList procNeighbours(nPatches, -1); + forAll(procNeighbours, patchI) + { + if (patchDicts[patchI].found("neighbProcNo")) + { + procNeighbours[patchI] = + ( + patchDicts[patchI].found("neighbProcNo") + ? readLabel(patchDicts[patchI].lookup("neighbProcNo")) + : -1 + ); + } + } + List<DynamicList<face> > patchFaces(nPatches, DynamicList<face>(0)); List<DynamicList<label> > patchOwners(nPatches, DynamicList<label>(0)); // Per patch face the index of the slave node of the point pair @@ -2183,8 +2214,7 @@ void Foam::conformalVoronoiMesh::createFacesOwnerNeighbourAndPatches nInternalFaces, faces, owner, - patchSizes, - patchStarts, + patchDicts, boundaryFacesToRemove, patchFaces, patchOwners, @@ -2202,11 +2232,16 @@ void Foam::conformalVoronoiMesh::createFacesOwnerNeighbourAndPatches { Info<< "Writing processor interfaces" << endl; - forAll(procNeighbours, nbI) + forAll(patchDicts, nbI) { if (patchFaces[nbI].size() > 0) { - const label neighbour = procNeighbours[nbI]; + const label neighbour = + ( + patchDicts[nbI].found("neighbProcNo") + ? readLabel(patchDicts[nbI].lookup("neighbProcNo")) + : -1 + ); faceList procPatchFaces = patchFaces[nbI]; @@ -2401,27 +2436,22 @@ void Foam::conformalVoronoiMesh::addPatches const label nInternalFaces, faceList& faces, labelList& owner, - labelList& patchSizes, - labelList& patchStarts, + PtrList<dictionary>& patchDicts, PackedBoolList& boundaryFacesToRemove, const List<DynamicList<face> >& patchFaces, const List<DynamicList<label> >& patchOwners, const List<DynamicList<bool> >& indirectPatchFace ) const { - label nPatches = patchFaces.size(); - - patchSizes.setSize(nPatches, -1); - patchStarts.setSize(nPatches, -1); - label nBoundaryFaces = 0; forAll(patchFaces, p) { - patchSizes[p] = patchFaces[p].size(); - patchStarts[p] = nInternalFaces + nBoundaryFaces; + patchDicts[p].set("nFaces", patchFaces[p].size()); + patchDicts[p].set("startFace", nInternalFaces + nBoundaryFaces); + patchDicts[p].set("transform", "noOrdering"); - nBoundaryFaces += patchSizes[p]; + nBoundaryFaces += patchFaces[p].size(); } faces.setSize(nInternalFaces + nBoundaryFaces); diff --git a/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C b/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C index b2d7ad51bb498df18bb37bdd7cde66f5be117e54..aba967c80fcde3db131d51644ee779d60aa5fe6e 100644 --- a/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C +++ b/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C @@ -339,8 +339,7 @@ void Foam::conformalVoronoiMesh::writeMesh(const fileName& instance) labelList neighbour; wordList patchTypes; wordList patchNames; - labelList patchSizes; - labelList procNeighbours; + PtrList<dictionary> patchDicts; pointField cellCentres; PackedBoolList boundaryFacesToRemove; @@ -354,9 +353,7 @@ void Foam::conformalVoronoiMesh::writeMesh(const fileName& instance) neighbour, patchTypes, patchNames, - patchSizes, - dualPatchStarts, - procNeighbours, + patchDicts, cellCentres, cellToDelaunayVertex, patchToDelaunayVertex, @@ -376,12 +373,18 @@ void Foam::conformalVoronoiMesh::writeMesh(const fileName& instance) neighbour, patchTypes, patchNames, - patchSizes, - dualPatchStarts, - procNeighbours, + patchDicts, cellCentres, boundaryFacesToRemove ); + + dualPatchStarts.setSize(patchDicts.size()); + + forAll(dualPatchStarts, patchI) + { + dualPatchStarts[patchI] = + readLabel(patchDicts[patchI].lookup("startFace")); + } } if (cvMeshControls().writeTetDualMesh()) @@ -448,8 +451,7 @@ void Foam::conformalVoronoiMesh::writeMesh(const fileName& instance) labelList neighbour; wordList patchTypes; wordList patchNames; - labelList patchSizes; - labelList patchStarts; + PtrList<dictionary> patchDicts; pointField cellCentres; calcTetMesh @@ -461,8 +463,7 @@ void Foam::conformalVoronoiMesh::writeMesh(const fileName& instance) neighbour, patchTypes, patchNames, - patchSizes, - patchStarts + patchDicts ); @@ -564,26 +565,24 @@ void Foam::conformalVoronoiMesh::writeMesh(const fileName& instance) } - labelList procNeighbours(patchNames.size(), -1); + Info<< nl << "Writing tetDualMesh to " << instance << endl; -// Info<< nl << "Writing tetDualMesh to " << instance << endl; - -// writeMesh -// ( -// "tetDualMesh", -// instance, -// points, -// boundaryPts, -// faces, -// owner, -// neighbour, -// patchTypes, -// patchNames, -// patchSizes, -// patchStarts, -// procNeighbours, -// cellCentres -// ); + PackedBoolList boundaryFacesToRemove; + writeMesh + ( + "tetDualMesh", + instance, + points, + boundaryPts, + faces, + owner, + neighbour, + patchTypes, + patchNames, + patchDicts, + cellCentres, + boundaryFacesToRemove + ); } } @@ -593,9 +592,7 @@ Foam::autoPtr<Foam::fvMesh> Foam::conformalVoronoiMesh::createDummyMesh const IOobject& io, const wordList& patchTypes, const wordList& patchNames, - const labelList& patchSizes, - const labelList& patchStarts, - const labelList& procNeighbours + const PtrList<dictionary>& patchDicts ) const { autoPtr<fvMesh> meshPtr @@ -610,7 +607,7 @@ Foam::autoPtr<Foam::fvMesh> Foam::conformalVoronoiMesh::createDummyMesh ); fvMesh& mesh = meshPtr(); - List<polyPatch*> patches(patchStarts.size()); + List<polyPatch*> patches(patchDicts.size()); forAll(patches, patchI) { @@ -623,8 +620,8 @@ Foam::autoPtr<Foam::fvMesh> Foam::conformalVoronoiMesh::createDummyMesh 0, //patchStarts[p], patchI, mesh.boundaryMesh(), - Pstream::myProcNo(), - procNeighbours[patchI], + readLabel(patchDicts[patchI].lookup("myProcNo")), + readLabel(patchDicts[patchI].lookup("neighbProcNo")), coupledPolyPatch::COINCIDENTFULLMATCH ); } @@ -650,8 +647,7 @@ Foam::autoPtr<Foam::fvMesh> Foam::conformalVoronoiMesh::createDummyMesh void Foam::conformalVoronoiMesh::checkProcessorPatchesMatch ( const wordList& patchTypes, - const labelList& patchSizes, - const labelList& procNeighbours + const PtrList<dictionary>& patchDicts ) const { // Check patch sizes @@ -665,8 +661,11 @@ void Foam::conformalVoronoiMesh::checkProcessorPatchesMatch { if (patchTypes[patchI] == processorPolyPatch::typeName) { - procPatchSizes[Pstream::myProcNo()][procNeighbours[patchI]] - = patchSizes[patchI]; + const label procNeighb = + readLabel(patchDicts[patchI].lookup("neighbProcNo")); + + procPatchSizes[Pstream::myProcNo()][procNeighb] + = readLabel(patchDicts[patchI].lookup("nFaces")); } } @@ -771,15 +770,16 @@ void Foam::conformalVoronoiMesh::reorderProcessorPatches faceList& faces, const wordList& patchTypes, const wordList& patchNames, - const labelList& patchSizes, - const labelList& patchStarts, - const labelList& procNeighbours + const PtrList<dictionary>& patchDicts +// const labelList& patchSizes, +// const labelList& patchStarts, +// const labelList& procNeighbours ) const { Info<< incrIndent << indent << "Reordering processor patches" << endl; Info<< incrIndent; - checkProcessorPatchesMatch(patchTypes, patchSizes, procNeighbours); + checkProcessorPatchesMatch(patchTypes, patchDicts); // Create dummy mesh with correct proc boundaries to do sorting autoPtr<fvMesh> sortMeshPtr @@ -797,9 +797,7 @@ void Foam::conformalVoronoiMesh::reorderProcessorPatches ), patchTypes, patchNames, - patchSizes, - patchStarts, - procNeighbours + patchDicts ) ); const fvMesh& sortMesh = sortMeshPtr(); @@ -842,8 +840,8 @@ void Foam::conformalVoronoiMesh::reorderProcessorPatches SubList<face> ( faces, - patchSizes[patchI], - patchStarts[patchI] + readLabel(patchDicts[patchI].lookup("nFaces")), + readLabel(patchDicts[patchI].lookup("startFace")) ), points ) @@ -862,8 +860,13 @@ void Foam::conformalVoronoiMesh::reorderProcessorPatches if (isA<processorPolyPatch>(pp)) { - labelList patchFaceMap(patchSizes[patchI], -1); - labelList patchFaceRotation(patchSizes[patchI], 0); + const label nPatchFaces = + readLabel(patchDicts[patchI].lookup("nFaces")); + const label patchStartFace = + readLabel(patchDicts[patchI].lookup("startFace")); + + labelList patchFaceMap(nPatchFaces, -1); + labelList patchFaceRotation(nPatchFaces, 0); bool changed = refCast<const processorPolyPatch>(pp).order ( @@ -873,8 +876,8 @@ void Foam::conformalVoronoiMesh::reorderProcessorPatches SubList<face> ( faces, - patchSizes[patchI], - patchStarts[patchI] + nPatchFaces, + patchStartFace ), points ), @@ -885,11 +888,9 @@ void Foam::conformalVoronoiMesh::reorderProcessorPatches if (changed) { // Merge patch face reordering into mesh face reordering table - label start = patchStarts[patchI]; - forAll(patchFaceRotation, patchFaceI) { - rotation[patchFaceI + start] + rotation[patchFaceI + patchStartFace] = patchFaceRotation[patchFaceI]; } @@ -897,8 +898,8 @@ void Foam::conformalVoronoiMesh::reorderProcessorPatches { if (patchFaceMap[patchFaceI] != patchFaceI) { - faceMap[patchFaceI + start] - = patchFaceMap[patchFaceI] + start; + faceMap[patchFaceI + patchStartFace] + = patchFaceMap[patchFaceI] + patchStartFace; } } @@ -947,9 +948,7 @@ void Foam::conformalVoronoiMesh::writeMesh labelList& neighbour, const wordList& patchTypes, const wordList& patchNames, - const labelList& patchSizes, - const labelList& patchStarts, - const labelList& procNeighbours, + const PtrList<dictionary>& patchDicts, const pointField& cellCentres, const PackedBoolList& boundaryFacesToRemove ) const @@ -959,7 +958,9 @@ void Foam::conformalVoronoiMesh::writeMesh writeObjMesh(points, faces, word(meshName + ".obj")); } - reorderPoints(points, boundaryPts, faces, patchStarts[0]); + const label nInternalFaces = readLabel(patchDicts[0].lookup("startFace")); + + reorderPoints(points, boundaryPts, faces, nInternalFaces); if (Pstream::parRun()) { @@ -971,9 +972,7 @@ void Foam::conformalVoronoiMesh::writeMesh faces, patchTypes, patchNames, - patchSizes, - patchStarts, - procNeighbours + patchDicts ); } @@ -999,27 +998,28 @@ void Foam::conformalVoronoiMesh::writeMesh Info<< " Adding patches to mesh" << endl; - List<polyPatch*> patches(patchStarts.size()); + List<polyPatch*> patches(patchNames.size()); label nValidPatches = 0; forAll(patches, p) { + label totalPatchSize = readLabel(patchDicts[p].lookup("nFaces")); + + Pout<< patchDicts[p] << endl; + if (patchTypes[p] == processorPolyPatch::typeName) { // Do not create empty processor patches - if (patchSizes[p] > 0) + if (totalPatchSize > 0) { patches[nValidPatches] = new processorPolyPatch ( patchNames[p], - patchSizes[p], - patchStarts[p], + patchDicts[p], nValidPatches, mesh.boundaryMesh(), - Pstream::myProcNo(), - procNeighbours[p], - coupledPolyPatch::NOORDERING + patchTypes[p] ); nValidPatches++; @@ -1028,7 +1028,6 @@ void Foam::conformalVoronoiMesh::writeMesh else { // Check that the patch is not empty on every processor - label totalPatchSize = patchSizes[p]; reduce(totalPatchSize, sumOp<label>()); if (totalPatchSize > 0) @@ -1037,8 +1036,7 @@ void Foam::conformalVoronoiMesh::writeMesh ( patchTypes[p], patchNames[p], - patchSizes[p], - patchStarts[p], + patchDicts[p], nValidPatches, mesh.boundaryMesh() ).ptr(); diff --git a/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.C b/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.C index c8d617ecb2cf7673c33b6e711ed86accc0c5df54..bd5edbe80b72d6f7f2bf6e44d750714dd297cd1f 100644 --- a/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.C +++ b/applications/utilities/mesh/generation/cvMesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.C @@ -409,7 +409,6 @@ Foam::conformationSurfaces::conformationSurfaces searchableSurface::UNKNOWN ); - Info<< endl << "Testing for locationInMesh " << locationInMesh_ << endl; diff --git a/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatch.H b/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatch.H index 007db9d2fd2cdf00c490719e3ee6682faf13e8e1..94c743f740238fd000aaa7ba6d80198f0cc7ab39 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatch.H +++ b/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatch.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -276,6 +276,17 @@ public: const polyBoundaryMesh& bm ); + //- Return a pointer to a new patch created on freestore from + // dictionary + static autoPtr<polyPatch> New + ( + const word& patchType, + const word& name, + const dictionary& dict, + const label index, + const polyBoundaryMesh& bm + ); + //- Destructor virtual ~polyPatch(); diff --git a/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatchNew.C b/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatchNew.C index 0b67ab833525de41de3d8dcbcbfc09836a12b1be..87d7fb547492cdbc20a0ecc41428f79e01ce4efb 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatchNew.C +++ b/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatchNew.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -95,6 +95,26 @@ Foam::autoPtr<Foam::polyPatch> Foam::polyPatch::New word patchType(dict.lookup("type")); dict.readIfPresent("geometricType", patchType); + return polyPatch::New(patchType, name, dict, index, bm); +} + + +Foam::autoPtr<Foam::polyPatch> Foam::polyPatch::New +( + const word& patchType, + const word& name, + const dictionary& dict, + const label index, + const polyBoundaryMesh& bm +) +{ + if (debug) + { + Info<< "polyPatch::New(const word&, const dictionary&, const label, " + "const polyBoundaryMesh&) : constructing polyPatch" + << endl; + } + dictionaryConstructorTable::iterator cstrIter = dictionaryConstructorTablePtr_->find(patchType);