39 const word& meanFieldName =
faItems_[fieldI].meanFieldName();
41 if (
log_)
Info <<
" Reading/initialising field " << meanFieldName <<
endl;
50 <<
" Cannot allocate average field " << meanFieldName
51 <<
" since an object with that name already exists."
52 <<
" Disabling averaging for field." <<
endl;
85 if (faItems_[fieldI].mean())
90 const word& fieldName = faItems_[fieldI].fieldName();
92 if (obr_.foundObject<volFieldType>(fieldName))
94 addMeanFieldType<volFieldType>(fieldI);
96 else if (obr_.foundObject<surfFieldType>(fieldName))
98 addMeanFieldType<surfFieldType>(fieldI);
104 template<
class Type1,
class Type2>
107 const word& fieldName = faItems_[fieldI].fieldName();
108 const word& meanFieldName = faItems_[fieldI].meanFieldName();
109 const word& prime2MeanFieldName = faItems_[fieldI].prime2MeanFieldName();
112 <<
" Reading/initialising field " << prime2MeanFieldName <<
endl;
114 if (obr_.foundObject<Type2>(prime2MeanFieldName))
118 else if (obr_.found(prime2MeanFieldName))
121 <<
" Cannot allocate average field " << prime2MeanFieldName
122 <<
" since an object with that name already exists."
123 <<
" Disabling averaging for field." <<
endl;
125 faItems_[fieldI].prime2Mean() =
false;
129 const Type1& baseField = obr_.lookupObject<Type1>(fieldName);
130 const Type1& meanField = obr_.lookupObject<Type1>(meanFieldName);
140 obr_.time().timeName(obr_.time().startTime().value()),
147 sqr(baseField) -
sqr(meanField)
154 template<
class Type1,
class Type2>
163 if (faItems_[fieldI].prime2Mean())
165 const word& fieldName = faItems_[fieldI].fieldName();
167 if (!faItems_[fieldI].mean())
170 <<
"To calculate the prime-squared average, the "
171 <<
"mean average must also be selected for field "
175 if (obr_.foundObject<volFieldType1>(fieldName))
177 addPrime2MeanFieldType<volFieldType1, volFieldType2>(fieldI);
179 else if (obr_.foundObject<surfFieldType1>(fieldName))
181 addPrime2MeanFieldType<surfFieldType1, surfFieldType2>(fieldI);
190 const word& fieldName = faItems_[fieldI].fieldName();
192 if (obr_.foundObject<Type>(fieldName))
194 const Type& baseField = obr_.lookupObject<Type>(fieldName);
196 Type& meanField =
const_cast<Type&
>
198 obr_.lookupObject<Type>(faItems_[fieldI].meanFieldName())
201 scalar dt = obr_.time().deltaTValue();
202 scalar Dt = totalTime_[fieldI];
204 if (faItems_[fieldI].iterBase())
207 Dt = scalar(totalIter_[fieldI]);
210 scalar
alpha = (Dt - dt)/Dt;
213 if (faItems_[fieldI].window() > 0)
215 const scalar
w = faItems_[fieldI].window();
224 meanField =
alpha*meanField +
beta*baseField;
237 if (faItems_[i].mean())
239 calculateMeanFieldType<volFieldType>(i);
240 calculateMeanFieldType<surfFieldType>(i);
246 template<
class Type1,
class Type2>
249 const word& fieldName = faItems_[fieldI].fieldName();
251 if (obr_.foundObject<Type1>(fieldName))
253 const Type1& baseField = obr_.lookupObject<Type1>(fieldName);
254 const Type1& meanField =
255 obr_.lookupObject<Type1>(faItems_[fieldI].meanFieldName());
257 Type2& prime2MeanField =
const_cast<Type2&
>
259 obr_.lookupObject<Type2>(faItems_[fieldI].prime2MeanFieldName())
262 scalar dt = obr_.time().deltaTValue();
263 scalar Dt = totalTime_[fieldI];
265 if (faItems_[fieldI].iterBase())
268 Dt = scalar(totalIter_[fieldI]);
271 scalar
alpha = (Dt - dt)/Dt;
274 if (faItems_[fieldI].window() > 0)
276 const scalar
w = faItems_[fieldI].window();
286 alpha*prime2MeanField
293 template<
class Type1,
class Type2>
304 if (faItems_[i].prime2Mean())
306 calculatePrime2MeanFieldType<volFieldType1, volFieldType2>(i);
307 calculatePrime2MeanFieldType<surfFieldType1, surfFieldType2>(i);
313 template<
class Type1,
class Type2>
316 const word& fieldName = faItems_[fieldI].fieldName();
318 if (obr_.foundObject<Type1>(fieldName))
320 const Type1& meanField =
321 obr_.lookupObject<Type1>(faItems_[fieldI].meanFieldName());
323 Type2& prime2MeanField =
const_cast<Type2&
>
325 obr_.lookupObject<Type2>(faItems_[fieldI].prime2MeanFieldName())
328 prime2MeanField +=
sqr(meanField);
333 template<
class Type1,
class Type2>
344 if (faItems_[i].prime2Mean())
346 addMeanSqrToPrime2MeanType<volFieldType1, volFieldType2>(i);
347 addMeanSqrToPrime2MeanType<surfFieldType1, surfFieldType2>(i);
356 if (obr_.foundObject<Type>(fieldName))
358 const Type&
f = obr_.lookupObject<Type>(fieldName);
372 if (faItems_[i].mean())
374 const word& fieldName = faItems_[i].meanFieldName();
375 writeFieldType<volFieldType>(fieldName);
376 writeFieldType<surfFieldType>(fieldName);
378 if (faItems_[i].prime2Mean())
380 const word& fieldName = faItems_[i].prime2MeanFieldName();
381 writeFieldType<volFieldType>(fieldName);
382 writeFieldType<surfFieldType>(fieldName);