51 coarseInterfaces_(coarseInterfaces),
53 faceRestrictAddressing_(is)
77 return interfaceInternalField<label>(internalData);
87 return interfaceInternalField<label>(internalData,
faceCells);
97 auto& coarseCoeffs = tcoarseCoeffs.ref();
99 if (fineCoeffs.
size() != faceRestrictAddressing_.size())
102 <<
"Size of coefficients " << fineCoeffs.
size()
103 <<
" does not correspond to the size of the restriction " 104 << faceRestrictAddressing_.size()
107 if (
debug &&
max(faceRestrictAddressing_) > size())
110 <<
"Face restrict addressing addresses outside of coarse interface" 111 <<
" size. Max addressing:" <<
max(faceRestrictAddressing_)
112 <<
" coarse size:" << size()
116 forAll(faceRestrictAddressing_, ffi)
118 coarseCoeffs[faceRestrictAddressing_[ffi]] += fineCoeffs[ffi];
121 return tcoarseCoeffs;
tmp< Field< Type > > interfaceInternalField(const UList< Type > &internalData) const
Return the interface internal field of the given field.
void size(const label n)
Older name for setAddressableSize.
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
labelList faceRestrictAddressing_
Face restrict addressing.
Smooth ATC in cells next to a set of patches supplied by type.
UList< label > labelUList
A UList of labels.
GAMGInterface(const GAMGInterface &)=delete
No copy construct.
#define forAll(list, i)
Loop across all elements in list.
static tmp< T > New(Args &&... args)
Construct tmp with forwarding arguments.
errorManip< error > abort(error &err)
defineRunTimeSelectionTable(reactionRateFlameArea, dictionary)
int debug
Static debugging option.
OBJstream os(runTime.globalPath()/outputName)
defineTypeNameAndDebug(combustionModel, 0)
virtual tmp< scalarField > agglomerateCoeffs(const scalarField &fineCoeffs) const
Agglomerating the given fine-level coefficients and return.
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.
static constexpr const zero Zero
Global zero (0)