cyclicACMIFvPatch Class Reference

Cyclic patch for Arbitrarily Coupled Mesh Interface (ACMI) More...

Inheritance diagram for cyclicACMIFvPatch:
Collaboration diagram for cyclicACMIFvPatch:

Public Member Functions

 TypeName (cyclicACMIPolyPatch::typeName_())
 Runtime type information. More...
 
 cyclicACMIFvPatch (const polyPatch &patch, const fvBoundaryMesh &bm)
 Construct from polyPatch. More...
 
const cyclicACMIPolyPatchcyclicACMIPatch () const
 Return local reference cast into the cyclic patch. More...
 
virtual label neighbPatchID () const
 Return neighbour. More...
 
virtual bool owner () const
 
virtual const cyclicACMIFvPatchneighbPatch () const
 Return neighbour fvPatch. More...
 
virtual label nonOverlapPatchID () const
 Return neighbour. More...
 
virtual const fvPatchnonOverlapPatch () const
 Return non-overlapping fvPatch. More...
 
virtual const AMIPatchToPatchInterpolationAMI () const
 Return a reference to the AMI interpolator. More...
 
virtual bool parallel () const
 Are the cyclic planes parallel. More...
 
virtual const tensorFieldforwardT () const
 Return face transformation tensor. More...
 
virtual const tensorFieldreverseT () const
 Return neighbour-cell transformation tensor. More...
 
const cyclicACMIFvPatchneighbFvPatch () const
 
virtual bool coupled () const
 Return true if this patch is coupled. More...
 
virtual tmp< vectorFielddelta () const
 Return delta (P to N) vectors across coupled patch. More...
 
template<class Type >
tmp< Field< Type > > interpolate (const Field< Type > &fld) const
 Interpolate (make sure to have uptodate areas) More...
 
template<class Type >
tmp< Field< Type > > interpolate (const tmp< Field< Type >> &tfld) const
 Interpolate (make sure to have up-to-date areas) More...
 
template<class Type >
void initInterpolate (const Field< Type > &fld, labelRange &sendRequests, PtrList< List< Type >> &sendBuffers, labelRange &recvRequests, PtrList< List< Type >> &recvBuffers) const
 
template<class Type >
tmp< Field< Type > > interpolate (const Field< Type > &localFld, const labelRange &requests, const PtrList< List< Type >> &recvBuffers) const
 
virtual tmp< labelFieldinterfaceInternalField (const labelUList &internalData) const
 Return the values of the given internal data adjacent to the interface as a field. More...
 
virtual tmp< labelFieldinterfaceInternalField (const labelUList &internalData, const labelUList &faceCells) const
 Return the values of the given internal data adjacent to the interface as a field using a mapping faceCell. More...
 
virtual tmp< labelFieldinternalFieldTransfer (const Pstream::commsTypes commsType, const labelUList &internalData) const
 Return neighbour field. More...
 
- Public Member Functions inherited from coupledFvPatch
 TypeNameNoDebug (coupledPolyPatch::typeName_())
 Runtime type information. More...
 
 coupledFvPatch (const polyPatch &patch, const fvBoundaryMesh &bm)
 Construct from polyPatch. More...
 
virtual ~coupledFvPatch ()=default
 Destructor. More...
 
virtual const labelUListfaceCells () const
 Return faceCell addressing. 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 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...
 
 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
 
- Public Member Functions inherited from cyclicACMILduInterface
 TypeNameNoDebug ("cyclicACMILduInterface")
 Runtime type information. More...
 
 cyclicACMILduInterface () noexcept=default
 Default construct. More...
 
virtual ~cyclicACMILduInterface ()=default
 Destructor. More...
 
- Public Member Functions inherited from cyclicAMILduInterface
 TypeNameNoDebug ("cyclicAMILduInterface")
 Runtime type information. More...
 
 cyclicAMILduInterface () noexcept=default
 Default construct. More...
 
virtual ~cyclicAMILduInterface ()=default
 Destructor. More...
 

Protected Member Functions

virtual bool updateAreas () const
 Update the AMI and patch areas. Return true if anything updated. More...
 
void resetPatchAreas (const fvPatch &fvp) const
 Helper function to reset the FV patch areas from the primitive patch. More...
 
void makeWeights (scalarField &) const
 Make patch weighting factors. More...
 
virtual void movePoints ()
 Correct patches after moving points. More...
 

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

