51 coarseInterfaces_(coarseInterfaces),
53 faceRestrictAddressing_(is)
63 forAll(faceRestrictAddressing_, ffi)
65 faceRestrictAddressing_[ffi] = coarseFra[faceRestrictAddressing_[ffi]];
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;
Abstract base class for GAMG agglomerated interfaces.
labelList faceRestrictAddressing_
Face restrict addressing.
virtual tmp< scalarField > agglomerateCoeffs(const scalarField &fineCoeffs) const
Agglomerating the given fine-level coefficients and return.
tmp< Field< Type > > interfaceInternalField(const UList< Type > &internalData) const
Return the interface internal field of the given field.
labelList faceCells_
Face-cell addressing.
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,...
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
void size(const label n)
Older name for setAddressableSize.
Smooth ATC in cells next to a set of patches supplied by type.
virtual bool write()
Write the output fields.
An abstract base class for implicitly-coupled interfaces e.g. processor and cyclic patches.
A class for managing temporary objects.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
OBJstream os(runTime.globalPath()/outputName)
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
errorManip< error > abort(error &err)
static constexpr const zero Zero
Global zero (0)
#define defineRunTimeSelectionTable(baseType, argNames)
Define run-time selection table.
#define forAll(list, i)
Loop across all elements in list.