38#ifndef Foam_cyclicACMIGAMGInterface_H
39#define Foam_cyclicACMIGAMGInterface_H
53class cyclicACMIGAMGInterface
80 cyclicACMIGAMGInterface(
const cyclicACMIGAMGInterface&) =
delete;
83 void operator=(
const cyclicACMIGAMGInterface&) =
delete;
96 cyclicACMIGAMGInterface
102 const labelField& neighbourRestrictAddressing,
103 const label fineLevelIndex,
104 const label coarseComm
108 cyclicACMIGAMGInterface
117 cyclicACMIGAMGInterface
127 const label coarseComm,
142 const label coarseComm,
149 new cyclicACMIGAMGInterface
156 faceRestrictAddresssing,
188 return neighbPatchID_;
191 virtual bool owner()
const
196 virtual const cyclicACMIGAMGInterface&
neighbPatch()
const
198 return dynamic_cast<const cyclicACMIGAMGInterface&
>
virtual label index() const
virtual const lduInterfacePtrsList & coarseInterfaces() const
virtual const labelUList & faceCells() const
Return faceCell addressing.
const lduInterfacePtrsList & coarseInterfaces_
All interfaces.
GAMGInterface(const GAMGInterface &)=delete
No copy construct.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
commsTypes
Communications types.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
virtual const cyclicACMIGAMGInterface & neighbPatch() const
Return processor number.
virtual bool owner() const
virtual const tensorField & reverseT() const
Return neighbour-cell transformation tensor.
virtual label neighbPatchID() const
Cyclic interface functions.
TypeName("cyclicACMI")
Runtime type information.
virtual autoPtr< GAMGInterface > clone(const label index, const lduInterfacePtrsList &coarseInterfaces, const labelList &interfaceMap, const labelUList &faceCells, const labelUList &faceRestrictAddresssing, const labelUList &faceOffsets, const lduInterfacePtrsList &allInterfaces, const label coarseComm, const label myProcNo, const labelList &procAgglomMap) const
Construct by assembling and returning a clone.
virtual const AMIPatchToPatchInterpolation & AMI() const
virtual label myProcNo() const
-1 or old local rank
virtual ~cyclicACMIGAMGInterface()=default
Destructor.
virtual tmp< labelField > internalFieldTransfer(const Pstream::commsTypes commsType, const labelUList &iF) const
Transfer and return internal field adjacent to the interface.
virtual const tensorField & forwardT() const
Return face transformation tensor.
cyclicACMILduInterface() noexcept=default
Default construct.
An abstract base class for implicitly-coupled interfaces e.g. processor and cyclic patches.
A class for managing temporary objects.
List< label > labelList
A List of labels.
UPtrList< const lduInterface > lduInterfacePtrsList
Store lists of lduInterface as a UPtrList.
AMIInterpolation AMIPatchToPatchInterpolation
Patch-to-patch interpolation == Foam::AMIInterpolation.
Field< label > labelField
Specialisation of Field<T> for label.
Field< tensor > tensorField
Specialisation of Field<T> for tensor.
UList< label > labelUList
A UList of labels.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.