From dfbcf6eb463e3f99b4534069b046a137679be7e0 Mon Sep 17 00:00:00 2001 From: mattijs <mattijs> Date: Wed, 6 Oct 2010 16:20:55 +0100 Subject: [PATCH] BUG: singleCellFvMesh : locally (but not globally) zero sized patches --- .../singleCellFvMesh/singleCellFvMesh.C | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/src/finiteVolume/fvMesh/singleCellFvMesh/singleCellFvMesh.C b/src/finiteVolume/fvMesh/singleCellFvMesh/singleCellFvMesh.C index 4955f49007d..8eaf3559f58 100644 --- a/src/finiteVolume/fvMesh/singleCellFvMesh/singleCellFvMesh.C +++ b/src/finiteVolume/fvMesh/singleCellFvMesh/singleCellFvMesh.C @@ -42,24 +42,26 @@ void Foam::singleCellFvMesh::agglomerateMesh const polyBoundaryMesh& oldPatches = mesh.boundaryMesh(); // Check agglomeration within patch face range and continuous - labelList nAgglom(oldPatches.size()); + labelList nAgglom(oldPatches.size(), 0); forAll(oldPatches, patchI) { const polyPatch& pp = oldPatches[patchI]; - - nAgglom[patchI] = max(agglom[patchI])+1; - - forAll(pp, i) + if (pp.size() > 0) { - if (agglom[patchI][i] < 0 || agglom[patchI][i] >= pp.size()) + nAgglom[patchI] = max(agglom[patchI])+1; + + forAll(pp, i) { - FatalErrorIn - ( - "singleCellFvMesh::agglomerateMesh(..)" - ) << "agglomeration on patch " << patchI - << " is out of range 0.." << pp.size()-1 - << exit(FatalError); + if (agglom[patchI][i] < 0 || agglom[patchI][i] >= pp.size()) + { + FatalErrorIn + ( + "singleCellFvMesh::agglomerateMesh(..)" + ) << "agglomeration on patch " << patchI + << " is out of range 0.." << pp.size()-1 + << exit(FatalError); + } } } } @@ -155,6 +157,8 @@ void Foam::singleCellFvMesh::agglomerateMesh forAll(oldPatches, patchI) { + patchStarts[patchI] = coarseI; + const polyPatch& pp = oldPatches[patchI]; if (pp.size() > 0) @@ -170,8 +174,6 @@ void Foam::singleCellFvMesh::agglomerateMesh // From agglomeration to compact patch face labelList agglomToFace(nAgglom[patchI], -1); - patchStarts[patchI] = coarseI; - forAll(pp, i) { label myAgglom = agglom[patchI][i]; @@ -223,9 +225,9 @@ void Foam::singleCellFvMesh::agglomerateMesh ); } } - - patchSizes[patchI] = coarseI-patchStarts[patchI]; } + + patchSizes[patchI] = coarseI-patchStarts[patchI]; } //Pout<< "patchStarts:" << patchStarts << endl; -- GitLab