1. 31 Oct, 2019 1 commit
  2. 14 Aug, 2019 1 commit
  3. 13 Aug, 2019 1 commit
    • mattijs's avatar
      BUG: edge sync fails with cyclic baffles (fixes #1397) · e2269663
      mattijs authored
      - synchronization, reduction only makes sense on processor-coupled
        patches. Since cyclic baffles are within a single processor domain,
        they are not reduced. So need to skip the sanity test for these.
      e2269663
  4. 29 Apr, 2019 1 commit
  5. 21 Mar, 2019 1 commit
  6. 25 Feb, 2019 1 commit
  7. 22 Feb, 2019 1 commit
  8. 18 Feb, 2019 1 commit
  9. 07 Jan, 2019 1 commit
  10. 13 Feb, 2019 1 commit
  11. 11 Feb, 2019 1 commit
  12. 08 Feb, 2019 1 commit
    • Henry Weller's avatar
      isoSurface: Fix for isoSurface 'eroding' surfaces down to nothing · 9580a0e2
      Henry Weller authored
      The occurrence is from cells with vertices that are shared between two faces
      only (these vertices can originate from hex refinement). Decomposing both faces
      can occasionally produce triangles with identical vertices and this results in a
      non-manifold edge which triggers the erosion procedure.
      
      Avoided by detecting cells with these special vertices and making sure the tet-decomposition
      never uses the same points on the faces using them.
      
      Patch contributed by Mattijs Janssens
      9580a0e2
  13. 07 Feb, 2019 1 commit
    • Mark Olesen's avatar
      ENH: code adjustments for updated NullObject · 078e3474
      Mark Olesen authored
      - can now safely use labelList::null() instead of emptyLabelList for
        return values. No special treatment required for lists.
      
        Possible replacements:
      
            if (notNull(list) && list.size())  ->  if (list.size())
            if (isNull(list) || list.empty())  ->  if (list.empty())
      
        The receiver may still wish to handle differently to distinguish
        between a null list and an empty list, but no additional special
        protection is required when obtaining sizes, traversing, outputting
        etc.
      078e3474
  14. 06 Feb, 2019 1 commit
  15. 18 Jan, 2019 1 commit
  16. 16 Jan, 2019 1 commit
    • Mark Olesen's avatar
      ENH: add simplified gather methods for globalIndex with default communicator · f498d09d
      Mark Olesen authored
      - when combining lists in processor order this simplifies code and
        reduces memory overhead.
      
        Write this:
          ----
          labelList collected;
      
          const globalIndex sizing(input.size());
          sizing.gather(input, collected);
          ----
      
        OR
      
          ----
          labelList collected;
          globalIndex::gatherOp(input, collected);
          ----
      
        Instead of this:
      
          ----
          labelList collected;
      
          List<labelList> scratch(Pstream::nProcs());
          scratch[Pstream::myProcNo()] = input;
          Pstream::gatherList(scratch);
      
          if (Pstream::master())
          {
              collected = ListListOps::combine<labelList>
              (
                  scratch,
                  accessOp<labelList>()
              );
          }
          scratch.clear();
          ----
      f498d09d
  17. 07 Jan, 2019 2 commits
  18. 02 Jan, 2019 1 commit
  19. 11 Dec, 2018 1 commit
    • Mark Olesen's avatar
      ENH: use Zero when zero-initializing types · 1d85fecf
      Mark Olesen authored
      - makes the intent clearer and avoids the need for additional
        constructor casting. Eg,
      
            labelList(10, Zero)    vs.  labelList(10, 0)
            scalarField(10, Zero)  vs.  scalarField(10, scalar(0))
            vectorField(10, Zero)  vs.  vectorField(10, vector::zero)
      1d85fecf
  20. 09 Nov, 2018 1 commit
  21. 08 Nov, 2018 1 commit
  22. 06 Nov, 2018 1 commit
  23. 05 Nov, 2018 1 commit
    • Mark Olesen's avatar
      ENH: extend globalIndex toGlobal methods · f5baa9a5
      Mark Olesen authored
      - now applicable to labelLists.
      
      Note:
        in some situations it will be more efficient to use
        Foam::identity() directly. Eg,
      
           globalIndex globalCells(mesh.nCells());
           ...
           labelList cellIds
           (
               identity(globalCells.localSize(), globalCells.localStart())
           );
      f5baa9a5
  24. 19 Oct, 2018 2 commits
  25. 18 Oct, 2018 1 commit
    • Mark Olesen's avatar
      ENH: cleanup of Enum class · 3b745122
      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.
        Thus,
      
           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.
      3b745122
  26. 12 Oct, 2018 1 commit
    • Mark Olesen's avatar
      ENH: avoid readScalar, readLabel etc from dictionary (#762, #1033) · 8eddcc07
      Mark Olesen authored
      - use the dictionary 'get' methods instead of readScalar for
        additional checking
      
           Unchecked:  readScalar(dict.lookup("key"));
           Checked:    dict.get<scalar>("key");
      
      - In templated classes that also inherit from a dictionary, an additional
        'template' keyword will be required. Eg,
      
           this->coeffsDict().template get<scalar>("key");
      
        For this common use case, the predefined getXXX shortcuts may be
        useful. Eg,
      
           this->coeffsDict().getScalar("key");
      8eddcc07
  27. 27 Sep, 2018 2 commits
    • Andrew Heather's avatar
      ENH: polyPatch - added areaFraction method · 0f4c6572
      Andrew Heather authored
      Helper function to calculate the current face area vs the area returned
      from the current point locations.  Useful for ACMI-type baffles where we
      scale the face areas without moving points.
      0f4c6572
    • Mark Olesen's avatar
      STYLE: add nBoundaryFaces() method to primitiveMesh · 64c3e484
      Mark Olesen authored
      - nBoundaryFaces() is often used and is identical to
        (nFaces() - nInternalFaces()).
      
      - forward the mesh nInternalFaces() and nBoundaryFaces() to
        polyBoundaryMesh as nFaces() and start() respectively,
        for use when operating on a polyBoundaryMesh.
      
      STYLE:
      
      - use identity() function with starting offset when creating boundary maps.
      
           labelList map
           (
               identity(mesh.nBoundaryFaces(), mesh.nInternalFaces())
           );
      
        vs.
      
           labelList map(mesh.nBoundaryFaces());
           forAll(map, i)
           {
               map[i] = mesh.nInternalFaces() + i;
           }
      64c3e484
  28. 20 Sep, 2018 1 commit
  29. 19 Sep, 2018 1 commit
  30. 11 Sep, 2018 1 commit
  31. 27 Aug, 2018 1 commit
  32. 08 Aug, 2018 2 commits
    • Mark Olesen's avatar
      STYLE: use edgeHashes include · ca5d9123
      Mark Olesen authored
      STYLE: use initial hash size 128 instead of 100 in a few places
      ca5d9123
    • Mark Olesen's avatar
      ENH: add missing Hash function for List/UList (issue #966) · dd9ecd49
      Mark Olesen authored
      - there were previously no hashing mechanisms for lists so they
        would fall back to the definition for primitives and hash the
        memory location of the allocated List object.
      
      - provide a UList::Hash<> sub-class for inheritance, and also a global
        specialization for UList<T>, List<T> such that the hash value for
        List<List<T>> cascades properly.
      
      - provide similar function in triFace to ensure that it remains
        similar in behaviour to face.
      
      - added SymmHash to Pair, for use when order is unimportant.
      
      STYLE: use string::hash() more consistently
      
      - no particular reason to use Hash<word>() which forwards to
        string::hash() anyhow
      dd9ecd49
  33. 06 Aug, 2018 1 commit
  34. 03 Aug, 2018 1 commit
    • Mark Olesen's avatar
      ENH: added ZoneMesh indices(), selection() with wordRes matcher · 84e2df49
      Mark Olesen authored
      - rationalized code dealing with extraction of name or indices from
        coordinateSystems, polyBoundaryMesh, faBoundaryMesh, fvBoundaryMesh,
        ZoneMesh to use internal implementations that allow direct
        searching/matching without building an intermediate list of names.
      
      - simpler and more efficient handling of patch group matching.
      84e2df49
  35. 02 Aug, 2018 1 commit
  36. 01 Aug, 2018 1 commit