Skip to content
Snippets Groups Projects
  1. Sep 19, 2017
  2. Sep 15, 2017
  3. Sep 14, 2017
  4. Sep 09, 2017
  5. Sep 06, 2017
  6. May 09, 2018
  7. May 08, 2018
  8. May 07, 2018
    • 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
  9. May 03, 2018
  10. May 02, 2018
  11. Apr 30, 2018
  12. Mar 07, 2018
  13. Mar 05, 2018
    • 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
  14. Apr 30, 2018
  15. Apr 27, 2018
    • 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
  16. Apr 26, 2018
  17. Apr 27, 2018
    • 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