1. 19 Oct, 2018 1 commit
    • Mark Olesen's avatar
      STYLE: use range-for when looping dictionary entries. · 5527b00b
      Mark Olesen authored
      - as part of the cleanup of dictionary access methods (c6520033c9c4)
        made the dictionary class single inheritance from IDLList<entry>.
        This eliminates any ambiguities for iterators and allows
        for simple use of range-for looping.
            for (const entry& e : topDict))
                Info<< "entry:" << e.keyword() << " is dict:" << e.isDict() << nl;
            forAllConstIter(dictionary, topDict, iter))
                Info<< "entry:" << iter().keyword()
                    << " is dict:" << iter().isDict() << nl;
  2. 18 Oct, 2018 1 commit
    • Mark Olesen's avatar
      ENH: cleanup of Enum class · 73116c4f
      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.
           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.
  3. 05 Oct, 2018 1 commit
  4. 19 Sep, 2018 1 commit
  5. 03 Aug, 2018 1 commit
  6. 30 Jul, 2018 2 commits
  7. 26 Jul, 2018 1 commit
  8. 25 Jul, 2018 1 commit
    • Mark Olesen's avatar
      ENH: fvMeshSubset improvements (issue #951) · 9b662e70
      Mark Olesen authored
      - what was previously termed 'setLargeCellSubset()' is now simply
        'setCellSubset()' and supports memory efficient interfaces.
        The new parameter ordering avoids ambiguities caused by default
        Old parameter order:
                const labelList& region,
                const label currentRegion,
                const label patchID = -1,
                const bool syncCouples = true
        New parameter order:
                const label regioni,
                const labelUList& regions,
                const label patchID = -1,
                const bool syncCouples = true
         And without ambiguity:
                const labelUList& selectedCells,
                const label patchID = -1,
                const bool syncCouples = true
      - support bitSet directly for specifying the selectedCells for
        memory efficiency and ease of use.
      - Additional constructors to perform setCellSubset() immediately,
        which simplifies coding.
        For example,
                new fvMeshSubset(mesh, selectedCells)
        Or even
            return autoPtr<fvMeshSubset>::New(mesh, selectedCells);
  9. 24 Jul, 2018 1 commit
  10. 20 Jul, 2018 1 commit
  11. 27 Jun, 2018 1 commit
  12. 26 Jun, 2018 3 commits
  13. 25 Jun, 2018 2 commits
  14. 24 Jun, 2018 1 commit
    • Mark Olesen's avatar
      ENH: overhaul of channel handling. Various bug fixes. (issue #6) · 015c05b4
      Mark Olesen authored
      - removed fvMesh sub-channels if favour of selector flags.
        To enable/disable portions of the geometry:
            internal    true/false
            boundary    true/false
        This replaces the previous method of sub-channels in which restrictions
        were propagated from the pipeline through.
            Function Object:
                    fields    (U p);
                input = coprocessor.CreateProducer(datadescription, 'input/patches')
            Function Object:
                    internal  false;
                    fields    (U p);
                input = coprocessor.CreateProducer(datadescription, 'input')
  15. 23 Jun, 2018 1 commit
    • Mark Olesen's avatar
      ENH: improve direct use of cmake (issue #5) · 9687533b
      Mark Olesen authored
      - allows cmake override of the default output library directory,
        which is normally $FOAM_LIBBIN
      ENH: additional debug verbosity
      - extra information (in parallel) when debug level > 1, which can help
        when isolating problems.
  16. 21 Jun, 2018 1 commit
    • Mark Olesen's avatar
      ENH: disable SIGFPE handling in catalyst loop · 2f033c58
      Mark Olesen authored
      - if sigFpe is enabled within OpenFOAM, any errors in the Catalyst
        pipeline will potentially kill the entire simulation.
      - use the new sigFpe::ignore helper class to manage a local disabling
        of SIGFPE handling.
  17. 14 Jun, 2018 1 commit
    • Mark Olesen's avatar
      ENH: prune cloud fields by names only once · 9e58351c
      Mark Olesen authored
      - can remove directly from the temporary objectRegistry prior to
        converting by field type. Cannot, however, do the same for volFields
        or areaFields since these reside on their respective mesh objects.
  18. 16 May, 2018 1 commit
  19. 15 May, 2018 1 commit
  20. 14 May, 2018 1 commit
  21. 11 May, 2018 1 commit
    • Mark Olesen's avatar
      ENH: unified catalyst function object (closes #3) · 04daa405
      Mark Olesen authored
      - previously had separate function objects for each category of source
        (finite volume, finite area, lagrangian). This lead to isolation of
        the individual input sources, which highly restricted the flexibility.
      - now have a single catalyst function object with an arbitrary number
        of inputs (sources). The catalyst channel name is that of the
        corresponds dictionary name. For volume mesh sources, it is possible
        to address "mesh" and "patches" sub-channels.
            mesh = coprocessor.CreateProducer(datadescription, 'myregion/mesh')
        This restructuring also aims at integration of other OpenFOAM content
        (eg, surfMesh, sampled probes, sampled surfaces) as a future
      - the output directory (by default "<case>/insitu") is passed onto
        catalyst as its working directory, using the upstream patches that
        now close issue #4
  22. 08 May, 2018 1 commit
  23. 02 May, 2018 1 commit
  24. 16 Apr, 2018 1 commit
  25. 10 Apr, 2018 1 commit
    • Mark Olesen's avatar
      ENH: provide extra log feedback when catalyst function objects end. · eb5a9821
      Mark Olesen authored
      - Note that stopping the catalyst function object via a `timeEnd` value
        does not actually call the corresponding end() method.
        See: Development/OpenFOAM-plus#791
      ENH: support mkdir as dictionary keyword
      - this is a convenient means of creating an output directory from within
        the function object without corresponding python or shell script.
        Some pipelines (image generation) balk if the output directory does
        not exist. Others (vtm writer etc) will create their own.
  26. 03 Apr, 2018 1 commit
  27. 07 Jan, 2020 1 commit
  28. 23 Jun, 2018 1 commit
  29. 15 Jun, 2018 1 commit
    • Mark Olesen's avatar
      ENH: adjustments to runTimePostProcessing · 3c96e8db
      Mark Olesen authored
      - support VTP input in functionObjectCloud scene element
      - additional fallback lookup of cloud information from state properties
        instead of cloud OutputProperties
  30. 30 May, 2018 1 commit
  31. 17 May, 2018 1 commit
    • Mark Olesen's avatar
      ENH: avoid memory leaks for HashPtrTable, PtrMap insertion (issue #749) · 2c5cdebe
      Mark Olesen authored
      - disallow insert() of raw pointers, since a failed insertion
        (ie, entry already existed) results in an unmanaged pointer.
        Either insert using an autoPtr, or set() with raw pointers or autoPtr.
      - IOobjectList::add() now takes an autoPtr instead of an object reference
      - IOobjectList::remove() now returns an autoPtr instead of a raw pointer
  32. 24 Apr, 2018 1 commit
    • Mark Olesen's avatar
      ENH: improve handling of ThirdParty packages · c794fa0d
      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
                wmake metisDecomp
        As well as reducing clutter in the corresponding Make/options:
            EXE_INC = \
                -I$(METIS_INC_DIR) \
            LIB_LIBS = \
                -L$(METIS_LIB_DIR) -lmetis
        Any additional modifications (platform-specific or for an external build
        system) can now be made centrally.
  33. 18 Apr, 2018 1 commit
  34. 12 Apr, 2018 2 commits
  35. 11 Apr, 2018 1 commit