Skip to content
Snippets Groups Projects
Commit e8a706fc authored by Mattijs Janssens's avatar Mattijs Janssens
Browse files

not do points that are not to be split but are on multiple faces that are to be split

parent 30512ec1
Branches
Tags
No related merge requests found
...@@ -110,6 +110,7 @@ bool Foam::localPointRegion::isDuplicate ...@@ -110,6 +110,7 @@ bool Foam::localPointRegion::isDuplicate
void Foam::localPointRegion::countPointRegions void Foam::localPointRegion::countPointRegions
( (
const polyMesh& mesh, const polyMesh& mesh,
const boolList& candidatePoint,
const Map<label>& candidateFace, const Map<label>& candidateFace,
faceList& minRegion faceList& minRegion
) )
...@@ -144,38 +145,45 @@ void Foam::localPointRegion::countPointRegions ...@@ -144,38 +145,45 @@ void Foam::localPointRegion::countPointRegions
forAll(f, fp) forAll(f, fp)
{ {
label pointI = f[fp]; label pointI = f[fp];
label region = minRegion[faceI][fp];
if (minPointRegion[pointI] == -1) // Even points which were not candidates for splitting might
{ // be on multiple baffles that are being split so check.
minPointRegion[pointI] = region;
} if (candidatePoint[pointI])
else if (minPointRegion[pointI] != region)
{ {
// Multiple regions for this point. Add. label region = minRegion[faceI][fp];
Map<label>::iterator iter = meshPointMap_.find(pointI);
if (iter != meshPointMap_.end()) if (minPointRegion[pointI] == -1)
{ {
labelList& regions = pointRegions[iter()]; minPointRegion[pointI] = region;
if (findIndex(regions, region) == -1)
{
label sz = regions.size();
regions.setSize(sz+1);
regions[sz] = region;
}
} }
else else if (minPointRegion[pointI] != region)
{ {
label localPointI = meshPointMap_.size(); // Multiple regions for this point. Add.
meshPointMap_.insert(pointI, localPointI); Map<label>::iterator iter = meshPointMap_.find(pointI);
labelList regions(2); if (iter != meshPointMap_.end())
regions[0] = minPointRegion[pointI]; {
regions[1] = region; labelList& regions = pointRegions[iter()];
pointRegions.append(regions); if (findIndex(regions, region) == -1)
} {
label sz = regions.size();
regions.setSize(sz+1);
regions[sz] = region;
}
}
else
{
label localPointI = meshPointMap_.size();
meshPointMap_.insert(pointI, localPointI);
labelList regions(2);
regions[0] = minPointRegion[pointI];
regions[1] = region;
pointRegions.append(regions);
}
label meshFaceMapI = meshFaceMap_.size(); label meshFaceMapI = meshFaceMap_.size();
meshFaceMap_.insert(faceI, meshFaceMapI); meshFaceMap_.insert(faceI, meshFaceMapI);
}
} }
} }
} }
...@@ -194,7 +202,9 @@ void Foam::localPointRegion::countPointRegions ...@@ -194,7 +202,9 @@ void Foam::localPointRegion::countPointRegions
forAll(f, fp) forAll(f, fp)
{ {
if (meshPointMap_.found(f[fp])) // Note: candidatePoint test not really necessary but
// speeds up rejection.
if (candidatePoint[f[fp]] && meshPointMap_.found(f[fp]))
{ {
label meshFaceMapI = meshFaceMap_.size(); label meshFaceMapI = meshFaceMap_.size();
meshFaceMap_.insert(faceI, meshFaceMapI); meshFaceMap_.insert(faceI, meshFaceMapI);
...@@ -421,7 +431,7 @@ void Foam::localPointRegion::calcPointRegions ...@@ -421,7 +431,7 @@ void Foam::localPointRegion::calcPointRegions
// Count regions per point // Count regions per point
countPointRegions(mesh, candidateFace, minRegion); countPointRegions(mesh, candidatePoint, candidateFace, minRegion);
minRegion.clear(); minRegion.clear();
......
...@@ -92,6 +92,7 @@ class localPointRegion ...@@ -92,6 +92,7 @@ class localPointRegion
void countPointRegions void countPointRegions
( (
const polyMesh& mesh, const polyMesh& mesh,
const boolList& candidatePoint,
const Map<label>& candidateFace, const Map<label>& candidateFace,
faceList& minRegion faceList& minRegion
); );
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment