Closed mhvwerts closed 1 year ago
I fully agree that the support for calling external solvers can be improved later, for instance adding some global parameter setting to facilitate switching solvers globally, and especially introducing a solver interface class to configure and set up specialized solvers and providing the solver function call as you suggest. This could be in some submodule that is only imported optionally, avoiding extra dependencies for those who do not need them.
A simple mechanism is proposed for calling external sparse solvers (see #20). The mechanism is demonstrated for pypardiso.
The example/documentation Notebook contains a modest calculation (2D cylindrical convection). A ~2.3x speed-up was observed for this short calculation (2.4s pypardiso vs 5.7s SciPy SuperLU).