Skip to content
  • Dominic Kempf's avatar
    [REWRITE] Yasp has all entities and communication. · 1fd2a101
    Dominic Kempf authored
    This is a major rewrite of Dune::YaspGrid. It now
    - has full entities of all codimensions
    - communicates on all these codimensions
    - works for arbitrary dimension (again)
    
    Of course, these new features come at a price.
    The performance implications in comparison to the old
    code have been measured. Iterating over the grid and
    computing indices and subindices got a bit slower
    (to a maximum of 20%). However, these operations are
    still really (!) fast.
    
    Here are some implications for the implementation
    (not of interest for users):
    - The former YGrid is now called YGridComponent. All entities
      that belong to one such component share the same "shift"
      (the set of spanning unity vectors). For codim 0 and dim,
      there was only one component describing a codimension, in
      general this is dim choose codim.
    - A YGrid is a collection of YGridComponent. A YGrid
      describes the parts of a grid given by partition type
      and a codimension. It offers iterators to iterate over
      the multiple components. YGridList does the same thing
      for send and receive lists.
    - Yasp handles codimensions generically now. The former
      data structures {cell,vertex}_{...} are replaced by
      arrays of size dim + 1 of {...}.
    - The entity implementation provides a generic implementation
      of the index methods according to the new generic reference
      elements.
    - A namespace Yasp is introduced and used to hide away some
      free functions from the user.
    - YaspGeometry now handles the bitsets required by
      AxisAlignedCubeGeometry directly.
    
    The incode and doxygen documentation of the rewritten code
    was improved whenever it seemed necessary.
    1fd2a101
This project is licensed under the GNU General Public License v2.0 or later. Learn more