39#ifndef GAMGInterface_H
40#define GAMGInterface_H
103 const labelField& neighbourRestrictAddressing,
104 const label fineLevelIndex,
105 const label coarseComm
111 localRestrictAddressing,
112 neighbourRestrictAddressing,
146 const labelField& neighbourRestrictAddressing,
147 const label fineLevelIndex,
148 const label coarseComm
155 const word& coupleType,
206 virtual label
size()
const
211 virtual label
index()
const
Abstract base class for GAMG agglomerated interfaces.
virtual label size() const
Return size.
GAMGInterface(const label index, const lduInterfacePtrsList &coarseInterfaces)
Construct from interfaces, restrict addressing set later on.
virtual const labelList & faceRestrictAddressing() const
Return (local)face restrict addressing.
virtual labelList & faceRestrictAddressing()
Return non-const access to face restrict addressing.
labelList faceRestrictAddressing_
Face restrict addressing.
GAMGInterface(const label index, const lduInterfacePtrsList &coarseInterfaces, const labelUList &faceCells, const labelUList &faceRestrictAddressing)
Construct from interfaces and restrict addressing.
virtual label index() const
tmp< Field< Type > > interfaceInternalField(const UList< Type > &internalData, const labelUList &faceCells) const
virtual const lduInterfacePtrsList & coarseInterfaces() const
void operator=(const GAMGInterface &)=delete
No copy assignment.
virtual const labelUList & faceCells() const
Return faceCell addressing.
virtual tmp< scalarField > agglomerateCoeffs(const scalarField &fineCoeffs) const
Agglomerating the given fine-level coefficients and return.
const lduInterfacePtrsList & coarseInterfaces_
All interfaces.
tmp< Field< Type > > interfaceInternalField(const UList< Type > &internalData) const
Return the interface internal field of the given field.
TypeName("GAMGInterface")
Runtime type information.
declareRunTimeSelectionTable(autoPtr, GAMGInterface, Istream,(const label index, const lduInterfacePtrsList &coarseInterfaces, Istream &is),(index, coarseInterfaces, is))
labelList faceCells_
Face-cell addressing.
static autoPtr< GAMGInterface > New(const label index, const lduInterfacePtrsList &coarseInterfaces, const lduInterface &fineInterface, const labelField &localRestrictAddressing, const labelField &neighbourRestrictAddressing, const label fineLevelIndex, const label coarseComm)
Return a pointer to a new interface created on freestore given.
const label index_
My index in coarseInterfaces.
declareRunTimeSelectionTable(autoPtr, GAMGInterface, lduInterface,(const label index, const lduInterfacePtrsList &coarseInterfaces, const lduInterface &fineInterface, const labelField &localRestrictAddressing, const labelField &neighbourRestrictAddressing, const label fineLevelIndex, const label coarseComm),(index, coarseInterfaces, fineInterface, localRestrictAddressing, neighbourRestrictAddressing, fineLevelIndex, coarseComm))
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,...
void size(const label n)
Older name for setAddressableSize.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Smooth ATC in cells next to a set of patches supplied by type.
An abstract base class for implicitly-coupled interfaces e.g. processor and cyclic patches.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
#define declareRunTimeSelectionTable(ptrWrapper, baseType, argNames, argList, parList)
Declare a run-time selection (variables and adder classes)
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.