Description
The idea came up in #184, where a rather advanced application of LinearMaps.jl
(in collaboration with IterativeSolvers.jl
) is added to the tests, and a brief version thereof added to the docs' frontpage. An extended version with a little bit of "modelling" background would be nice, and this triggered, but potentially also alternative approaches showcasing different features of this package, could help users get an idea on possible applications of LinearMaps.jl
. So, this issue is meant to discuss (a) whether this should be done at all, (b) if it should be done then how (provide very brief descriptions and refer to downstream packages or provide self-contained tutorials), (c) collect ideas for helpful "miniprojects".
I'll start. 😄 I think it should be done, and we should make an effort to provide self-contained examples. Project ideas:
- Solving linear systems using the Schur complement, including a preconditioner, possibly compare to an iterative solver applied to the full
BlockMap
and/or the full plain matrix and/or aBlockMatrix
fromBlockArrays.jl
(see here) - Computing stationary distributions or evolution of a Stochastic Automata Network. The transition matrix for the global state is a Kronecker product of the transistion matrices for the individual network components/processes (see e.g. A methodology for solving markov models of parallel systems (for simplicity excluding dependency of transition rates on the global state)
- Function-based finite-difference operators, products (higher-order derivatives) and Kronecker products (higher-dimensional Laplace operators) thereof.