73 <<
" in any cell. Skipping location." <<
endl;
83 <<
" seems to be on multiple domains:"
86 <<
" and cell " << cellI <<
" on some other domain."
88 <<
"This might happen if the probe location is on"
89 <<
" a processor patch. Change the location slightly"
90 <<
" to prevent this." <<
endl;
100 wordList fieldTypes(fieldNames_.size());
105 forAll(fieldNames_, fieldI)
110 obr_.time().timeName(),
111 refCast<const polyMesh>(obr_),
123 fieldTypes[fieldI] =
"(notFound)";
130 forAll(fieldNames_, fieldI)
133 obr_.find(fieldNames_[fieldI]);
135 if (iter != obr_.end())
137 fieldTypes[fieldI] = iter()->type();
141 fieldTypes[fieldI] =
"(notFound)";
150 nFields += countFields(scalarFields_, fieldTypes);
151 nFields += countFields(vectorFields_, fieldTypes);
152 nFields += countFields(sphericalTensorFields_, fieldTypes);
153 nFields += countFields(symmTensorFields_, fieldTypes);
154 nFields += countFields(tensorFields_, fieldTypes);
162 foundFields[fieldI++] = scalarFields_[i];
166 foundFields[fieldI++] = vectorFields_[i];
168 forAll(sphericalTensorFields_, i)
170 foundFields[fieldI++] = sphericalTensorFields_[i];
172 forAll(symmTensorFields_, i)
174 foundFields[fieldI++] = symmTensorFields_[i];
178 foundFields[fieldI++] = tensorFields_[i];
189 probeSubDir = probeSubDir/obr_.
name();
191 probeSubDir = probeSubDir/obr_.time().timeName();
197 probeDir = obr_.time().
path()/
".."/probeSubDir;
201 probeDir = obr_.time().
path()/probeSubDir;
207 if (
findIndex(foundFields, iter.key()) == -1)
214 delete probeFilePtrs_.remove(iter);
220 probeFilePtrs_.resize(2*foundFields.
size());
222 forAll(foundFields, fieldI)
224 const word& fldName = foundFields[fieldI];
228 if (!probeFilePtrs_.found(fldName))
240 probeFilePtrs_.insert(fldName, sPtr);
249 forAll(probeLocations_, probeI)
251 *sPtr<<
' ' <<
setw(w) << probeLocations_[probeI][cmpt];
263 Pout<<
"Probing fields:" << foundFields <<
nl
264 <<
"Probing locations:" << probeLocations_ <<
nl
281 const bool loadFromFiles
286 loadFromFiles_(loadFromFiles),
291 sphericalTensorFields_(),
323 if (probeLocations_.size() && checkFieldTypes())
325 sampleAndWrite(scalarFields_);
326 sampleAndWrite(vectorFields_);
327 sampleAndWrite(sphericalTensorFields_);
328 sampleAndWrite(symmTensorFields_);
329 sampleAndWrite(tensorFields_);
336 dict.
lookup(
"fields") >> fieldNames_;
337 dict.
lookup(
"probeLocations") >> probeLocations_;
340 elementList_.
clear();
341 findElements(refCast<const fvMesh>(obr_));