41 #ifndef Foam_fvPatch_H 42 #define Foam_fvPatch_H 90 void operator=(
const fvPatch&) =
delete;
178 return polyPatch_.
name();
184 return polyPatch_.
index();
190 return polyPatch_.
start();
194 virtual label
size()
const 196 return polyPatch_.size();
214 return boundaryMesh_;
323 template<
class GeometricField,
class AnyType =
bool>
333 template<
class GeometricField,
class AnyType =
bool>
338 const AnyType* =
nullptr label start() const noexcept
The patch start within the polyMesh face list.
const GeometricField::Patch & patchField(const GeometricField &gf) const
Return the patch field of the GeometricField corresponding to this patch.
const List< T >::subList patchSlice(const List< T > &values) const
This patch slice from the complete list, which has size mesh::nFaces(), using the virtual patch size...
virtual void initMovePoints()
Initialise the patches for moving points.
const scalarField & magSf() const
Return face area magnitudes, like the fvMesh::magSf() method.
label start() const noexcept
Return start label of this patch in the polyMesh face list.
static const fvPatch & lookupPatch(const polyPatch &p)
Lookup the polyPatch index on corresponding fvMesh.
tmp< vectorField > nf() const
Return face unit normals, like the fvMesh::unitSf() method Same as unitSf().
virtual ~fvPatch()
Destructor.
virtual void makeNonOrthoCorrVectors(vectorField &) const
Correct patch non-ortho correction vectors.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Generic GeometricField class.
SubList< T > subList
Declare type of subList.
Cell to surface interpolation scheme. Included in fvMesh.
const GeometricField::Patch & lookupPatchField(const word &name, const GeometricField *=nullptr, const AnyType *=nullptr) const
Lookup the named field from the local registry and return the patch field corresponding to this patch...
declareRunTimeSelectionTable(autoPtr, fvPatch, polyPatch,(const polyPatch &patch, const fvBoundaryMesh &bm),(patch, bm))
virtual void makeNonOrthoDeltaCoeffs(scalarField &) const
Correct patch non-ortho deltaCoeffs.
tmp< vectorField > unitSf() const
Return face unit normals, like the fvMesh::unitSf() method. Same as nf().
List< T > values(const HashTable< T, Key, Hash > &tbl, const bool doSort=false)
List of values from HashTable, optionally sorted.
void patchInternalField(const UList< Type > &internalData, const labelUList &addressing, Field< Type > &pfld) const
Extract internal field next to patch using specified addressing.
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.
fvBoundaryMesh BoundaryMesh
The boundary type associated with the patch.
A class for handling words, derived from Foam::string.
virtual const labelUList & faceCells() const
Return faceCells.
label offset() const noexcept
The offset where this patch starts in the boundary face list.
const scalarField & weights() const
Return patch weighting factors.
virtual void makeWeights(scalarField &) const
Make patch weighting factors.
const vectorField & Cf() const
Return face centres.
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 virtual patch size.
const fvBoundaryMesh & boundaryMesh() const noexcept
Return boundaryMesh reference.
virtual label size() const
Patch size is the number of faces, but can be overloaded.
const word & name() const noexcept
The patch name.
TypeName(polyPatch::typeName_())
Runtime type information.
static bool constraintType(const word &patchType)
Return true if the given type is a constraint type.
const vectorField & Sf() const
Return face area vectors, like the fvMesh::Sf() method.
Specialisations of Field<T> for scalar, vector and tensor.
Basic run-time type information using word as the type's name. Used to enhance the standard RTTI to c...
PatchField< Type > Patch
The patch field type for the GeometricBoundaryField.
const scalarField & deltaCoeffs() const
Return the face - cell distance coefficient except for coupled patches for which the cell-centre to c...
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers...
tmp< vectorField > Cn() const
Return neighbour cell centres.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
virtual const word & name() const
Return name.
static autoPtr< fvPatch > New(const polyPatch &, const fvBoundaryMesh &)
Return a pointer to a new patch created on freestore from polyPatch.
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.
A patch is a list of labels that address the faces in the global face list.
const polyPatch & patch() const noexcept
Return the polyPatch.
label index() const noexcept
The index of this patch in the boundary mesh.
virtual bool coupled() const
Return true if this patch is coupled.
virtual tmp< vectorField > delta() const
Return cell-centre to face-centre vector except for coupled patches for which the cell-centre to coup...
virtual void movePoints()
Correct patches after moving points.
static wordList constraintTypes()
Return a list of all the constraint patch types.
PtrList< fvPatch > fvPatchList
Store lists of fvPatch as a PtrList.
virtual void makeDeltaCoeffs(scalarField &) const
Correct patch deltaCoeffs.