refactor coordSet writers (#2347)
- Mar 10, 2022
-
-
Mark OLESEN authored
- with the special setFormat "probes", all of the sampled sets are treated more similarly to probes, with an ensemble output to raw probed format. This is of course less useful when the number of sampled points becomes very large.
010ebadb -
Mark OLESEN authored
- can now specify sampled sets as dictionary entries instead of a list entry. can now use: sets { ... } instead of: sets ( ... ); This is similar to sampled surfaces and makes it easier to manage with dictionary manipulation tools. TUT: update to use writeTime instead of outputTime
8a7221cf -
Mark OLESEN authored
- in v2112 the functionObject results were only delivering values from the last set listed (ie, overwritten). Now that the values are properly scoped by the name of the set itself Eg, `average(lines,p)` for the average for 'lines' set, existing workflows will break. It thus makes reasonble sense to also handle results without a qualifier as ensemble values. average(p) // Ensemble average of all listed sets
87db3ce4 -
Mark OLESEN authored
- the very old 'writer' class was fully stateless and always templated on an particular output type. This is now replaced with a 'coordSetWriter' with similar concepts as previously introduced for surface writers (#1206). - writers change from being a generic state-less set of routines to more properly conforming to the normal notion of a writer. - Parallel data is done *outside* of the writers, since they are used in a wide variety of contexts and the caller is currently still in a better position for deciding how to combine parallel data. ENH: update sampleSets to sample on per-field basis (#2347) - sample/write a field in a single step. - support for 'sampleOnExecute' to obtain values at execution intervals without writing. - support 'sets' input as a dictionary entry (as well as a list), which is similar to the changes for sampled-surface and permits use of changeDictionary to modify content. - globalIndex for gather to reduce parallel communication, less code - qualify the sampleSet results (properties) with the name of the set. The sample results were previously without a qualifier, which meant that only the last property value was actually saved (previous ones overwritten). For example, ``` sample1 { scalar { average(line,T) 349.96521; min(line,T) 349.9544281; max(line,T) 350; average(cells,T) 349.9854619; min(cells,T) 349.6589286; max(cells,T) 350.4967271; average(line,epsilon) 0.04947733869; min(line,epsilon) 0.04449639927; max(line,epsilon) 0.06452856475; } label { size(line,T) 79; size(cells,T) 1720; size(line,epsilon) 79; } } ``` ENH: update particleTracks application - use globalIndex to manage original parcel addressing and for gathering. Simplify code by introducing a helper class, storing intermediate fields in hash tables instead of separate lists. ADDITIONAL NOTES: - the regionSizeDistribution largely retains separate writers since the utility of placing sum/dev/count for all fields into a single file is questionable. - the streamline writing remains a "soft" upgrade, which means that scalar and vector fields are still collected a priori and not on-the-fly. This is due to how the streamline infrastructure is currently handled (should be upgraded in the future).
c3e14ffd
-