Go to the documentation of this file.
31 #include "primitiveMesh.H"
61 bool allBoundary(
true);
85 const face&
f = faces[
c[fI]];
103 if( nAppearances[eI] != 2 )
117 Info <<
"Removing " << nRemoved
118 <<
" cells which cannot be morphed" <<
endl;
132 Info <<
"Morphing boundary faces" <<
endl;
155 Info <<
"Boundary faces in cell " << cellI
156 <<
" are " << bFaces <<
endl;
158 Info <<
"Face " << bFaces[bfI] <<
" is "
159 << faces[bFaces[bfI]] <<
endl;
164 face mf = faces[bFaces[0]];
165 mergedFaces[0] =
true;
171 for(
label i=1;i<bFaces.size();++i)
173 if( mergedFaces[i] )
continue;
175 const face& bf = faces[bFaces[i]];
182 if( bEdges[eI] == mEdges[eJ] )
188 if( bf[pI] == mf[pJ] )
193 ((nSharedEdges + 1) == nSharedPoints)
197 mergedFaces[i] =
true;
205 }
while( !finished );
212 Info <<
"Adding merged face " << mf <<
endl;
215 for(
label i=1;i<bFaces.size();++i)
216 if( !mergedFaces[i] )
223 Info <<
"Adding untouched boundary face "
224 << faces[bFaces[i]] <<
endl;
242 if( zipCells.
size() )
244 Info <<
"Cells " << zipCells <<
" are not zipped!!" <<
endl;
250 Info <<
"Finished morphing boundary faces" <<
endl;
List< direction > cellFlags_
true for cells which are at the boundary
const polyMeshGenAddressing & addressingData() const
addressing which may be needed
void append(const T &e)
Append an element at the end of the list.
polyMeshGen & mesh_
mesh modifier
#define forAll(list, i)
Loop across all elements in list.
Given list of cells to remove insert all the topology changes.
Template functions to aid in the implementation of demand driven data.
static bool & parRun()
Is this a parallel run?
Ostream & endl(Ostream &os)
Add newline and flush stream.
label faceIsInPatch(const label faceLabel) const
return patch label for the given face label
const faceListPMG & faces() const
access to faces
void setSize(const label)
Reset size of List.
void reduce(const List< UPstream::commsStruct > &comms, T &Value, const BinaryOp &bop, const int tag, const label comm)
bool removeCellsWithAllVerticesAtTheBoundary()
remove cells with all vertices at the boundary
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
VRWGraph newBoundaryFaces_
new boundary faces and owner cells
const cellListPMG & cells() const
access to cells
bool morphBoundaryFaces()
morph boundary faces
void clearAddressingData() const
clear addressing data
void setSize(const label)
Reset the number of rows.
face mergeTwoFaces(const faceType1 &f1, const faceType2 &f2)
returns a merged face
label size() const
Return number of elements in table.
edgeList edges() const
Return edges in face point ordering,.
labelLongList newBoundaryPatches_
errorManipArg< error, int > exit(error &err, const int errNo=1)
label containsAtPosition(const T &e) const
void appendList(const ListType &l)
Append a list as a row at the end of the graph.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
labelLongList newBoundaryOwners_
boolList boundaryVertex_
true for vertices which are at the boundary
const dimensionedScalar c
Speed of light in a vacuum.
A face is a list of labels corresponding to mesh vertices.
void size(const label)
Override size to be inconsistent with allocated storage.
A cell is defined as a list of faces with extra functionality.
void removeCells(const boolList &removeCell, const bool removeProcFaces=true)
remove cells
void replaceMeshBoundary()
replace the boundary of the mesh with the newly created one
void append(const T &e)
Append an element at the end of the list.
dimensionedScalar pos(const dimensionedScalar &ds)