coupledFaPatch Class Referenceabstract

coupledFaPatch is an abstract base class for patches that couple regions of the computational domain e.g. cyclic, arbitrary interfaces, sliding interfaces and processor-processor links. More...

Inheritance diagram for coupledFaPatch:
[legend]
Collaboration diagram for coupledFaPatch:
[legend]

Public Member Functions

 TypeName ("coupled")
 Runtime type information. More...
 
 coupledFaPatch (const word &name, const labelList &edgeLabels, const label index, const faBoundaryMesh &bm, const label ngbPolyPatchIndex)
 Construct from components. More...
 
 coupledFaPatch (const word &name, const dictionary &dict, const label index, const faBoundaryMesh &bm)
 Construct from dictionary. More...
 
virtual ~coupledFaPatch ()
 Destructor. More...
 
virtual bool coupled () const
 Return true because this patch is coupled. More...
 
bool separated () const
 Are the coupled planes separated. More...
 
const vectorFieldseparation () const
 Return the offset (distance) vector from one side of the couple. More...
 
const tensorFieldforwardT () const
 Return face transformation tensor. More...
 
const tensorFieldreverseT () const
 Return neighbour-cell transformation tensor. More...
 
bool parallel () const
 Are the cyclic planes parallel. More...
 
virtual void initGeometry ()=0
 Initialise the calculation of the patch geometry. More...
 
virtual void calcGeometry ()=0
 Calculate the patch geometry. More...
 
virtual void initMovePoints (const pointField &)=0
 Initialise the patches for moving points. More...
 
virtual void movePoints (const pointField &)=0
 Correct patches after moving points. More...
 
virtual tmp< vectorFielddelta () const =0
 Return delta (P to N) vectors across coupled patch. More...
 
virtual const labelUListfaceCells () const
 Return faceCell addressing: lduInterface virtual function. More...
 
virtual tmp< labelFieldinterfaceInternalField (const labelUList &internalData) const =0
 Return the values of the given internal data adjacent to. More...
 
virtual void initTransfer (const Pstream::commsTypes commsType, const labelUList &interfaceData) const
 Initialise interface data transfer. More...
 
virtual tmp< labelFieldtransfer (const Pstream::commsTypes commsType, const labelUList &interfaceData) const =0
 Transfer and return neighbour field. More...
 
virtual void initInternalFieldTransfer (const Pstream::commsTypes commsType, const labelUList &iF) const
 Initialise neighbour field transfer. More...
 
virtual tmp< labelFieldinternalFieldTransfer (const Pstream::commsTypes commsType, const labelUList &iF) const =0
 Return neighbour field. More...
 
- Public Member Functions inherited from lduInterface
 TypeName ("lduInterface")
 Runtime type information. More...
 
 lduInterface ()=default
 Construct null. More...
 
virtual ~lduInterface ()=default
 Destructor. More...
 
- Public Member Functions inherited from faPatch
 TypeName ("patch")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, faPatch, dictionary,(const word &name, const dictionary &dict, const label index, const faBoundaryMesh &bm),(name, dict, index, bm))
 
 faPatch (const word &name, const labelList &edgeLabels, const label index, const faBoundaryMesh &bm, const label ngbPolyPatchIndex)
 Construct from components. More...
 
 faPatch (const word &name, const dictionary &dict, const label index, const faBoundaryMesh &bm)
 Construct from dictionary. More...
 
 faPatch (const faPatch &, const faBoundaryMesh &)
 Construct as copy, resetting the boundary mesh. More...
 
virtual autoPtr< faPatchclone (const faBoundaryMesh &bm, const labelList &edgeLabels, const label index, const label ngbPolyPatchIndex) const
 
virtual ~faPatch ()
 Destructor. More...
 
label nPoints () const
 Return number of patch points. More...
 
label ngbPolyPatchIndex () const
 Return neighbour polyPatch index. More...
 