Cyclic patch for Arbitrarily Coupled Mesh Interface (ACMI)

Source files

Definition at line 50 of file cyclicACMIFvPatch.H.

Constructor & Destructor Documentation

◆ cyclicACMIFvPatch()

cyclicACMIFvPatch ( const polyPatch patch,
const fvBoundaryMesh bm 
)

Construct from polyPatch.

Definition at line 136 of file cyclicACMIFvPatch.C.

Member Function Documentation

◆ updateAreas()

bool updateAreas ( ) const
protectedvirtual

◆ resetPatchAreas()

void resetPatchAreas ( const fvPatch fvp) const
protected

Helper function to reset the FV patch areas from the primitive patch.

Definition at line 76 of file cyclicACMIFvPatch.C.

References fvPatch::Cf(), DebugPout, Foam::endl(), polyPatch::faceAreas(), polyPatch::faceCentres(), Foam::mag(), fvPatch::magSf(), patchIdentifier::name(), fvPatch::patch(), fvPatch::Sf(), and Foam::sum().

Referenced by cyclicACMIFvPatch::updateAreas().

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

◆ makeWeights()

void makeWeights ( scalarField w) const
protectedvirtual

Make patch weighting factors.

Implements coupledFvPatch.

Definition at line 87 of file cyclicACMIFvPatch.C.

References coupled, coupledFvPatch::delta(), forAll, Foam::interpolate(), Foam::mag(), fvPatch::makeWeights(), fvPatch::nf(), and cyclicACMIPolyPatch::tolerance().

Here is the call graph for this function:

◆ movePoints()

void movePoints ( )
protectedvirtual

◆ TypeName()

TypeName ( cyclicACMIPolyPatch::typeName_()  )

Runtime type information.

◆ cyclicACMIPatch()

const cyclicACMIPolyPatch& cyclicACMIPatch ( ) const
inline

Return local reference cast into the cyclic patch.

Definition at line 123 of file cyclicACMIFvPatch.H.

Referenced by cyclicACMIFvPatchField< Type >::fixesValue(), and cyclicACMIFvPatch::movePoints().

Here is the caller graph for this function:

◆ neighbPatchID()

virtual label neighbPatchID ( ) const
inlinevirtual

Return neighbour.

Implements cyclicAMILduInterface.

Definition at line 131 of file cyclicACMIFvPatch.H.

References cyclicAMIPolyPatch::neighbPatchID().

Here is the call graph for this function:

◆ owner()

virtual bool owner ( ) const
inlinevirtual

Implements cyclicAMILduInterface.

Definition at line 136 of file cyclicACMIFvPatch.H.

References cyclicAMIPolyPatch::owner().

Here is the call graph for this function:

◆ neighbPatch()

virtual const cyclicACMIFvPatch& neighbPatch ( ) const
inlinevirtual

Return neighbour fvPatch.

Implements cyclicAMILduInterface.

Definition at line 144 of file cyclicACMIFvPatch.H.

References fvPatch::boundaryMesh(), and cyclicAMIPolyPatch::neighbPatchID().

Referenced by cyclicACMIFvPatchField< Type >::initEvaluate(), and cyclicACMIFvPatch::updateAreas().

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

◆ nonOverlapPatchID()

virtual label nonOverlapPatchID ( ) const
inlinevirtual

Return neighbour.

Definition at line 155 of file cyclicACMIFvPatch.H.

References cyclicACMIPolyPatch::nonOverlapPatchID().

Referenced by cyclicACMIFvPatch::nonOverlapPatch().

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

◆ nonOverlapPatch()

virtual const fvPatch& nonOverlapPatch ( ) const
inlinevirtual

Return non-overlapping fvPatch.

Definition at line 163 of file cyclicACMIFvPatch.H.

References fvPatch::boundaryMesh(), and cyclicACMIFvPatch::nonOverlapPatchID().

Referenced by cyclicACMIFvPatch::movePoints(), and cyclicACMIFvPatch::updateAreas().

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

◆ AMI()

virtual const AMIPatchToPatchInterpolation& AMI ( ) const
inlinevirtual

Return a reference to the AMI interpolator.

Implements cyclicAMILduInterface.

Definition at line 171 of file cyclicACMIFvPatch.H.

References cyclicAMIPolyPatch::AMI().

Here is the call graph for this function:

◆ parallel()

