Public Member Functions | Protected Member Functions | Friends | List of all members
coupledFvPatch Class Referenceabstract

An abstract base class for patches that couple regions of the computational domain e.g. cyclic and processor-processor links. More...

Inheritance diagram for coupledFvPatch:
Inheritance graph
[legend]
Collaboration diagram for coupledFvPatch:
Collaboration graph
[legend]

Public Member Functions

 TypeNameNoDebug (coupledPolyPatch::typeName_())
 Runtime type information. More...
 
 coupledFvPatch (const polyPatch &patch, const fvBoundaryMesh &bm)
 Construct from polyPatch. More...
 
virtual ~coupledFvPatch ()=default
 Destructor. More...
 
virtual bool coupled () const
 Return true because this patch is coupled. More...
 
virtual bool parallel () const =0
 Are the cyclic planes parallel. More...
 
virtual const tensorFieldforwardT () const =0
 Return face transformation tensor. More...
 
virtual const tensorFieldreverseT () const =0
 Return neighbour-cell transformation tensor. More...
 
virtual const labelUListfaceCells () const
 Return faceCell addressing. More...
 
virtual tmp< vectorFielddelta () const =0
 Return delta (P to N) vectors across coupled patch. More...
 
virtual tmp< labelFieldinterfaceInternalField (const labelUList &internalData) const =0
 Return the values of the given internal data adjacent to the interface as a field. More...
 
virtual tmp< labelFieldinterfaceInternalField (const labelUList &internalData, const labelUList &faceCell) const =0
 Return the values of the given internal data adjacent to the interface as a field using a mapping faceCell. More...
 
virtual void initInternalFieldTransfer (const Pstream::commsTypes commsType, labelUList &iF) const
 Initialise neighbour field transfer. More...
 
virtual void initInternalFieldTransfer (const Pstream::commsTypes commsType, labelUList &iF, const labelUList &faceCell) const
 Initialise neighbour field transfer using faceCells map. More...
 
virtual tmp< labelFieldinternalFieldTransfer (const Pstream::commsTypes commsType, const labelUList &iF) const =0
 Return neighbour field. More...
 
virtual void initInternalFieldTransfer (const Pstream::commsTypes commsType, const labelUList &iF) const
 Inherit initInternalFieldTransfer from lduInterface. More...
 
virtual void initInternalFieldTransfer (const Pstream::commsTypes commsType, const labelUList &iF, const labelUList &faceCells) const
 Inherit initInternalFieldTransfer from lduInterface. More...
 
- Public Member Functions inherited from lduInterface
 TypeNameNoDebug ("lduInterface")
 Runtime type information. More...
 
 lduInterface () noexcept=default
 Default construct. More...
 
virtual ~lduInterface ()=default
 Destructor. More...
 
virtual void initInternalFieldTransfer (const Pstream::commsTypes commsType, const labelUList &iF) const
 Initialise transfer of internal field adjacent to the interface. More...
 
virtual void initInternalFieldTransfer (const Pstream::commsTypes commsType, const labelUList &iF, const labelUList &faceCells) const
 Initialise transfer of internal field adjacent to the interface using faceCells mapping. More...
 
- Public Member Functions inherited from fvPatch
virtual void makeDeltaCoeffs (scalarField &) const
 Correct patch deltaCoeffs. More...
 
virtual void makeNonOrthoDeltaCoeffs (scalarField &) const
 Correct patch non-ortho deltaCoeffs. More...
 
virtual void makeNonOrthoCorrVectors (vectorField &) const
 Correct patch non-ortho correction vectors. More...
 
virtual void initMovePoints ()
 Initialise the patches for moving points. More...
 
virtual void movePoints ()
 Correct patches after moving points. More...
 
 TypeName (polyPatch::typeName_())
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, fvPatch, polyPatch,(const polyPatch &patch, const fvBoundaryMesh &bm),(patch, bm))
 
 fvPatch (const polyPatch &, const fvBoundaryMesh &)
 Construct from polyPatch and fvBoundaryMesh. More...
 
virtual ~fvPatch ()
 Destructor. More...
 
const polyPatchpatch () const noexcept
 Return the polyPatch. More...
 
virtual const wordname () const
 Return name. More...
 
label index () const noexcept
 The index of this patch in the boundary mesh. More...
 