const faBoundaryMeshboundaryMesh () const
 Return boundaryMesh reference. More...
 
label start () const
 Patch start in edge list. More...
 
virtual label size () const
 Patch size. More...
 
label whichEdge (const label l) const
 Return label of edge in patch from global edge label. More...
 
template<class T >
List< T >::subList patchSlice (const List< T > &l) const
 Slice list to patch. More...
 
virtual void write (Ostream &) const
 Write. More...
 
const labelListpointLabels () const
 Return patch point labels. More...
 
const labelListListpointEdges () const
 Return patch point-edge addressing. More...
 
labelList ngbPolyPatchFaces () const
 Return edge neighbour polyPatch faces. More...
 
tmp< vectorFieldngbPolyPatchFaceNormals () const
 Return normals of neighbour polyPatch faces. More...
 
tmp< vectorFieldngbPolyPatchPointNormals () const
 Return normals of neighbour polyPatch joined points. More...
 
const labelUListedgeFaces () const
 Return edge-face addressing. More...
 
const vectorFieldedgeCentres () const
 Return edge centres. More...
 
const vectorFieldedgeLengths () const
 Return edge length vectors. More...
 
const scalarFieldmagEdgeLengths () const
 Return edge length magnitudes. More...
 
tmp< vectorFieldedgeNormals () const
 Return edge normals. More...
 
tmp< vectorFieldedgeFaceCentres () const
 Return neighbour face centres. More...
 
const scalarFieldweights () const
 Return patch weighting factors. More...
 
void makeCorrectionVectors (vectorField &) const
 
const scalarFielddeltaCoeffs () const
 Return patch edge - neighbour face distances. More...
 
void resetEdges (const labelList &)
 Reset edge list. More...
 
template<class Type >
tmp< Field< Type > > patchInternalField (const UList< Type > &) const
 Return given internal field next to patch as patch field. More...
 
template<class GeometricField , class Type >
const GeometricField::PatchpatchField (const GeometricField &) const
 Return the corresponding patchField of the named field. More...
 
template<class GeometricField , class Type >
const GeometricField::PatchlookupPatchField (const word &name, const GeometricField *=nullptr, const Type *=nullptr) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > patchInternalField (const UList< Type > &f) const
 
- Public Member Functions inherited from List< label >
constexpr List () noexcept
 Null constructor. More...
 
 List (const label len)
 Construct with given size. More...
 
 List (const label len, const label &val)
 Construct with given size and value for all elements. More...
 
 List (const label len, const Foam::zero)
 Construct with given size initializing all elements to zero. More...
 
 List (const Foam::one, const label &val)
 Construct with length=1, copying the value as the only content. More...
 
 List (const Foam::one, label &&val)
 Construct with length=1, moving the value as the only content. More...
 
 List (const Foam::one, const Foam::zero)
 Construct with length=1, initializing content to zero. More...
 
 List (const List< label > &a)
 Copy construct from list. More...
 
 List (const UList< label > &a)
 Copy construct contents from list. More...
 
 List (List< label > &a, bool reuse)
 Construct as copy or re-use as specified. More...
 
 List (const UList< label > &list, const labelUList &indices)
 Copy construct subset of list. More...
 
 List (const UList< label > &list, const FixedList< label, N > &indices)
 Copy construct subset of list. More...
 
 List (InputIterator begIter, InputIterator endIter)
 Construct given begin/end iterators. More...
 
 List (const FixedList< label, N > &list)
 Construct as copy of FixedList<T, N> More...
 
 List (const PtrList< label > &list)
 Construct as copy of PtrList<T> More...
 
 List (const SLList< label > &list)
 Construct as copy of SLList<T> More...
 
 List (const IndirectListBase< label, Addr > &list)
 Construct as copy of IndirectList contents. More...
 
 List (std::initializer_list< label > list)
 Construct from an initializer list. More...
 
 List (List< label > &&list)
 Move construct from List. More...
 
 List (DynamicList< label, SizeMin > &&list)
 Move construct from DynamicList. More...
 
 List (SortableList< label > &&list)
 Move construct from SortableList. More...
 
 List (SLList< label > &&list)
 Move construct from SLList. More...
 
 List (Istream &is)
 Construct from Istream. More...
 
