Go to the documentation of this file.
39 #ifndef coupledPolyPatch_H
40 #define coupledPolyPatch_H
78 static const scalar defaultMatchTol_;
81 const scalar matchTolerance_;
196 const word& patchType,
207 const word& patchType
250 virtual bool owner()
const = 0;
281 return separation_.size();
293 return forwardT_.empty();
316 return matchTolerance_;
static pointField getAnchorPoints(const UList< face > &, const pointField &, const transformType)
Get a unique anchor point for all faces.
vectorField pointField
pointField is a vectorField.
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)
A class for handling words, derived from Foam::string.
A class for handling file names.
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO.
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.
static const Enum< transformType > transformTypeNames
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.
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.
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 a number of values (eg,...
const Field< point_type > & points() const
Return reference to global points.
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.
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.
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,...
const volScalarField & p0
static void writeOBJ(Ostream &os, const point &pt)
Write point in OBJ format.
vector point
Point is a vector.
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
The patch name.
label index() const
The index of this patch in the boundaryMesh.
A list of faces which address into the list of points.