1. 07 May, 2018 4 commits
    • Mark Olesen's avatar
      COMP: silence some compiler warnings/errors · 2f567e53
      Mark Olesen authored
      - catch (value)
      - forward declarations for operator<<()
      - non-const access to Reaction name()
      - spurious return statement
      2f567e53
    • Mark Olesen's avatar
      CONFIG: add Gcc81 · 272e09b0
      Mark Olesen authored
      272e09b0
    • Mark Olesen's avatar
      BUG: collated ensight not working with isosurfaces (closes #318) · 01a313d8
      Mark Olesen authored
      - the problem arises since the various surface writers are stateless.
        The collated output format hacks around this limitation by adding in
        its own fieldDict caching (to disk).
      
        Now include an updateMesh() method to hook into geometry changes.
        This is considered a stop-gap measure until the surface output
        handling is improved.
      01a313d8
    • Mark Olesen's avatar
      ENH: improvements in the surface sampling infrastructure · b0648f2b
      Mark Olesen authored
      - improvement documentation for surface sampling.
      
      - can now specify alternative sampling scheme for obtaining the
        face values instead of just using the "cell" value. For example,
      
            sampleScheme    cellPoint;
      
        This can be useful for cases when the surface is close to a boundary
        cell and there are large gradients in the sampled field.
      
      - distanceSurface now handles non-closed surfaces more robustly.
        Unknown regions (not inside or outside) are marked internally and
        excluded from consideration. This allows use of 'signed' surfaces
        where not previously possible.
      b0648f2b
  2. 03 May, 2018 1 commit
  3. 02 May, 2018 3 commits
  4. 30 Apr, 2018 1 commit
  5. 07 Mar, 2018 1 commit
  6. 05 Mar, 2018 1 commit
    • Mark Olesen's avatar
      STYLE: use direct iteration for HashSet · 4fe8ed82
      Mark Olesen authored
      - The iterator for a HashSet dereferences directly to its key.
      
      - Eg,
      
            for (const label patchi : patchSet)
            {
                ...
            }
        vs.
            forAllConstIter(labelHashSet, patchSet, iter)
            {
                const label patchi = iter.key();
                ...
            }
      4fe8ed82
  7. 30 Apr, 2018 5 commits
  8. 27 Apr, 2018 2 commits
    • Mark Olesen's avatar
      ENH: revert regionSplit to older algorithm (issue #805) · ed272274
      Mark Olesen authored
      - the algorithm was last used in OpenFOAM-2.4, after which it was
        replaced with a FaceCellWave version.
      
        Whereas the original (2.4.x) version exhibited performance
        degradation on very large meshes (with explicit constraints), the
        FaceCellWave version exhibited performance issues with large numbers
        of blocked faces.
      
        With large numbers of blocked faces, the FaceCellWave regionSplit
        could take between 10 to 100 times longer due to the slow
        propagation speed through blocked faces.
      
        The 2.4 regionSplit has been revamped to avoid local memory
        allocations, which appears to have been the source of the original
        performance issues on large meshes.
      
        For additional performance, intermediate renumbering is also avoided
        during the consolidation of regions over processor domains.
      ed272274
    • Mark Olesen's avatar
      ENH: make format of ExecutionTime = ... output configurable (issue #788) · dd8341f6
      Mark Olesen authored
      - controlled by the the 'printExecutionFormat' InfoSwitch in
        etc/controlDict
      
            // Style for "ExecutionTime = " output
            // - 0 = seconds (with trailing 's')
            // - 1 = day-hh:mm:ss
      
         ExecutionTime = 112135.2 s  ClockTime = 113017 s
      
         ExecutionTime = 1-07:08:55.20  ClockTime = 1-07:23:37
      
      - Callable via the new Time::printExecutionTime() method,
        which also helps to reduce clutter in the applications.
        Eg,
      
           runTime.printExecutionTime(Info);
      
        vs
      
           Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
               << "  ClockTime = " << runTime.elapsedClockTime() << " s"
               << nl << endl;
      
      --
      
      ENH: return elapsedClockTime() and clockTimeIncrement as double
      
      - previously returned as time_t, which is less portable.
      dd8341f6
  9. 26 Apr, 2018 1 commit
  10. 27 Apr, 2018 3 commits
    • Mark Olesen's avatar
      STYLE: remove old/dead decompositionMethod::calcCellCells code · 4dcd052f
      Mark Olesen authored
      - alternative calcCellCells that handled explicitConnections was
        deactivated (2014 or earlier) and finally removed APR-2018.
      4dcd052f
    • Mark Olesen's avatar
      ENH: ListOp::inplaceMapValue using a Map<label> for the mapping. · 10b69fa2
      Mark Olesen authored
      For example, with some HashTable or Map container of models
      
          { model0 => 1, model1 => 4, model2 => 5, model3 => 12, model4 => 15, }
      
      specify the remapping
      
          Map<label> mapper({{1, 3}, {2, 6}, {3, 12}, {5, 8}});
      
      inplaceMapValue(mapper, models) then yields
      
          { model0 => 3, model1 => 4, model2 => 8, model3 => 12, model4 => 15, }
      
      --
      
      ENH: extend bitSet::count() to optionally count unset bits instead.
      
      --
      
      ENH: BitOps compatibility methods for boolList.
      
      - These ease coding that uses a boolList instead of bitSet and use
        short-circuit logic when possible.
      
        Eg, when 'bitset' and 'bools' contain the same information
      
            bitset.count()  <->  BitOps::count(bools)
            bitset.all()    <->  BitOps::all(bools)
            bitset.any()    <->  BitOps::any(bools)
            bitset.none()   <->  BitOps::none(bools)
      
        These methods can then be used directly in parameters or in logic.
        Eg,
      
            returnReduce(bitset.any(), orOp<bool>());
            returnReduce(BitOps::any(bools), orOp<bool>());
      
            if (BitOps::any(bools)) ...
      10b69fa2
    • Mark Olesen's avatar
      STYLE: consistent '// End namespace' markers · c0766ce8
      Mark Olesen authored
      c0766ce8
  11. 26 Apr, 2018 1 commit
  12. 25 Apr, 2018 1 commit
  13. 26 Apr, 2018 4 commits
  14. 25 Apr, 2018 4 commits
  15. 24 Apr, 2018 2 commits
    • Mark Olesen's avatar
      CONFIG: adjust make scripts for darwin · 76cb38fb
      Mark Olesen authored
      - handling of dead links (find -L -delete unsupported)
      
      - remove ignore case flag on 's/../../i' used in have_scotch script.
        It is unneeded and not tolerated by Darwin's sed.
      
      - avoid embedded comments in EXE_INC (Make/options files), which do
        not work well with the OSX LLVM cpp.
        It strips out the comments but also removes the continuation char.
      
      STYLE: adjust notes about paraview library locations
      76cb38fb
    • Mark Olesen's avatar
      COMP: fix Darwin size ambiguities · 0dfda5f7
      Mark Olesen authored
      - size ambiguity for Foam::min(string::size_type, label)
      
      - stream operators for int16/uint16 which are needed for mode_t (Darwin)
      0dfda5f7
  16. 25 Apr, 2018 1 commit
  17. 23 Apr, 2018 2 commits
  18. 24 Apr, 2018 3 commits
    • Mark Olesen's avatar
      CONFIG: remove WM_LINK_LANGUAGE env variable (always c++) · 2768500d
      Mark Olesen authored
      - was somewhat redundant in wmake/rules/General/general anyhow
      2768500d
    • Mark Olesen's avatar
      ENH: improve handling of ThirdParty packages · b4d38ab4
      Mark Olesen authored
      - generalize some of the library extensions (.so vs .dylib).
        Provide as wmake 'sysFunctions'
      
      - added note about unsupported/incomplete system support
      
      - centralize detection of ThirdParty packages into wmake/ subdirectory
        by providing a series of scripts in the spirit of GNU autoconfig.
        For example,
      
            have_boost, have_readline, have_scotch, ...
      
        Each of the `have_<package>` scripts will generally provide the
        following type of functions:
      
            have_<package>          # detection
            no_<package>            # reset
            echo_<package>          # echoing
      
        and the following type of variables:
      
            HAVE_<package>          # unset or 'true'
            <package>_ARCH_PATH     # root for <package>
            <package>_INC_DIR       # include directory for <package>
            <package>_LIB_DIR       # library directory for <package>
      
        This simplifies the calling scripts:
      
            if have_metis
            then
                wmake metisDecomp
            fi
      
        As well as reducing clutter in the corresponding Make/options:
      
            EXE_INC = \
                -I$(METIS_INC_DIR) \
                -I../decompositionMethods/lnInclude
      
            LIB_LIBS = \
                -L$(METIS_LIB_DIR) -lmetis
      
        Any additional modifications (platform-specific or for an external build
        system) can now be made centrally.
      b4d38ab4
    • Mark Olesen's avatar
      672f0574