- Mar 16, 2022
-
-
Mark OLESEN authored
- percent of cells is taken relative to selection size. - percent of faces is taken relative to the number of boundary faces that do not fix velocity themselves. ENH: avoid correctBoundaryConditions() if values were not limited
-
Mark OLESEN authored
- areaWrite and fileFieldSelection
-
Mark OLESEN authored
- when writing surface formats (eg, vtk, ensight etc) the sampled surfaces merge the faces/points originating from different processors into a single surface (ie, patch gatherAndMerge). Previous versions of mergePoints simply merged all points possible, which proves to be rather slow for larger meshes. This has now been modified to only consider boundary points, which reduces the number of points to consider. As part of this change, the reference point is now always equivalent to the min of the bounding box, which reduces the number of search loops. The merged points retain their original order. - inplaceMergePoints version to simplify use and improve code robustness and efficiency. ENH: make PrimitivePatch::boundaryPoints() less costly - if edge addressing does not already exist, it will now simply walk the local face edges directly to define the boundary points. This avoids a rather large overhead of the full faceFaces, edgeFaces, faceEdges addressing. This operation is now more important since it is used in the revised patch gatherAndMerge. ENH: topological merge for mesh-based surfaces in surfaceFieldValue
-
- Mar 15, 2022
-
-
Mark OLESEN authored
-
Mark OLESEN authored
- similar to edge valid(), true if vertices are unique, non-negative
-
- Mar 13, 2022
-
-
Mark OLESEN authored
-
Mark OLESEN authored
- Pstream changes, coordSetWriters etc.
-
Mark OLESEN authored
-
Mark OLESEN authored
-
Mark OLESEN authored
- similar to how noOp was defined, but with perfect forwarding STYLE: combine Swap into stdFoam STYLE: capitalize FileOp, NegateOp template parameters
-
Mark OLESEN authored
-
Mark OLESEN authored
- lower memory overhead, simpler code and eliminates need for ListListOps::combineOffset() - optional handling of local faces/points for re-using in different contexts STYLE: labelUList instead of labelList for globalMesh mergePoints STYLE: adjust verbose information from mergePoints - also report the current new-point location
-
- Mar 12, 2022
-
-
Mark OLESEN authored
- also disables PointData if manifold cells are detected. This is a partial workaround for volPointInterpolation problems with handling manifold cells.
-
-
Mark OLESEN authored
- additional verbosity option for conversions - ignore old `-finite-area` option and always convert available finiteArea mesh/fields unless `-no-finite-area` is specified (#2374) ENH: simplify point offset handling for ensight output - extend writing to include compact face/cell lists
-
Mark OLESEN authored
- a try/catch approach is not really robust enough (or even possible) since read failures likely do not occur on all ranks simultaneously. This leads to situations where the master has thrown an exception (and thus exiting the current routine) while other ranks are still waiting to receive data and the program blocks completely. Since this primarily affects data conversion routines such as foamToEnsight etc, treat similarly to lagrangian: check for the existence of essential files before proceeding or not. This is wrapped into a TryNew factory method: autoPtr<faMesh> faMeshPtr(faMesh::TryNew(mesh)); if (faMeshPtr) ...
-
Mark OLESEN authored
- these are the same thing now and 'broadcast' expresses the intention more directly/consistently
-
Mark OLESEN authored
- gather/scatter types of operations can avoid AllToAll communication and use simple MPI gather (or scatter) to establish the receive sizes. New methods: finishedGathers() / finishedScatters()
-
Mark OLESEN authored
BUG: masterUncollatedFileOperation checking of file-size - used Foam:fileSize check to decide on scheduled/nonBlocking but this was being done on all ranks and subsequently broadcast. Now avoid unnecessary filesystem access on non-master ranks.
-
Mark OLESEN authored
- both schemes and solutions data are treated as MUST_READ_IF_MODIFIED even if the requested readOption is nominally MUST_READ or READ_IF_PRESENT, but now delay this change.
-
Mark OLESEN authored
- in preparation for broadcasting versions
-
Mark OLESEN authored
-
Mark OLESEN authored
- allows simpler handling of processor conditions etc. ENH: modernize constructor for better alignment with polyPatch
-
Mark OLESEN authored
STYLE: pass value not reference to pTraits for basic types STYLE: add solveVector typedef to vector.H
-
Mark OLESEN authored
- do not need contruct or move assign from SortableList. Rarely (never) used and can simply treat like a normal list by applying shrink beforehand. - make append() methods return void instead of returning self, which makes it easier to derive from. Having them return self was a bit of an original design mistake. Chaining appends do not actually occur anywhere. Even if they were to be used, would not want to rely on them (fear of slicing on any derived classes). BUG: IndirectList iterator comparison loses constness
-
Mark OLESEN authored
-
Mark OLESEN authored
- simple wrapper for (!headerClassName().empty()) when checking if reading was successful.
-
Mark OLESEN authored
- eliminate redundant size_ accounting - drop extra 'Container' template parameter and replace functionality with more flexible pack/unpack methods. There is also a pack() method that handles indirect lists of lists that can be used, for example, to pack a patch slice of faces. Drop the 'operator()' method in favour of unpack to expose and properly document the conversion. Should revisit the corresponding code in some places for optimization potential. - align some method names with globalIndex: totalSize(), maxSize() etc
-
Mark OLESEN authored
- less communication than gatherList/scatterList ENH: refine send granularity in Pstream::exchange STYLE: ensure PstreamBuffers and defaultCommsType agree - simpler loops for lduSchedule
-
Mark OLESEN authored
- can restrict calculation of D32 and other spray properties to a subset of parcels. Uses a predicate selection mechanism similar to vtkCloud etc. ENH: code cleanup in scalar predicates - pass by value not reference in predicates - additional assign() method to refactor common code
-
- Mar 11, 2022
-
-
sergio authored
-
- Mar 10, 2022
-
-
Andrew Heather authored
refactor coordSet writers (#2347) See merge request !524
-
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.
-
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
-
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
-
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).
-
mattijs authored
-
mattijs authored
-
- Mar 08, 2022
-
-
mattijs authored
-