83 const label nbrPolyPatchId_;
89 mutable std::unique_ptr<labelList::subList> edgeFacesPtr_;
92 mutable std::unique_ptr<labelList> pointLabelsPtr_;
95 mutable std::unique_ptr<labelListList> pointEdgesPtr_;
101 faPatch(
const faPatch&) =
delete;
104 void operator=(
const faPatch&) =
delete;
183 const label nbrPolyPatchi,
184 const word& patchType
194 const word& patchType
207 const label nbrPolyPatchi
224 const label nbrPolyPatchi
241 static autoPtr<faPatch>
New
250 static autoPtr<faPatch>
New
252 const word& patchType,
278 return static_cast<const labelList&
>(*this);
296 return nbrPolyPatchId_;
316 virtual label
size()
const
324 return edgei -
start();
330 const typename List<T>::subList
484 template<
class GeometricField,
class AnyType =
bool>
490 template<
class GeometricField,
class AnyType =
bool>
496 template<
class GeometricField>
Generic GeometricField class.
PatchField< Type > Patch
The patch field type for the GeometricBoundaryField.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
SubList< T > subList
Declare type of subList.
autoPtr< List< label > > clone() const
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Buffers for inter-processor communications streams (UOPstream, UIPstream).
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
UList(const UList< label > &) noexcept=default
label size() const noexcept
void size(const label n)
Older name for setAddressableSize.
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,...
Finite area boundary mesh, which is a faPatch list with registered IO, a reference to the associated ...
Finite area patch class. Used for 2-D non-Euclidian finite area method.
static wordList constraintTypes()
Return a list of all the constraint patch types.
virtual label size() const
Patch size is the number of edge labels, but can be overloaded.
faBoundaryMesh BoundaryMesh
The boundary type associated with the patch.
label nPoints() const
Number of patch points.
label offset() const
The offset where this patch starts in the boundary edge list.
const labelListList & pointEdges() const
Return patch point-edge addressing.
tmp< vectorField > ngbPolyPatchPointNormals() const
Return normals of neighbour polyPatch joined points.
TypeName("patch")
Runtime type information.
const GeometricField::Patch * cfindPatchField(const word &fldName) const
Lookup the named field (if any) from the local registry and return the patch field corresponding to t...
const labelList & pointLabels() const
Return patch point labels.
declareRunTimeSelectionTable(autoPtr, faPatch, dictionary,(const word &name, const dictionary &dict, const label index, const faBoundaryMesh &bm, const word &patchType),(name, dict, index, bm, patchType))
virtual ~faPatch()
Destructor.
void resetEdges(const labelUList &newEdges)
Reset the list of edges (use with caution).
virtual bool coupled() const
Return true if this patch is coupled.
virtual void makeWeights(scalarField &) const
Make patch weighting factors.
friend Ostream & operator<<(Ostream &, const faPatch &)
virtual void initGeometry(PstreamBuffers &)
Initialise the calculation of the patch geometry.
virtual void makeLPN(scalarField &) const
Make patch geodesic distance between P and N.
virtual autoPtr< faPatch > clone(const faBoundaryMesh &bm) const
Construct and return a clone, resetting the boundary mesh.
const labelList & edgeLabels() const noexcept
Return the list of edges.
virtual void makeDeltaCoeffs(scalarField &) const
Make patch edge - neighbour face distances.
List< labelPair > boundaryConnections() const
List of proc/face for the boundary edge neighbours in locally reordered edge numbering.
const scalarField & magEdgeLengths() const
Return edge length magnitudes, like the faMesh::magLe() method.
const scalarField & lPN() const
Return patch geodesic distance between P and N.
label ngbPolyPatchIndex() const noexcept
The neighbour polyPatch index.
tmp< vectorField > ngbPolyPatchFaceNormals() const
Return normals of neighbour polyPatch faces.
static autoPtr< faPatch > New(const word &name, const dictionary &dict, const label index, const faBoundaryMesh &bm)
Return pointer to a new patch created on freestore from dictionary.
friend class faBoundaryMesh
The faPatch geometry initialisation is called by faBoundaryMesh.
const GeometricField::Patch & patchField(const GeometricField &gf) const
Return the patch field of the GeometricField corresponding to this patch.
virtual autoPtr< faPatch > clone(const faBoundaryMesh &bm, const labelUList &edgeLabels, const label index, const label nbrPolyPatchi) const
Construct and return a clone, resetting the edge list and boundary mesh.
const vectorField & skewCorrectionVectors() const
Return patch skew-correction vectors.
const vectorField & edgeLengths() const
Return edge length vectors, like the faMesh::Le() method.
label whichEdge(const label edgei) const
Return label of edge in patch from global edge label.
virtual tmp< vectorField > delta() const
Return cell-centre to face-centre vector.
label nEdges() const noexcept
Number of edge labels (boundary edges) addressed by this patch.
tmp< vectorField > edgeFaceCentres() const
Return neighbour face centres.
void calcPointEdges() const
Calculate patch point-edge addressing.
const faBoundaryMesh & boundaryMesh() const noexcept
Return boundaryMesh reference.
const scalarField & weights() const
Return patch weighting factors.
virtual void initUpdateMesh(PstreamBuffers &)
Initialise the update of the patch topology.
const labelUList & edgeFaces() const
Return edge-face addressing.
virtual void movePoints(PstreamBuffers &, const pointField &)
Correct patch after moving points.
const vectorField & edgeCentres() const
Return edge centres.
labelList boundaryProcs() const
Boundary edge neighbour processors (does not include own proc).
const List< T >::subList patchSlice(const UList< T > &values) const
This patch slice from the complete list of values, which has size mesh::nEdges(), using the virtual p...
tmp< vectorField > edgeNormals() const
Return edge unit normals, like the faMesh::unitLe() method.
void calcPointLabels() const
Calculate patch point labels.
virtual void calcGeometry(PstreamBuffers &)
Calculate the patch geometry.
List< labelPair > boundaryProcSizes() const
List of proc/size for the boundary edge neighbour processors (does not include own proc).
void patchInternalField(const UList< Type > &internalData, const labelUList &addressing, UList< Type > &pfld) const
Extract internal field next to patch using specified addressing.
const List< T >::subList boundarySlice(const UList< T > &values) const
This patch slice from the list of boundary values, which has size mesh::nBoundaryEdges(),...
virtual void updateMesh(PstreamBuffers &)
Update of the patch topology.
const scalarField & deltaCoeffs() const
Return patch edge - neighbour face distances.
virtual void initMovePoints(PstreamBuffers &, const pointField &)
Initialise the patches for moving points.
virtual void makeCorrectionVectors(vectorField &) const
Make non-orthogonality correction vectors.
static bool constraintType(const word &patchType)
Return true if the given type is a constraint type.
tmp< Field< Type > > patchInternalField(const UList< Type > &internalData) const
Return given internal field next to patch as patch field using edgeFaces() mapping.
const GeometricField::Patch & lookupPatchField(const word &fldName) const
Lookup the named field from the local registry and return the patch field corresponding to this patch...
label start() const
Patch start in edge list.
label index() const noexcept
The index of this patch in the boundaryMesh.
const word & name() const noexcept
The patch name.
patchIdentifier(const patchIdentifier &)=default
Copy construct.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
Forward declarations for faPatchField types.
List< word > wordList
List of word.
List< labelList > labelListList
List of labelList.
List< label > labelList
A List of labels.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces).
Field< vector > vectorField
Specialisation of Field<T> for vector.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
vectorField pointField
pointField is a vectorField.
PtrList< faPatch > faPatchList
Store lists of faPatch as a PtrList.
UList< label > labelUList
A UList of labels.
Macros to ease declaration of run-time selection tables.
#define declareRunTimeSelectionTable(ptrWrapper, baseType, argNames, argList, parList)
Declare a run-time selection (variables and adder classes).
Basic run-time type information using word as the type's name. Used to enhance the standard RTTI to c...
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.