42 #ifndef Foam_polyPatch_H 43 #define Foam_polyPatch_H 150 const word& patchType
165 const word& patchType
181 const word& patchType
203 const word& patchType
252 virtual autoPtr<polyPatch>
clone 265 virtual autoPtr<polyPatch>
clone 274 (*
this, bm,
index, mapAddressing, newStart);
281 static autoPtr<polyPatch>
New 283 const word& patchType,
303 const word& patchType,
371 labelRange
range()
const 373 return labelRange(start_, this->size());
466 return facei - start_;
virtual bool changeTopology() const
For dynamic mesh cases - return true if this patch will change the topology.
virtual word neighbRegionID() const
Return neighbour region name.
label whichFace(const label facei) const noexcept
Return label of face in patch from global face label.
virtual void newInternalProcFaces(label &, label &) const
Return number of new internal of this polyPatch faces.
const UIndirectList< T > patchInternalList(const UList< T > &internalValues) const
Extract face cell data.
friend class polyBoundaryMesh
A list of keyword definitions, which are a keyword followed by a number of values (eg...
label start() const noexcept
Return start label of this patch in the polyMesh face list.
static int disallowGenericPolyPatch
Debug switch to disallow the use of genericPolyPatch.
virtual void initUpdateMesh(PstreamBuffers &)
Initialise the update of the patch topology.
Identifies a patch by name and index, with optional physical type and group information.
virtual bool masterImplicit() const
Return implicit master.
A range or interval of labels defined by a start and a size.
const wordList & inGroups() const noexcept
The (optional) groups that the patch belongs to.
friend Ostream & operator<<(Ostream &, const polyPatch &)
SubList< T > subList
Declare type of subList.
virtual void clearAddressing()
Clear addressing.
Smooth ATC in cells next to a set of patches supplied by type.
virtual void initMovePoints(PstreamBuffers &, const pointField &)
Initialise the patches for moving points.
SubField is a Field obtained as a section of another Field, without its own allocation. SubField is derived from a SubList rather than a List.
labelRange range() const
Return start/size range of this patch.
virtual const labelUList & nbrCells() const
Return nbrCells.
UList< label > labelUList
A UList of labels.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
virtual void clearGeom()
Clear geometry.
virtual void movePoints(PstreamBuffers &, const pointField &p)
Correct patches after moving points.
tmp< scalarField > areaFraction() const
Return the area fraction as the ratio of the stored face area and the area given by the face points...
virtual void movePoints(const Field< point_type > &)
Correct patch after moving points.
List< T > values(const HashTable< T, Key, Hash > &tbl, const bool doSort=false)
List of values from HashTable, optionally sorted.
PtrList< polyPatch > polyPatchList
Store lists of polyPatch as a PtrList.
declareRunTimeSelectionTable(autoPtr, polyPatch, word,(const word &name, const label size, const label start, const label index, const polyBoundaryMesh &bm, const word &patchType),(name, size, start, index, bm, patchType))
A list of faces which address into the list of points.
A List obtained as a section of another List.
virtual bool coupled() const
Return true if this patch is geometrically coupled (i.e. faces and.
virtual void write(Ostream &os) const
Write the polyPatch data as a dictionary.
const polyBoundaryMesh & boundaryMesh() const noexcept
Return boundaryMesh reference.
const labelUList & faceCells() const
Return face-cell addressing.
A class for handling words, derived from Foam::string.
virtual ~polyPatch()
Destructor.
label offset() const noexcept
The offset where this patch starts in the boundary face list.
tmp< vectorField > faceCellCentres() const
Return face cell centres.
virtual void updateMesh(PstreamBuffers &)
Update of the patch topology.
polyPatch(const word &name, const label size, const label start, const label index, const polyBoundaryMesh &bm, const word &patchType)
Construct from components.
virtual autoPtr< polyPatch > clone(const labelList &faceCells) const
Construct and return a clone, setting faceCells.
void operator=(const polyPatch &)
Assignment.
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO...
virtual label neighbPolyPatchID() const
Return nbr patchID.
const word & name() const noexcept
The patch name.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
const vectorField::subField faceAreas() const
Return face normals.
virtual void calcGeometry(PstreamBuffers &)
Calculate the patch geometry.
virtual refPtr< labelListList > mapCollocatedFaces() const
Return mapped collocated faces.
const word & physicalType() const noexcept
The (optional) physical type of the patch.
OBJstream os(runTime.globalPath()/outputName)
const labelList & meshEdges() const
Return global edge index for local edges.
static const UList< label > & null()
Return a UList reference to a nullObject.
virtual bool setTopology(polyTopoChange &)
Collect topology changes in a polyTopoChange object.
Buffers for inter-processor communications streams (UOPstream, UIPstream).
virtual void initGeometry(PstreamBuffers &)
Initialise the calculation of the patch geometry.
static wordList constraintTypes()
Return a list of all the constraint patch types.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces)
const List< T >::subList patchSlice(const UList< T > &values) const
This patch slice from the complete list, which has size mesh::nFaces(), using the number of patch fac...
Conversion/extraction to labelRange operation (functor).
static bool constraintType(const word &patchType)
Return true if the given type is a constraint type.
virtual bool order(PstreamBuffers &, const primitivePatch &, labelList &faceMap, labelList &rotation) const
Return new ordering for primitivePatch.
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers...
A List with indirect addressing. Like IndirectList but does not store addressing. ...
Direct mesh changes based on v1.3 polyTopoChange syntax.
SubField< Type > subField
Declare type of subField.
static autoPtr< polyPatch > New(const word &patchType, const word &name, const label size, const label start, const label index, const polyBoundaryMesh &bm)
Return pointer to a new patch created on freestore from components.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
TypeName("patch")
Runtime type information.
virtual void initOrder(PstreamBuffers &, const primitivePatch &) const
Initialize ordering for primitivePatch. Does not.
Macros to ease declaration of run-time selection tables.
label index() const noexcept
The index of this patch in the boundaryMesh.
A class for managing temporary objects.
static autoPtr< T > New(Args &&... args)
Construct autoPtr with forwarding arguments.
A patch is a list of labels that address the faces in the global face list.
const List< T >::subList boundarySlice(const List< T > &values) const
This patch slice from the list of boundary values, which has size mesh::nBoundaryFaces(), using the number of patch faces.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
uindirectPrimitivePatch pp(UIndirectList< face >(mesh.faces(), faceLabels), mesh.points())
const vectorField::subField faceCentres() const
Return face centres.