From f8c08689ad3a44e21e9ad6410fe8e8162e45538a Mon Sep 17 00:00:00 2001 From: sergio Date: Fri, 15 Apr 2011 14:26:36 +0100 Subject: [PATCH 01/10] ENH: addinf nLayer to 1Dregion --- src/regionModels/regionModel/regionModel1D/regionModel1D.C | 3 +++ src/regionModels/regionModel/regionModel1D/regionModel1D.H | 6 ++++++ src/regionModels/regionModel/regionModel1D/regionModel1DI.H | 6 ++++++ 3 files changed, 15 insertions(+) diff --git a/src/regionModels/regionModel/regionModel1D/regionModel1D.C b/src/regionModels/regionModel/regionModel1D/regionModel1D.C index 19bf9f2ece..033db12366 100644 --- a/src/regionModels/regionModel/regionModel1D/regionModel1D.C +++ b/src/regionModels/regionModel/regionModel1D/regionModel1D.C @@ -114,6 +114,7 @@ void Foam::regionModels::regionModel1D::initialise() boundaryFaceCells_[localPyrolysisFaceI].transfer(cellIDs); localPyrolysisFaceI++; + nLayers_ = nCells; } } @@ -266,6 +267,7 @@ Foam::regionModels::regionModel1D::regionModel1D(const fvMesh& mesh) boundaryFaceFaces_(), boundaryFaceCells_(), boundaryFaceOppositeFace_(), + nLayers_(0), nMagSfPtr_(NULL), moveMesh_(false) {} @@ -283,6 +285,7 @@ Foam::regionModels::regionModel1D::regionModel1D boundaryFaceFaces_(regionMesh().nCells()), boundaryFaceCells_(regionMesh().nCells()), boundaryFaceOppositeFace_(regionMesh().nCells()), + nLayers_(0), nMagSfPtr_(NULL), moveMesh_(true) { diff --git a/src/regionModels/regionModel/regionModel1D/regionModel1D.H b/src/regionModels/regionModel/regionModel1D/regionModel1D.H index 650dea510f..55812aab2d 100644 --- a/src/regionModels/regionModel/regionModel1D/regionModel1D.H +++ b/src/regionModels/regionModel/regionModel1D/regionModel1D.H @@ -88,6 +88,9 @@ protected: //- Global boundary face IDs oppossite coupled patch labelList boundaryFaceOppositeFace_; + //- Number of layers in the region + label nLayers_; + // Geometry @@ -157,6 +160,9 @@ public: //- Return the face area magnitudes / [m2] inline const surfaceScalarField& nMagSf() const; + + //- Return the number of layers in the region + inline label nLayers() const; }; diff --git a/src/regionModels/regionModel/regionModel1D/regionModel1DI.H b/src/regionModels/regionModel/regionModel1D/regionModel1DI.H index 55e61d3eef..a115fdf456 100644 --- a/src/regionModels/regionModel/regionModel1D/regionModel1DI.H +++ b/src/regionModels/regionModel/regionModel1D/regionModel1DI.H @@ -65,4 +65,10 @@ Foam::regionModels::regionModel1D::nMagSf() const } +inline Foam::label Foam::regionModels::regionModel1D::nLayers() const +{ + return nLayers_; +} + + // ************************************************************************* // From a913524c759c7d6d1f5017a60e497d000ce123e5 Mon Sep 17 00:00:00 2001 From: mattijs Date: Tue, 19 Apr 2011 17:24:28 +0100 Subject: [PATCH 02/10] ENH: addPatchCellLayer: improved debug messages --- .../polyTopoChange/addPatchCellLayer.C | 73 ++++++++++++------- 1 file changed, 47 insertions(+), 26 deletions(-) diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/addPatchCellLayer.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/addPatchCellLayer.C index f8f7ab41b0..92b64e85a7 100644 --- a/src/dynamicMesh/polyTopoChange/polyTopoChange/addPatchCellLayer.C +++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/addPatchCellLayer.C @@ -81,30 +81,6 @@ void Foam::addPatchCellLayer::addVertex f[fp++] = pointI; } } - - // Check for duplicates. - if (debug) - { - label n = 0; - for (label i = 0; i < fp; i++) - { - if (f[i] == pointI) - { - n++; - - if (n == 2) - { - f.setSize(fp); - FatalErrorIn - ( - "addPatchCellLayer::addVertex(const label, face&" - ", label&)" - ) << "Point " << pointI << " already present in face " - << f << abort(FatalError); - } - } - } - } } @@ -1641,11 +1617,11 @@ void Foam::addPatchCellLayer::setRefinement { label offset = addedPoints_[vStart].size() - numEdgeSideFaces; - for (label ioff = offset; ioff > 0; ioff--) + for (label ioff = offset-1; ioff >= 0; ioff--) { addVertex ( - addedPoints_[vStart][ioff-1], + addedPoints_[vStart][ioff], newFace, newFp ); @@ -1660,6 +1636,51 @@ void Foam::addPatchCellLayer::setRefinement newFace.setSize(newFp); + if (debug) + { + labelHashSet verts(2*newFace.size()); + forAll(newFace, fp) + { + if (!verts.insert(newFace[fp])) + { + FatalErrorIn + ( + "addPatchCellLayer::setRefinement(..)" + ) << "Duplicate vertex in face" + << " to be added." << nl + << "newFace:" << newFace << nl + << "points:" + << UIndirectList + ( + meshMod.points(), + newFace + ) << nl + << "Layer:" << i + << " out of:" << numEdgeSideFaces << nl + << "ExtrudeEdge:" << meshEdgeI + << " at:" + << mesh_.edges()[meshEdgeI].line + ( + mesh_.points() + ) << nl + << "string:" << stringedVerts + << "stringpoints:" + << UIndirectList + ( + pp.localPoints(), + stringedVerts + ) << nl + << "stringNLayers:" + << UIndirectList