autoPtr< List< label > > clone () const
 Clone. More...
 
 ~List ()
 Destructor. More...
 
void resize (const label newSize)
 Adjust allocated size of list. More...
 
void resize (const label newSize, const label &val)
 Adjust allocated size of list and set val for new elements. More...
 
void resize (const label newSize)
 
void setSize (const label newSize)
 Alias for resize(const label) More...
 
void setSize (const label newSize, const label &val)
 Alias for resize(const label, const T&) More...
 
void clear ()
 Clear the list, i.e. set size to zero. More...
 
void append (const label &val)
 Append an element at the end of the list. More...
 
void append (label &&val)
 Move append an element at the end of the list. More...
 
void append (const UList< label > &list)
 Append a List to the end of this list. More...
 
void append (const IndirectListBase< label, Addr > &list)
 Append IndirectList contents at the end of this list. More...
 
void transfer (List< label > &list)
 
void transfer (DynamicList< label, SizeMin > &list)
 
void transfer (SortableList< label > &list)
 
label & newElmt (const label i)
 
void operator= (const UList< label > &a)
 Assignment to UList operator. Takes linear time. More...
 
void operator= (const List< label > &list)
 Assignment operator. Takes linear time. More...
 
void operator= (const SLList< label > &list)
 Assignment to SLList operator. Takes linear time. More...
 
void operator= (const IndirectListBase< label, Addr > &list)
 Assignment from IndirectList. Takes linear time. More...
 
void operator= (const FixedList< label, N > &list)
 Copy assignment from FixedList. More...
 
void operator= (std::initializer_list< label > list)
 Assignment to an initializer list. More...
 
void operator= (const label &val)
 Assignment of all entries to the given value. More...
 
void operator= (const Foam::zero)
 Assignment of all entries to zero. More...
 
void operator= (List< label > &&list)
 Move assignment. Takes constant time. More...
 
void operator= (DynamicList< label, SizeMin > &&list)
 Move assignment. Takes constant time. More...
 
void operator= (SortableList< label > &&list)
 Move assignment. Takes constant time. More...
 
void operator= (SLList< label > &&list)
 Move assignment. Takes constant time. More...
 
void shallowCopy (const UList< label > &)=delete
 No shallowCopy permitted. More...
 
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type set (const label i, bool val=true)
 A bitSet::set() method for a list of bool. More...
 
- Public Member Functions inherited from patchIdentifier
 patchIdentifier (const patchIdentifier &)=default
 Copy construct. More...
 
patchIdentifieroperator= (const patchIdentifier &)=default
 Copy assignment. More...
 
virtual ~patchIdentifier ()=default
 Destructor. More...
 
 patchIdentifier ()
 Default construct, with index zero. More...
 
 patchIdentifier (const word &name, const label index)
 Construct from mandatory components. More...
 
 patchIdentifier (const word &name, const label index, const word &physicalType, const wordList &inGroups=wordList())
 Construct from components. More...
 
 patchIdentifier (const word &name, const dictionary &dict, const label index)
 Construct from dictionary. More...
 
 patchIdentifier (const patchIdentifier &p, const label index)
 Copy construct, resetting the index. More...
 
const wordname () const
 The patch name. More...
 
wordname ()
 Modifiable patch name. More...
 
const wordphysicalType () const
 The (optional) physical type of the patch. More...
 
wordphysicalType ()
 Modifiable (optional) physical type of the patch. More...
 
label index () const
 The index of this patch in the boundaryMesh. More...
 
label & index ()
 Modifiable index of this patch in the boundaryMesh. More...
 
