dune-assembler 2.12
Loading...
Searching...
No Matches
Dune::Assembler::SingleRowMatrix< Base > Class Template Reference

Tag matrix as single row matrix. More...

#include <dune/assembler/backends/singlerowcolmatrix.hh>

Inheritance diagram for Dune::Assembler::SingleRowMatrix< Base >:
Inheritance graph

Detailed Description

template<class Base>
class Dune::Assembler::SingleRowMatrix< Base >

Tag matrix as single row matrix.

Template Parameters
BaseThe base matrix type that should be tagged.

This class helps to solve the problem, that the distribution of digits from non-uniform row- and column-multi-indices to the different levels of a nested matrix cannot be done generically.

The reason for this problem is, that all matrices in Dune need a row and a column index to access their entries. Hence, for a nested matrix the row and column multi-index always need to have the same length. However, there are natural applications of multi-indices with non-uniform length (e.g. for the Stokes problem). In this case it is implicitly assumed that for certain matrices in the nested matrix hierarchy only a column or row index is provided. In practice this means, you need to insert a zero-digit at the correct position in the complementary multi-index. Unfortunately, this cannot be done automatically, because there are many candidates for this position and it's in fact a user choice, which one is correct.

To solve this, one can tag a matrix type Base as single-row by using SingleRowMatrix<Base> instead. Then the algorithm for dispatching multi-indices knows, that it has to insert a zero digit into the row multi-index here.

The class derives from Base and inherits all its members without overwriting any and can thus be used as a replacement for Base.


The documentation for this class was generated from the following file: