38 namespace functionObjects
56 { operationType::opNone,
"none" },
57 { operationType::opMin,
"min" },
58 { operationType::opMax,
"max" },
59 { operationType::opSum,
"sum" },
60 { operationType::opSumMag,
"sumMag" },
61 { operationType::opAverage,
"average" },
62 { operationType::opVolAverage,
"volAverage" },
63 { operationType::opVolIntegrate,
"volIntegrate" },
64 { operationType::opCoV,
"CoV" },
67 { operationType::opWeightedSum,
"weightedSum" },
68 { operationType::opWeightedAverage,
"weightedAverage" },
69 { operationType::opWeightedVolAverage,
"weightedVolAverage" },
70 { operationType::opWeightedVolIntegrate,
"weightedVolIntegrate" },
79 { postOperationType::postOpNone,
"none" },
80 { postOperationType::postOpMag,
"mag" },
81 { postOperationType::postOpSqrt,
"sqrt" },
113 if (weightFieldNames_.size())
123 writeCommented(
os,
"Time");
127 for (
const word& fieldName : fields_)
129 os <<
tab << operationTypeNames_[operation_]
130 <<
"(" << fieldName <<
")";
143 label nProcessed = 0;
145 for (
const word& fieldName : fields_)
149 writeValues<scalar>(fieldName, V, weightField)
150 || writeValues<vector>(fieldName, V, weightField)
151 || writeValues<sphericalTensor>(fieldName, V, weightField)
152 || writeValues<symmTensor>(fieldName, V, weightField)
153 || writeValues<tensor>(fieldName, V, weightField)
161 <<
"Requested field " << fieldName
162 <<
" not found in database and not processed"
182 operation_(operationTypeNames_.
get(
"operation",
dict)),
185 postOperationTypeNames_.getOrDefault
189 postOperationType::postOpNone,
196 writeFileHeader(file());
209 operation_(operationTypeNames_.
get(
"operation",
dict)),
212 postOperationTypeNames_.getOrDefault
216 postOperationType::postOpNone,
235 weightFieldNames_.clear();
242 if (
dict.readIfPresent(
"weightFields", weightFieldNames_))
248 weightFieldNames_.resize(1);
250 if (
dict.readIfPresent(
"weightField", weightFieldNames_.first()))
253 if (
"none" == weightFieldNames_.first())
256 weightFieldNames_.clear();
265 <<
"The '" << operationTypeNames_[operation_]
266 <<
"' operation is missing a weightField." <<
nl
267 <<
"Either provide the weightField, "
268 <<
"use weightField 'none' to suppress weighting," <<
nl
269 <<
"or use a different operation."
273 Info<<
" weight field = ";
274 if (weightFieldNames_.empty())
298 writeCurrentTime(file());
315 for (
const word& weightName : weightFieldNames_)
317 if (validField<scalar>(weightName))
321 if (scalarWeights.empty())
323 scalarWeights = tfld;
327 scalarWeights *= tfld;
330 else if (weightName !=
"none")
338 <<
"weightField " << weightName
339 <<
" not found or an unsupported type" <<
nl
346 writeAll(V, scalarWeights);