35 bool Foam::functionObjects::columnAverage::columnAverageField
40 typedef GeometricField<Type, fvPatchField, volMesh> fieldType;
42 const fieldType* fldPtr = cfindObject<fieldType>(fieldName);
46 const fieldType&
fld = *fldPtr;
48 const word resultName(averageName(fieldName));
54 resPtr =
new fieldType
59 fld.mesh().time().timeName(),
66 obr_.objectRegistry::store(resPtr);
68 fieldType& res = *resPtr;
70 const meshStructure& ms = meshAddressing(
fld.mesh());
71 if (globalFaces_().empty())
76 const labelList& cellToPatchFace = ms.cellToPatchFaceAddressing();
79 Field<Type> regionField(globalFaces_().size(),
Zero);
80 labelList regionCount(globalFaces_().size(), 0);
82 forAll(cellToPatchFace, celli)
84 const label regioni = cellToPatchFace[celli];
85 regionField[regioni] +=
fld[celli];
86 regionCount[regioni]++;
95 forAll(regionField, regioni)
97 regionField[regioni] /= regionCount[regioni];
101 forAll(cellToPatchFace, celli)
103 const label regioni = cellToPatchFace[celli];
104 res[celli] = regionField[regioni];
106 res.correctBoundaryConditions();