-
Carsten Gräser authored
This changes the generation and forwarding of multi index types and related information in the interfaces of the `PreBasis` and `PreBasisFactory` and the implementation `DefaultGlobalBasis`. In summary: The `PreBasis` now longer depends on the `MultiIndex` type which allows to move all information about required size of the multi indices to the `PreBasis`. Now the `DefaultGlobalBasis` is responsible to create suitable indices for the `PreBasis` (instead of `makeBasis()`). Changes in detail: * Changes to `PreBasis` * The typedefs `PreBasis::MultiIndex` and `PreBasis::SizePrefix` are removed. * The `SizePrefix` argument type of `PreBasis::size()` is a now template parameter. * The `MultiIndex`-type is no longer handed to the `PreBasis`. * There are new constants `PreBasis::minMultiIndexSize` <= `PreBasis::maxMultiIndexSize` <= `PreBasis::multiIndexBufferSize`. They denote the minimal and maximal size of the handed out multi indices and the maximal intermediate size needed for building each multi index. * Changes to `PreBasisFactory` * The `MultiIndex`-type is no longer a template argument of `PreBasisFactory::makePreBasis`. * `PreBasisFactory::requiredMultiIndexSize` is removed. * `PreBasisFactory` is now a simple callback supporting `preBasisFactory(gridView)` instead of `preBasisFactory.makePreBasis(gridView)`. * Changes to `DefaultGlobalBasis` and `makeBasis` implementation: * `PreBasis` is build before `MultiIndex` type is constructed. * The `MultiIndex` type is constructed in the `DefaultGlobalBasis` instead of `makeBasis`. * `makeBasis<MultiIndex>` was removed. This could be re-added, if we make the `MultiIndex` and additional template parameter of `DefaultGlobalBasis` with the automatically generated type as default.
eed883be