Rethinking matrix classes and interfaces
This task is supposed to collect and organise criticism and suggestions that have accumulated in flyspray/FS#1669 (closed).
So far, it has been suggested that (I'm making a few additions myself and do not both to properly trace back suggestions to their respective authors)
ScaledIdentityMatrix(dune-istl) are too close in functionality. Suggestions include:
IdentityMatrixand replacing any instances with
ScaledIdentityMatrixwith a more general template class
ScaledIdentityMatrix<MatrixClass>, so that current uses of
ScaledIdentityMatrixwould be replaced with
- The CRTP approach with the
DenseMatrixclass appears rather complicated, leading to issues such as
blocklevel=0Matrix classes (
IdentityMatrix, potentially more?) could be plugged into general-purpose implementations of functions like
FieldMatrix::rightmultiplywith optimal arithmetic efficiency if they provided iterators.
- Symmetric matrices could be implemented such that they take less storage (in 3D, 6 scalars instead of 9) and/or perform fewer arithmetic operations.
Update: added symmetric matrices.