1. 29 Jun, 2020 1 commit
  2. 24 Jun, 2020 1 commit
  3. 17 Jun, 2020 1 commit
  4. 02 Jun, 2020 1 commit
    • Mark Olesen's avatar
      ENH: unify use of dictionary method names · 3e43edf0
      Mark Olesen authored
      - previously introduced `getOrDefault` as a dictionary _get_ method,
        now complete the transition and use it everywhere instead of
        `lookupOrDefault`. This avoids mixed usage of the two methods that
        are identical in behaviour, makes for shorter names, and promotes
        the distinction between "lookup" access (ie, return a token stream,
        locate and return an entry) and "get" access (ie, the above with
        conversion to concrete types such as scalar, label etc).
      3e43edf0
  5. 06 May, 2020 1 commit
    • Mark Olesen's avatar
      COMP: use -iquotedir for including the local '.' directory · 595579e0
      Mark Olesen authored
      - adds into the include-quoted search list instead the general (-Idir)
        search list.
      
        * makes it less subject to ordering (since it will now generally be
          searched first) and makes it less subject to how duplicate removal
          is implemented. In some compilers (#1627), the last instance of
          a duplicate directory would be used and not the first instance.
      
        * removes clutter in some Make/options files
      
      COMP: add missing linkage libraries
      595579e0
  6. 19 Dec, 2019 2 commits
  7. 11 Dec, 2019 1 commit
    • Andrew Heather's avatar
      ENH: add selectable update control/interval to pimpleFoam, rhoPimpleFoam · 87bba9ae
      Andrew Heather authored
      - Allows user-defined control of when the mesh motion occurs,
        which can be especially useful in situations where the mesh motion
        is much slower than any of the fluid physics.
      
        For example, in constant/dynamicMeshDict:
      
            updateControl   runTime;
            updateInterval  0.5;
      
        to have mesh motion triggered every 1/2 second.
      
        Note that the _exact_ time that the mesh motion actually occurs may
        be slightly differently since the "runTime" triggering is fuzzy in
        nature. It will trigger when the threshold has been crossed, which
        will depend on the current time-step size.
      87bba9ae
  8. 31 Oct, 2019 1 commit
  9. 28 Apr, 2019 1 commit
  10. 06 Feb, 2019 1 commit
  11. 11 Dec, 2018 2 commits
  12. 13 Dec, 2018 1 commit
    • Mark Olesen's avatar
      ENH: consolidate handling of mandatory/optional command arguments · 5d9e278e
      Mark Olesen authored
      - for some special cases we wish to mark command-line arguments as
        being optional, in order to do our own treatment. For example,
        when an arbitrary number of arguments should be allowed.
      
        Now tag this situation with argList::noMandatoryArgs().
        The argList::argsMandatory() query can then be used in any further
        logic, including the standard default argument checking.
      
      - with the new default check, can consolidate the special-purpose
      
            "setRootCaseNonMandatoryArgs.H"
      
        into the regular
      
            "setRootCase.H"
      
      - revert to a simple "setRootCase.H" and move all the listing related
        bits to a "setRootCaseLists.H" file. This leaves the information
        available for solvers, or whoever else wishes, without being
        introduced everywhere.
      
      - add include guards and scoping to the listing files and rename to
        something less generic.
      
           listOptions.H -> setRootCaseListOptions.H
           listOutput.H  -> setRootCaseListOutput.H
      5d9e278e
  13. 17 Oct, 2018 1 commit
    • sergio's avatar
      ENH: · 5daa38d5
      sergio authored
      Update of overRhoPimpleDyMFoam and overInterDyMFoam solvers.
      Adding corresponding tutorials with best possible settings
      The main effort was put on reducing pressure spikes as the
      stencil change with hole cells on the background mesh.
      5daa38d5
  14. 05 Oct, 2018 1 commit
  15. 04 Oct, 2018 1 commit
  16. 02 Oct, 2018 1 commit
  17. 27 Aug, 2018 1 commit
  18. 09 Aug, 2018 1 commit
  19. 25 Jul, 2018 1 commit
    • Mark Olesen's avatar
      ENH: fvMeshSubset improvements (issue #951) · dbe0db1d
      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
        parameters.
      
        Old parameter order:
      
            setLargeCellSubset
            (
                const labelList& region,
                const label currentRegion,
                const label patchID = -1,
                const bool syncCouples = true
            );
      
        New parameter order:
      
            setCellSubset
            (
                const label regioni,
                const labelUList& regions,
                const label patchID = -1,
                const bool syncCouples = true
            );
      
         And without ambiguity:
      
            setCellSubset
            (
                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,
      
            meshParts.set
            (
                zonei,
                new fvMeshSubset(mesh, selectedCells)
            );
      
        Or even
      
            return autoPtr<fvMeshSubset>::New(mesh, selectedCells);
      dbe0db1d
  20. 05 Oct, 2018 1 commit
  21. 19 Jun, 2018 1 commit
  22. 10 Aug, 2018 1 commit
  23. 21 Jun, 2018 1 commit
  24. 21 Dec, 2017 1 commit
  25. 19 Dec, 2017 1 commit
  26. 27 Apr, 2018 1 commit
    • 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
  27. 28 Mar, 2018 1 commit
  28. 16 Mar, 2018 1 commit
    • Mark Olesen's avatar
      STYLE: more consistent use of dimensioned Zero · 2f86cdc7
      Mark Olesen authored
      - when constructing dimensioned fields that are to be zero-initialized,
        it is preferrable to use a form such as
      
            dimensionedScalar(dims, Zero)
            dimensionedVector(dims, Zero)
      
        rather than
      
            dimensionedScalar("0", dims, 0)
            dimensionedVector("zero", dims, vector::zero)
      
        This reduces clutter and also avoids any suggestion that the name of
        the dimensioned quantity has any influence on the field's name.
      
        An even shorter version is possible. Eg,
      
            dimensionedScalar(dims)
      
        but reduces the clarity of meaning.
      
      - NB: UniformDimensionedField is an exception to these style changes
        since it does use the name of the dimensioned type (instead of the
        regIOobject).
      2f86cdc7
  29. 13 Mar, 2018 1 commit
    • Mark Olesen's avatar
      ENH: code reduction in PackedList, PackedBoolList (issue #751) · 5d1fb235
      Mark Olesen authored
      - eliminate iterators from PackedList since they were unused, had
        lower performance than direct access and added unneeded complexity.
      
      - eliminate auto-vivify for the PackedList '[] operator.
        The set() method provides any required auto-vivification and
        removing this ability from the '[]' operator allows for a lower
        when accessing the values. Replaced the previous cascade of iterators
        with simpler reference class.
      
      PackedBoolList:
      
      - (temporarily) eliminate logic and addition operators since
        these contained partially unclear semantics.
      
      - the new test() method tests the value of a single bit position and
        returns a bool without any ambiguity caused by the return type
        (like the get() method), nor the const/non-const access (like
        operator[] has). The name corresponds to what std::bitset uses.
      
      - more consistent use of PackedBoolList test(), set(), unset() methods
        for fewer operation and clearer code. Eg,
      
            if (list.test(index)) ...    |  if (list[index]) ...
            if (!list.test(index)) ...   |  if (list[index] == 0u) ...
            list.set(index);             |  list[index] = 1u;
            list.unset(index);           |  list[index] = 0u;
      
      - deleted the operator=(const labelUList&) and replaced with a setMany()
        method for more clarity about the intended operation and to avoid any
        potential inadvertent behaviour.
      5d1fb235
  30. 07 Mar, 2018 1 commit
    • Mark Olesen's avatar
      ENH: new bitSet class and improved PackedList class (closes #751) · bac943e6
      Mark Olesen authored
      - The bitSet class replaces the old PackedBoolList class.
        The redesign provides better block-wise access and reduced method
        calls. This helps both in cases where the bitSet may be relatively
        sparse, and in cases where advantage of contiguous operations can be
        made. This makes it easier to work with a bitSet as top-level object.
      
        In addition to the previously available count() method to determine
        if a bitSet is being used, now have simpler queries:
      
          - all()  - true if all bits in the addressable range are empty
          - any()  - true if any bits are set at all.
          - none() - true if no bits are set.
      
        These are faster than count() and allow early termination.
      
        The new test() method tests the value of a single bit position and
        returns a bool without any ambiguity caused by the return type
        (like the get() method), nor the const/non-const access (like
        operator[] has). The name corresponds to what std::bitset uses.
      
        The new find_first(), find_last(), find_next() methods provide a faster
        means of searching for bits that are set.
      
        This can be especially useful when using a bitSet to control an
        conditional:
      
        OLD (with macro):
      
            forAll(selected, celli)
            {
                if (selected[celli])
                {
                    sumVol += mesh_.cellVolumes()[celli];
                }
            }
      
        NEW (with const_iterator):
      
            for (const label celli : selected)
            {
                sumVol += mesh_.cellVolumes()[celli];
            }
      
            or manually
      
            for
            (
                label celli = selected.find_first();
                celli != -1;
                celli = selected.find_next()
            )
            {
                sumVol += mesh_.cellVolumes()[celli];
            }
      
      - When marking up contiguous parts of a bitset, an interval can be
        represented more efficiently as a labelRange of start/size.
        For example,
      
        OLD:
      
            if (isA<processorPolyPatch>(pp))
            {
                forAll(pp, i)
                {
                    ignoreFaces.set(i);
                }
            }
      
        NEW:
      
            if (isA<processorPolyPatch>(pp))
            {
                ignoreFaces.set(pp.range());
            }
      bac943e6
  31. 02 Mar, 2018 1 commit
  32. 13 Jul, 2018 1 commit
  33. 02 Jul, 2018 1 commit
    • Mark Olesen's avatar
      ENH: improve controls for Time (issue #910) · 2662042d
      Mark Olesen authored
      - relocate some standard functionality to TimePaths to allow a lighter
        means of managing time directories without using the entire Time
        mechanism.
      
      - optional enableLibs for Time construction (default is on)
        and a corresponding argList::noLibs() and "-no-libs" option
      
      STYLE:
      
      - mark Time::outputTime() as deprecated MAY-2016
      
      - use pre-increment for runTime, although there is no difference in
        behaviour or performance.
      2662042d
  34. 11 Jun, 2018 1 commit
  35. 11 Jan, 2018 1 commit
  36. 18 May, 2018 1 commit
  37. 10 Feb, 2018 1 commit
  38. 30 Nov, 2017 1 commit