const wordListinGroups () const
 The (optional) groups that the patch belongs to. More...
 
wordListinGroups ()
 Modifiable (optional) groups that the patch belongs to. More...
 
bool inGroup (const word &name) const
 True if the patch is in named group. More...
 
void write (Ostream &os) const
 

Protected Member Functions

virtual void makeWeights (scalarField &) const =0
 Make patch weighting factors. More...
 
virtual void makeDeltaCoeffs (scalarField &) const =0
 Make patch face - neighbour cell distances. More...
 
void calcTransformTensors (const vector &Cf, const vector &Cr, const vector &nf, const vector &nr) const
 Calculate the uniform transformation tensors. More...
 
void calcTransformTensors (const vectorField &Cf, const vectorField &Cr, const vectorField &nf, const vectorField &nr) const
 Calculate the transformation tensors. More...
 
- Protected Member Functions inherited from faPatch
void calcPointLabels () const
 Calculate patch point labels. More...
 
void calcPointEdges () const
 Calculate patch point-edge addressing. More...
 
virtual void initUpdateMesh ()
 Initialise the update of the patch topology. More...
 
virtual void updateMesh ()
 Update of the patch topology. More...
 

Additional Inherited Members

- Public Types inherited from faPatch
typedef faBoundaryMesh BoundaryMesh
 
- Public Types inherited from List< label >
typedef SubList< label > subList
 Declare type of subList. More...
 
- Static Public Member Functions inherited from faPatch
static autoPtr< faPatchNew (const word &name, const dictionary &dict, const label index, const faBoundaryMesh &bm)
 
- Static Public Member Functions inherited from List< label >
static const List< label > & null ()
 Return a null List. More...
 
- Static Public Member Functions inherited from patchIdentifier
static word defaultName (const label n=-1)
 Default patch name: "patch" or "patchN". More...
 

Detailed Description

coupledFaPatch is an abstract base class for patches that couple regions of the computational domain e.g. cyclic, arbitrary interfaces, sliding interfaces and processor-processor links.

Author Zeljko Tukovic and Hrvoje Jasak

Source files

Definition at line 56 of file coupledFaPatch.H.

Constructor & Destructor Documentation

◆ coupledFaPatch() [1/2]

coupledFaPatch ( const word name,
const labelList edgeLabels,
const label  index,
const faBoundaryMesh bm,
const label  ngbPolyPatchIndex 
)
inline

Construct from components.

Definition at line 112 of file coupledFaPatch.H.

◆ coupledFaPatch() [2/2]

coupledFaPatch ( const word name,
const dictionary dict,
const label  index,
const faBoundaryMesh bm 
)
inline

Construct from dictionary.

Definition at line 125 of file coupledFaPatch.H.

◆ ~coupledFaPatch()

~coupledFaPatch ( )
virtual

Destructor.

Definition at line 122 of file coupledFaPatch.C.

Member Function Documentation

◆ makeWeights()

virtual void makeWeights ( scalarField ) const
protectedpure virtual

Make patch weighting factors.

Reimplemented from faPatch.

Implemented in processorFaPatch, and cyclicFaPatch.

◆ makeDeltaCoeffs()

virtual void makeDeltaCoeffs ( scalarField ) const
protectedpure virtual

Make patch face - neighbour cell distances.

Reimplemented from faPatch.

Implemented in processorFaPatch, and cyclicFaPatch.

◆ calcTransformTensors() [1/2]

void calcTransformTensors ( const vector Cf,
const vector Cr,
const vector nf,
const vector nr 
) const
protected

Calculate the uniform transformation tensors.

Definition at line 41 of file coupledFaPatch.C.

References Foam::mag(), and Foam::rotationTensor().

Here is the call graph for this function:

◆ calcTransformTensors() [2/2]

void calcTransformTensors ( const vectorField Cf,
const vectorField Cr,
const vectorField nf,
const vectorField nr 
) const
protected

