48 coarseInterfaces_(coarseInterfaces),
50 faceRestrictAddressing_(is)
60 forAll(faceRestrictAddressing_, ffi)
62 faceRestrictAddressing_[ffi] = coarseFra[faceRestrictAddressing_[ffi]];
74 return interfaceInternalField<label>(internalData);
86 if (fineCoeffs.
size() != faceRestrictAddressing_.size())
89 <<
"Size of coefficients " << fineCoeffs.
size()
90 <<
" does not correspond to the size of the restriction " 91 << faceRestrictAddressing_.size()
94 if (debug &&
max(faceRestrictAddressing_) > size())
97 <<
"Face restrict addressing addresses outside of coarse interface" 98 <<
" size. Max addressing:" <<
max(faceRestrictAddressing_)
99 <<
" coarse size:" << size()
103 forAll(faceRestrictAddressing_, ffi)
105 coarseCoeffs[faceRestrictAddressing_[ffi]] += fineCoeffs[ffi];
108 return tcoarseCoeffs;
114 os << faceCells_ <<
token::SPACE << faceRestrictAddressing_;
tmp< Field< Type > > interfaceInternalField(const UList< Type > &internalData) const
Return the interface internal field of the given field.
#define forAll(list, i)
Loop across all elements in list.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
T & ref() const
Return non-const reference or generate a fatal error.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
void size(const label)
Override size to be inconsistent with allocated storage.
labelList faceRestrictAddressing_
Face restrict addressing.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
errorManip< error > abort(error &err)
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
An Ostream is an abstract base class for all output systems (streams, files, token lists...
defineRunTimeSelectionTable(reactionRateFlameArea, dictionary)
defineTypeNameAndDebug(combustionModel, 0)
virtual tmp< scalarField > agglomerateCoeffs(const scalarField &fineCoeffs) const
Agglomerating the given fine-level coefficients and return.
GAMGInterface(const label index, const lduInterfacePtrsList &coarseInterfaces)
Construct from interfaces, restrict addressing set later on.
Abstract base class for GAMG agglomerated interfaces.
void combine(const GAMGInterface &)
Merge the next level with this level.
virtual void write(Ostream &) const =0
Write to stream.
labelList faceCells_
Face-cell addressing.
A class for managing temporary objects.