label start () const noexcept
 The patch start within the polyMesh face list. More...
 
virtual label size () const
 Patch size is the number of faces, but can be overloaded. More...
 
const fvBoundaryMeshboundaryMesh () const noexcept
 Return boundaryMesh reference. More...
 
template<class T >
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. More...
 
template<class T >
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. More...
 
const vectorFieldCf () const
 Return face centres. More...
 
tmp< vectorFieldCn () const
 Return neighbour cell centres. More...
 
const vectorFieldSf () const
 Return face area vectors, like the fvMesh::Sf() method. More...
 
const scalarFieldmagSf () const
 Return face area magnitudes, like the fvMesh::magSf() method. More...
 
tmp< vectorFieldunitSf () const
 Return face unit normals, like the fvMesh::unitSf() method. Same as nf(). More...
 
tmp< vectorFieldnf () const
 Return face unit normals, like the fvMesh::unitSf() method Same as unitSf(). More...
 
const scalarFieldweights () const
 Return patch weighting factors. More...
 
const scalarFielddeltaCoeffs () const
 Return the face - cell distance coefficient except for coupled patches for which the cell-centre to coupled-cell-centre distance coefficient is returned. More...
 
template<class Type >
void patchInternalField (const UList< Type > &internalData, const labelUList &addressing, Field< Type > &pfld) const
 Extract internal field next to patch using specified addressing. More...
 
template<class Type >
void patchInternalField (const UList< Type > &internalData, Field< Type > &pfld) const
 Extract internal field next to patch as patch field using faceCells() mapping. More...
 
template<class Type >
tmp< Field< Type > > patchInternalField (const UList< Type > &internalData) const
 Return given internal field next to patch as patch field using faceCells() mapping. More...
 
template<class GeometricField , class AnyType = bool>
const GeometricField::PatchpatchField (const GeometricField &gf) const
 Return the patch field of the GeometricField corresponding to this patch. More...
 
