42 bool Foam::sampledSets::verbose_ =
false;
47 bool Foam::sampledSets::checkFieldTypes()
54 forAll(fieldNames_, fieldi)
68 fieldTypes[fieldi] = io.headerClassName();
72 fieldTypes[fieldi] =
"(notFound)";
79 forAll(fieldNames_, fieldi)
82 mesh_.
find(fieldNames_[fieldi]);
84 if (iter != mesh_.objectRegistry::end())
86 fieldTypes[fieldi] = iter()->type();
90 fieldTypes[fieldi] =
"(notFound)";
99 nFields += grep(scalarFields_, fieldTypes);
100 nFields += grep(vectorFields_, fieldTypes);
101 nFields += grep(sphericalTensorFields_, fieldTypes);
102 nFields += grep(symmTensorFields_, fieldTypes);
103 nFields += grep(tensorFields_, fieldTypes);
110 <<
"scalarFields " << scalarFields_ <<
nl
111 <<
"vectorFields " << vectorFields_ <<
nl
112 <<
"sphTensorFields " << sphericalTensorFields_ <<
nl
113 <<
"symTensorFields " << symmTensorFields_ <<
nl
114 <<
"tensorFields " << tensorFields_ <<
nl;
121 Pout<<
"Creating directory "
134 void Foam::sampledSets::combineSampledSets
136 PtrList<coordSet>& masterSampledSets,
144 masterSampledSets_.clear();
145 masterSampledSets_.setSize(size());
146 indexSets_.setSize(size());
148 const PtrList<sampledSet>& sampledSets = *
this;
152 const sampledSet& samplePts = sampledSets[seti];
173 gatheredPts, accessOp<List<point> >()
178 ListListOps::combine<labelList>
180 gatheredSegments, accessOp<labelList>()
185 ListListOps::combine<scalarList>
187 gatheredDist, accessOp<scalarList>()
194 WarningIn(
"sampledSets::combineSampledSets(..)")
195 <<
"Sample set " << samplePts.name()
196 <<
" has zero points." <<
endl;
200 SortableList<scalar> sortedDist(allCurveDist);
201 indexSets[seti] = sortedDist.indices();
208 refPt = samplePts.getRefPoint(allPts);
216 masterSampledSets.set
223 UIndirectList<point>(allPts, indexSets[seti]),
233 Foam::sampledSets::sampledSets
238 const bool loadFromFiles
243 mesh_(refCast<const fvMesh>(obr)),
244 loadFromFiles_(loadFromFiles),
246 searchEngine_(mesh_,
true),
253 outputPath_ = mesh_.time().path()/
".."/name_;
257 outputPath_ = mesh_.time().path()/name_;
261 outputPath_ = outputPath_/mesh_.name();
278 verbose_ = verbosity;
296 if (size() && checkFieldTypes())
298 sampleAndWrite(scalarFields_);
299 sampleAndWrite(vectorFields_);
300 sampleAndWrite(sphericalTensorFields_);
301 sampleAndWrite(symmTensorFields_);
302 sampleAndWrite(tensorFields_);
311 fieldNames_ =
wordList(dict_.lookup(
"fields"));
313 interpolationScheme_ =
"cell";
314 dict_.readIfPresent(
"interpolationScheme", interpolationScheme_);
316 dict_.lookup(
"setFormat") >> writeFormat_;
318 scalarFields_.
clear();
319 vectorFields_.clear();
320 sphericalTensorFields_.clear();
321 symmTensorFields_.clear();
322 tensorFields_.clear();
326 dict_.lookup(
"sets"),
330 combineSampledSets(masterSampledSets_, indexSets_);
334 Pout<<
"sample fields:" << fieldNames_ <<
nl
335 <<
"sample sets:" <<
nl <<
"(" <<
nl;
339 Pout <<
" " << operator[](si) <<
endl;
352 searchEngine_.correct();
356 dict_.lookup(
"sets"),
360 combineSampledSets(masterSampledSets_, indexSets_);