virtual bool parallel ( ) const
inlinevirtual

Are the cyclic planes parallel.

Implements coupledFvPatch.

Definition at line 179 of file cyclicACMIFvPatch.H.

References coupledPolyPatch::parallel().

Referenced by cyclicACMIFvPatchField< Type >::doTransform().

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

◆ forwardT()

virtual const tensorField& forwardT ( ) const
inlinevirtual

Return face transformation tensor.

Implements coupledFvPatch.

Definition at line 187 of file cyclicACMIFvPatch.H.

References coupledPolyPatch::forwardT().

Referenced by cyclicACMIFvPatchField< Type >::forwardT().

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

◆ reverseT()

virtual const tensorField& reverseT ( ) const
inlinevirtual

Return neighbour-cell transformation tensor.

Implements coupledFvPatch.

Definition at line 195 of file cyclicACMIFvPatch.H.

References coupledPolyPatch::reverseT().

Referenced by cyclicACMIFvPatchField< Type >::reverseT().

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

◆ neighbFvPatch()

const cyclicACMIFvPatch& neighbFvPatch ( ) const
inline

Definition at line 200 of file cyclicACMIFvPatch.H.

References fvPatch::boundaryMesh(), and cyclicAMIPolyPatch::neighbPatchID().

Here is the call graph for this function:

◆ coupled()

bool coupled ( ) const
virtual

Return true if this patch is coupled.

This is equivalent to coupledPolyPatch::coupled() if parallel running or both sides present, false otherwise

Reimplemented from coupledFvPatch.

Definition at line 226 of file cyclicACMIFvPatch.C.

References UPstream::parRun().

Here is the call graph for this function:

◆ delta()

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

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

Implements coupledFvPatch.

Definition at line 232 of file cyclicACMIFvPatch.C.

References coupled, coupledFvPatch::delta(), forAll, Foam::interpolate(), tmp< T >::New(), UList< T >::size(), and Foam::transform().

Here is the call graph for this function:

◆ interpolate() [1/3]

tmp<Field<Type> > interpolate ( const Field< Type > &  fld) const
inline

Interpolate (make sure to have uptodate areas)

Definition at line 226 of file cyclicACMIFvPatch.H.

References fld, and cyclicACMIFvPatch::updateAreas().

Referenced by cyclicACMIFvPatch::interpolate().

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

◆ interpolate() [2/3]

tmp<Field<Type> > interpolate ( const tmp< Field< Type >> &  tfld) const
inline

Interpolate (make sure to have up-to-date areas)

Definition at line 245 of file cyclicACMIFvPatch.H.

References cyclicACMIFvPatch::interpolate().

Here is the call graph for this function:

◆ initInterpolate()

void initInterpolate ( const Field< Type > &  fld,
labelRange sendRequests,
PtrList< List< Type >> &  sendBuffers,
labelRange recvRequests,
PtrList< List< Type >> &  recvBuffers 
) const
inline

Definition at line 256 of file cyclicACMIFvPatch.H.

References fld, cyclicAMIPolyPatch::initInterpolate(), and cyclicACMIFvPatch::updateAreas().

Here is the call graph for this function:

◆ interpolate() [3/3]

tmp<Field<Type> > interpolate ( const Field< Type > &  localFld,
const labelRange requests,
const PtrList< List< Type >> &  recvBuffers 
) const
inline

Definition at line 279 of file cyclicACMIFvPatch.H.

References cyclicAMIPolyPatch::interpolate().

Here is the call graph for this function:

◆ interfaceInternalField() [1/2]

Foam::tmp< Foam::labelField > interfaceInternalField ( const labelUList internalData) const
virtual

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

Implements coupledFvPatch.

Definition at line 277 of file cyclicACMIFvPatch.C.

◆ interfaceInternalField() [2/2]

Foam::tmp< Foam::labelField > interfaceInternalField ( const labelUList internalData,
const labelUList faceCells 
) const
virtual

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

Implements coupledFvPatch.

Definition at line 286 of file cyclicACMIFvPatch.C.

References tmp< T >::New().

Here is the call graph for this function:

◆ internalFieldTransfer()

Foam::tmp< Foam::labelField > internalFieldTransfer ( const Pstream::commsTypes  commsType,
const labelUList internalData 
) const
virtual

Return neighbour field.

Implements coupledFvPatch.

Definition at line 298 of file cyclicACMIFvPatch.C.


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