- May 10, 2022
-
-
- only wrap compiler calls (not things like flex/bison) - avoid single quoted '&&' (causes syntax errors) STYLE: report WM_COMPILE_CONTROL value in top-level Allwmake
-
Andrew Heather authored
code style, bug fixes See merge request !535
-
Mark OLESEN authored
- relocate templating to factory method 'New'. Adds provisions for more general re-use. - expose processor topology in globalMesh as topology() - wrap proc->patch lookup as processorTopology::procPatchLookup method (failsafe). May consider using Map<label> for its storage in the future.
-
Mark OLESEN authored
- similarly combine typedef headers for primitiveFacePatch, foamVtkUIndPatchWriter, foamVtkUIndPatchGeoFieldsWriter etc (reduce file clutter)
-
Mark OLESEN authored
- Uses a refPtr to reference external content. Useful (for example) when writing data without copying. Reading into external locations is not implemented (no current requirement for that). * IOFieldRef -> IOField * IOListRef -> IOList * IOmapDistributePolyMeshRef -> IOmapDistributePolyMesh Eg, labelList addressing = ...; io.rename("cellProcAddressing"); IOListRef<label>(io, addressing).write(); Or, primitivePatch patch = ...; IOFieldRef<vector>(io, patch.localPoints()).write();
-
Mark OLESEN authored
- the values from non-overlapping blocks were simply ignored, which meant that ('111111111111' & '111111') would not mask out the unset values at all. - similar oddities in other operations (|=, ^= etc) where the original implementation tried hard to avoid touching the sizing at all, but now better resolved as follows: - '|=' : Set may grow to accommodate new 'on' bits. - '^=' : Set may grow to accommodate new 'on' bits. - '-=' : Never changes the original set size. - '&=' : Never changes the original set size. Non-overlapping elements are considered 'off'. These definitions are consistent with HashSet behaviour and also ensures that (a & b) == (b & a) ENH: improve short-circuiting within bitSet ops - in a few places can optimise by checking for none() instead of empty() and avoid unnecessary block operations. ENH: added bitSet::resize_last() method - as the name says: resizes to the last bit set. A friendlier way of writing `resize(find_last()+1)`
-
Mark OLESEN authored
- uniq() : creates an IndirectList with duplicated entries filtered out - subset() : creates an IndirectList with positions that satisfy a condition predicate. - subset_if() : creates an IndirectList with values that satisfy a given predicate. An indirect subset will be cheaper than creating a subset copy of the original data, and also allows modification. STYLE: combine UIndirectList.H into UIndirectList.H (reduce file clutter)
-
Mark OLESEN authored
- the sorted() method fills a UPtrList with sorted entries. In some places this can provide a more convenient means of traversing a HashTable in consistent order, without the extra step of creating a sortedToc(). The sorted() method with a UPtrList will also have a lower overhead than creating any sortedToc() or toc() since it is list of pointers and not full copies of the keys. Instead of this: HashTable<someType> table = ...; for (const word& key : table.sortedToc()) { Info<< key << " => " << table[key] << nl; } can write this: for (const auto& iter : table.sorted()) { Info<< iter.key() << " => " << iter.val() << nl; } STYLE: - declare hash entry key 'const' since it is immutable
-
Mark OLESEN authored
- can sort directly without ListOps or other intermediates (eg labelList order). - PtrListOps::less/greater wrappers -> UPtrList::less/greater
-
- May 09, 2022
-
-
Mark OLESEN authored
- local writeHeaderEntry helper was not marked as file-scope static. - use do/while to simplify handling of padding spaces ENH: IOobject - copy construct, resetting name and local component - when copying with a new local component, this is simpler than constructing from all of the components, which was previously the only possibility for setting a new local component.
-
Mark OLESEN authored
- commonly used, only depends on routines defined in UList (don't need the rest of ListOps for it). ENH: implement boolList::operator() const - allows use as a predicate functor, as per bitSet and labelHashSet GIT: combine SubList, UList into List directory (intertwined concepts) STYLE: default initialize DynamicList instead of with size 0
-
Mark OLESEN authored
- specifies the number of consecutive cells to assign to the same randomly chosen processor. Can be used to have a less extremely random distribution for testing possible breaking points. Eg, method random; coeffs { agglom 4; } - Add finiteArea cellID (actually face ids) / faceLabel and procID for foamToVTK with -write-ids. Useful when this type of information is needed.
-
mattijs authored
-
- May 06, 2022
-
-
mattijs authored
-
- May 04, 2022
-
-
mattijs authored
If the initial mesh does not have enough levels do not do any agglomeration
-
- Apr 29, 2022
-
-
Andrew Heather authored
ENH: outletMappedUniformInlet: add multiple fraction, offset and time delays See merge request !531
-
-
- Arbitrary number of outlets can be connected to a single inlet - Each inlet can be connected to different and arbitrary combination of outlets - Each outlet-inlet connection has: - Optional filtration fraction as a Function1 type - Optional offset as a Function1 type (i.e. adding/substracting a substance) - Optional time delay (from outlet to inlet) as a Function1 type - Each inlet has an optional base inlet-field as a PatchFunction1 type
-
-
-
Andrew Heather authored
BUG: 2022-1: Various bug fixes See merge request !530
-
-
-
-
-
-
This patch provides the correct behavior of the boundary condition and its opening values.
-
-
The blendingFactor function object overwrites the DEShybrid:Factor field internally when blendedSchemeBase debug flag is active. However, users are allowed to write out the original DEShybrid:Factor field by executing the writeObjects function object before any blendingFactor function object execution.
-
-
Andrew Heather authored
Code changes and reorganisation preliminary to redistributePar updates (#2436) See merge request !533
-
Mark OLESEN authored
- dynamicMesh, finiteVolume, regionFaModels, thermophysicalProperties
-
Mark OLESEN authored
- direct construct and reset method for creating a zero-sized (dummy) subMesh. Has no exposed faces and no parallel synchronization required. - core mapping (interpolate) functionality with direct handling of subsetting in fvMeshSubset (src/finiteVolume). Does not use dynamicMesh topology changes - two-step subsetting as fvMeshSubsetter (src/dynamicMesh). Does use dynamicMesh topology changes. This is apparently only needed by the subsetMesh application itself. DEFEATURE: remove deprecated setLargeCellSubset() method - was deprecated JUL-2018, now removed (see issue #951)
-
Mark OLESEN authored
- added templating level to avoid code duplication and provide future extensibility
-
Mark OLESEN authored
- allows restricted evaluation to specific coupled patch types. Code relocated/refactored from redistributePar. STYLE: ensure use of waitRequests() also corresponds to nonBlocking ENH: additional copy/move construct GeometricField from DimensionedField STYLE: processorPointPatch owner()/neighbour() as per processorPolyPatch STYLE: orientedType with bool cast operator and noexcept
-
Mark OLESEN authored
- move construct from components. Construct with optional IO control - separate init() method (as per polyMesh) to delay evaluation of globalData and base geometry. - faMesh removeFiles method ENH: faBoundaryMeshEntries for reading faBoundary files without a mesh ENH: adjust debug output for {fa,fae,fv,fvs}patchField::New - add alternative constraint type selection for faePatchField. - unify handling of "patchType" reading. Make less noisy when reporting dictionary defaults.
-
Mark OLESEN authored
- allows reuse by finiteArea, for example. - simplify edge looping with face thisLabel/nextLabel method ENH: additional storage checks for mesh weights (faMesh + fvMesh) - allow finite-area field decomposition without edge weights. STYLE: use tmp New in various places. Simpler updateGeom check
-
Mark OLESEN authored
STYLE: remove spurious (no-op) processor boundary evaluations - boundary fields for faceAreaCentres and edgeCentres had no-op initEvaluate/evaluate pair on processor boundaries. Now consistent with each other and with how finiteVolume is defined. STYLE: add comments about which private methods trigger communication
-
Mark OLESEN authored
- reduce the amount of communication when checking zones and patches by performing the synchonization check on the gathered strings (master only) and reduce or broadcast the result. STYLE: simplify coupled() checks depending only on parRun
-