-
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