1. 12 Jun, 2019 1 commit
  2. 30 Apr, 2019 1 commit
    • Mark OLESEN's avatar
      ENH: unify dlSym handling · 1d5e0a4e
      Mark OLESEN authored
      - amalgamate dlSym() and dlSymFound() into a single dlSymFind() backend
        with optional 'required' argument. This makes it possible to
        query and assign at once.
      1d5e0a4e
  3. 24 Apr, 2019 1 commit
  4. 12 Apr, 2019 2 commits
  5. 11 Apr, 2019 3 commits
  6. 06 Apr, 2019 1 commit
  7. 03 Apr, 2019 1 commit
  8. 02 Apr, 2019 4 commits
  9. 05 Apr, 2019 1 commit
    • Mark OLESEN's avatar
      ENH: add fileName::concat static method · baaf8d6b
      Mark OLESEN authored
      - similar to the global '/' operator, but taking raw strings and not
        performing any stripping.
      
        Was previously a local function within POSIX.C, but it is useful enough
        to be in fileName itself.
      baaf8d6b
  10. 14 Mar, 2019 3 commits
  11. 11 Mar, 2019 1 commit
  12. 23 May, 2019 1 commit
  13. 21 May, 2019 1 commit
  14. 14 Feb, 2019 1 commit
    • Mark OLESEN's avatar
      ENH: ensure self-assignment and self-swapping are a no-op for string types · 60c31415
      Mark OLESEN authored
      - simplifies their use when reordering lists etc.
        (word, fileName, keyType, wordRe)
      
      - "unfriend" IO operators for string types. They require no internal access
      
      - add compile/uncompile methods to keyType for symmetry with wordRe
      
      - when outputting keyType/wordRe, be more explicit about them using
        writeQuoted()
      60c31415
  15. 06 Feb, 2019 1 commit
  16. 18 Oct, 2018 1 commit
    • Mark OLESEN's avatar
      ENH: cleanup of Enum class · 3b745122
      Mark OLESEN authored
      - more dictionary-like methods, enforce keyType::LITERAL for all
        lookups to avoid any spurious keyword matching.
      
      - new readEntry, readIfPresent methods
      
      - The get() method replaces the now deprecate lookup() method.
      
      - Deprecate lookupOrFailsafe()
        Failsafe behaviour is now an optional parameter for lookupOrDefault,
        which makes it easier to tailor behaviour at runtime.
      
      - output of the names is now always flatted without line-breaks.
        Thus,
      
           os << flatOutput(someEnumNames.names()) << nl;
           os << someEnumNames << nl;
      
        both generate the same output.
      
      - Constructor now uses C-string (const char*) directly instead of
        Foam::word in its initializer_list.
      
      - Remove special enum + initializer_list constructor form since
        it can create unbounded lookup indices.
      
      - Removd old hasEnum, hasName forms that were provided during initial
        transition from NamedEnum.
      
      - Added static_assert on Enum contents to restrict to enum or
        integral values.  Should not likely be using this class to enumerate
        other things since it internally uses an 'int' for its values.
      
        Changed volumeType accordingly to enumerate on its type (enum),
        not the class itself.
      3b745122
  17. 15 Oct, 2018 1 commit
    • Mark OLESEN's avatar
      ENH: make cwd() behaviour user-adjustable (issue #1007) · 7864672c
      Mark OLESEN authored
      - with the 'cwd' optimization switch it is possible to select the
        preferred behaviour for the cwd() function.
      
        A value of 0 causes cwd() to return the physical directory,
        which is what getcwd() and `pwd -P` return.
        Until now, this was always the standard behaviour.
      
        With a value of 1, cwd() instead returns the logical directory,
        which what $PWD contains and `pwd -L` returns.
        If any of the sanity checks fail (eg, PWD points to something other
        than ".", etc), a warning is emitted and the physical cwd() is
        returned instead.
      
        Apart from the optical difference in the output, this additional
        control helps workaround file systems with whitespace or other
        characters in the directory that normally cause OpenFOAM to balk.
        Using a cleaner symlink elsewhere should skirt this issue.
      
        Eg,
            cd $HOME
            ln -s "/mounted volume/user/workdir"  workdir
            cd workdir
            # start working with OpenFOAM
      7864672c
  18. 27 Jul, 2018 1 commit
  19. 25 Jun, 2018 1 commit
  20. 22 Jun, 2018 2 commits
  21. 21 Jun, 2018 1 commit
  22. 30 May, 2018 1 commit
  23. 28 May, 2018 1 commit
  24. 11 Apr, 2018 1 commit
  25. 27 Apr, 2018 2 commits
    • 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
    • Mark OLESEN's avatar
      STYLE: consistent '// End namespace' markers · c0766ce8
      Mark OLESEN authored
      c0766ce8
  26. 24 Apr, 2018 1 commit
    • 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
  27. 11 Apr, 2018 1 commit
  28. 09 Apr, 2018 2 commits
    • Mark OLESEN's avatar
      COMP: some low-level darwin-related patches · 297570de
      Mark OLESEN authored
      - a partial selection from https://github.com/mrklein/openfoam-os-x
        with adjustments. The primary purpose is to reduce header-level
        incompatibilities and to provide a common set of make rules to allow
        easier patching (or re-integration).
      297570de
    • Mark OLESEN's avatar
      ENH: provide Rand48 as generator in the expected C++11 form · b85d0b5c
      Mark OLESEN authored
      - this removes an OS-specific dependency (eg, drand48_r is not POSIX)
        and allows easier use of other random number generators.
      
        The Rand48 generator has identical behaviour and period as the
        lrand48() library routine, but holds its own seed and state
        (which makes it re-entrant) and can be combined with other
        random distributions.
      
        However, when using the modified form to obtain scalar values
        they will not be identical to what drand48() yields.
      
        This is because drand48() uses the raw 48-bit values to directly
        set the mantissa of an IEEE double where as the newer distribution
        normalizes based on the 32-bit value.
      
      STYLE: simplify code in Random::shuffle and use Swap
      b85d0b5c
  29. 11 Apr, 2018 1 commit