template<class GeometricField , class AnyType = bool>
const GeometricField::PatchlookupPatchField (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. More...
 
template<class Type >
Foam::tmp< Foam::Field< Type > > patchInternalField (const UList< Type > &internalData) const
 

Protected Member Functions

virtual void makeWeights (scalarField &) const =0
 Make patch weighting factors. More...
 

Friends

class surfaceInterpolation
 

Additional Inherited Members

- Public Types inherited from fvPatch
typedef fvBoundaryMesh BoundaryMesh
 The boundary type associated with the patch. More...
 
- Static Public Member Functions inherited from fvPatch
static autoPtr< fvPatchNew (const polyPatch &, const fvBoundaryMesh &)
 Return a pointer to a new patch created on freestore from polyPatch. More...
 
static const fvPatchlookupPatch (const polyPatch &p)
 Lookup the polyPatch index on corresponding fvMesh. More...
 
static bool constraintType (const word &patchType)
 Return true if the given type is a constraint type. More...
 
static wordList constraintTypes ()
 Return a list of all the constraint patch types. More...
 

Detailed Description

An abstract base class for patches that couple regions of the computational domain e.g. cyclic and processor-processor links.

Source files

Definition at line 49 of file coupledFvPatch.H.

Constructor & Destructor Documentation

◆ coupledFvPatch()

coupledFvPatch ( const polyPatch patch,
const fvBoundaryMesh bm 
)
inline

Construct from polyPatch.

Definition at line 85 of file coupledFvPatch.H.

◆ ~coupledFvPatch()

virtual ~coupledFvPatch ( )
virtualdefault

Destructor.

Member Function Documentation

◆ makeWeights()

virtual void makeWeights ( scalarField ) const
protectedpure virtual

Make patch weighting factors.

Reimplemented from fvPatch.

Implemented in cyclicACMIFvPatch, cyclicFvPatch, cyclicAMIFvPatch, and processorFvPatch.

◆ TypeNameNoDebug()

TypeNameNoDebug ( coupledPolyPatch::typeName_()  )

Runtime type information.

◆ coupled()

virtual bool coupled ( ) const
inlinevirtual

Return true because this patch is coupled.

Reimplemented from fvPatch.

Reimplemented in cyclicAMIFvPatch, cyclicACMIFvPatch, and processorFvPatch.

Definition at line 105 of file coupledFvPatch.H.

References coupledPolyPatch::coupled().

Here is the call graph for this function:

◆ parallel()

virtual bool parallel ( ) const
pure virtual

Are the cyclic planes parallel.

Implemented in cyclicAMIFvPatch, cyclicACMIFvPatch, processorFvPatch, cyclicFvPatch, and processorCyclicFvPatch.

◆ forwardT()

virtual const tensorField& forwardT ( ) const
pure virtual

Return face transformation tensor.

Implemented in cyclicAMIFvPatch, cyclicACMIFvPatch, processorFvPatch, cyclicFvPatch, and processorCyclicFvPatch.

◆ reverseT()

virtual const tensorField& reverseT ( ) const
pure virtual

Return neighbour-cell transformation tensor.

Implemented in cyclicAMIFvPatch, cyclicACMIFvPatch, processorFvPatch, cyclicFvPatch, and processorCyclicFvPatch.

◆ faceCells()

virtual const labelUList& faceCells ( ) const
inlinevirtual

Return faceCell addressing.

Reimplemented from fvPatch.

Definition at line 128 of file coupledFvPatch.H.

References fvPatch::faceCells().

Referenced by cyclicAMIFvPatchField< scalar >::patchNeighbourField(), and cyclicACMIFvPatchField< Type >::patchNeighbourField().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ delta()

Foam::tmp< Foam::vectorField > delta ( ) const
pure virtual

Return delta (P to N) vectors across coupled patch.

Reimplemented from fvPatch.

Implemented in cyclicAMIFvPatch, cyclicACMIFvPatch, processorFvPatch, and cyclicFvPatch.

Definition at line 33 of file coupledFvPatch.C.

References fvPatch::Cf(), and fvPatch::Cn().

Referenced by cyclicFvPatch::delta(), processorFvPatch::delta(), cyclicACMIFvPatch::delta(), cyclicAMIFvPatch::delta(), processorFvPatch::makeWeights(), cyclicFvPatch::makeWeights(), cyclicAMIFvPatch::makeWeights(), and cyclicACMIFvPatch::makeWeights().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ interfaceInternalField() [1/2]

virtual tmp<labelField> interfaceInternalField ( const labelUList internalData) const
pure virtual

Return the values of the given internal data adjacent to the interface as a field.

Implements lduInterface.

Implemented in cyclicAMIFvPatch, cyclicACMIFvPatch, processorFvPatch, and cyclicFvPatch.

◆ interfaceInternalField() [2/2]

virtual tmp<labelField> interfaceInternalField ( const labelUList internalData,
const labelUList faceCell 
) const
pure virtual

Return the values of the given internal data adjacent to the interface as a field using a mapping faceCell.

Implements lduInterface.

Implemented in cyclicAMIFvPatch, cyclicACMIFvPatch, cyclicFvPatch, and processorFvPatch.

◆ initInternalFieldTransfer() [1/4]

virtual void initInternalFieldTransfer ( const Pstream::commsTypes  commsType,
labelUList iF 
) const
inlinevirtual

Initialise neighbour field transfer.

Definition at line 170 of file coupledFvPatch.H.

◆ initInternalFieldTransfer() [2/4]

virtual void initInternalFieldTransfer ( const Pstream::commsTypes  commsType,
labelUList iF,
const labelUList faceCell 
) const
inlinevirtual

Initialise neighbour field transfer using faceCells map.

Definition at line 180 of file coupledFvPatch.H.

◆ internalFieldTransfer()

virtual tmp<labelField> internalFieldTransfer ( const Pstream::commsTypes  commsType,
const labelUList iF 
) const
pure virtual

Return neighbour field.

Implements lduInterface.

Implemented in cyclicAMIFvPatch, cyclicACMIFvPatch, processorFvPatch, and cyclicFvPatch.

◆ initInternalFieldTransfer() [3/4]

virtual void initInternalFieldTransfer
inline

Inherit initInternalFieldTransfer from lduInterface.

Definition at line 113 of file lduInterface.H.

◆ initInternalFieldTransfer() [4/4]

virtual void initInternalFieldTransfer
inline

Inherit initInternalFieldTransfer from lduInterface.

Definition at line 124 of file lduInterface.H.

Friends And Related Function Documentation

◆ surfaceInterpolation

friend class surfaceInterpolation
friend

Definition at line 71 of file coupledFvPatch.H.


The documentation for this class was generated from the following files: