Skip to content
Snippets Groups Projects
  1. Nov 17, 2022
  2. Nov 16, 2022
  3. Nov 15, 2022
    • Kutalmış Berçin's avatar
      Merge branch 'feature-atomic-stream' into 'develop' · 5714a360
      Kutalmış Berçin authored
      Updates for ensight writing
      
      See merge request !570
      5714a360
    • Mark OLESEN's avatar
      ENH: direct ensight output of float/double · 0fabbcb4
      Mark OLESEN authored
      - since ensight format is always float and also always written
        component-wise, perform the double -> float narrowing when
        extracting the components.  This reduces the amount of data
        transferred between processors.
      
      ENH: avoid vtk/ensight parallel communication of empty messages
      
      - since ensight writes by element type (eg, tet, hex, polyhedral) the
        individual written field sections will tend to be relatively sparse.
        Skip zero-size messages, which should help reduce some of the
        synchronization bottlenecks.
      
      ENH: use 'data chunking' when writing ensight files in parallel
      
      - since ensight fields are written on a per-element basis, the
        corresponding segment can become rather sparsely distributed. With
        'data chunking', we attempt to get as many send/recv messages in
        before flushing the buffer for writing. This should make the
        sequential send/recv less affected by the IO time.
      
      ENH: allow use of an external buffer when writing ensight components
      
      STYLE: remove last vestiges of autoPtr<ensightFile> for output routines
      0fabbcb4
    • Mark OLESEN's avatar
      ENH: add support for OFstream atomic file creation (#2631) · 5338e56c
      Mark OLESEN authored
      - with ATOMIC, an intermediary file is created - eg, (fileAbc~tmp~)
        where all of the output is written to. When the stream goes out of
        scope, this intermediary file is moved/renamed to the actually
        output name - eg, (fileAbc~tmp~) -> (fileAbc).
      
        This adds some safety if the simulation crashes while writing the
        file, since it will the partial (corrupt) file will be left
        behind as (fileAbc~tmp~) and not as (fileAbc), which means it will
        will be treated as a backup file and not loaded again on restart.
      
      ENH: provided enumeration for APPEND/NON_APPEND
      
      - clearer than using bool (with comments).
        Since append mode is primarily only used by masterOFstream etc
        this change is unlikely to affect user coding.
      
      ENH: use file atomic for ensight file creation
      
      - avoids corrupt (truncated) files being referenced by the ensight
        case file if the simulation crashes while writing the ensight file.
      5338e56c
    • Mark OLESEN's avatar
      ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) · 9f7cfa94
      Mark OLESEN authored
      - eg, for partially incomplete systems (without libz devel header)
      
      ENH: clearer binding of dummy Pstream in OpenFOAM/Make/options
      
      - link of dummy stub Pstream now contingent on linking libOpenFOAM as
        well. This makes the purpose slightly clearer
      
      ENH: cleaner option naming/handling in wmake script
      
      - allow special purpose -no-openfoam option.
        Eg, compiling test programs without OpenFOAM and Pstream libraries
        but using the rest of the wmake system.
      
      ENH: add +openmp support into WM_COMPILE_CONTROL (#2633)
      
      - this adds compile/link flags for openmp.
        For single-use, can also use 'wmake -openmp'.
      
        If both +openmp and ~openmp are specified in WM_COMPILE_CONTROL
        the ~openmp will have priority.
      
        This is actually done indirectly since ~openmp will set empty
        COMP_OPENMP, LINK_OPENMP internal variables, which the +openmp then
        adds to the c++FLAGS and linkexe targets (ie, won't actually add
        anything).
      
      ENH: add +ccache or ccache=... support into WM_COMPILE_CONTROL (#2633)
      
      - with the first version (+ccache), simply use ccache from the path
        without any extra options.
      
      - with the second version (ccache=...), can be more specific about
        what is called.
      
        Using "+ccache" is identical to "ccache=ccache", but the later could
        be used in other ways. For example,
      
           ccache=/strange/install/path/ccache
           ccache=</path/my-tooling --option>
      
        Have the choice of unquoted, single or double quoted or '< >' quoted
      
      STYLE: relocate FOAM_EXTRA_LDFLAGS in general makefile
      
      - removes clutter for different linkers (eg, gold, mold, ldd)
        making it easier to extend for other linkers.
      
      STYLE: protect makefile checks with 'strip' function
      9f7cfa94
    • Mark OLESEN's avatar
      e15b1030
    • Mark OLESEN's avatar
    • Mark OLESEN's avatar
      COMP: remove fast-math and unsafe-math-optimizations for Fujitsu (#2564) · edc12c9a
      Mark OLESEN authored
      - was found to cause issues (snappyHexMesh specifically)
        on Fugaku. Reported by @Azami
      edc12c9a
    • Mark OLESEN's avatar
      ENH: provide MPI native minOp, maxOp reduce multiple values · 25e874a4
      Mark OLESEN authored
      - consistent with sumOp
      
      ENH: globalIndex with gatherNonLocal tag, and use leading dispatch tags
      
      - useful for gather/write where the master data can be written
       separately.  Leading vs trailing dispatch tags for more similarity to
       other C++ conventions.
      25e874a4
  4. Nov 14, 2022
  5. Nov 11, 2022
  6. Nov 09, 2022
  7. Nov 08, 2022
    • Andrew Heather's avatar
      Merge branch 'feature-mpi-updates' into 'develop' · 7fa4f1ef
      Andrew Heather authored
      More consistent use of combineReduce, simpler and/or reductions
      
      See merge request !566
      7fa4f1ef
    • Mark OLESEN's avatar
      ENH: consolidate 'formatOptions' handling for coordSetWriter/surfaceWriter · 5b29ff0e
      Mark OLESEN authored and Andrew Heather's avatar Andrew Heather committed
      - replaced ad hoc handling of formatOptions with coordSetWriter and
        surfaceWriter helpers.
      
        Accompanying this change, it is now possible to specify "default"
        settings to be inherited, format-specific settings and have a
        similar layering with surface-specific overrides.
      
      - snappyHexMesh now conforms to setFormats
      
        Eg,
      
            formatOptions
            {
                default
                {
                    verbose     true;
                    format      binary;
                }
                vtk
                {
                    precision   10;
                }
           }
      
           surfaces
           {
               surf1
               {
                   ...
      
                   formatOptions
                   {
                       ensight
                       {
                           scale   1000;
                       }
                   }
               }
           }
      5b29ff0e
    • Mark OLESEN's avatar
      ENH: preserve globalIndex merge information within mergedSurf · b7592c1e
      Mark OLESEN authored and Andrew Heather's avatar Andrew Heather committed
      - for later reuse with fields (for example)
      
      ENH: use 'scheduled' for surfaceWriter field merging (#2402)
      
      - in tests with merging fields (surfaceWriter), 'scheduled' was
        generally faster than 'nonBlocking' for scalars, minorly faster for
        vectors.
        Thus make 'scheduled' the default for the surfaceWriter but with a
        user-option to adjust as required. Previously simply relied on
        whichever default globalIndex had (currently nonBlocking).
      
        Reuse globalIndex information from mergedSurf instead of
        globalIndex::gatherOp to avoid an extra MPI call to gather sizes
        each time.
      
        These changes will not be noticable unless surface sampling is done
        very frequently (eg, every iteration) and with large core counts.
      b7592c1e
    • Mark OLESEN's avatar
      ENH: PatchTools::gatherAndMerge with recovery of the globalIndex · 799d2471
      Mark OLESEN authored and Andrew Heather's avatar Andrew Heather committed
      - support globalIndex for points/faces as an output parameter,
        which allows reuse in subsequent field merge operations.
      
      - make pointMergeMap an optional parameter. This information is not
        always required. Eg, if only using gatherAndMerge to combine faces
        but without any point fields.
      
      ENH: make globalIndex() noexcept, add globalIndex::clear() method
      799d2471
    • Mark OLESEN's avatar
      ENH: use returnReduceAnd(), returnReduceOr() functions · 70208a73
      Mark OLESEN authored and Andrew Heather's avatar Andrew Heather committed
      DOC: document which MPI send/recv are associated with commType
      70208a73
    • Mark OLESEN's avatar
      ENH: more consistent use of broadcast, combineReduce etc. · 473e1441
      Mark OLESEN authored and Andrew Heather's avatar Andrew Heather committed
        - broadcast           : (replaces scatter)
        - combineReduce       == combineGather + broadcast
        - listCombineReduce   == listCombineGather + broadcast
        - mapCombineReduce    == mapCombineGather + broadcast
        - allGatherList       == gatherList + scatterList
      
        Before settling on a more consistent naming convention,
        some intermediate namings were used in OpenFOAM-v2206:
      
          - combineReduce       (2206: combineAllGather)
          - listCombineReduce   (2206: listCombineAllGather)
          - mapCombineReduce    (2206: mapCombineAllGather)
      473e1441
    • Mark OLESEN's avatar
      b9c15b85
    • mattijs's avatar
      18216a46
  8. Nov 07, 2022