35 const label fineLevelIndex
40 if (
ff.size() != fineToCoarse.
size())
43 <<
"field does not correspond to level " << fineLevelIndex
44 <<
" sizes: field = " <<
ff.size()
45 <<
" level = " << fineToCoarse.
size()
53 cf[fineToCoarse[i]] +=
ff[i];
63 const label coarseLevelIndex
66 const labelList& fineToCoarse = restrictAddressing_[coarseLevelIndex];
70 ff[i] = cf[fineToCoarse[i]];
#define forAll(list, i)
Loop across all elements in list.
Pre-declare SubField and related Field type.
void size(const label)
Override size to be inconsistent with allocated storage.
void prolongField(Field< Type > &ff, const Field< Type > &cf, const label coarseLevelIndex) const
Prolong (interpolate by injection) cell field.
void restrictField(Field< Type > &cf, const Field< Type > &ff, const label fineLevelIndex) const
Restrict (integrate by summation) cell field.
PtrList< labelField > restrictAddressing_
Cell restriction addressing array.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const FieldField< fvPatchField, Type > & ff(const FieldField< fvPatchField, Type > &bf)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
errorManip< error > abort(error &err)