Open samcunliffe opened 2 months ago
This is a hack I introduced to improve performance. During the GMRES iteration the same factorized matrix is used many times. In this case, the original solve
method of the pypardiso solver will first perform a check (in every GMRES iteration ...) whether the matrix is already factorized and then set self.set_phase(33)
and perform the solver. This check is extremely slow (as it converts things to numpy arrays) and unnecessary, because we know that the matrix is already factorized (our code does this explicitly before starting the GMRes iteration).
In solve_*d.py we have a wrapper class for a pardiso solver. Want to understand why we don't simply use an instance of the pardiso solver directly.
Our
solve
method seems to overlap with the upstream class implementation.