dune-istl merge requestshttps://gitlab.dune-project.org/core/dune-istl/-/merge_requests2023-10-25T07:10:46Zhttps://gitlab.dune-project.org/core/dune-istl/-/merge_requests/546Improve UMFPack vector chooser2023-10-25T07:10:46ZSantiago Ospina De Los RĂossospinar@gmail.comImprove UMFPack vector chooserUMFPack solver can handle nested matrices due to the use of flat-vector/matrix algorithms, however, the `UMFPackVectorChooser` does not reflect that (e.g., a range type of a `BCRSMatrix<BCRSMatrix<...>> ` is a `BlockVector<BCRSMatrix<......UMFPack solver can handle nested matrices due to the use of flat-vector/matrix algorithms, however, the `UMFPackVectorChooser` does not reflect that (e.g., a range type of a `BCRSMatrix<BCRSMatrix<...>> ` is a `BlockVector<BCRSMatrix<...>>`). This MR, simple makes the `UMFPackVectorChooser` more friendly to those nested types.
* Solve nested type `BCRSMatrix` and `FieldVector` with recursion of `UMFPackVectorChooser`
* Also, resolve the `UMFPackCreator` type with SFINAE on the `UMFPackVectorChooser` instead of arbitrary rules of the creator (the vector chooser already knows the rules, there is no need to repeat them)
* ~~Allow custom vectors in the UMFPack solver~~
* [ ] Add READMEhttps://gitlab.dune-project.org/core/dune-istl/-/merge_requests/143add rows() and cols() methods to matrix classes2019-12-19T22:30:39ZFelix Gruberadd rows() and cols() methods to matrix classesThe existing methods N() and M() do not convey their meaning very well.
I always have to look up which one was used for rows and which one for
colums. The `DenseMatrix` class from dune-common already implements the
rows() and cols() m...The existing methods N() and M() do not convey their meaning very well.
I always have to look up which one was used for rows and which one for
colums. The `DenseMatrix` class from dune-common already implements the
rows() and cols() methods, so I was a bit surprised that all the matrix
classes from ISTL didn't have these methods.
The only matrix class that is still missing the rows() and cols()
methods after merging this MR is `ScaledIdentityMatrix` as it defines
`enum {rows = n, cols = n}` which we would have to remove to introduce
the rows() and cols() methods.