72Foam::cyclicGAMGInterface::cyclicGAMGInterface
79 const label fineLevelIndex,
80 const label coarseComm
97 localRestrictAddressing.
size()
103 forAll(localRestrictAddressing, ffi)
114 localRestrictAddressing[ffi],
115 neighbourRestrictAddressing[ffi]
123 neighbourRestrictAddressing[ffi],
124 localRestrictAddressing[ffi]
128 const auto fnd = cellsToCoarseFace.cfind(cellPair);
133 dynFaceRestrictAddressing.append(fnd.val());
138 label coarseI = dynFaceCells.size();
139 dynFaceRestrictAddressing.append(coarseI);
140 dynFaceCells.append(localRestrictAddressing[ffi]);
141 cellsToCoarseFace.insert(cellPair, coarseI);
150Foam::cyclicGAMGInterface::cyclicGAMGInterface
157 GAMGInterface(index, coarseInterfaces, is),
165Foam::cyclicGAMGInterface::cyclicGAMGInterface
182 faceRestrictAddresssing
209 auto& pnf = tpnf.ref();
213 pnf[facei] = iF[nbrFaceCells[facei]];
Macros for easy insertion into run-time selection tables.
#define addNamedToRunTimeSelectionTable(baseType, thisType, argNames, lookupName)
Add to construction table with 'lookupName' as the key.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
void append(const T &val)
Copy append an element to the end of this list.
Abstract base class for GAMG agglomerated interfaces.
virtual label size() const
Return size.
labelList faceRestrictAddressing_
Face restrict addressing.
virtual label index() const
virtual const lduInterfacePtrsList & coarseInterfaces() const
virtual const labelUList & faceCells() const
Return faceCell addressing.
labelList faceCells_
Face-cell addressing.
GAMGInterface(const GAMGInterface &)=delete
No copy construct.
virtual void write(Ostream &) const =0
Write to stream.
const_iterator cfind(const Key &key) const
Find and return an const_iterator set at the hashed entry.
bool insert(const Key &key, const T &obj)
Copy insert a new entry, not overwriting existing entries.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
void transfer(List< T > &list)
Transfer the contents of the argument List into this list and annul the argument list.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
void size(const label n)
Older name for setAddressableSize.
commsTypes
Communications types.
GAMG agglomerated cyclic interface.
virtual bool owner() const
virtual const tensorField & reverseT() const
Return neighbour-cell transformation tensor.
virtual label neighbPatchID() const
Cyclic interface functions.
virtual void write(Ostream &os) const
Write to stream.
virtual const cyclicGAMGInterface & neighbPatch() const
Return processor number.
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.
An abstract base class for cyclic coupled interfaces.
cyclicLduInterface() noexcept=default
Default construct.
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.
static tmp< T > New(Args &&... args)
Construct tmp with forwarding arguments.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
OBJstream os(runTime.globalPath()/outputName)
A HashTable to objects of type <T> with a labelPair key. The hashing is based on labelPair (FixedList...
Type & refCast(U &obj)
A dynamic_cast (for references) to Type reference.
Pair< label > labelPair
A pair of labels.
List< label > labelList
A List of labels.
label readLabel(const char *buf)
Parse entire buffer as a label, skipping leading/trailing whitespace.
UPtrList< const lduInterface > lduInterfacePtrsList
Store lists of lduInterface as a UPtrList.
HashTable< label, labelPair, Foam::Hash< labelPair > > labelPairLookup
This is a Map of a labelPair to a label. Used for e.g. for face1, face2 to shared edge....
Field< label > labelField
Specialisation of Field<T> for label.
UList< label > labelUList
A UList of labels.
bool readBool(Istream &is)
Read bool from stream using Foam::Switch(Istream&).
#define forAll(list, i)
Loop across all elements in list.