ENH: cellShape::reset() - simplifies modification of existing shapes

This commit is contained in:
Mark Olesen
2021-05-28 20:18:04 +02:00
parent 5ec49a3898
commit f2d634c49f
23 changed files with 85 additions and 71 deletions

View File

@ -401,7 +401,7 @@ int main(int argc, char *argv[])
labelsTet[2] = pointMap[labels[2]];
labelsTet[3] = pointMap[labels[4]];
cellShapes[nCells++] = cellShape(tet, labelsTet);
cellShapes[nCells++].reset(tet, labelsTet);
}
else if // Square-based pyramid
@ -417,7 +417,7 @@ int main(int argc, char *argv[])
labelsPyramid[3] = pointMap[labels[3]];
labelsPyramid[4] = pointMap[labels[4]];
cellShapes[nCells++] = cellShape(pyr, labelsPyramid);
cellShapes[nCells++].reset(pyr, labelsPyramid);
}
else if // Triangular prism
@ -433,7 +433,7 @@ int main(int argc, char *argv[])
labelsPrism[4] = pointMap[labels[5]];
labelsPrism[5] = pointMap[labels[6]];
cellShapes[nCells++] = cellShape(prism, labelsPrism);
cellShapes[nCells++].reset(prism, labelsPrism);
}
else // Hex
@ -447,7 +447,7 @@ int main(int argc, char *argv[])
labelsHex[6] = pointMap[labels[6]];
labelsHex[7] = pointMap[labels[7]];
cellShapes[nCells++] = cellShape(hex, labelsHex);
cellShapes[nCells++].reset(hex, labelsHex);
}
}

View File

@ -574,7 +574,7 @@ int main(int argc, char *argv[])
];
}
cellShapes[nCreatedCells] = cellShape(hex, cellPoints);
cellShapes[nCreatedCells].reset(hex, cellPoints);
nCreatedCells++;
}

View File

@ -238,15 +238,14 @@ cellShape extrudedQuadCellShape
return cellShape(hex, cellShapeLabels);
}
else
{
FatalErrorInFunction
<< "Problem with edge matching. Edges: " << localFaces
<< abort(FatalError);
}
FatalErrorInFunction
<< "Problem with edge matching. Edges: " << localFaces
<< abort(FatalError);
// Return added to keep compiler happy
return cellShape(hex, labelList(0));
return cellShape(hex, labelList());
}

View File

@ -178,15 +178,14 @@ cellShape extrudedTriangleCellShape
return cellShape(prism, cellShapeLabels);
}
else
{
FatalErrorInFunction
<< "Problem with edge matching. Edges: " << localFaces
<< abort(FatalError);
}
FatalErrorInFunction
<< "Problem with edge matching. Edges: " << localFaces
<< abort(FatalError);
// Return added to keep compiler happy
return cellShape(prism, labelList(0));
return cellShape(prism, labelList());
}

View File

@ -731,7 +731,7 @@ int main(int argc, char *argv[])
labelsTet[2] = pointLookup[curCellLabels[3] ];
labelsTet[3] = pointLookup[curCellLabels[1] ];
cells[celli] = cellShape(tet, labelsTet);
cells[celli].reset(tet, labelsTet);
}
// Square-based pyramid
@ -743,7 +743,7 @@ int main(int argc, char *argv[])
labelsPyramid[3] = pointLookup[curCellLabels[2] ];
labelsPyramid[4] = pointLookup[curCellLabels[4] ];
cells[celli] = cellShape(pyr, labelsPyramid);
cells[celli].reset(pyr, labelsPyramid);
}
// Triangular prism
@ -756,7 +756,7 @@ int main(int argc, char *argv[])
labelsPrism[4] = pointLookup[curCellLabels[4] ];
labelsPrism[5] = pointLookup[curCellLabels[5] ];
cells[celli] = cellShape(prism, labelsPrism);
cells[celli].reset(prism, labelsPrism);
}
// Hex
@ -771,7 +771,7 @@ int main(int argc, char *argv[])
labelsHex[6] = pointLookup[curCellLabels[7] ];
labelsHex[7] = pointLookup[curCellLabels[6] ];
cells[celli] = cellShape(hex, labelsHex);
cells[celli].reset(hex, labelsHex);
}
}

View File

