Skip to content
  • Carsten Gräser's avatar
    Cleanup MultiIndex generation · eed883be
    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