CHANGELOG.md 3.43 KB
Newer Older
Andreas Dedner's avatar
Andreas Dedner committed
1
# Release 2.6
Martin Nolte's avatar
Martin Nolte committed
2

3 4 5 6 7
- The deprecated `EntityPointer` has been removed completely and `EntityIterator`
  no longer inherits from it.
  As a consequence, the dimension `EntityIterator::dimension`,
  `EntityIterator::codimension`, and `EntityIterator::mydimension` are gone.

8
- Experimental grid extensions are now always enabled:
9

10 11 12 13 14 15 16 17 18 19 20 21 22 23
    See core/dune-grid!155

  - The method `impl` and the type `Implementation` on the facade classes are
    always public (and documented), now.
    Warning: Implementation details may change without prior notification.
  - The method experimental grid extension `boundaryId` has been removed from the
    intersection interface. Some grid will continue providing it on their
    implementation, i.e., it may still be accessible through
    ```
    intersection.impl().boundaryId()
    ```
  - The DGF block `general` is now always available and
    the DGFWriter will always write a boundary id and can write user-defined
    boundary data, now.
24

Andreas Dedner's avatar
Andreas Dedner committed
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
- `MultipleCodimMultipleGeomTypeMapper`: The `Layout` template parameter has
  been deprecated in favor of a function object that indicates which geometry
  types to include in the mapping.  The layout function
  object is passed in the constructor, so instead of
  ```c++
  MultipleCodimMultipleGeomTypeMapper<GV, MCMGElementLayout> mapper1(gv);
  MultipleCodimMultipleGeomTypeMapper<GV, MCMGVertexLayout> mapper2(gv);
  ```
  please write
  ```c++
  MultipleCodimMultipleGeomTypeMapper<GV> mapper1(gv, mcmgElementLayout());
  MultipleCodimMultipleGeomTypeMapper<GV> mapper2(gv, mcmgVertexLayout());
  ```
  See the doxygen documentation for custom layouts and core/dune-grid!177

40 41
- The `MCMGMapper` can now be used to attach multiple dofs to each
  entity:
42

Andreas Dedner's avatar
Andreas Dedner committed
43
    See core/dune-grid!215
44

45 46 47 48 49 50 51 52
  - the Layout is passed into the constructor and
    returns the number of dofs to attach to the given geometry type
    ```
       MCMGLayout layout = [](GeometryType gt, int griddim) {
         return gt.dim() == griddim? 2:0;
       };
       MCMGMapper mapper(grid,layout);
    ```
Andreas Dedner's avatar
Andreas Dedner committed
53
    Note: the layout can still return a `bool` with `true` leading to a single dof being attached.
54 55 56 57 58 59 60
  - The new method `MCMGMapper::indices(entity)` returns an iterable range
    (instance of `IntegralRange<Index>`)
    with the indices of dofs attached to the given entity:
    ```
      for (const auto& i : mapper.indices(entity) )
        dof = vector[i];
    ```
61

62 63
- Two new method were added to the MCMGMapper:
  `size_type size(GeometryType)` and
Andreas Dedner's avatar
Andreas Dedner committed
64
  `const std::vector< GeometryType >& types (int codim)`
65 66
  returning the number of dofs attached to the geometry type and a vector
  with all geometry types on which dofs are attached, respectively.
67

Andreas Dedner's avatar
Andreas Dedner committed
68
    See core/dune-grid!215
69

70
- The `StructuredGridFactory` now returns a `unique_ptr` instead of a
71
  `shared_ptr`.  Code that relies on a `shared_ptr`
72 73 74
  needs to explicitly assign the return value to a `shared_ptr`
  variable.

75
    See core/dune-grid!212
76 77 78 79 80 81 82 83

- `SubsamplingVTKWriter` now supports arbitrary refinements, not just powers
  of two.  The old constructor taking a parameter `int levels` has been
  deprecated, you should now pass a parameter `RefinementIntervals intervals`
  instead.  There are convenience functions `refinementIntervals(int
  intervals)` and `refinementLevels(int levels)` to construct parameters of
  type `RefinementIntervals` in dune-geometry.

84
    See core/dune-grid!193
Andreas Dedner's avatar
Andreas Dedner committed
85 86 87 88
    
- `UGGrid` now supports transferring element data during load balancing.
   
    See core/dune-grid!172