1. 31 Oct, 2019 1 commit
  2. 07 Jan, 2019 1 commit
  3. 06 Feb, 2019 1 commit
  4. 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
  5. 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
  6. 24 Oct, 2017 1 commit
  7. 18 May, 2016 1 commit
  8. 25 Apr, 2016 2 commits
  9. 11 Nov, 2015 1 commit
  10. 17 Dec, 2012 1 commit
  11. 19 Apr, 2012 1 commit
  12. 15 Mar, 2012 1 commit
  13. 18 Nov, 2011 1 commit
    • laurence's avatar
      ENH: Merge cvMesh functionality into cv2DMesh · 075e47ea
      laurence authored
      - Added conformationSurface and searchableSurface classes in place
        of querySurface.
      - Added cellSizeControl class.
      - Change cvMesh argument of relaxation model constructor to Time.
      - Add writePrecision option to surfaceConvert.
      - Add onLine function to surfaceFeatureExtract.
      - Remove querySurface.
      - Move createShellMesh and extrude2DMesh to their own libraries.
      - Replace controls and tolerances with a cv2DControls object.
      - Add patchToPoly2DMesh class to extrude2DMesh.
      075e47ea
  14. 19 Oct, 2011 1 commit
  15. 14 Aug, 2011 1 commit
  16. 20 May, 2011 1 commit
  17. 19 Jan, 2011 1 commit
  18. 07 Jan, 2011 1 commit
  19. 05 Jan, 2011 2 commits
  20. 20 Dec, 2010 1 commit
  21. 16 Dec, 2010 2 commits
  22. 07 Dec, 2010 1 commit
  23. 27 Jul, 2010 1 commit
  24. 18 May, 2010 1 commit
  25. 29 Mar, 2010 1 commit
  26. 17 Mar, 2010 2 commits