From 72ec717d28ec82725bf6152d6853a87abd2afb91 Mon Sep 17 00:00:00 2001 From: Vuko Vukcevic Date: Tue, 20 Mar 2018 14:28:51 +0100 Subject: [PATCH 01/15] Bugfix in pointPatchInterpolation.C Certain demand driven data not properly cleaned-up on mesh motion (without topo changes). --- .../pointPatchInterpolation/pointPatchInterpolation.C | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/finiteVolume/interpolation/volPointInterpolation/pointPatchInterpolation/pointPatchInterpolation.C b/src/finiteVolume/interpolation/volPointInterpolation/pointPatchInterpolation/pointPatchInterpolation.C index 8a346cb72..9a6ca03d6 100644 --- a/src/finiteVolume/interpolation/volPointInterpolation/pointPatchInterpolation/pointPatchInterpolation.C +++ b/src/finiteVolume/interpolation/volPointInterpolation/pointPatchInterpolation/pointPatchInterpolation.C @@ -407,14 +407,8 @@ const scalarListList& pointPatchInterpolation::patchPatchPointWeights() const bool pointPatchInterpolation::movePoints() { - if (!patchInterpolators_.empty()) - { - // Reset patch interpolators (also lazy evaluated) - forAll (patchInterpolators_, patchi) - { - patchInterpolators_[patchi].movePoints(); - } - } + // Clear out patch interpolators to force recalculation + patchInterpolators_.clear(); // Clear out demand driven data clearOut(); From 049bc0ed951b64bd4dad07815c4a281ab1a1b50f Mon Sep 17 00:00:00 2001 From: Vuko Vukcevic Date: Tue, 20 Mar 2018 17:27:01 +0100 Subject: [PATCH 02/15] Improvements to polyhedralRefinement 1. Extended protection for split points to nBufferLayers + 2 buffer layers in order to protect cells from unrefinement when we do refinement and unrefinement in a same go 2. Added separate entry for unrefineInterval along refineInterval to control refinement and unrefinement separately --- .../polyhedralRefinement.C | 12 +- .../dynamicPolyRefinementFvMesh.C | 108 +++++++++++++----- .../dynamicPolyRefinementFvMesh.H | 3 + 3 files changed, 89 insertions(+), 34 deletions(-) diff --git a/src/dynamicMesh/dynamicMesh/polyMeshModifiers/polyhedralRefinement/polyhedralRefinement.C b/src/dynamicMesh/dynamicMesh/polyMeshModifiers/polyhedralRefinement/polyhedralRefinement.C index 2d75882b6..9bd53fae3 100644 --- a/src/dynamicMesh/dynamicMesh/polyMeshModifiers/polyhedralRefinement/polyhedralRefinement.C +++ b/src/dynamicMesh/dynamicMesh/polyMeshModifiers/polyhedralRefinement/polyhedralRefinement.C @@ -3555,9 +3555,7 @@ void Foam::polyhedralRefinement::setCellsToRefine // Transfer the contents into the data member (ordinary list) cellsToRefine_.transfer(cellsToRefineDynamic); - Info<< "polyhedralRefinement::setCellsToRefine" - << "(const labelList& refinementCellCandidates)" << nl - << "Selected " << returnReduce(cellsToRefine_.size(), sumOp