56 pointToFace::typeName,
57 "\n Usage: pointToFace <pointSet> any|all|edge\n\n" 58 " Select faces with\n" 59 " -any point in the pointSet\n" 60 " -all points in the pointSet\n\n" 61 " -two consecutive points (an edge) in the pointSet\n\n" 65 Foam::pointToFace::pointActionNames_;
70 void Foam::pointToFace::combine(
topoSet&
set,
const bool add)
const 80 const label pointi = iter.key();
85 addOrDelete(
set, pFaces[pFacei], add);
89 else if (option_ == ALL)
98 const label pointi = iter.key();
103 const label facei = pFaces[pFacei];
107 if (fndFace == numPoints.
end())
109 numPoints.insert(facei, 1);
123 const label facei = iter.key();
125 if (iter() == mesh_.faces()[facei].size())
127 addOrDelete(
set, facei, add);
131 else if (option_ == EDGE)
133 const faceList& faces = mesh_.faces();
136 const face&
f = faces[facei];
142 addOrDelete(
set, facei, add);
175 setName_(dict.
lookup(
"set")),
176 option_(pointActionNames_.read(dict.
lookup(
"option")))
188 setName_(checkIs(is)),
189 option_(pointActionNames_.read(checkIs(is)))
209 Info<<
" Adding faces according to pointSet " << setName_
216 Info<<
" Removing faces according to pointSet " << setName_
#define forAll(list, i)
Loop across all elements in list.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
A face is a list of labels corresponding to mesh vertices.
static iteratorEnd end()
iteratorEnd set to beyond the end of any HashTable
A list of keyword definitions, which are a keyword followed by any number of values (e...
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
Ostream & endl(Ostream &os)
Add newline and flush stream.
label size() const
Return number of elements in table.
Initialise the NamedEnum HashTable from the static list of names.
AccessType combine(const List< T > &, AccessOp aop=accessOp< T >())
Combines sublists into one big list.
pointToFace(const polyMesh &mesh, const word &setName, const pointAction option)
Construct from components.
Macros for easy insertion into run-time selection tables.
Base class of a source for a topoSet.
pointAction
Enumeration defining the valid options.
iterator find(const Key &)
Find and return an iterator set at the hashedEntry.
A class for handling words, derived from string.
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]
setAction
Enumeration defining the valid actions.
virtual void applyToSet(const topoSetSource::setAction action, topoSet &) const
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
virtual ~pointToFace()
Destructor.
bool found(const Key &) const
Return true if hashedEntry is found in table.
void add(FieldField< Field1, typename typeOfSum< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
addToRunTimeSelectionTable(ensightPart, ensightPartCells, istream)
defineTypeNameAndDebug(combustionModel, 0)
General set of labels of mesh quantity (points, cells, faces).
Class with constructor to add usage string to table.
label nextLabel(const label i) const
Next vertex on face.
Mesh consisting of general polyhedral cells.
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.