42#ifndef Foam_cyclicFaPatch_H
43#define Foam_cyclicFaPatch_H
65 void calcTransforms();
106 const word& patchType
120 virtual bool owner()
const
Buffers for inter-processor communications streams (UOPstream, UIPstream).
commsTypes
Communications types.
const tensorField & reverseT() const
Return neighbour-cell transformation tensor.
const tensorField & forwardT() const
Return face transformation tensor.
coupledFaPatch(const word &name, const labelUList &edgeLabels, const label index, const faBoundaryMesh &bm, const label nbrPolyPatchIndex, const word &patchType)
Construct from components.
virtual const cyclicLduInterface & neighbPatch() const
Return processor number.
virtual tmp< labelField > internalFieldTransfer(const Pstream::commsTypes commsType, const labelUList &internalData) const
Return neighbour field.
virtual void initMovePoints(PstreamBuffers &, const pointField &)
Initialise the patches for moving points.
virtual bool owner() const
Does this side own the patch ? Yes: it contains both sets of faces.
void makeWeights(scalarField &) const
Make patch weighting factors.
cyclicFaPatch(const word &name, const dictionary &dict, const label index, const faBoundaryMesh &bm, const word &patchType)
Construct from dictionary.
void makeLPN(scalarField &) const
Make patch geodesic distance between P and N.
virtual const tensorField & reverseT() const
Return neighbour-cell transformation tensor.
virtual void calcGeometry(PstreamBuffers &)
Calculate the patch geometry.
virtual label neighbPatchID() const
Return neighbour.
void makeDeltaCoeffs(scalarField &) const
Make patch face - neighbour cell distances.
virtual tmp< labelField > transfer(const Pstream::commsTypes commsType, const labelUList &interfaceData) const
Transfer and return neighbour field.
virtual void initGeometry(PstreamBuffers &)
Initialise the calculation of the patch geometry.
static const scalar matchTol_
Relative tolerance (for geometric matching). Is factor of.
virtual tmp< vectorField > delta() const
Return delta (P to N) vectors across coupled patch.
virtual ~cyclicFaPatch()=default
Destructor.
virtual tmp< labelField > interfaceInternalField(const labelUList &internalData) const
Return the values of the given internal data adjacent to the interface as a field.
virtual void movePoints(PstreamBuffers &, const pointField &)
Correct patches after moving points.
TypeName("cyclic")
Runtime type information.
void makeCorrectionVectors(vectorField &cv) const
Make non-orthogonality correction vectors.
virtual const tensorField & forwardT() const
Return face transformation tensor.
cyclicLduInterface() noexcept=default
Default construct.
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 ...
const labelUList & edgeFaces() const
Return edge-face addressing.
label index() const noexcept
The index of this patch in the boundaryMesh.
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.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Field< vector > vectorField
Specialisation of Field<T> for vector.
static constexpr const zero Zero
Global zero (0).
Field< tensor > tensorField
Specialisation of Field<T> for tensor.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
vectorField pointField
pointField is a vectorField.
UList< label > labelUList
A UList of labels.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.