36 Foam::sampledSets::volFieldSampler<Type>::volFieldSampler
38 const word& interpolationScheme,
39 const GeometricField<Type, fvPatchField, volMesh>&
field,
40 const PtrList<sampledSet>& samplers
43 List<Field<Type>>(samplers.size()),
46 autoPtr<interpolation<Type>> interpolator
53 Field<Type>&
values = this->operator[](setI);
54 const sampledSet&
samples = samplers[setI];
60 label celli =
samples.cells()[sampleI];
61 label facei =
samples.faces()[sampleI];
63 if (celli == -1 && facei == -1)
70 values[sampleI] = interpolator().interpolate
83 Foam::sampledSets::volFieldSampler<Type>::volFieldSampler
85 const GeometricField<Type, fvPatchField, volMesh>&
field,
86 const PtrList<sampledSet>& samplers
89 List<Field<Type>>(samplers.size()),
94 Field<Type>&
values = this->operator[](setI);
95 const sampledSet&
samples = samplers[setI];
100 label celli =
samples.cells()[sampleI];
116 Foam::sampledSets::volFieldSampler<Type>::volFieldSampler
118 const List<Field<Type>>&
values,
122 List<Field<Type>>(
values),
131 const PtrList<volFieldSampler<Type>>& masterFields,
137 wordList valueSetNames(masterFields.size());
139 forAll(masterFields, fieldi)
141 const word& fieldName = masterFields[fieldi].name();
143 valueSetNames[fieldi] = fieldName;
150 valueSets[fieldi] = &masterFields[fieldi][setI];
151 averageValue =
average(*valueSets[fieldi]);
154 sizeValue = valueSets[fieldi]->size();
163 setResult(
"average(" + fieldName +
")", averageValue);
164 setResult(
"min(" + fieldName +
")",
minValue);
165 setResult(
"max(" + fieldName +
")",
maxValue);
166 setResult(
"size(" + fieldName +
")", sizeValue);
172 fName = timeDir/formatter.
getFileName(masterSampleSet, valueSetNames);
188 <<
"File " << ofs.
name() <<
" could not be opened. "
189 <<
"No data will be written" <<
endl;
200 void Foam::sampledSets::combineSampledValues
202 const PtrList<volFieldSampler<T>>& sampledFields,
204 PtrList<volFieldSampler<T>>& masterFields
207 forAll(sampledFields, fieldi)
231 new volFieldSampler<T>
234 sampledFields[fieldi].
name()
242 void Foam::sampledSets::sampleAndWrite(fieldGroup<Type>&
fields)
246 const bool interpolate = interpolationScheme_ !=
"cell";
251 fields.setFormatter(writeFormat_, writeFormatOptions_);
255 PtrList<volFieldSampler<Type>> sampledFields(
fields.size());
261 Pout<<
"sampledSets::sampleAndWrite: "
267 GeometricField<Type, fvPatchField, volMesh> vf
272 mesh_.time().timeName(),
286 new volFieldSampler<Type>
288 interpolationScheme_,
299 new volFieldSampler<Type>(vf, *
this)
310 new volFieldSampler<Type>
312 interpolationScheme_,
314 <GeometricField<Type, fvPatchField, volMesh>>
325 new volFieldSampler<Type>
328 <GeometricField<Type, fvPatchField, volMesh>>
340 PtrList<volFieldSampler<Type>> masterFields(sampledFields.size());
341 combineSampledValues(sampledFields, indexSets_, masterFields);
343 forAll(masterSampledSets_, setI)
345 fileName sampleFile = writeSampleFile
347 masterSampledSets_[setI],
350 outputPath_/mesh_.time().timeName(),
354 if (sampleFile.size())
358 forAll(masterFields, fieldi)
364 time_.relativePath(sampleFile,
true)
367 const word& fieldName = masterFields[fieldi].
name();