Skip to content
Snippets Groups Projects
  1. Aug 29, 2017
  2. Aug 28, 2017
    • Steffen Müthing's avatar
      Merge branch 'feature/rework-referenceelement-interface' into 'master' · 2b362ea4
      Steffen Müthing authored
      Add freestanding function referenceElement(geometry)
      
      As suggested in #65, this merge request adds a freestanding function
      `referenceElement(geometry)` that returns a reference element for a grid
      geometry **by value**. This will work for all grids with geometries
      based on the standard reference elements. For grids that want to return
      something else, the behavior can be changed by providing an overload for
      `referenceElement(const Geometry&, const GeometryImplementation&)` in an
      appropriate namespace.
      
      Moreover, it is also possible to get the type of the reference element
      for `Geometry` using `Dune::ReferenceElement<Geometry>`.
      
      Both the change to value semantics and
      `Dune::ReferenceElement<Geometry>` rely on dune-geometry!52. I've
      also tried to adapt all of dune-grid to the new interfaces (in
      particular, the value semantics and the deprecation of
      `Dune::ReferenceElement<ctype,dim>`) - but no guarantees.
      
      I had to build in a pretty ugly hack to make the thing work on Debian 8,
      which is contained in a single commit and should be reverted once we
      drop support for GCC 4.9.
      
      This merge request closes #65.
      
      See merge request !194
      2b362ea4
    • Oliver Sander's avatar
      Merge branch 'test-for-idset-injectivity' into 'master' · 199cec6e
      Oliver Sander authored
      Test for idset injectivity
      
      See merge request !191
      199cec6e
  3. Aug 27, 2017
    • Oliver Sander's avatar
    • Oliver Sander's avatar
      Non-MPI: encode codimension into entity id · f526b25b
      Oliver Sander authored
      When UGGrid is configured with MPI, then the ids produced by
      dune-uggrid are injective across all codimensions and
      GeometryType.  This is the way it should be in Dune (modulo
      the 'copy' rule).  However, when MPI is not used, then two
      entities of different codimension can have the same id.
      To fix this, we now encode the entity codimension into the
      highest two bits of the id.  This was already done in the
      code previously, but not for all codimensions, and not in
      a very legible way.
      f526b25b
    • Oliver Sander's avatar
      Rudimentary implementation of 'id' method for facets (codim1 entities) · c1132e3a
      Oliver Sander authored
      This patch implements the 'id' method for entities of codimension 1
      in a three-dimensional UGGrid.  The implementation is incomplete:
      it will work in general, but it will return wrong results if a facet
      has a copy on a coarser level.
      
      Nevertheless, the current implementation makes the test pass again.
      I will improve the implementation (and sharpen the test) in a
      subsequent patch.
      c1132e3a
  4. Aug 24, 2017
  5. Aug 19, 2017
  6. Aug 18, 2017
  7. Aug 17, 2017
  8. Aug 16, 2017
    • Steffen Müthing's avatar
      [referenceelement] Make referenceElement(Geometry) work for the broken GCC 4.9 of Debian 8 · d3faa7e9
      Steffen Müthing authored
      GCC 4.9 on Debian 8 trips over the `friend auto referenceElement(...)`
      in Geometry. I can't really debug that as I don't have Debian and my
      Homebrew GCC 4.9 compiles the code just fine. So this is a brute-force
      workaround that sidesteps the problem explicitely for GCC < 5 (I hope we can
      abandon that antiquity sooner rather than later anyway).
      
      The hack is rather ugly, as I couldn't find a way to make
      `referenceElement()` a friend of Geometry (the compilers tripped about
      all kinds of other problems when adding a trailing return type), so we
      introduce a helper struct that takes over friend duties.
      d3faa7e9
    • Steffen Müthing's avatar
    • Steffen Müthing's avatar
      93be0050
    • Steffen Müthing's avatar
      [referenceelements] Clean up all deprecated usage of reference elements · 8af75318
      Steffen Müthing authored
      This patch replaces (hopefully) all occurences of the following
      deprecated usage patterns:
      
      - capturing and passing around reference elements by reference
      - assuming that any reference element returns data by reference
      - usage of the deprecated `Dune::ReferenceElement<ctype,dim>`
      
      It also switches to using the new freestanding `referenceElement()`
      function in most places.
      8af75318
    • Steffen Müthing's avatar
      [geometry] Add referenceElement() function for grid geometries · 867a5d6c
      Steffen Müthing authored
      This patch adds a function `referenceElement(Geometry)` that returns
      the reference element for a grid geometry. In order to allow grid
      implementors to return custom reference elements (e.g. for polyhedra),
      it performs a second-level lookup by calling `referenceElement()` with
      both the geometry facade and the geometry implementation stored inside
      the facade class.
      
      The default implementation of the second-level `referenceElement()`
      function just looks up the default reference element for the
      GeometryType of the geometry. Grid implementations that want different
      behavior should overload this function for their specific geometry
      implementation(s).
      867a5d6c
    • Steffen Müthing's avatar
      [yaspgrid] Make sure to include everything you use · 8d8d17a3
      Steffen Müthing authored
      The YaspGrid implementations uses our custom overloads for printing
      std containers, but never included them, because they were indirectly
      included through the reference elements, which in turn included
      `<dune/common/array.hh>`. As that include switched to `<array>`, stuff
      broke in weird ways. So include what you use!
      8d8d17a3
  9. Aug 11, 2017
  10. Aug 10, 2017
  11. Aug 02, 2017
  12. Jul 17, 2017
  13. Jul 10, 2017
Loading