74 const Foam::label Foam::sammMesh::shapeFaceLookup[19][9] =
76 {-1, -1, -1, -1, -1, -1, -1, -1, -1},
77 {-1, -1, -1, -1, -1, -1, -1, -1, -1},
78 {-1, -1, -1, -1, -1, -1, -1, -1, -1},
79 {-1, 4, 5, 2, 3, 0, 1, -1, -1},
80 {-1, 4, 5, 2, 3, 0, 1, -1, -1},
81 {-1, 0, 1, 4, -1, 2, 3, -1, -1},
82 {-1, 0, -1, 4, 2, 1, 3, -1, -1},
83 {-1, 3, -1, 2, -1, 1, 0, -1, -1},
84 {-1, -1, -1, -1, -1, -1, -1, -1, -1},
85 {-1, 0, -1, 1, -1, 2, 3, -1, -1},
86 {-1, -1, -1, -1, -1, -1, -1, -1, -1},
87 {-1, 5, 4, 0, 1, 2, 3, 6, -1},
89 {-1, 1, 0, 2, 4, 3, 5, 6, -1},
90 {-1, 5, 4, 0, 1, 2, 3, 6, -1},
91 {-1, 5, 4, 1, 0, 3, 2, 6, -1},
92 {-1, 4, 3, 2, 5, 1, 0, -1, -1},
93 {-1, -1, -1, -1, -1, -1, -1, -1, -1},
94 {-1, -1, -1, -1, -1, -1, -1, -1, -1},
95 {-1, 0, 1, 2, 5, 3, 6, 4, 7}
105 reinterpret_cast<cellModel*>(0)
111 reinterpret_cast<label*>(0)
117 void Foam::sammMesh::createPolyMeshData()
119 Info<<
"Creating a polyMesh" <<
endl;
123 Info<<
"\nNumber of internal faces: " 124 << nInternalFaces_ <<
endl;
126 createPolyBoundary();
128 label nProblemCells = 0;
133 const labelList& curFaceLabels = cellPolys_[celli];
135 forAll(curFaceLabels, facei)
137 if (curFaceLabels[facei] == -1)
139 Info<<
"cell " << celli
140 <<
" has got an unmatched face. " 141 <<
"Index: " << cellShapes_[celli].model().index() << endl
144 <<
"cellPolys: " << cellPolys_[celli] << endl
155 if (nProblemCells > 0)
157 Info<<
"Number of problem cells: " << nProblemCells <<
endl;
166 const fileName& prefix,
168 const scalar scaleFactor
177 defaultFacesName_(
"defaultFaces"),
178 defaultFacesType_(emptyPolyPatch::typeName),
180 patchPhysicalTypes_(0),
181 starPointLabelLookup_(0),
182 starCellLabelLookup_(0),
187 polyBoundaryPatchStartIndices_(0),
188 pointCellsPtr_(nullptr),
192 fillSammCellShapeTable();
193 fillSammAddressingTable();
195 readPoints(scaleFactor);
206 createBoundaryFaces();
#define forAll(list, i)
Loop across all elements in list.
FvWallInfoData< WallInfo, label > label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
static const cellModel * lookup(const word &)
Look up a model by name and return a pointer to the model or nullptr.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Ostream & endl(Ostream &os)
Add newline and flush stream.
Holds information (coordinate and normal) regarding nearest wall point.
List< label > labelList
A List of labels.
sammMesh(const fileName &prefix, const Time &rt, const scalar scaleFactor)
Construct from case name.
Template functions to aid in the implementation of demand driven data.
Maps a geometry to a set of cell primitives, which enables geometric cell data to be calculated witho...
void deleteDemandDrivenData(DataPtr &dataPtr)