From 2d9ea72b6a0a544cd407cd9e94def1d492392a0f Mon Sep 17 00:00:00 2001 From: mattijs <mattijs@hunt.opencfd.co.uk> Date: Tue, 9 Jun 2009 14:02:10 +0100 Subject: [PATCH] allow -overwrite in snappyHexMesh --- .../generation/snappyHexMesh/snappyHexMesh.C | 26 ++++++++-- .../autoHexMeshDriver/autoHexMeshDriver.C | 8 ++-- .../autoHexMeshDriver/autoHexMeshDriver.H | 1 + .../autoHexMeshDriver/autoLayerDriver.C | 47 +++++++++++++++---- .../autoHexMeshDriver/autoRefineDriver.C | 15 +++--- .../autoHexMeshDriver/autoSnapDriver.C | 14 +++--- .../meshRefinement/meshRefinement.C | 34 ++++++++++---- .../meshRefinement/meshRefinement.H | 29 ++++++++++-- .../meshRefinement/meshRefinementBaffles.C | 36 ++++++++++++-- .../meshRefinement/meshRefinementMerge.C | 14 ++++-- .../meshRefinement/meshRefinementRefine.C | 14 ++++-- 11 files changed, 180 insertions(+), 58 deletions(-) diff --git a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C index 67b16d75ea2..6f086523dd2 100644 --- a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C +++ b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C @@ -96,7 +96,7 @@ void writeMesh const fvMesh& mesh = meshRefiner.mesh(); meshRefiner.printMeshInfo(debug, msg); - Info<< "Writing mesh to time " << mesh.time().timeName() << endl; + Info<< "Writing mesh to time " << meshRefiner.timeName() << endl; meshRefiner.write(meshRefinement::MESH|meshRefinement::SCALARLEVELS, ""); if (debug & meshRefinement::OBJINTERSECTIONS) @@ -104,7 +104,7 @@ void writeMesh meshRefiner.write ( meshRefinement::OBJINTERSECTIONS, - mesh.time().path()/mesh.time().timeName() + mesh.time().path()/meshRefiner.timeName() ); } Info<< "Written mesh in = " @@ -115,6 +115,7 @@ void writeMesh int main(int argc, char *argv[]) { + argList::validOptions.insert("overwrite", ""); # include "setRootCase.H" # include "createTime.H" runTime.functionObjects().off(); @@ -123,6 +124,9 @@ int main(int argc, char *argv[]) Info<< "Read mesh in = " << runTime.cpuTimeIncrement() << " s" << endl; + const bool overwrite = args.optionFound("overwrite"); + + // Check patches and faceZones are synchronised mesh.boundaryMesh().checkParallelSync(true); meshRefinement::checkCoupledFaceZones(mesh); @@ -256,6 +260,7 @@ int main(int argc, char *argv[]) ( mesh, mergeDist, // tolerance used in sorting coordinates + overwrite, // overwrite mesh files? surfaces, // for surface intersection refinement shells // for volume (inside/outside) refinement ); @@ -268,7 +273,7 @@ int main(int argc, char *argv[]) meshRefiner.write ( debug&meshRefinement::OBJINTERSECTIONS, - mesh.time().path()/mesh.time().timeName() + mesh.time().path()/meshRefiner.timeName() ); @@ -369,6 +374,11 @@ int main(int argc, char *argv[]) // Refinement parameters refinementParameters refineParams(refineDict); + if (!overwrite) + { + const_cast<Time&>(mesh.time())++; + } + refineDriver.doRefine(refineDict, refineParams, wantSnap, motionDict); writeMesh @@ -390,6 +400,11 @@ int main(int argc, char *argv[]) // Snap parameters snapParameters snapParams(snapDict); + if (!overwrite) + { + const_cast<Time&>(mesh.time())++; + } + snapDriver.doSnap(snapDict, motionDict, snapParams); writeMesh @@ -407,6 +422,11 @@ int main(int argc, char *argv[]) // Layer addition parameters layerParameters layerParams(layerDict, mesh.boundaryMesh()); + if (!overwrite) + { + const_cast<Time&>(mesh.time())++; + } + layerDriver.doLayers ( layerDict, diff --git a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoHexMeshDriver.C b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoHexMeshDriver.C index 9081ceb3ee0..3c2221f8d04 100644 --- a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoHexMeshDriver.C +++ b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoHexMeshDriver.C @@ -148,6 +148,7 @@ Foam::scalar Foam::autoHexMeshDriver::getMergeDistance(const scalar mergeTol) Foam::autoHexMeshDriver::autoHexMeshDriver ( fvMesh& mesh, + const bool overwrite, const dictionary& dict, const dictionary& decomposeDict ) @@ -308,6 +309,7 @@ Foam::autoHexMeshDriver::autoHexMeshDriver ( mesh, mergeDist_, // tolerance used in sorting coordinates + overwrite, surfaces(), shells() ) @@ -321,7 +323,7 @@ Foam::autoHexMeshDriver::autoHexMeshDriver meshRefinerPtr_().write ( debug_&meshRefinement::OBJINTERSECTIONS, - mesh_.time().path()/mesh_.time().timeName() + mesh_.time().path()/meshRefinerPtr_().timeName() ); } @@ -447,7 +449,7 @@ void Foam::autoHexMeshDriver::writeMesh(const string& msg) const const meshRefinement& meshRefiner = meshRefinerPtr_(); meshRefiner.printMeshInfo(debug_, msg); - Info<< "Writing mesh to time " << mesh_.time().timeName() << endl; + Info<< "Writing mesh to time " << meshRefiner.timeName() << endl; meshRefiner.write(meshRefinement::MESH|meshRefinement::SCALARLEVELS, ""); if (debug_ & meshRefinement::OBJINTERSECTIONS) @@ -455,7 +457,7 @@ void Foam::autoHexMeshDriver::writeMesh(const string& msg) const meshRefiner.write ( meshRefinement::OBJINTERSECTIONS, - mesh_.time().path()/mesh_.time().timeName() + mesh_.time().path()/meshRefiner.timeName() ); } Info<< "Written mesh in = " diff --git a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoHexMeshDriver.H b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoHexMeshDriver.H index c0b7668d0ac..02eba5afbe9 100644 --- a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoHexMeshDriver.H +++ b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoHexMeshDriver.H @@ -174,6 +174,7 @@ public: autoHexMeshDriver ( fvMesh& mesh, + const bool overwrite, const dictionary& meshDict, const dictionary& decomposeDict ); diff --git a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C index 55e35269dd2..fea25e35eb8 100644 --- a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C +++ b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C @@ -159,12 +159,16 @@ Foam::label Foam::autoLayerDriver::mergePatchFacesUndo mesh.clearOut(); } + if (meshRefiner_.overwrite()) + { + mesh.setInstance(meshRefiner_.oldInstance()); + } + faceCombiner.updateMesh(map); meshRefiner_.updateMesh(map, labelList(0)); - for (label iteration = 0; iteration < 100; iteration++) { Info<< nl @@ -313,6 +317,11 @@ Foam::label Foam::autoLayerDriver::mergePatchFacesUndo mesh.clearOut(); } + if (meshRefiner_.overwrite()) + { + mesh.setInstance(meshRefiner_.oldInstance()); + } + faceCombiner.updateMesh(map); // Renumber restore maps @@ -336,7 +345,7 @@ Foam::label Foam::autoLayerDriver::mergePatchFacesUndo if (debug) { Pout<< "Writing merged-faces mesh to time " - << mesh.time().timeName() << nl << endl; + << meshRefiner_.timeName() << nl << endl; mesh.write(); } } @@ -380,6 +389,11 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::autoLayerDriver::doRemovePoints mesh.clearOut(); } + if (meshRefiner_.overwrite()) + { + mesh.setInstance(meshRefiner_.oldInstance()); + } + pointRemover.updateMesh(map); meshRefiner_.updateMesh(map, labelList(0)); @@ -433,6 +447,11 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::autoLayerDriver::doRestorePoints mesh.clearOut(); } + if (meshRefiner_.overwrite()) + { + mesh.setInstance(meshRefiner_.oldInstance()); + } + pointRemover.updateMesh(map); meshRefiner_.updateMesh(map, labelList(0)); @@ -656,7 +675,7 @@ Foam::label Foam::autoLayerDriver::mergeEdgesUndo if (debug) { Pout<< "Writing merged-edges mesh to time " - << mesh.time().timeName() << nl << endl; + << meshRefiner_.timeName() << nl << endl; mesh.write(); } } @@ -2724,7 +2743,7 @@ void Foam::autoLayerDriver::addLayers IOobject ( "pointMedialDist", - mesh.time().timeName(), + meshRefiner_.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE, @@ -2739,7 +2758,7 @@ void Foam::autoLayerDriver::addLayers IOobject ( "dispVec", - mesh.time().timeName(), + meshRefiner_.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE, @@ -2754,7 +2773,7 @@ void Foam::autoLayerDriver::addLayers IOobject ( "medialRatio", - mesh.time().timeName(), + meshRefiner_.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE, @@ -2906,7 +2925,7 @@ void Foam::autoLayerDriver::addLayers ); const_cast<Time&>(mesh.time())++; - Info<< "Writing shrunk mesh to " << mesh.time().timeName() << endl; + Info<< "Writing shrunk mesh to " << meshRefiner_.timeName() << endl; // See comment in autoSnapDriver why we should not remove meshPhi // using mesh.clearPout(). @@ -3007,6 +3026,11 @@ void Foam::autoLayerDriver::addLayers //?neccesary? Update fields newMesh.updateMesh(map); + if (meshRefiner_.overwrite()) + { + newMesh.setInstance(meshRefiner_.oldInstance()); + } + // Update numbering on addLayer: // - cell/point labels to be newMesh. // - patchFaces to remain in oldMesh order. @@ -3029,7 +3053,7 @@ void Foam::autoLayerDriver::addLayers if (debug) { - Info<< "Writing layer mesh to " << mesh.time().timeName() << endl; + Info<< "Writing layer mesh to " << meshRefiner_.timeName() << endl; newMesh.write(); cellSet addedCellSet ( @@ -3108,6 +3132,11 @@ void Foam::autoLayerDriver::addLayers mesh.clearOut(); } + if (meshRefiner_.overwrite()) + { + mesh.setInstance(meshRefiner_.oldInstance()); + } + meshRefiner_.updateMesh(map, labelList(0)); @@ -3176,8 +3205,6 @@ void Foam::autoLayerDriver::doLayers << "----------------------------------" << nl << endl; - const_cast<Time&>(mesh.time())++; - Info<< "Using mesh parameters " << motionDict << nl << endl; // Merge coplanar boundary faces diff --git a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C index d9c205bfca5..0ac24a5574a 100644 --- a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C +++ b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C @@ -344,8 +344,8 @@ void Foam::autoRefineDriver::removeInsideCells if (debug) { Pout<< "Writing subsetted mesh to time " - << mesh.time().timeName() << '.' << endl; - meshRefiner_.write(debug, mesh.time().path()/mesh.time().timeName()); + << meshRefiner_.timeName() << '.' << endl; + meshRefiner_.write(debug, mesh.time().path()/meshRefiner_.timeName()); Pout<< "Dumped mesh in = " << mesh.time().cpuTimeIncrement() << " s\n" << nl << endl; } @@ -561,11 +561,11 @@ void Foam::autoRefineDriver::zonify if (debug) { Pout<< "Writing zoned mesh to time " - << mesh.time().timeName() << '.' << endl; + << meshRefiner_.timeName() << '.' << endl; meshRefiner_.write ( debug, - mesh.time().path()/mesh.time().timeName() + mesh.time().path()/meshRefiner_.timeName() ); } @@ -653,8 +653,8 @@ void Foam::autoRefineDriver::splitAndMergeBaffles if (debug) { Pout<< "Writing handleProblemCells mesh to time " - << mesh.time().timeName() << '.' << endl; - meshRefiner_.write(debug, mesh.time().path()/mesh.time().timeName()); + << meshRefiner_.timeName() << '.' << endl; + meshRefiner_.write(debug, mesh.time().path()/meshRefiner_.timeName()); } } @@ -712,9 +712,6 @@ void Foam::autoRefineDriver::doRefine const fvMesh& mesh = meshRefiner_.mesh(); - const_cast<Time&>(mesh.time())++; - - // Check that all the keep points are inside the mesh. refineParams.findCells(mesh); diff --git a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.C b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.C index f27ccdb9f30..41475a321af 100644 --- a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.C +++ b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.C @@ -557,7 +557,7 @@ Foam::tmp<Foam::scalarField> Foam::autoSnapDriver::edgePatchDist // IOobject // ( // "pointDist", - // mesh.DB().timeName(), + // meshRefiner_.timeName(), // mesh.DB(), // IOobject::NO_READ, // IOobject::AUTO_WRITE @@ -580,7 +580,7 @@ Foam::tmp<Foam::scalarField> Foam::autoSnapDriver::edgePatchDist // pointDist[pointI] /= mesh.pointEdges()[pointI].size(); // } // Info<< "Writing patch distance to " << pointDist.name() - // << " at time " << mesh.DB().timeName() << endl; + // << " at time " << meshRefiner_.timeName() << endl; // // pointDist.write(); //} @@ -750,7 +750,7 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::autoSnapDriver::createZoneBaffles { const_cast<Time&>(mesh.time())++; Pout<< "Writing baffled mesh to time " - << mesh.time().timeName() << endl; + << meshRefiner_.timeName() << endl; mesh.write(); } } @@ -899,7 +899,7 @@ void Foam::autoSnapDriver::preSmoothPatch if (debug) { const_cast<Time&>(mesh.time())++; - Pout<< "Writing patch smoothed mesh to time " << mesh.time().timeName() + Pout<< "Writing patch smoothed mesh to time " << meshRefiner_.timeName() << endl; mesh.write(); @@ -1193,7 +1193,7 @@ void Foam::autoSnapDriver::smoothDisplacement if (debug) { const_cast<Time&>(mesh.time())++; - Pout<< "Writing smoothed mesh to time " << mesh.time().timeName() + Pout<< "Writing smoothed mesh to time " << meshRefiner_.timeName() << endl; // Moving mesh creates meshPhi. Can be cleared out by a mesh.clearOut @@ -1255,7 +1255,7 @@ void Foam::autoSnapDriver::scaleMesh if (debug) { const_cast<Time&>(mesh.time())++; - Pout<< "Writing scaled mesh to time " << mesh.time().timeName() + Pout<< "Writing scaled mesh to time " << meshRefiner_.timeName() << endl; mesh.write(); @@ -1447,8 +1447,6 @@ void Foam::autoSnapDriver::doSnap << "--------------" << nl << endl; - const_cast<Time&>(mesh.time())++; - // Get the labels of added patches. labelList adaptPatchIDs(meshRefiner_.meshedPatches()); diff --git a/src/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C b/src/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C index eadc22ba3c0..7e90beae6f6 100644 --- a/src/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C +++ b/src/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C @@ -465,6 +465,11 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::doRemoveCells mesh_.clearOut(); } + if (overwrite_) + { + mesh_.setInstance(oldInstance_); + } + // Update local mesh data cellRemover.updateMesh(map); @@ -817,12 +822,15 @@ Foam::meshRefinement::meshRefinement ( fvMesh& mesh, const scalar mergeDistance, + const bool overwrite, const refinementSurfaces& surfaces, const shellSurfaces& shells ) : mesh_(mesh), mergeDistance_(mergeDistance), + overwrite_(overwrite), + oldInstance_(mesh.pointsInstance()), surfaces_(surfaces), shells_(shells), meshCutter_ @@ -1199,8 +1207,6 @@ Foam::autoPtr<Foam::mapDistributePolyMesh> Foam::meshRefinement::balance // Helper function to get intersected faces Foam::labelList Foam::meshRefinement::intersectedFaces() const { - // Mark all faces that will become baffles - label nBoundaryFaces = 0; forAll(surfaceIndex_, faceI) @@ -1226,9 +1232,7 @@ Foam::labelList Foam::meshRefinement::intersectedFaces() const // Helper function to get points used by faces -Foam::labelList Foam::meshRefinement::intersectedPoints -( -) const +Foam::labelList Foam::meshRefinement::intersectedPoints() const { const faceList& faces = mesh_.faces(); @@ -1384,7 +1388,7 @@ Foam::tmp<Foam::pointVectorField> Foam::meshRefinement::makeDisplacementField IOobject ( "pointDisplacement", - mesh.time().timeName(), + mesh.time().timeName(), //timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE @@ -2059,6 +2063,20 @@ void Foam::meshRefinement::printMeshInfo(const bool debug, const string& msg) } +//- Return either time().constant() or oldInstance +Foam::word Foam::meshRefinement::timeName() const +{ + if (overwrite_ && mesh_.time().timeIndex() == 0) + { + return oldInstance_; + } + else + { + return mesh_.time().timeName(); + } +} + + void Foam::meshRefinement::dumpRefinementLevel() const { volScalarField volRefLevel @@ -2066,7 +2084,7 @@ void Foam::meshRefinement::dumpRefinementLevel() const IOobject ( "cellLevel", - mesh_.time().timeName(), + timeName(), mesh_, IOobject::NO_READ, IOobject::AUTO_WRITE, @@ -2093,7 +2111,7 @@ void Foam::meshRefinement::dumpRefinementLevel() const IOobject ( "pointLevel", - mesh_.time().timeName(), + timeName(), mesh_, IOobject::NO_READ, IOobject::NO_WRITE, diff --git a/src/autoMesh/autoHexMesh/meshRefinement/meshRefinement.H b/src/autoMesh/autoHexMesh/meshRefinement/meshRefinement.H index e0f35934ed0..93ce3ceeb8f 100644 --- a/src/autoMesh/autoHexMesh/meshRefinement/meshRefinement.H +++ b/src/autoMesh/autoHexMesh/meshRefinement/meshRefinement.H @@ -110,6 +110,12 @@ private: //- tolerance used for sorting coordinates (used in 'less' routine) const scalar mergeDistance_; + //- overwrite the mesh? + const bool overwrite_; + + //- Instance of mesh upon construction. Used when in overwrite_ mode. + const word oldInstance_; + //- All surface-intersection interaction const refinementSurfaces& surfaces_; @@ -167,9 +173,6 @@ private: //- Find any intersection of surface. Store in surfaceIndex_. void updateIntersections(const labelList& changedFaces); - //- Set instance of all local IOobjects - void setInstance(const fileName&); - //- Remove cells. Put exposedFaces into exposedPatchIDs. autoPtr<mapPolyMesh> doRemoveCells ( @@ -478,6 +481,7 @@ public: ( fvMesh& mesh, const scalar mergeDistance, + const bool overwrite, const refinementSurfaces&, const shellSurfaces& ); @@ -502,6 +506,18 @@ public: return mergeDistance_; } + //- Overwrite the mesh? + bool overwrite() const + { + return overwrite_; + } + + //- (points)instance of mesh upon construction + const word& oldInstance() const + { + return oldInstance_; + } + //- reference to surface search engines const refinementSurfaces& surfaces() const { @@ -768,6 +784,13 @@ public: //- Print some mesh stats. void printMeshInfo(const bool, const string&) const; + //- Replacement for Time::timeName() : return oldInstance (if + // overwrite_) + word timeName() const; + + //- Set instance of all local IOobjects + void setInstance(const fileName&); + //- Write mesh and all data bool write() const; diff --git a/src/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C b/src/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C index 494a20e2642..baa2e5d463b 100644 --- a/src/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C +++ b/src/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C @@ -226,7 +226,13 @@ void Foam::meshRefinement::getBafflePatches label vertI = 0; if (debug&OBJINTERSECTIONS) { - str.reset(new OFstream(mesh_.time().timePath()/"intersections.obj")); + str.reset + ( + new OFstream + ( + mesh_.time().path()/timeName()/"intersections.obj" + ) + ); Pout<< "getBafflePatches : Writing surface intersections to file " << str().name() << nl << endl; @@ -461,6 +467,11 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::createBaffles mesh_.clearOut(); } + if (overwrite()) + { + mesh_.setInstance(oldInstance()); + } + //- Redo the intersections on the newly create baffle faces. Note that // this changes also the cell centre positions. faceSet baffledFacesSet(mesh_, "baffledFacesSet", 2*nBaffles); @@ -820,6 +831,11 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::mergeBaffles mesh_.clearOut(); } + if (overwrite()) + { + mesh_.setInstance(oldInstance()); + } + // Update intersections. Recalculate intersections on merged faces since // this seems to give problems? Note: should not be nessecary since // baffles preserve intersections from when they were created. @@ -1482,7 +1498,7 @@ void Foam::meshRefinement::baffleAndSplitMesh if (debug) { - Pout<< "Writing baffled mesh to time " << mesh_.time().timeName() + Pout<< "Writing baffled mesh to time " << timeName() << endl; write(debug, runTime.path()/"baffles"); Pout<< "Dumped debug data in = " @@ -1565,7 +1581,7 @@ void Foam::meshRefinement::baffleAndSplitMesh if (debug) { Pout<< "Writing extra baffled mesh to time " - << mesh_.time().timeName() << endl; + << timeName() << endl; write(debug, runTime.path()/"extraBaffles"); Pout<< "Dumped debug data in = " << runTime.cpuTimeIncrement() << " s\n" << nl << endl; @@ -1600,9 +1616,9 @@ void Foam::meshRefinement::baffleAndSplitMesh if (debug) { - Pout<< "Writing subsetted mesh to time " << mesh_.time().timeName() + Pout<< "Writing subsetted mesh to time " << timeName() << endl; - write(debug, runTime.timePath()); + write(debug, runTime.path()/timeName()); Pout<< "Dumped debug data in = " << runTime.cpuTimeIncrement() << " s\n" << nl << endl; } @@ -1994,6 +2010,11 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::dupNonManifoldPoints() mesh_.clearOut(); } + if (overwrite()) + { + mesh_.setInstance(oldInstance()); + } + // Update intersections. Is mapping only (no faces created, positions stay // same) so no need to recalculate intersections. updateMesh(map, labelList(0)); @@ -2425,6 +2446,11 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::zonify mesh_.clearOut(); } + if (overwrite()) + { + mesh_.setInstance(oldInstance()); + } + // None of the faces has changed, only the zones. Still... updateMesh(map, labelList()); diff --git a/src/autoMesh/autoHexMesh/meshRefinement/meshRefinementMerge.C b/src/autoMesh/autoHexMesh/meshRefinement/meshRefinementMerge.C index 7ad77e83bf2..b1461cea77c 100644 --- a/src/autoMesh/autoHexMesh/meshRefinement/meshRefinementMerge.C +++ b/src/autoMesh/autoHexMesh/meshRefinement/meshRefinementMerge.C @@ -29,10 +29,6 @@ License #include "polyTopoChange.H" #include "removePoints.H" - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // Merge faces that are in-line. @@ -108,6 +104,11 @@ Foam::label Foam::meshRefinement::mergePatchFaces mesh_.clearOut(); } + if (overwrite()) + { + mesh_.setInstance(oldInstance()); + } + faceCombiner.updateMesh(map); // Get the kept faces that need to be recalculated. @@ -203,6 +204,11 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::mergeEdges mesh_.clearOut(); } + if (overwrite()) + { + mesh_.setInstance(oldInstance()); + } + pointRemover.updateMesh(map); // Get the kept faces that need to be recalculated. diff --git a/src/autoMesh/autoHexMesh/meshRefinement/meshRefinementRefine.C b/src/autoMesh/autoHexMesh/meshRefinement/meshRefinementRefine.C index 7aabbc6321c..e35607a5980 100644 --- a/src/autoMesh/autoHexMesh/meshRefinement/meshRefinementRefine.C +++ b/src/autoMesh/autoHexMesh/meshRefinement/meshRefinementRefine.C @@ -1232,6 +1232,11 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::refine mesh_.clearOut(); } + if (overwrite()) + { + mesh_.setInstance(oldInstance()); + } + // Update intersection info updateMesh(map, getChangedFaces(map, cellsToRefine)); @@ -1256,12 +1261,12 @@ Foam::meshRefinement::refineAndBalance if (debug) { Pout<< "Writing refined but unbalanced " << msg - << " mesh to time " << mesh_.time().timeName() << endl; + << " mesh to time " << timeName() << endl; write ( debug, mesh_.time().path() - /mesh_.time().timeName() + /timeName() ); Pout<< "Dumped debug data in = " << mesh_.time().cpuTimeIncrement() << " s" << endl; @@ -1299,12 +1304,11 @@ Foam::meshRefinement::refineAndBalance if (debug) { Pout<< "Writing balanced " << msg - << " mesh to time " << mesh_.time().timeName() << endl; + << " mesh to time " << timeName() << endl; write ( debug, - mesh_.time().path() - /mesh_.time().timeName() + mesh_.time().path()/timeName() ); Pout<< "Dumped debug data in = " << mesh_.time().cpuTimeIncrement() << " s" << endl; -- GitLab