@ -664,7 +664,7 @@ void readCellsLegacy
renumber(mshToFoam, tetPoints);
cells[celli++] = cellShape(tet, tetPoints);
cells[celli++].reset(tet, tetPoints);
nTet++;
}
@ -685,7 +685,7 @@ void readCellsLegacy
renumber(mshToFoam, pyrPoints);
cells[celli++] = cellShape(pyr, pyrPoints);
cells[celli++].reset(pyr, pyrPoints);
nPyr++;
}
@ -706,7 +706,7 @@ void readCellsLegacy
renumber(mshToFoam, prismPoints);
cells[celli] = cellShape(prism, prismPoints);
cells[celli].reset(prism, prismPoints);
const cellShape& cell = cells[celli];
@ -721,7 +721,7 @@ void readCellsLegacy
prismPoints[4] = cell[4];
prismPoints[5] = cell[5];
cells[celli] = cellShape(prism, prismPoints);
cells[celli].reset(prism, prismPoints);
}
celli++;
@ -747,7 +747,7 @@ void readCellsLegacy
renumber(mshToFoam, hexPoints);
cells[celli] = cellShape(hex, hexPoints);
cells[celli].reset(hex, hexPoints);
const cellShape& cell = cells[celli];
@ -764,7 +764,7 @@ void readCellsLegacy
hexPoints[6] = cell[2];
hexPoints[7] = cell[3];
cells[celli] = cellShape(hex, hexPoints);
cells[celli].reset(hex, hexPoints);
}
celli++;
@ -1019,7 +1019,7 @@ void readCells
renumber(mshToFoam, tetPoints);
cells[celli++] = cellShape(tet, tetPoints);
cells[celli++].reset(tet, tetPoints);
}
}
else if (elmType == MSHPYR)
@ -1046,7 +1046,7 @@ void readCells
renumber(mshToFoam, pyrPoints);
cells[celli++] = cellShape(pyr, pyrPoints);
cells[celli++].reset(pyr, pyrPoints);
}
}
else if (elmType == MSHPRISM)
@ -1073,7 +1073,7 @@ void readCells
renumber(mshToFoam, prismPoints);
cells[celli] = cellShape(prism, prismPoints);
cells[celli].reset(prism, prismPoints);
const cellShape& cell = cells[celli];
@ -1088,7 +1088,7 @@ void readCells
prismPoints[4] = cell[4];
prismPoints[5] = cell[5];
cells[celli] = cellShape(prism, prismPoints);
cells[celli].reset(prism, prismPoints);
}
celli++;
@ -1120,7 +1120,7 @@ void readCells
renumber(mshToFoam, hexPoints);
cells[celli] = cellShape(hex, hexPoints);
cells[celli].reset(hex, hexPoints);
const cellShape& cell = cells[celli];
@ -1137,7 +1137,7 @@ void readCells
hexPoints[6] = cell[2];
hexPoints[7] = cell[3];
cells[celli] = cellShape(hex, hexPoints);
cells[celli].reset(hex, hexPoints);
}
celli++;

View File

@ -128,7 +128,7 @@ for (label i=0; i<nPoints; i++)
hexLabels[6] = i3tab[i1tab[i8tab[i]]];
hexLabels[7] = i3tab[i8tab[i]];
cellShapes[activeCells] = cellShape(hex, hexLabels);
cellShapes[activeCells].reset(hex, hexLabels);
edgeList edges = cellShapes[activeCells].edges();

View File

@ -108,7 +108,7 @@ int main(int argc, char *argv[])
{
mshStream >> hexPoints[cp];
}
cells[celli] = cellShape(hex, hexPoints);
cells[celli].reset(hex, hexPoints);
}
}
else
@ -119,7 +119,7 @@ int main(int argc, char *argv[])
{
mshStream >> tetPoints[cp];
}
cells[celli] = cellShape(tet, tetPoints);
cells[celli].reset(tet, tetPoints);
}
}

View File

@ -154,7 +154,7 @@ int main(int argc, char *argv[])
tetPoints[2] = readLabel(str) - 1;
tetPoints[3] = readLabel(str) - 1;
cells[celli] = cellShape(tet, tetPoints);
cells[celli].reset(tet, tetPoints);
}

View File

@ -231,7 +231,7 @@ int main(int argc, char *argv[])
}
// Do automatic collapse from hex.
cellShapes[nCreatedCells] = cellShape(hex, cellPoints, true);
cellShapes[nCreatedCells].reset(hex, cellPoints, true);
nCreatedCells++;
}

View File

@ -309,7 +309,7 @@ int main(int argc, char *argv[])
tetPoints[i] = nodeToPoint[nodeI];
}
cells[celli++] = cellShape(tet, tetPoints);
cells[celli++].reset(tet, tetPoints);
// Skip attributes
for (label i = 0; i < nElemAttr; i++)

View File

@ -273,7 +273,7 @@ autoPtr<polyMesh> generateHexMesh
hexPoints[5] = vtxLabel(nCells, i+1, j, k+1);
hexPoints[6] = vtxLabel(nCells, i+1, j+1, k+1);
hexPoints[7] = vtxLabel(nCells, i, j+1, k+1);
cellShapes[celli++] = cellShape(hex, hexPoints);
cellShapes[celli++].reset(hex, hexPoints);
}
}
}

View File

@ -34,8 +34,7 @@ pointField points;
cellShapes.setSize(bCells.size());
forAll(cellShapes, celli)
{
cellShapes[celli] =
cellShape(hex, labelList(bCells[celli]), false);
cellShapes[celli].reset(hex, labelList(bCells[celli]), false);
}
Info<< "Creating boundary faces" << endl;