Skip to content
Snippets Groups Projects
  1. Nov 15, 2023
  2. Nov 14, 2023
  3. Nov 10, 2023
  4. Nov 09, 2023
  5. Nov 08, 2023
  6. Nov 07, 2023
    • Mark OLESEN's avatar
      ENH: add global (serial) path accessor to IOobject (#3007) · 41b6794e
      Mark OLESEN authored
      - new methods added to IOobject to ease mixed (serial vs parallel)
        file locations. Some redirect to Time, others are defined for
        IOobject only.
      
          | "normal" (serial/parallel) | "global" (serial locations) |
          | ---------------------------|-----------------------------|
          | caseName()                 | globalCaseName()            |
          | path()                     | globalPath()          *new* |
          | path(...)                  | globalPath(...)       *new* |
          | objectPath()               | globalObjectPath()    *new* |
      41b6794e
    • Mark OLESEN's avatar
      ENH: partly align globalIndex and CompactListList methods · 507805c3
      Mark OLESEN authored
      - CompactListList::size() corresponds to the number of sub-lists
        whereas globalIndex::size() corresponds to the totalSize().
        This difference can lead to potential coding errors when switching
        between pure addressing (eg globalIndex) and addressing with content
        (eg, CompactListList).
      
        Within the source tree, there are no longer any occurances of
        globalIndex::size() but it is nonetheless unsafe to change its
        meaning now. Instead provide a commonly named length() method that
        corresponds to the natural length: ie, the number of offsets minus 1
        (with guards).
      
      - add CompactListList::writeMatrix for writing the compact contents
        in an unpacked form (eg, for debugging) without actually needing to
        unpack into storage.
      
      - provide globalIndex::whichProcID() two-parameter version
        with myProcNo as the first argument.
        Symmetric with isLocal etc, useful when using a communicator
        that is not worldComm.
      507805c3
    • Mark OLESEN's avatar
      ENH: provide Time::NewGlobalTime factory methods (#3007) · 269be2f4
      Mark OLESEN authored
      - avoids clutter of argList::envGlobalPath() ...
      
      ENH: allow temporary overwriting of output writeFormat
      
      - allows switching for particular output routines
      
      COMP: explicitly use TimePaths methods with Time
      
      - this simplifies any overloading done at a later stage
      269be2f4
    • Mark OLESEN's avatar
      REVERT: unstable MPI_Mprobe/MPI_Mrecv on intelmpi + PMI-2 (#2796) · 0338cf9a
      Mark OLESEN authored
      - remnant was left in the NBX implementation for Map<Type>.
      
        Still not entirely certain which vendors/versions handle message
        probe/recv properly, but using the "regular" probe and recv is OK
        since everything is without threaded race conditions.
      
      STYLE: adjust file extension of UPstreamWrapping templates
      
      - avoids it being exposed via lnInclude
      0338cf9a
    • Mark OLESEN's avatar
      ENH: support creation of boundaries/zones from list of entries · 07dcdefa
      Mark OLESEN authored
      - this makes it easier to split creation into a two-stage process
        as required
      
      - extend handling for polyBoundaryMeshEntries, faBoundaryMeshEntries
        with more functionality. Ensure that these are never registered.
      
      ENH: addition writeEntry methods for polyBoundaryMesh
      
      - simplifies streaming and collating into other files
      
      ENH: polyMesh rereading - update owner/neighbour header information
      
      - this avoids accidentally reading the "cells" file if the mesh has
        been created with NO_READ and then updated
      
      STYLE: less vertical space when outputting empty PtrList
      07dcdefa
    • Mark OLESEN's avatar
      ENH: polyBoundaryMesh additional faces() and faceOwner() slice methods · 08a9b038
      Mark OLESEN authored
      - return a subList view of the mesh faces, owners
      08a9b038
    • Mark OLESEN's avatar
      ENH: simplify calling of decomposition, support CompactListList · 98246a43
      Mark OLESEN authored
      - combined most of the unweighted and weighted decomposition routines
        such that an empty weight field is treated as uniform weighting.
        This allows default parameters and cuts down on the number of
        decompose methods.
      
      - for topology-driven decomposition, it is now possible to pass in the
        owner/neighbour connectivity as a CompactListList directly instead
        of first creating a labelListList (which was internally repacked into
        a CompactListList in many cases).
        However, multiLevelDecomp still uses unpacking (to avoid a larger
        reworking of code).
      
      - support direct creation of some methods (eg, random, scotch etc)
        without a dictionary
      
      - fix incorrect neighbour face weighting (fixes #3019)
      
      ENH: relocate calcCellCells from decompositionMethod to globalMeshData
      
      - makes it more universally available
      98246a43
    • Mark OLESEN's avatar
      COMP: split endian.H into foamEndianFwd.H and foamEndian.H · 546b2047
      Mark OLESEN authored
      - usually only need big/little defines (which are now in the Fwd)
        and rarely need byte-swapping.
      
        Provide endian.H compatibility include, but foamEndianFwd.H or
        foamEndian.H to avoid potential name clashes.
      546b2047
    • Mark OLESEN's avatar
      ENH: extend VectorSpace traits to include pTraits_cmptType · 98ccb7df
      Mark OLESEN authored
      - The pTraits_cmptType returns the data type of 'cmptType' (for
        arithmetic and VectorSpace types) or is simply a pass-through.
      
        This can be combined with the pTraits_nComponents for casting.
        For example,
      
        function
        (
            reinterpret_cast<pTraits_cmptType<Type>::type*>(buf.data()),
            (buf.size()/pTraits_nComponents<Type>::value)
        );
      
      ENH: extend Foam::identityOp so support array indexing (pass-through)
      98ccb7df
    • Mark OLESEN's avatar
      REGRESSION: registry filtering not using regIOobject name (fixes #3023) · df8efcaf
      Mark OLESEN authored
      - was using the derived object name (could be something like "region0")
        instead of the actual registered name (ie, the regIOobject name)
      df8efcaf
  7. Nov 03, 2023
  8. Nov 02, 2023
  9. Oct 27, 2023
  10. Oct 26, 2023
    • Mark OLESEN's avatar
      ENH: add face/triFace contains(edge) method (#3004) · 29e27181
      Mark OLESEN authored
      STYLE: use contains() and reduce reliance on edgeDirection -1/+1 values
      29e27181
    • Mark OLESEN's avatar
      ENH: additional globalIndex methods and helpers · b34793c3
      Mark OLESEN authored
      - single() method : simply tests if the globalIndex has nProcs == 1,
        which is typically from a gatherNone invocation.
        For example,
      
           globalIndex gi;
           if (...) gi.reset(localSize);
           else     gi.reset(globalIndex::gatherNone{}, localSize);
      
           // later...
           const label begin = (gi.single() ? 0 : gi.localStart());
           const label count = (gi.single() ? gi.totalSize() : gi.localSize());
      
      - add front() and back() methods to return the begin/end ranges,
        and begin_value(), end_value() - as per labelRange.
      
      - make more methods noexcept
      
      - calcOffset(), calcRange() helper functions to determine
        the processor-local of a numbering range without the overhead of
        creating a list of offsets.
      
        For example,
      
           label myOffset = globalIndex::calcOffset(mesh.nCells());
           labelRange mySlice = globalIndex::calcRange(mesh.nCells());
      
      - add globalIndex localEnd() as per CompactListList method
      
      STYLE: align looping constructs in CompactListList with List
      
      - make more methods noexcept
      b34793c3