39 if (faItems_[fieldI].mean())
43 const word& fieldName = faItems_[fieldI].fieldName();
45 const word meanFieldName = fieldName + EXT_MEAN;
47 Info<<
"Reading/calculating field " << meanFieldName <<
nl <<
endl;
49 if (obr_.foundObject<fieldType>(meanFieldName))
51 meanFieldList[fieldI] = meanFieldName;
53 else if (obr_.found(meanFieldName))
55 Info<<
"Cannot allocate average field " << meanFieldName
56 <<
" since an object with that name already exists."
57 <<
" Disabling averaging." <<
nl <<
endl;
58 meanFieldList[fieldI] = word::null;
62 const fieldType& baseField =
63 obr_.lookupObject<fieldType>(fieldName);
73 obr_.time().timeName(),
75 IOobject::READ_IF_PRESENT,
82 meanFieldList[fieldI] = meanFieldName;
88 template<
class Type1,
class Type2>
96 if (faItems_[fieldI].mean() && meanFieldList[fieldI].size())
101 const word& fieldName = faItems_[fieldI].fieldName();
103 const word meanFieldName = fieldName + EXT_PRIME2MEAN;
104 Info<<
"Reading/calculating field " << meanFieldName <<
nl <<
endl;
106 if (obr_.foundObject<fieldType2>(meanFieldName))
108 prime2MeanFieldList[fieldI] = meanFieldName;
110 else if (obr_.found(meanFieldName))
112 Info<<
"Cannot allocate average field " << meanFieldName
113 <<
" since an object with that name already exists."
114 <<
" Disabling averaging." <<
nl <<
endl;
115 prime2MeanFieldList[fieldI] = word::null;
119 const fieldType1& baseField =
120 obr_.lookupObject<fieldType1>(fieldName);
121 const fieldType1& meanField =
122 obr_.lookupObject<fieldType1>(meanFieldList[fieldI]);
131 obr_.time().timeName(),
133 IOobject::READ_IF_PRESENT,
136 sqr(baseField) -
sqr(meanField)
140 prime2MeanFieldList[fieldI] = meanFieldName;
156 if (
faItems_[i].mean() && meanFieldList[i].size())
159 const fieldType& baseField =
161 fieldType& meanField =
const_cast<fieldType&
>
179 meanField = alpha*meanField + beta*baseField;
185 template<
class Type1,
class Type2>
201 faItems_[i].prime2Mean()
202 && meanFieldList[i].size()
203 && prime2MeanFieldList[i].size()
206 const word& fieldName = faItems_[i].fieldName();
207 const fieldType1& baseField =
208 obr_.lookupObject<fieldType1>(fieldName);
209 const fieldType1& meanField =
210 obr_.lookupObject<fieldType1>(meanFieldList[i]);
211 fieldType2& prime2MeanField =
const_cast<fieldType2&
>
213 obr_.lookupObject<fieldType2>(prime2MeanFieldList[i])
218 if (faItems_[i].timeBase())
220 alpha = (totalTime_[i] - dt)/totalTime_[i];
221 beta = dt/totalTime_[i];
225 alpha = scalar(totalIter_[i] - 1)/scalar(totalIter_[i]);
226 beta = 1.0/scalar(totalIter_[i]);
230 alpha*prime2MeanField
231 + beta*
sqr(baseField)
238 template<
class Type1,
class Type2>
252 faItems_[i].prime2Mean()
253 && meanFieldList[i].size()
254 && prime2MeanFieldList[i].size()
257 const fieldType1& meanField =
258 obr_.lookupObject<fieldType1>(meanFieldList[i]);
259 fieldType2& prime2MeanField =
const_cast<fieldType2&
>
261 obr_.lookupObject<fieldType2>(prime2MeanFieldList[i])
264 prime2MeanField +=
sqr(meanField);
277 if (fieldList[i].size())
279 const fieldType&
f = obr_.lookupObject<fieldType>(fieldList[i]);