Go to the documentation of this file.
37 #ifndef coupledPolyPatch_H
38 #define coupledPolyPatch_H
194 const word& patchType,
205 const word& patchType
248 virtual bool owner()
const = 0;
static pointField getAnchorPoints(const UList< face > &, const pointField &, const transformType)
Get a unique anchor point for all faces.
vectorField separation_
Offset (distance) vector from one side of the couple to the other.
vectorField pointField
pointField is a vectorField.
static const NamedEnum< transformType, 5 > transformTypeNames
virtual const vectorField & separation() const
If the planes are separated the separation vector.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
const Field< PointType > & points() const
Return reference to global points.
A class for handling words, derived from string.
A class for handling file names.
virtual const tensorField & forwardT() const
Return face transformation tensor.
Buffers for inter-processor communications streams (UOPstream, UIPstream).
virtual const tensorField & reverseT() const
Return neighbour-cell transformation tensor.
virtual bool neighbour() const
Does the coupled side own the patch ?
The coupledPolyPatch is an abstract base class for patches that couple regions of the computational d...
virtual bool owner() const =0
Does this side own the patch ?
virtual void updateMesh(PstreamBuffers &)=0
Update of the patch topology.
virtual bool parallel() const
Are the cyclic planes parallel.
virtual bool separated() const
Are the planes separated.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Pre-declare SubField and related Field type.
A patch is a list of labels that address the faces in the global face list.
static label getRotation(const pointField &points, const face &f, const point &anchor, const scalar tol)
Get the number of vertices face f needs to be rotated such that.
transformType transform_
Type of transformation.
virtual void initGeometry(PstreamBuffers &)=0
Initialise the calculation of the patch geometry.
virtual void movePoints(PstreamBuffers &, const pointField &)=0
Correct patches after moving points.
virtual void write(Ostream &) const
Write the polyPatch data as a dictionary.
TypeName("coupled")
Runtime type information.
A list of keyword definitions, which are a keyword followed by any number of values (e....
scalar matchTolerance() const
virtual void initUpdateMesh(PstreamBuffers &)=0
Initialise the update of the patch topology.
virtual void initOrder(PstreamBuffers &, const primitivePatch &) const =0
Initialize ordering for primitivePatch. Does not.
static scalarField calcFaceTol(const UList< face > &faces, const pointField &points, const pointField &faceCentres)
Calculate typical tolerance per face. Is currently max distance.
label start() const
Return start label of this patch in the polyMesh face list.
virtual transformType transform() const
Type of transform.
static const scalar defaultMatchTol_
Default matching tolerance.
const scalar matchTolerance_
Local matching tolerance.
virtual bool order(PstreamBuffers &, const primitivePatch &, labelList &faceMap, labelList &rotation) const =0
Return new ordering for primitivePatch.
const vectorField::subField faceCentres() const
Return face centres.
virtual void transformPosition(pointField &) const =0
Transform a patch-based position from other side to this side.
virtual ~coupledPolyPatch()
Destructor.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
void calcTransformTensors(const vectorField &Cf, const vectorField &Cr, const vectorField &nf, const vectorField &nr, const scalarField &smallDist, const scalar absTol, const transformType=UNKNOWN) const
Calculate the transformation tensors.
virtual void initMovePoints(PstreamBuffers &, const pointField &)=0
Initialise the patches for moving points.
virtual bool coupled() const
Return true because this patch is coupled.
A face is a list of labels corresponding to mesh vertices.
virtual const boolList & collocated() const
Are faces collocated. Either size 0,1 or length of patch.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
static void writeOBJ(Ostream &os, const point &pt)
Write point in OBJ format.
vector point
Point is a vector.
boolList collocated_
Are faces collocated. Either size 0,1 or length of patch.
virtual void calcGeometry(PstreamBuffers &)=0
Calculate the patch geometry.
coupledPolyPatch(const word &name, const label size, const label start, const label index, const polyBoundaryMesh &bm, const word &patchType, const transformType transform)
Construct from components.
const word & name() const
Return name.
label index() const
Return the index of this patch in the boundaryMesh.
tensorField forwardT_
Face transformation tensor.
A list of faces which address into the list of points.
tensorField reverseT_
Neighbour-cell transformation tensor.