Go to the documentation of this file.
48 wordConstructorTable::iterator cstrIter =
49 wordConstructorTablePtr_->find(
type);
51 if (cstrIter == wordConstructorTablePtr_->end())
54 <<
"Unknown set type "
56 <<
"Valid cellLooper types : " <<
endl
57 << wordConstructorTablePtr_->sortedToc()
95 vertFaces[vertFaceI++] = faceI;
115 label edgeI = fEdges[fEdgeI];
119 if ((
e.start() == vertI) || (
e.end() == vertI))
126 <<
"Can not find edge on face " << faceI
127 <<
" using vertex " << vertI
151 label edgeI = pEdges[pEdgeI];
159 vertEdges[vertEdgeI++] = edgeI;
180 scalar maxCos = -GREAT;
184 label edgeI = cEdges[cEdgeI];
188 if (cosAngle > maxCos)
A class for handling words, derived from string.
labelList getVertEdgesNonFace(const label cellI, const label faceI, const label vertI) const
Get edges (on cell) connected to vertI which are not on faceI.
#define forAll(list, i)
Loop across all elements in list.
label findIndex(const ListType &, typename ListType::const_reference, const label start=0)
Find first occurence of given element and return index,.
label getFirstVertEdge(const label faceI, const label vertI) const
Get first edge connected to vertI and on faceI.
virtual ~cellLooper()
Destructor.
defineRunTimeSelectionTable(reactionRateFlameArea, dictionary)
label getMisAlignedEdge(const vector &refDir, const label cellI) const
Return edge from cellEdges that is most perpendicular.
cellLooper(const cellLooper &)
Disallow default bitwise copy construct.
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
Combines edge or vertex in single label. Used to specify cuts across cell circumference.
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensioned< scalar > mag(const dimensioned< Type > &)
Mesh consisting of general polyhedral cells.
Info<< "Finished reading KIVA file"<< endl;cellShapeList cellShapes(nPoints);labelList cellZoning(nPoints, -1);const cellModel &hex=*(cellModeller::lookup("hex"));labelList hexLabels(8);label activeCells=0;labelList pointMap(nPoints);forAll(pointMap, i){ pointMap[i]=i;}for(label i=0;i< nPoints;i++){ if(f[i] > 0.0) { hexLabels[0]=i;hexLabels[1]=i1tab[i];hexLabels[2]=i3tab[i1tab[i]];hexLabels[3]=i3tab[i];hexLabels[4]=i8tab[i];hexLabels[5]=i1tab[i8tab[i]];hexLabels[6]=i3tab[i1tab[i8tab[i]]];hexLabels[7]=i3tab[i8tab[i]];cellShapes[activeCells]=cellShape(hex, hexLabels);edgeList edges=cellShapes[activeCells].edges();forAll(edges, ei) { if(edges[ei].mag(points)< SMALL) { label start=pointMap[edges[ei].start()];while(start !=pointMap[start]) { start=pointMap[start];} label end=pointMap[edges[ei].end()];while(end !=pointMap[end]) { end=pointMap[end];} label minLabel=min(start, end);pointMap[start]=pointMap[end]=minLabel;} } cellZoning[activeCells]=idreg[i];activeCells++;}}cellShapes.setSize(activeCells);cellZoning.setSize(activeCells);forAll(cellShapes, celli){ cellShape &cs=cellShapes[celli];forAll(cs, i) { cs[i]=pointMap[cs[i]];} cs.collapse();}label bcIDs[11]={-1, 0, 2, 4, -1, 5, -1, 6, 7, 8, 9};const label nBCs=12;const word *kivaPatchTypes[nBCs]={ &wallPolyPatch::typeName, &wallPolyPatch::typeName, &wallPolyPatch::typeName, &wallPolyPatch::typeName, &symmetryPolyPatch::typeName, &wedgePolyPatch::typeName, &polyPatch::typeName, &polyPatch::typeName, &polyPatch::typeName, &polyPatch::typeName, &symmetryPolyPatch::typeName, &oldCyclicPolyPatch::typeName};enum patchTypeNames{ PISTON, VALVE, LINER, CYLINDERHEAD, AXIS, WEDGE, INFLOW, OUTFLOW, PRESIN, PRESOUT, SYMMETRYPLANE, CYCLIC};const char *kivaPatchNames[nBCs]={ "piston", "valve", "liner", "cylinderHead", "axis", "wedge", "inflow", "outflow", "presin", "presout", "symmetryPlane", "cyclic"};List< SLList< face > > pFaces[nBCs]
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
labelList getVertFacesNonEdge(const label cellI, const label edgeI, const label vertI) const
Get faces (on cell) connected to vertI which are not using edgeI.
errorManip< error > abort(error &err)
errorManipArg< error, int > exit(error &err, const int errNo=1)
void setSize(const label)
Reset size of List.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
const dimensionedScalar e
Elementary charge.
static autoPtr< cellLooper > New(const word &type, const polyMesh &mesh)
Return a reference to the selected cellLooper.
Various functions to operate on Lists.
void size(const label)
Override size to be inconsistent with allocated storage.
fileName::Type type(const fileName &)
Return the file type: DIRECTORY or FILE.
defineTypeNameAndDebug(combustionModel, 0)