本文整理汇总了C++中labelHashSet类的典型用法代码示例。如果您正苦于以下问题:C++ labelHashSet类的具体用法?C++ labelHashSet怎么用?C++ labelHashSet使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了labelHashSet类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: returnReduce
label meshOptimizer::findLowQualityFaces
(
labelHashSet& badFaces,
const boolList& changedFace
) const
{
badFaces.clear();
polyMeshGenChecks::checkFaceDotProduct
(
mesh_,
false,
70.0,
&badFaces
);
polyMeshGenChecks::checkFaceSkewness
(
mesh_,
false,
2.0,
&badFaces
);
const label nBadFaces = returnReduce(badFaces.size(), sumOp<label>());
return nBadFaces;
}
开发者ID:CFMS,项目名称:foam-extend-foam-extend-3.2,代码行数:28,代码来源:meshOptimizer.C
示例2: queryMesh
void Foam::surfaceSets::getSurfaceSets
(
const polyMesh& mesh,
const fileName&,
const triSurface&,
const triSurfaceSearch& querySurf,
const pointField& outsidePts,
const label nCutLayers,
labelHashSet& inside,
labelHashSet& outside,
labelHashSet& cut
)
{
// Construct search engine on mesh
meshSearch queryMesh(mesh);
// Cut faces with surface and classify cells
cellClassification cellType
(
mesh,
queryMesh,
querySurf,
outsidePts
);
if (nCutLayers > 0)
{
// Trim cutCells so they are max nCutLayers away (as seen in point-cell
// walk) from outside cells.
cellType.trimCutCells
(
nCutLayers,
cellClassification::OUTSIDE,
cellClassification::INSIDE
);
}
forAll(cellType, celli)
{
label cType = cellType[celli];
if (cType == cellClassification::CUT)
{
cut.insert(celli);
}
else if (cType == cellClassification::INSIDE)
{
inside.insert(celli);
}
else if (cType == cellClassification::OUTSIDE)
{
outside.insert(celli);
}
}
开发者ID:OpenFOAM,项目名称:OpenFOAM-dev,代码行数:56,代码来源:surfaceSets.C
示例3: forAll
void bigParticleVoidFraction::buildLabelHashSet
(
const scalar radius,
const vector position,
const label cellID,
labelHashSet& hashSett
)const
{
hashSett.insert(cellID);
//Info<<"cell inserted"<<cellID<<endl;
const labelList& nc = particleCloud_.mesh().cellCells()[cellID];
forAll(nc,i){
label neighbor=nc[i];
if(!hashSett.found(neighbor) && mag(position-particleCloud_.mesh().C()[neighbor])<radius){
buildLabelHashSet(radius,position,neighbor,hashSett);
}
}
开发者ID:hbweigao,项目名称:CFDEMcoupling-PUBLIC,代码行数:17,代码来源:bigParticleVoidFraction.C
示例4: main
int main(int argc, char *argv[])
{
#include "addOverwriteOption.H"
argList::noParallel();
argList::validArgs.append("patches");
argList::validArgs.append("edgeFraction");
argList::addOption
(
"useSet",
"name",
"restrict cells to refine based on specified cellSet name"
);
#include "setRootCase.H"
#include "createTime.H"
runTime.functionObjects().off();
#include "createPolyMesh.H"
const word oldInstance = mesh.pointsInstance();
// Find set of patches from the list of regular expressions provided
const wordReList patches((IStringStream(args[1])()));
const labelHashSet patchSet(mesh.boundaryMesh().patchSet(patches));
const scalar weight = args.argRead<scalar>(2);
const bool overwrite = args.optionFound("overwrite");
if (!patchSet.size())
{
FatalErrorInFunction
<< "Cannot find any patches in set " << patches << endl
<< "Valid patches are " << mesh.boundaryMesh().names()
<< exit(FatalError);
}
label nPatchFaces = 0;
label nPatchEdges = 0;
forAllConstIter(labelHashSet, patchSet, iter)
{
nPatchFaces += mesh.boundaryMesh()[iter.key()].size();
nPatchEdges += mesh.boundaryMesh()[iter.key()].nEdges();
}
开发者ID:BarisCumhur,项目名称:OpenFOAM-dev,代码行数:45,代码来源:refineWallLayer.C
示例5: forAllConstIter
// Find cells to refine
forAllConstIter(labelHashSet, patchSet, iter)
{
const polyPatch& pp = mesh.boundaryMesh()[iter.key()];
const labelList& meshPoints = pp.meshPoints();
forAll(meshPoints, pointI)
{
label meshPointI = meshPoints[pointI];
const labelList& pCells = mesh.pointCells()[meshPointI];
forAll(pCells, pCellI)
{
cutCells.insert(pCells[pCellI]);
}
开发者ID:BarisCumhur,项目名称:OpenFOAM-dev,代码行数:16,代码来源:refineWallLayer.C
示例6: forAll
// Step from faceI (on side cellI) to connected face & cell without crossing
// fenceEdges.
void Foam::regionSide::visitConnectedFaces
(
const primitiveMesh& mesh,
const labelHashSet& region,
const labelHashSet& fenceEdges,
const label cellI,
const label faceI,
labelHashSet& visitedFace
)
{
if (!visitedFace.found(faceI))
{
if (debug)
{
Info<< "visitConnectedFaces : cellI:" << cellI << " faceI:"
<< faceI << " isOwner:" << (cellI == mesh.faceOwner()[faceI])
<< endl;
}
// Mark as visited
visitedFace.insert(faceI);
// Mark which side of face was visited.
if (cellI == mesh.faceOwner()[faceI])
{
sideOwner_.insert(faceI);
}
// Visit all neighbouring faces on faceSet. Stay on this 'side' of
// face by doing edge-face-cell walk.
const labelList& fEdges = mesh.faceEdges()[faceI];
forAll(fEdges, fEdgeI)
{
label edgeI = fEdges[fEdgeI];
if (!fenceEdges.found(edgeI))
{
// Step along faces on edge from cell to cell until
// we hit face on faceSet.
// Find face reachable from edge
label otherFaceI = otherFace(mesh, cellI, faceI, edgeI);
if (mesh.isInternalFace(otherFaceI))
{
label otherCellI = cellI;
// Keep on crossing faces/cells until back on face on
// surface
while (!region.found(otherFaceI))
{
visitedFace.insert(otherFaceI);
if (debug)
{
Info<< "visitConnectedFaces : cellI:" << cellI
<< " found insideEdgeFace:" << otherFaceI
<< endl;
}
// Cross otherFaceI into neighbouring cell
otherCellI =
meshTools::otherCell
(
mesh,
otherCellI,
otherFaceI
);
otherFaceI =
otherFace
(
mesh,
otherCellI,
otherFaceI,
edgeI
);
}
visitConnectedFaces
(
mesh,
region,
fenceEdges,
otherCellI,
otherFaceI,
visitedFace
);
}
}
}
}
开发者ID:BarisCumhur,项目名称:OpenFOAM-dev,代码行数:97,代码来源:regionSide.C
示例7: readScalar
bool Foam::motionSmootherAlgo::checkMesh
(
const bool report,
const polyMesh& mesh,
const dictionary& dict,
const labelList& checkFaces,
const List<labelPair>& baffles,
labelHashSet& wrongFaces
)
{
const scalar maxNonOrtho
(
readScalar(dict.lookup("maxNonOrtho", true))
);
const scalar minVol
(
readScalar(dict.lookup("minVol", true))
);
const scalar minTetQuality
(
readScalar(dict.lookup("minTetQuality", true))
);
const scalar maxConcave
(
readScalar(dict.lookup("maxConcave", true))
);
const scalar minArea
(
readScalar(dict.lookup("minArea", true))
);
const scalar maxIntSkew
(
readScalar(dict.lookup("maxInternalSkewness", true))
);
const scalar maxBounSkew
(
readScalar(dict.lookup("maxBoundarySkewness", true))
);
const scalar minWeight
(
readScalar(dict.lookup("minFaceWeight", true))
);
const scalar minVolRatio
(
readScalar(dict.lookup("minVolRatio", true))
);
const scalar minTwist
(
readScalar(dict.lookup("minTwist", true))
);
const scalar minTriangleTwist
(
readScalar(dict.lookup("minTriangleTwist", true))
);
scalar minFaceFlatness = -1.0;
dict.readIfPresent("minFaceFlatness", minFaceFlatness, true);
const scalar minDet
(
readScalar(dict.lookup("minDeterminant", true))
);
label nWrongFaces = 0;
Info<< "Checking faces in error :" << endl;
//Pout.setf(ios_base::left);
if (maxNonOrtho < 180.0-SMALL)
{
polyMeshGeometry::checkFaceDotProduct
(
report,
maxNonOrtho,
mesh,
mesh.cellCentres(),
mesh.faceAreas(),
checkFaces,
baffles,
&wrongFaces
);
label nNewWrongFaces = returnReduce(wrongFaces.size(), sumOp<label>());
Info<< " non-orthogonality > "
<< setw(3) << maxNonOrtho
<< " degrees : "
<< nNewWrongFaces-nWrongFaces << endl;
nWrongFaces = nNewWrongFaces;
}
if (minVol > -GREAT)
{
polyMeshGeometry::checkFacePyramids
(
report,
minVol,
mesh,
mesh.cellCentres(),
mesh.points(),
checkFaces,
baffles,
//.........这里部分代码省略.........
开发者ID:BarisCumhur,项目名称:OpenFOAM-dev,代码行数:101,代码来源:motionSmootherAlgoCheck.C
示例8: facesToRemoveMap
{
label slaveSideCell = own[ftc[facei]];
if (mesh.isInternalFace(ftc[facei]) && slaveSideCell == mc[facei])
{
// Owner cell of the face is being removed.
// Grab the neighbour instead
slaveSideCell = nei[ftc[facei]];
}
ref.setAction(polyRemoveCell(mc[facei], slaveSideCell));
}
// Remove all the faces from the master layer cells which are not in
// the master face layer
labelHashSet facesToRemoveMap(mc.size()*primitiveMesh::facesPerCell_);
const cellList& cells = mesh.cells();
forAll(mc, celli)
{
const cell& curCell = cells[mc[celli]];
forAll(curCell, facei)
{
// Check if the face is in the master zone. If not, remove it
if
(
mesh.faceZones().whichZone(curCell[facei])
!= faceZoneID_.index()
)
开发者ID:EricAlex,项目名称:OpenFOAM-dev,代码行数:31,代码来源:removeCellLayer.C
示例9: maxNonOrtho
// Same check as snapMesh
void checkSnapMesh
(
const Time& runTime,
const polyMesh& mesh,
labelHashSet& wrongFaces
)
{
IOdictionary snapDict
(
IOobject
(
"snapMeshDict",
runTime.system(),
mesh,
IOobject::MUST_READ,
IOobject::NO_WRITE
)
);
// Max nonorthogonality allowed
scalar maxNonOrtho(readScalar(snapDict.lookup("maxNonOrtho")));
primitiveMesh::nonOrthThreshold_ = maxNonOrtho;
// Max concaveness allowed.
scalar maxConcave(readScalar(snapDict.lookup("maxConcave")));
primitiveMesh::faceAngleThreshold_ = maxConcave;
// Min volume allowed (factor of minimum cellVolume)
scalar relMinVol(readScalar(snapDict.lookup("minVol")));
const scalar minCellVol = min(mesh.cellVolumes());
const scalar minPyrVol = relMinVol*minCellVol;
// Min area
scalar minArea(readScalar(snapDict.lookup("minArea")));
if (maxNonOrtho < 180.0 - SMALL)
{
Pout<< "Checking non orthogonality" << endl;
label nOldSize = wrongFaces.size();
mesh.checkFaceOrthogonality(false, &wrongFaces);
Pout<< "Detected " << wrongFaces.size() - nOldSize
<< " faces with non-orthogonality > " << maxNonOrtho << " degrees"
<< endl;
}
if (minPyrVol > -GREAT)
{
Pout<< "Checking face pyramids" << endl;
label nOldSize = wrongFaces.size();
mesh.checkFacePyramids(false, minPyrVol, &wrongFaces);
Pout<< "Detected additional " << wrongFaces.size() - nOldSize
<< " faces with illegal face pyramids" << endl;
}
if (maxConcave < 180.0 - SMALL)
{
Pout<< "Checking face angles" << endl;
label nOldSize = wrongFaces.size();
mesh.checkFaceAngles(false, &wrongFaces);
Pout<< "Detected additional " << wrongFaces.size() - nOldSize
<< " faces with concavity > " << maxConcave << " degrees"
<< endl;
}
if (minArea > -SMALL)
{
Pout<< "Checking face areas" << endl;
label nOldSize = wrongFaces.size();
const scalarField magFaceAreas = mag(mesh.faceAreas());
forAll(magFaceAreas, faceI)
{
if (magFaceAreas[faceI] < minArea)
{
wrongFaces.insert(faceI);
}
}
Pout<< "Detected additional " << wrongFaces.size() - nOldSize
<< " faces with area < " << minArea << " m^2" << endl;
}
开发者ID:CFMS,项目名称:foam-extend-foam-extend-3.2,代码行数:89,代码来源:combinePatchFaces.C
示例10: queryMesh
void Foam::surfaceSets::getSurfaceSets
(
const polyMesh& mesh,
const fileName&,
const triSurface&,
const triSurfaceSearch& querySurf,
const pointField& outsidePts,
const label nCutLayers,
labelHashSet& inside,
labelHashSet& outside,
labelHashSet& cut
)
{
// Construct search engine on mesh
meshSearch queryMesh(mesh, true);
// Check all 'outside' points
forAll(outsidePts, outsideI)
{
const point& outsidePoint = outsidePts[outsideI];
// Find cell point is in. Linear search.
if (queryMesh.findCell(outsidePoint, -1, false) == -1)
{
FatalErrorIn
(
"surfaceSets::getSurfaceSets"
"(const polyMesh&, const fileName&, const triSurface&"
", const triSurfaceSearch&, const pointField&"
", labelHashSet&, labelHashSet&, labelHashSet&)"
) << "outsidePoint " << outsidePoint
<< " is not inside any cell"
<< exit(FatalError);
}
}
// Cut faces with surface and classify cells
cellClassification cellType
(
mesh,
queryMesh,
querySurf,
outsidePts
);
if (nCutLayers > 0)
{
// Trim cutCells so they are max nCutLayers away (as seen in point-cell
// walk) from outside cells.
cellType.trimCutCells
(
nCutLayers,
cellClassification::OUTSIDE,
cellClassification::INSIDE
);
}
forAll(cellType, cellI)
{
label cType = cellType[cellI];
if (cType == cellClassification::CUT)
{
cut.insert(cellI);
}
else if (cType == cellClassification::INSIDE)
{
inside.insert(cellI);
}
else if (cType == cellClassification::OUTSIDE)
{
outside.insert(cellI);
}
}
开发者ID:Brzous,项目名称:WindFOAM,代码行数:77,代码来源:surfaceSets.C
示例11: forAll
forAll(ptc, pointi)
{
const labelList& curFaces = pf[ptc[pointi]];
forAll(curFaces, facei)
{
if (!facesToRemoveMap.found(curFaces[facei]))
{
facesToModify.insert(curFaces[facei]);
}
}
}
开发者ID:EricAlex,项目名称:OpenFOAM-dev,代码行数:12,代码来源:removeCellLayer.C
示例12: forAll
forAll(bMesh, patchI)
{
const polyPatch& patch = bMesh[patchI];
if (patchNamesHash.found(patch.name()))
{
patchIDs.insert(patchI);
}
}
开发者ID:CFMS,项目名称:foam-extend-foam-extend-3.2,代码行数:9,代码来源:cellDistFuncs.C
注:本文中的labelHashSet类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论