1. 31 Oct, 2019 1 commit
  2. 06 Feb, 2019 1 commit
  3. 27 Apr, 2018 1 commit
    • 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
  4. 05 Apr, 2018 1 commit
  5. 26 Feb, 2018 1 commit
    • Mark Olesen's avatar
      ENH: cleanup autoPtr class (issue #639) · 660f3e54
      Mark Olesen authored
      Improve alignment of its behaviour with std::unique_ptr
      
        - element_type typedef
        - release() method - identical to ptr() method
        - get() method to get the pointer without checking and without releasing it.
        - operator*() for dereferencing
      
      Method name changes
      
        - renamed rawPtr() to get()
        - renamed rawRef() to ref(), removed unused const version.
      
      Removed methods/operators
      
        - assignment from a raw pointer was deleted (was rarely used).
          Can be convenient, but uncontrolled and potentially unsafe.
          Do allow assignment from a literal nullptr though, since this
          can never leak (and also corresponds to the unique_ptr API).
      
      Additional methods
      
        - clone() method: forwards to the clone() method of the underlying
          data object with argument forwarding.
      
        - reset(autoPtr&&) as an alternative to operator=(autoPtr&&)
      
      STYLE: avoid implicit conversion from autoPtr to object type in many places
      
      - existing implementation has the following:
      
           operator const T&() const { return operator*(); }
      
        which means that the following code works:
      
             autoPtr<mapPolyMesh> map = ...;
             updateMesh(*map);    // OK: explicit dereferencing
             updateMesh(map());   // OK: explicit dereferencing
             updateMesh(map);     // OK: implicit dereferencing
      
        for clarity it may preferable to avoid the implicit dereferencing
      
      - prefer operator* to operator() when deferenced a return value
        so it is clearer that a pointer is involve and not a function call
        etc    Eg,   return *meshPtr_;  vs.  return meshPtr_();
      660f3e54
  6. 22 Jul, 2016 1 commit
  7. 25 Apr, 2016 2 commits
  8. 26 Nov, 2015 1 commit
    • mattijs's avatar
      ENH: regionSplit: improve algorithm order · 8d0154ba
      mattijs authored
      The old version of regionSplit would hand out regions one by one. This
      is a big problem when there are lots of regions - the extreme being
      in the decompositionMethods, where it is used to cluster cells and most clusters
      being only one cell. This rewrite uses a mesh wave to determine disconnected
      regions in one go. This produced non-compact numbering which is then compacted
      in a second phase.
      On a 14M cell case with cyclic constraints this reduced decompose
      time from 40 mins down to 5.
      8d0154ba
  9. 26 Sep, 2013 1 commit
  10. 13 Mar, 2013 1 commit
  11. 26 Feb, 2013 2 commits
  12. 05 Oct, 2012 1 commit
  13. 24 Jan, 2012 2 commits
  14. 14 Aug, 2011 1 commit
  15. 19 Jan, 2011 1 commit
  16. 14 Jan, 2011 1 commit
  17. 07 Jan, 2011 1 commit
  18. 05 Jan, 2011 2 commits
  19. 28 Jul, 2010 1 commit
  20. 29 Mar, 2010 1 commit
  21. 31 Dec, 2008 1 commit
  22. 25 Jun, 2008 2 commits
  23. 23 Apr, 2008 1 commit
  24. 15 Apr, 2008 1 commit