39 cyclicAMIGAMGInterface,
54 const label fineLevelIndex,
55 const label coarseComm
63 fineCyclicAMIInterface_
65 refCast<const cyclicAMILduInterface>(fineInterface)
78 localRestrictAddressing.
size()
83 forAll(localRestrictAddressing, ffi)
85 label curMaster = localRestrictAddressing[ffi];
92 if (fnd == masterToCoarseFace.
end())
95 label coarseI = dynFaceCells.size();
96 dynFaceRestrictAddressing.append(coarseI);
97 dynFaceCells.append(curMaster);
98 masterToCoarseFace.insert(curMaster, coarseI);
103 dynFaceRestrictAddressing.append(fnd());
107 faceCells_.transfer(dynFaceCells);
108 faceRestrictAddressing_.transfer(dynFaceRestrictAddressing);
114 if (fineCyclicAMIInterface_.owner())
125 neighbourRestrictAddressing.
size()
128 Map<label> masterToCoarseFace(neighbourRestrictAddressing.
size());
130 forAll(neighbourRestrictAddressing, ffi)
132 label curMaster = neighbourRestrictAddressing[ffi];
139 if (fnd == masterToCoarseFace.
end())
142 label coarseI = masterToCoarseFace.size();
143 dynNbrFaceRestrictAddressing.append(coarseI);
144 masterToCoarseFace.insert(curMaster, coarseI);
149 dynNbrFaceRestrictAddressing.append(fnd());
153 nbrFaceRestrictAddressing.
transfer(dynNbrFaceRestrictAddressing);
156 AMIs_.resize(fineCyclicAMIInterface_.AMIs().size());
157 AMITransforms_.resize(fineCyclicAMIInterface_.AMITransforms().size());
166 fineCyclicAMIInterface_.AMIs()[i],
167 faceRestrictAddressing_,
168 nbrFaceRestrictAddressing
172 AMITransforms_[i] = fineCyclicAMIInterface_.AMITransforms()[i];
202 pnf[facei] = iF[nbrFaceCells[facei]];
Field< label > labelField
Specialisation of Field<T> for label.
#define forAll(list, i)
Loop across all elements in list.
GAMG agglomerated cyclic AMI interface.
static iteratorEnd end()
iteratorEnd set to beyond the end of any HashTable
virtual tmp< labelField > internalFieldTransfer(const Pstream::commsTypes commsType, const labelUList &iF) const
Transfer and return internal field adjacent to the interface.
commsTypes
Types of communications.
T & ref() const
Return non-const reference or generate a fatal error.
virtual const labelUList & faceCells() const
Return faceCell addressing.
void size(const label)
Override size to be inconsistent with allocated storage.
Macros for easy insertion into run-time selection tables.
iterator find(const Key &)
Find and return an iterator set at the hashedEntry.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects...
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
addToRunTimeSelectionTable(ensightPart, ensightPartCells, istream)
defineTypeNameAndDebug(combustionModel, 0)
cyclicAMIGAMGInterface(const label index, const lduInterfacePtrsList &coarseInterfaces, const lduInterface &fineInterface, const labelField &restrictAddressing, const labelField &neighbourRestrictAddressing, const label fineLevelIndex, const label coarseComm)
Construct from fine level interface,.
Abstract base class for GAMG agglomerated interfaces.
Interpolation class dealing with transfer of data between two primitive patches with an arbitrary mes...
An abstract base class for implicitly-coupled interfaces e.g. processor and cyclic patches...
A class for managing temporary objects.
label size() const
Return the number of elements in the UList.
virtual ~cyclicAMIGAMGInterface()
Destructor.
void transfer(List< T > &)
Transfer the contents of the argument List into this list.