Calculate the transformation tensors.

Definition at line 75 of file coupledFaPatch.C.

References forAll, Foam::mag(), Foam::rotationTensor(), and Foam::sum().

Here is the call graph for this function:

◆ TypeName()

TypeName ( "coupled"  )

Runtime type information.

◆ coupled()

virtual bool coupled ( ) const
inlinevirtual

Return true because this patch is coupled.

Reimplemented from faPatch.

Reimplemented in processorFaPatch.

Definition at line 145 of file coupledFaPatch.H.

◆ separated()

bool separated ( ) const
inline

Are the coupled planes separated.

Definition at line 152 of file coupledFaPatch.H.

◆ separation()

const vectorField& separation ( ) const
inline

Return the offset (distance) vector from one side of the couple.

to the other

Definition at line 159 of file coupledFaPatch.H.

◆ forwardT()

const tensorField& forwardT ( ) const
inline

Return face transformation tensor.

Definition at line 172 of file coupledFaPatch.H.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Referenced by cyclicFaPatch::forwardT(), and processorFaPatch::forwardT().

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

◆ reverseT()

const tensorField& reverseT ( ) const
inline

Return neighbour-cell transformation tensor.

Definition at line 185 of file coupledFaPatch.H.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Referenced by cyclicFaPatch::reverseT().

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

◆ parallel()

bool parallel ( ) const
inline

Are the cyclic planes parallel.

Definition at line 198 of file coupledFaPatch.H.

Referenced by cyclicFaPatchField< Type >::doTransform(), and processorFaPatchField< Type >::doTransform().

Here is the caller graph for this function:

◆ initGeometry()

virtual void initGeometry ( )
pure virtual

Initialise the calculation of the patch geometry.

Reimplemented from faPatch.

Implemented in cyclicFaPatch, and processorFaPatch.

◆ calcGeometry()

virtual void calcGeometry ( )
pure virtual

Calculate the patch geometry.

Reimplemented from faPatch.

Implemented in cyclicFaPatch, and processorFaPatch.

◆ initMovePoints()

virtual void initMovePoints ( const pointField )
pure virtual

Initialise the patches for moving points.

Reimplemented from faPatch.

Implemented in cyclicFaPatch, and processorFaPatch.

◆ movePoints()

virtual void movePoints ( const pointField )
pure virtual

Correct patches after moving points.

Reimplemented from faPatch.

Implemented in cyclicFaPatch, and processorFaPatch.

◆ delta()

virtual tmp<vectorField> delta ( ) const
pure virtual

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

Reimplemented from faPatch.

Implemented in processorFaPatch, and cyclicFaPatch.

◆ faceCells()

virtual const labelUList& faceCells ( ) const
inlinevirtual

Return faceCell addressing: lduInterface virtual function.

Implements lduInterface.

Definition at line 226 of file coupledFaPatch.H.

References faPatch::edgeFaces().

Here is the call graph for this function:

◆ interfaceInternalField()

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 processorFaPatch, and cyclicFaPatch.

◆ initTransfer()

virtual void initTransfer ( const Pstream::commsTypes  commsType,
const labelUList interfaceData 
) const
inlinevirtual

Initialise interface data transfer.

Reimplemented in processorFaPatch.

Definition at line 240 of file coupledFaPatch.H.

◆ transfer()

virtual tmp<labelField> transfer ( const Pstream::commsTypes  commsType,
const labelUList interfaceData 
) const
pure virtual

Transfer and return neighbour field.

Implemented in processorFaPatch, and cyclicFaPatch.

◆ initInternalFieldTransfer()

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

Initialise neighbour field transfer.

Reimplemented from lduInterface.

Reimplemented in processorFaPatch.

Definition at line 255 of file coupledFaPatch.H.

◆ internalFieldTransfer()

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

Return neighbour field.

Implements lduInterface.

Implemented in processorFaPatch, and cyclicFaPatch.


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