113 const polyBoundaryMesh& bm,
114 const word& physicalType,
118 patchIdentifier(
name, index, physicalType, inGroups),
135 const word& patchType
149 start_(
dict.
get<label>(
"startFace")),
162 const polyBoundaryMesh& bm
221 mapAddressing.size(),
236 boundaryMesh_(
p.boundaryMesh_)
275 const auto& cnstrTable = *dictionaryConstructorTablePtr_;
283 if (constraintType(iter.key()))
285 cTypes[i++] = iter.key();
298 return start_ - boundaryMesh_.start();
304 return boundaryMesh_;
323 auto& cc = tcc.ref();
326 const vectorField& gcc = boundaryMesh_.mesh().cellCentres();
345 auto& fraction = tfraction.ref();
351 const face&
f = this->operator[](facei);
352 fraction[facei] = faceAreas[facei].mag()/(
f.mag(
points) + ROOTVSMALL);
361 if (areaFractionPtr_)
371 areaFractionPtr_ = std::make_unique<scalarField>(size(), fraction);
380 areaFractionPtr_.reset(fraction.
ptr());
384 areaFractionPtr_.reset(
nullptr);
397 patchSlice(boundaryMesh().
mesh().faceOwner())
402 return *faceCellsPtr_;
416 boundaryMesh().
mesh().edges(),
417 boundaryMesh().
mesh().pointEdges()
431 faceCellsPtr_.reset(
nullptr);
432 mePtr_.reset(
nullptr);
433 areaFractionPtr_.reset(
nullptr);
void addGroup(const word &name)
Add (unique) group for the patch.
List< ReturnType > get(const UPtrList< T > &list, const AccessOp &aop)
List of values generated by applying the access operation to each list item.
void write(Ostream &os) const
Write (physicalType, inGroups) dictionary entries (without surrounding braces)
A list of keyword definitions, which are a keyword followed by a number of values (eg...
static int disallowGenericPolyPatch
Debug switch to disallow the use of genericPolyPatch.
virtual bool check(const char *operation) const
Check IOstream status for given operation.
Identifies a patch by name and index, with optional physical type and group information.
int debugSwitch(const char *name, const int deflt=0)
Lookup debug switch or add default value.
Addressing for all faces on surface of mesh. Can either be read from polyMesh or from triSurface...
Ostream & writeEntry(const keyType &key, const T &value)
Write a keyword/value entry.
SubList< label > subList
Declare type of subList.
virtual void clearAddressing()
Clear addressing.
Smooth ATC in cells next to a set of patches supplied by type.
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.
void clearPatchMeshAddr()
Macros for easy insertion into run-time selection tables.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
virtual void clearGeom()
Clear geometry.
void operator=(const PrimitivePatch< FaceList, PointField > &rhs)
Copy assign faces. Leave points alone (could be a reference).
virtual void movePoints(PstreamBuffers &, const pointField &p)
Correct patches after moving points.
#define forAll(list, i)
Loop across all elements in list.
tmp< scalarField > areaFraction() const
Return the cached area fraction. Usually only set for the non-overlap patches on ACMI.
Abstract base class for point-mesh patch fields.
virtual void movePoints(const Field< point_type > &)
Correct patch after moving points.
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
A list of faces which address into the list of points.
A List obtained as a section of another List.
void operator=(const polyPatch &p)
Copy assignment.
vectorField pointField
pointField is a vectorField.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
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.
virtual bool write(const bool writeOnProc=true) const
Write using setting from DB.
static tmp< T > New(Args &&... args)
Construct tmp with forwarding arguments.
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.
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO...
An Ostream is an abstract base class for all output systems (streams, files, token lists...
const vectorField::subField faceAreas() const
Return face normals.
defineRunTimeSelectionTable(reactionRateFlameArea, dictionary)
OBJstream os(runTime.globalPath()/outputName)
defineTypeNameAndDebug(combustionModel, 0)
const labelList & meshEdges() const
Return global edge index for local edges.
Buffers for inter-processor communications streams (UOPstream, UIPstream).
PrimitivePatch< SubList< face >, const pointField & > primitivePatch
A PrimitivePatch with a SubList addressing for the faces, const reference for the point field...
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)
List< word > wordList
List of word.
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.
labelList meshEdges(const edgeList &allEdges, const labelListList &cellEdges, const labelList &faceCells) const
Return labels of patch edges in the global edge list using cell addressing.
SubList< face > faceSubList
SubList of faces.
SubField< vector > subField
Declare type of subField.
virtual void initOrder(PstreamBuffers &, const primitivePatch &) const
Initialize ordering for primitivePatch. Does not.
T * ptr() const
Return managed pointer for reuse, or clone() the object reference.
List< label > labelList
A List of labels.
A class for managing temporary objects.
A patch is a list of labels that address the faces in the global face list.
patchIdentifier & operator=(const patchIdentifier &)=default
Copy assignment.
uindirectPrimitivePatch pp(UIndirectList< face >(mesh.faces(), faceLabels), mesh.points())
forAllConstIters(mixture.phases(), phase)
addToRunTimeSelectionTable(functionObject, pointHistory, dictionary)
const vectorField::subField faceCentres() const
Return face centres.