1. 21 Jun, 2022 1 commit
  2. 17 Jun, 2022 1 commit
  3. 07 Jun, 2022 1 commit
    • Mark OLESEN's avatar
      ENH: simplify coordinate rotation specification (#2505) · 7184de50
      Mark OLESEN authored
      - can specify rotations that are not "axes" in a compact form:
      
            transform
            {
                origin  (0 0 0);
                rotation none;
            }
      
            transform
            {
                origin  (0 0 0);
                rotation axisAngle;
                axis    (0 0 1);
                angle   45;
            }
      
         An expanded dictionary form also remains possible:
      
            transform
            {
                origin  (0 0 0);
                rotation
                {
                    type  axisAngle;
                    axis  (0 0 1);
                    angle 45;
                }
            }
      
      STYLE: verbose deprecation for "coordinateRotation" keyword
      
      - the "coordinateRotation" keyword was replaced by the "rotation"
        keyword (OpenFOAM-v1812 and later) but was handled silently.
        Now elevated to non-silent.
      
      STYLE: alias lookups "axesRotation", "EulerRotation", "STARCDRotation"
      
      - these warn and report the equivalent short form, which aids in
        upgrading. Previously had silent lookups.
      7184de50
  4. 02 Jun, 2022 1 commit
    • Mark OLESEN's avatar
      ENH: add hashedWordList find, appendUniq methods · 8b63b8cd
      Mark OLESEN authored
      - aligns calling signatures with wordList, for possible future
        replacement
      
      - drop construct from const char** (can use initializer_list instead)
      
      ENH: replace hashedWordList with plain wordList in triSurfaceLoader
      
      - additional hashing optimisation (and overhead) is not worth it for
        the comparatively small lists of surfaces used.
      8b63b8cd
  5. 31 May, 2022 3 commits
    • Mark OLESEN's avatar
      ENH: refactor cell selections into cellBitSet · 8081fc72
      Mark OLESEN authored
      - ensightWrite, vtkWrite, fv::cellSetOption
      
      ENH: additional topoSet "ignore" action
      
      - this no-op can be used to skip an action step, instead of removing
        the entire entry
      8081fc72
    • Mark OLESEN's avatar
      ENH: support exprField specification for SemiImplicitSource · d2e10bca
      Mark OLESEN authored
      - this allows more flexibility when defining the location or intensity
        of sources.
      
        For example,
      
        {
            type            scalarSemiImplicitSource;
            volumeMode      specific;
            selectionMode   all;
      
            sources
            {
                tracer0
                {
                    explicit
                    {
                        type       exprField;
      
                        functions<scalar>
                        {
                            square
                            {
                                type square;
                                scale 0.0025;
                                level 0.0025;
                                frequency 10;
                            }
                        }
      
                        expression
                        #{
                            (hypot(pos().x() + 0.025, pos().y()) < 0.01)
                          ? fn:square(time())
                          : 0
                        #};
                    }
                }
            }
        }
      
      ENH: SemiImplicitSource: handle "sources" with explicit/i...
      d2e10bca
    • Mark OLESEN's avatar
      GIT: relocate coordinate from meshTools -> OpenFOAM · ef743147
      Mark OLESEN authored
      - supports use of coordinate systems in fileFormats, surfMesh etc.
      
      GIT: remove remnant dependency check placeholders
      ef743147
  6. 27 May, 2022 2 commits
    • Mark OLESEN's avatar
      COMP: make ZeroConstant clonable · 93dcf732
      Mark OLESEN authored
      93dcf732
    • Mark OLESEN's avatar
      ENH: simplify code for searchableSurface topo sources · 832fbd95
      Mark OLESEN authored
      - shorter lookup names for more consistency
      
      ENH: accept point1/point2 as alternative to p1/p2 for sources
      
      - better alignment with searchable specification
      
      - refactor so that cylinderAnnulus sources derive directly from
        cylinder sources (which handle an annulus as well).
        Accept radius or outerRadius as synonyms.
      
      STYLE: noexcept on topoBitSet access methods
      
      DOC: update description for geometricConstraint
      832fbd95
  7. 19 May, 2022 2 commits
  8. 17 May, 2022 3 commits
    • Mark OLESEN's avatar
    • Mark OLESEN's avatar
      ENH: refine mapDistribute methods · 60e07d1f
      Mark OLESEN authored
      - additional distribute/reverseDistribute with specified commsType.
        Improves flexibility.
      
      - distribute with nullValue
      
      - support move construct mapDistribute from mapDistributeBase
      
      - refactor handling of schedules (as whichSchedule method) to
        simplify code.
      
      - renumberMap helper for working with compact sub maps
        and renumberVisit for handling walk-ordered compaction.
      
      COMP: make mapDistributeBase data private
      
      - accessor methods are available - direct access is unnecessary
      - mapDistribute : inherit mapDistributeBase constructors
      
      STYLE: use List<labelPair>::null() for schedule placeholders
      
      - clearer that they are doing nothing
      60e07d1f
    • Mark OLESEN's avatar
      COMP: make Function1 writeEntries virtual · ae0ef3ef
      Mark OLESEN authored
      ae0ef3ef
  9. 10 May, 2022 1 commit
  10. 09 May, 2022 1 commit
    • Mark OLESEN's avatar
      ENH: relocate sortedOrder from ListOps.H to List.H · bf0b3d88
      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
      bf0b3d88
  11. 29 Apr, 2022 6 commits
    • Mark OLESEN's avatar
      ENH: relocate/refactor fvMeshSubset · cf7dbf4d
      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)
      cf7dbf4d
    • Mark OLESEN's avatar
      ENH: add primitiveMeshTools support for face lists · 60b31fc8
      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
      60b31fc8
    • Mark OLESEN's avatar
      4cbe0a81
    • Mark OLESEN's avatar
      GIT: relocate uniformFixedValuePointPatchField to meshTools · 35106b60
      Mark OLESEN authored
      - was in fvMotionSolver, but only requires PatchFunction1 capabilities
        (from within meshTools).
      
      GIT: relocate IOmapDistributePolyMesh (from dynamicMesh to OpenFOAM)
      35106b60
    • Mark OLESEN's avatar
      ENH: bundle broadcasts (#2371) · 18e0d7e4
      Mark OLESEN authored
      - additional Pstream::broadcasts() method to serialize/deserialize
        multiple items.
      
      - revoke the broadcast specialisations for std::string and List(s) and
        use a generic broadcasting template. In most cases, the previous
        specialisations would have required two broadcasts:
          (1) for the size
          (2) for the contiguous content.
      
        Now favour reduced communication over potential local (intermediate)
        storage that would have only benefited a few select cases.
      
      ENH: refine PstreamBuffers access methods
      
      - replace 'bool hasRecvData(label)' with 'label recvDataCount(label)'
        to recover the number of unconsumed receive bytes from specified
        processor.  Can use 'labelList recvDataCounts()' to recover the
        number of unconsumed receive bytes from all processor.
      
      - additional peekRecvData() method (for transcribing contiguous data)
      
      ENH: globalIndex whichProcID - check for isLocal first
      
      - reasonable to assume that local items are searched for more
        frequently, so do prelimi...
      18e0d7e4
    • Mark OLESEN's avatar
      BUG: cut/paste error in searchableExtrudedCircle · 442c309d
      Mark OLESEN authored
      - use vector::removeCollinear a few places
      
      COMP: incorrect initialization order in edgeFaceCirculator
      
      COMP: Silence boost bind deprecation warnings (before CGAL-5.2.1)
      442c309d
  12. 19 Apr, 2022 1 commit
  13. 14 Apr, 2022 1 commit
  14. 31 Mar, 2022 2 commits
    • Mark OLESEN's avatar
      ENH: memory/efficiency improvements: renumbering, bandCompression (#2430) · c7f4ba19
      Mark OLESEN authored
      - support direct processing of CompactListList instead of requiring
        a conversion to labelListList for bandCompression and renumbering
        methods.
      
      - manage FIFO with CircularBuffer instead of SLList (avoids
        allocations in inner loops). Invert logic to use a bitSet of
        unvisited cells, which improves looping as the matrix becomes more
        sparse.
      
      - fix missed weighting in bandCompression (same as #1376).
        In polyTopoChange, handle removed cells immediately to simplify
        the logic and align more closely with bandCompression.
      
      STYLE: enclose bandCompression within meshTools namespace
      
      ENH: PrimitivePatch pointFaces with DynamicList instead of SLList
      c7f4ba19
    • Mark OLESEN's avatar
      ENH: bundle Pstream:: AllGather methods · d38de84d
      Mark OLESEN authored
      - bundles frequently used 'gather/scatter' patterns more consistently.
      
        - combineAllGather     -> combineGather + broadcast
        - listCombineAllGather -> listCombineGather + broadcast
        - mapCombineAllGather  -> mapCombineGather + broadcast
        - allGatherList        -> gatherList + scatterList
        - reduce               -> gather + broadcast (ie, allreduce)
      
      - The allGatherList currently wraps gatherList/scatterList, but may be
        replaced with a different algorithm in the future.
      
      STYLE: PstreamCombineReduceOps.H is mostly unneeded now
      d38de84d
  15. 23 Mar, 2022 1 commit
  16. 16 Mar, 2022 1 commit
    • Mark OLESEN's avatar
      ENH: mergePoints and patch gatherAndMerge improvements (#2402) · 24c0b30d
      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 fac...
      24c0b30d
  17. 15 Mar, 2022 1 commit
  18. 13 Mar, 2022 1 commit
  19. 12 Mar, 2022 3 commits
  20. 10 Mar, 2022 2 commits
    • Mark OLESEN's avatar
      ENH: refactor coordSet writers (#2347) · c3e14ffd
      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 ...
      c3e14ffd
    • mattijs's avatar
      ENH: snappyHexMesh: multi-stage layer addition, automatic hole closure · 5e2d8d6e
      mattijs authored
      Automatic hole closure:
      - introduces 'holeToFace' topoSet source
      - used when detecting a 'leak-path'
      - creates additional baffles to close the leak
      
      Multi-stage layer addition:
      - Can add layers in multiple passes
      
      See issues: #2403, #2404
      5e2d8d6e
  21. 04 Mar, 2022 2 commits
    • Mark OLESEN's avatar
      ENH: use mpi gather for list values in a few places · af816192
      Mark OLESEN authored and Andrew Heather's avatar Andrew Heather committed
      - avoid gatherList/scatterList when value are only need on master
      af816192
    • Mark OLESEN's avatar
      ENH: improved isolation of MPI access in Pstreams · b95b24e4
      Mark OLESEN authored and Andrew Heather's avatar Andrew Heather committed
      - refactor as an MPI-independent base class.
      
        Add bufferIPC{send,recv} private methods for construct/destruct.
        Eliminates code duplication from two constructor forms and reduces
        additional constructor definitions in dummy library.
      
      - add PstreamBuffers access methods, refactor common finish sends
        code, tweak member packing
      
      ENH: resize_nocopy for processorLduInterface buffers
      
      - content is immediately overwritten
      
      STYLE: cull unneeded includes in processorFa*
      
      - handled by processorLduInterface
      b95b24e4
  22. 24 Feb, 2022 1 commit
  23. 21 Feb, 2022 2 commits