42 #ifndef Foam_polyPatch_H
43 #define Foam_polyPatch_H
58 class polyBoundaryMesh;
86 mutable std::unique_ptr<labelList::subList> faceCellsPtr_;
89 mutable std::unique_ptr<labelList> mePtr_;
92 std::unique_ptr<scalarField> areaFractionPtr_;
153 const word& patchType
168 const word& patchType
184 const word& patchType
206 const word& patchType
255 virtual autoPtr<polyPatch>
clone
268 virtual autoPtr<polyPatch>
clone
277 (*
this, bm,
index, mapAddressing, newStart);
284 static autoPtr<polyPatch>
New
286 const word& patchType,
374 labelRange
range()
const
376 return labelRange(start_, this->size());
485 return facei - start_;
uindirectPrimitivePatch pp(UIndirectList< face >(mesh.faces(), faceLabels), mesh.points())
SubField< Type > subField
Declare type of subField.
SubList< T > subList
Declare type of subList.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A list of faces which address into the list of points.
virtual void movePoints(const Field< point_type > &)
Correct patch after moving points.
const Field< point_type > & points() const noexcept
Return reference to global points.
Buffers for inter-processor communications streams (UOPstream, UIPstream).
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
SubField is a Field obtained as a section of another Field, without its own allocation....
A non-owning sub-view of a List (allocated or unallocated storage).
A List with indirect addressing. Like IndirectList but does not store addressing.
static const UList< label > & null() noexcept
Return a null UList (reference to a nullObject). Behaves like an empty UList.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
static autoPtr< T > New(Args &&... args)
Construct autoPtr with forwarding arguments.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Smooth ATC in cells next to a set of patches supplied by type.
A range or interval of labels defined by a start and a size.
Identifies a patch by name and index, with optional physical type and group information.
const word & name() const noexcept
The patch name.
const wordList & inGroups() const noexcept
The (optional) groups that the patch belongs to.
const word & physicalType() const noexcept
The (optional) physical type of the patch.
label index() const noexcept
The index of this patch in the boundaryMesh.
A polyBoundaryMesh is a polyPatch list with registered IO, a reference to the associated polyMesh,...
A patch is a list of labels that address the faces in the global face list.
static wordList constraintTypes()
Return a list of all the constraint patch types.
virtual void updateMesh(PstreamBuffers &)
Update of the patch topology.
virtual const labelUList & nbrCells() const
Return nbrCells.
const vectorField::subField faceAreas() const
Return face normals.
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.
const UIndirectList< T > patchInternalList(const UList< T > &internalValues) const
Extract face cell data.
virtual void newInternalProcFaces(label &, label &) const
Return number of new internal of this polyPatch faces.
label whichFace(const label facei) const noexcept
Return label of face in patch from global face label.
TypeName("patch")
Runtime type information.
friend class polyBoundaryMesh
virtual label neighbPolyPatchID() const
Return nbr patchID.
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...
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))
virtual bool coupled() const
Return true if this patch is geometrically coupled (i.e. faces and.
virtual bool masterImplicit() const
Return implicit master.
virtual void initGeometry(PstreamBuffers &)
Initialise the calculation of the patch geometry.
virtual void clearGeom()
Clear geometry.
void operator=(const polyPatch &p)
Copy assignment.
label offset() const noexcept
The offset where this patch starts in the boundary face list.
const faceList::subList faces() const
Return mesh faces for the patch.
virtual void initOrder(PstreamBuffers &, const primitivePatch &) const
Initialize ordering for primitivePatch. Does not.
virtual void write(Ostream &os) const
Write the polyPatch data as a dictionary.
const vectorField::subField faceCentres() const
Return face centres.
virtual ~polyPatch()
Destructor.
virtual bool setTopology(polyTopoChange &)
Collect topology changes in a polyTopoChange object.
virtual autoPtr< polyPatch > clone(const labelList &faceCells) const
Construct and return a clone, setting faceCells.
virtual bool changeTopology() const
For dynamic mesh cases - return true if this patch will change the topology.
virtual refPtr< labelListList > mapCollocatedFaces() const
Return mapped collocated faces.
const polyBoundaryMesh & boundaryMesh() const noexcept
Return boundaryMesh reference.
labelRange range() const
Return start/size range of this patch.
virtual void initUpdateMesh(PstreamBuffers &)
Initialise the update of the patch topology.
virtual bool order(PstreamBuffers &, const primitivePatch &, labelList &faceMap, labelList &rotation) const
Return new ordering for primitivePatch.
virtual void clearAddressing()
Clear addressing.
polyPatch(const word &name, const label size, const label start, const label index, const polyBoundaryMesh &bm, const word &patchType)
Construct from components.
static int disallowGenericPolyPatch
Debug switch to disallow the use of genericPolyPatch.
virtual void movePoints(const Field< point_type > &)
Inherit movePoints from primitivePatch.
const List< T >::subList boundarySlice(const List< T > &values) const
This patch slice from the list of boundary values, which has size mesh::nBoundaryFaces(),...
label start() const noexcept
Return start label of this patch in the polyMesh face list.
virtual void calcGeometry(PstreamBuffers &)
Calculate the patch geometry.
tmp< vectorField > faceCellCentres() const
Return face cell centres.
const labelList::subList faceOwner() const
Return face owner for the patch.
virtual word neighbRegionID() const
Return neighbour region name.
virtual void initMovePoints(PstreamBuffers &, const pointField &)
Initialise the patches for moving points.
friend Ostream & operator<<(Ostream &, const polyPatch &)
static bool constraintType(const word &patchType)
Return true if the given type is a constraint type.
const labelUList & faceCells() const
Return face-cell addressing.
const labelList & meshEdges() const
Return global edge index for local edges.
tmp< scalarField > areaFraction() const
Return the cached area fraction. Usually only set for the non-overlap patches on ACMI.
Direct mesh changes based on v1.3 polyTopoChange syntax.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
OBJstream os(runTime.globalPath()/outputName)
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.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces)
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
UList< label > labelUList
A UList of labels.
Macros to ease declaration of run-time selection tables.
Conversion/extraction to labelRange operation (functor).
Basic run-time type information using word as the type's name. Used to enhance the standard RTTI to c...