41 Foam::dsmcFields::dsmcFields
46 const bool loadFromFiles
54 if (!isA<fvMesh>(obr_))
59 "dsmcFields::dsmcFields"
60 "(const objectRegistry&, const dictionary&)"
61 ) <<
"No fvMesh available, deactivating." <<
nl
102 word rhoNMeanName =
"rhoNMean";
103 word rhoMMeanName =
"rhoMMean";
104 word momentumMeanName =
"momentumMean";
105 word linearKEMeanName =
"linearKEMean";
106 word internalEMeanName =
"internalEMean";
107 word iDofMeanName =
"iDofMean";
108 word fDMeanName =
"fDMean";
145 if (
min(
mag(rhoNMean)).value() > VSMALL)
147 Info<<
"Calculating dsmcFields." <<
endl;
149 Info<<
" Calculating UMean field." <<
endl;
155 obr_.time().timeName(),
159 momentumMean/rhoMMean
162 Info<<
" Calculating translationalT field." <<
endl;
168 obr_.time().timeName(),
173 *(linearKEMean - 0.5*rhoMMean*(UMean &
UMean))
176 Info<<
" Calculating internalT field." <<
endl;
182 obr_.time().timeName(),
189 Info<<
" Calculating overallT field." <<
endl;
195 obr_.time().timeName(),
200 *(linearKEMean - 0.5*rhoMMean*(UMean & UMean) + internalEMean)
203 Info<<
" Calculating pressure field." <<
endl;
209 obr_.time().timeName(),
222 if (isA<wallPolyPatch>(patch))
225 fDMean.boundaryField()[i]
230 Info<<
" mag(UMean) max/min : "
231 <<
max(
mag(UMean)).value() <<
" "
234 Info<<
" translationalT max/min : "
235 <<
max(translationalT).value() <<
" "
236 <<
min(translationalT).value() <<
endl;
238 Info<<
" internalT max/min : "
239 <<
max(internalT).value() <<
" "
240 <<
min(internalT).value() <<
endl;
242 Info<<
" overallT max/min : "
243 <<
max(overallT).value() <<
" "
244 <<
min(overallT).value() <<
endl;
246 Info<<
" p max/min : "
247 <<
max(p).value() <<
" "
252 translationalT.
write();
265 <<
") found in rhoNMean field. "
266 <<
"Not calculating dsmcFields to avoid division by zero."