51 const word regionName,
72 extrudedPatch_(patch.
patch()),
75 extrudeMesh(regionPatches);
104 extrudedPatch_(patch.
patch()),
121 dicts[bottomPatchID] = dict_.subDict(
"bottomCoeffs");
122 dicts[sidePatchID] = dict_.subDict(
"sideCoeffs");
123 dicts[topPatchID] = dict_.subDict(
"topCoeffs");
134 patchDict.
set(
"nFaces", 0);
135 patchDict.
set(
"startFace", 0);
147 extrudeMesh(regionPatches);
163 nonManifoldEdge[edgeI] =
true;
175 extrudedPatch_, extrudedPatch_.
points()
193 forAll(pointLocalRegions, facei)
196 const face& pRegions = pointLocalRegions[facei];
199 localRegionPoints[pRegions[fp]] = f[fp];
208 forAll(pointLocalRegions, facei)
210 const face& pRegions = pointLocalRegions[facei];
213 label localRegionI = pRegions[fp];
214 localSum[localRegionI] +=
221 forAll(localSum, localRegionI)
223 label globalRegionI = localToGlobalRegion[localRegionI];
224 globalSum.insert(globalRegionI, localSum[localRegionI]);
231 forAll(localToGlobalRegion, localRegionI)
233 label globalRegionI = localToGlobalRegion[localRegionI];
234 localRegionNormals[localRegionI] = globalSum[globalRegionI];
236 localRegionNormals /=
mag(localRegionNormals);
242 forAll(firstDisp, regionI)
249 localRegionPoints[regionI]
252 const vector&
n = localRegionNormals[regionI];
253 firstDisp[regionI] = model_()(regionPt,
n, 1) - regionPt;
314 forAll(edgePatches, edgeI)
318 if (eFaces.
size() != 2 || nonManifoldEdge[edgeI])
320 edgePatches[edgeI].
setSize(eFaces.
size(), sidePatchID);
329 model_().expansionRatio(),
331 labelList(extrudedPatch_.size(), topPatchID),
332 labelList(extrudedPatch_.size(), bottomPatchID),
const polyBoundaryMesh & boundaryMesh() const
Return boundary mesh.
void clearOut()
Clear all geometry and addressing.
static void calcPointRegions(const globalMeshData &globalData, const primitiveFacePatch &patch, const PackedBoolList &nonManifoldEdge, const bool syncNonCollocated, faceList &pointGlobalRegions, faceList &pointLocalRegions, labelList &localToGlobalRegion)
Helper: calculate point regions. The point region is the.
#define forAll(list, i)
Loop across all elements in list.
void removeFvBoundary()
Remove boundary patches. Warning: fvPatchFields hold ref to.
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 fileName & facesInstance() const
Return the current instance directory for faces.
A face is a list of labels corresponding to mesh vertices.
extrudePatchMesh(const fvMesh &, const fvPatch &, const dictionary &, const word)
Construct from mesh, patch and dictionary.
A list of keyword definitions, which are a keyword followed by any number of values (e...
void addFvPatches(const List< polyPatch *> &, const bool validBoundary=true)
Add boundary patches. Constructor helper.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
void size(const label)
Override size to be inconsistent with allocated storage.
wordList patchTypes(nPatches)
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
label nInternalEdges() const
Number of internal edges.
const Time & time() const
Return the top-level database.
virtual bool write(const bool write=true) const
Write mesh using IO settings from time.
label size() const
Return number of elements in table.
const labelList & meshPoints() const
Return labelList of mesh points in patch. They are constructed.
virtual const objectRegistry & thisDb() const
Return the object registry - resolve conflict polyMesh/lduMesh.
static void mapCombineScatter(const List< commsStruct > &comms, Container &Values, const int tag, const label comm)
Scatter data. Reverse of combineGather.
A list of faces which address into the list of points.
vectorField pointField
pointField is a vectorField.
static autoPtr< extrudeModel > New(const dictionary &)
Select null constructed.
A class for handling words, derived from string.
const polyPatch & patch() const
Return the polyPatch.
wordList patchNames(nPatches)
Creates mesh by extruding a patch.
const Field< PointType > & points() const
Return reference to global points.
const labelListList & edgeFaces() const
Return edge-face addressing.
const globalMeshData & globalData() const
Return parallel info.
List< label > labelList
A List of labels.
static void mapCombineGather(const List< commsStruct > &comms, Container &Values, const CombineOp &cop, const int tag, const label comm)
const Field< PointType > & faceNormals() const
Return face normals for patch.
label nEdges() const
Return number of edges in patch.
void updateMesh(const mapPolyMesh &)
Update any locally stored mesh information.
defineTypeNameAndDebug(combustionModel, 0)
void setInstance(const fileName &)
Set the instance for mesh files.
void setSize(const label)
Reset size of List.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
const List< FaceType > & localFaces() const
Return patch faces addressing into local point list.
Mesh data needed to do the Finite Volume discretisation.
Direct mesh changes based on v1.3 polyTopoChange syntax.
void set(entry *)
Assign a new entry, overwrite any existing entry.
dimensioned< scalar > mag(const dimensioned< Type > &)
static autoPtr< polyPatch > New(const word &patchType, const word &name, const label size, const label start, const label index, const polyBoundaryMesh &bm)
Return a pointer to a new patch created on freestore from.
void setRefinement(const pointField &firstLayerThickness, const scalar expansionRatio, const label nLayers, const labelList &topPatchID, const labelList &bottomPatchID, const labelListList &extrudeEdgePatches, polyTopoChange &meshMod)
Play commands into polyTopoChange to create layer mesh.
virtual ~extrudePatchMesh()
Destructor.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.
A HashTable to objects of type <T> with a label key.