Go to the documentation of this file.
42 #ifndef coupledFaPatch_H
43 #define coupledFaPatch_H
155 return separation_.size();
162 if (!separation_.size())
165 <<
"Coupled patches are not separated"
175 if (!forwardT_.size())
178 <<
"Coupled planes do not need transformation"
188 if (!reverseT_.size())
191 <<
"Coupled planes do not need transformation"
201 return forwardT_.size() == 0;
virtual void calcGeometry()=0
Calculate the patch geometry.
label ngbPolyPatchIndex() const
Return neighbour polyPatch index.
bool parallel() const
Are the cyclic planes parallel.
A class for handling words, derived from Foam::string.
A class for managing temporary objects.
virtual void makeWeights(scalarField &) const =0
Make patch weighting factors.
virtual tmp< vectorField > delta() const =0
Return delta (P to N) vectors across coupled patch.
An abstract base class for implicitly-coupled interfaces e.g. processor and cyclic patches.
virtual void makeDeltaCoeffs(scalarField &) const =0
Make patch face - neighbour cell distances.
virtual void initGeometry()=0
Initialise the calculation of the patch geometry.
virtual void movePoints(const pointField &)=0
Correct patches after moving points.
coupledFaPatch(const word &name, const labelList &edgeLabels, const label index, const faBoundaryMesh &bm, const label ngbPolyPatchIndex)
Construct from components.
virtual ~coupledFaPatch()
Destructor.
const labelUList & edgeFaces() const
Return edge-face addressing.
Finite area boundary mesh.
const tensorField & reverseT() const
Return neighbour-cell transformation tensor.
coupledFaPatch is an abstract base class for patches that couple regions of the computational domain ...
virtual tmp< labelField > interfaceInternalField(const labelUList &internalData) const =0
Return the values of the given internal data adjacent to.
virtual void initMovePoints(const pointField &)=0
Initialise the patches for moving points.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
virtual tmp< labelField > internalFieldTransfer(const Pstream::commsTypes commsType, const labelUList &iF) const =0
Return neighbour field.
const tensorField & forwardT() const
Return face transformation tensor.
errorManip< error > abort(error &err)
const vectorField & separation() const
Return the offset (distance) vector from one side of the couple.
commsTypes
Types of communications.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
bool separated() const
Are the coupled planes separated.
void calcTransformTensors(const vector &Cf, const vector &Cr, const vector &nf, const vector &nr) const
Calculate the uniform transformation tensors.
virtual void initTransfer(const Pstream::commsTypes commsType, const labelUList &interfaceData) const
Initialise interface data transfer.
virtual const labelUList & faceCells() const
Return faceCell addressing: lduInterface virtual function.
virtual void initInternalFieldTransfer(const Pstream::commsTypes commsType, const labelUList &iF) const
Initialise neighbour field transfer.
virtual bool coupled() const
Return true because this patch is coupled.
Finite area patch class. Used for 2-D non-Euclidian finite area method.
const word & name() const
The patch name.
label index() const
The index of this patch in the boundaryMesh.
TypeName("coupled")
Runtime type information.
virtual tmp< labelField > transfer(const Pstream::commsTypes commsType, const labelUList &interfaceData) const =0
Transfer and return neighbour field.