Go to the documentation of this file.
66 const label start = boundaries[0].patchStart();
69 boundaries[boundaries.
size()-1].patchStart() +
70 boundaries[boundaries.
size()-1].patchSize()
81 for(
label faceI=start;faceI<end;++faceI)
83 ++nBndFacesInCell[owner[faceI]];
85 if( nBndFacesInCell[owner[faceI]] > 1 )
104 Warning <<
"Found invalid topology!"
105 <<
"\nStarting creating initial wrapper sheet" <<
endl;
108 Info <<
"Creating initial wrapper sheet" <<
endl;
112 const label start = boundaries[0].patchStart();
115 boundaries[boundaries.
size()-1].patchStart() +
116 boundaries[boundaries.
size()-1].patchSize()
124 # pragma omp parallel for schedule(guided, 100)
126 for(
label faceI=start;faceI<end;++faceI)
127 extrudeFaces[faceI-start] =
labelPair(faceI, owner[faceI]);
131 Info <<
"Finished creating initial wrapper sheet" <<
endl;
136 Info <<
"Starting creating sheets at feature edges" <<
endl;
142 Info <<
"Skipping creating sheets at feature edges" <<
endl;
150 const label start = boundaries[0].patchStart();
153 boundaries[boundaries.
size()-1].patchStart() +
154 boundaries[boundaries.
size()-1].patchSize()
160 forAll(boundaries, patchI)
162 const label patchStart = boundaries[patchI].patchStart();
163 const label patchEnd = patchStart + boundaries[patchI].patchSize();
165 for(
label faceI=patchStart;faceI<patchEnd;++faceI)
166 facePatch[faceI-start] = patchI;
171 patchCell[owner[start+bfI]] = facePatch[bfI];
175 forAll(patchSheetId, patchI)
176 patchSheetId[patchI] =
181 if( patchCell[cellI] < 0 )
191 const label nThreads = 3 * omp_get_num_procs();
192 # pragma omp parallel num_threads(nThreads)
203 const label faceI = start + bfI;
204 const label cellI = owner[faceI];
207 const label patchI = facePatch[bfI];
211 if( neighbour[
c[fI]] < 0 )
216 nei = neighbour[
c[fI]];
218 if( patchCell[nei] != patchI )
223 label frontStart(-1);
225 # pragma omp critical
228 frontStart = front.
size();
238 front[frontStart+lfI] = localFront[lfI];
257 Info <<
"Finished creating sheets at feature edges" <<
endl;
266 const bool createWrapperSheet
271 createInitialSheet();
273 createSheetsAtFeatureEdges();
const labelList & neighbour() const
const labelList & owner() const
owner and neighbour cells for faces
polyMeshGen & mesh_
reference to mesh
Inserts sheets at the boundary of the mesh to capture all feature edges.
void append(const T &e)
Append an element at the end of the list.
createFundamentalSheetsJFS()
Disallow default construct.
T returnReduce(const T &Value, const BinaryOp &bop, const int tag=Pstream::msgType(), const label comm=UPstream::worldComm)
#define forAll(list, i)
Loop across all elements in list.
void createInitialSheet()
create inital sheet from all boundary faces of the surface mesh
addToRunTimeSelectionTable(ensightPart, ensightPartCells, istream)
Template functions to aid in the implementation of demand driven data.
A List obtained as a section of another List.
label addFaceSubset(const word &)
void createSheetsAtFeatureEdges()
create fundamental sheets for all feature edges
Ostream & endl(Ostream &os)
Add newline and flush stream.
label size() const
Size of the active part of the list.
const faceListPMG & faces() const
access to faces
bool isTopologyOk() const
check if all cells have only one face at the boundary
void setSize(const label)
Reset size of List.
void addCellToSubset(const label, const label)
void reduce(const List< UPstream::commsStruct > &comms, T &Value, const BinaryOp &bop, const int tag, const label comm)
word labelToText(const label l)
convert the integer value into text
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const cellListPMG & cells() const
access to cells
label addCellSubset(const word &)
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
Macros for easy insertion into run-time selection tables.
const PtrList< boundaryPatch > & boundaries() const
ordinary boundaries
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
label size() const
Return the number of elements in the PtrList.
const dimensionedScalar c
Speed of light in a vacuum.
void addFaceToSubset(const label, const label)
const bool createWrapperSheet_
shall the procedure create the intial wrapper sheet
label size() const
Return the number of elements in the UList.
defineTypeNameAndDebug(combustionModel, 0)
A cell is defined as a list of faces with extra functionality.
Pair< label > labelPair
Label pair.
A base class for various method to generate fundamental sheets necessary to capture feature edges.
label size() const
return the number of used elements
~createFundamentalSheetsJFS()