SciML / LinearSolve.jl

LinearSolve.jl: High-Performance Unified Interface for Linear Solvers in Julia. Easily switch between factorization and Krylov methods, add preconditioners, and all in one interface.
https://docs.sciml.ai/LinearSolve/stable/
Other
245 stars 52 forks source link

Rework iparm setting #505

Closed j-fu closed 4 months ago

j-fu commented 4 months ago

Checklist

Additional context

This tries to fix #497

Pardiso defaults for highly indefinite matrices.

This commit essentially reverts #89 and introduces a new kwarg "cache_analysis" (default false) to PardisoJL() which, if true would lead to the behaviour of #89.

Also, allow the user to overwrite all iparms modified by the extension besides of 12.

Fixes also a problem found by @chmerdon

codecov[bot] commented 4 months ago

Codecov Report

Attention: Patch coverage is 54.16667% with 11 lines in your changes missing coverage. Please review.

Project coverage is 62.72%. Comparing base (270b56d) to head (a339509).

Files Patch % Lines
ext/LinearSolvePardisoExt.jl 52.17% 11 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #505 +/- ## ========================================== + Coverage 62.71% 62.72% +0.01% ========================================== Files 29 29 Lines 2229 2235 +6 ========================================== + Hits 1398 1402 +4 - Misses 831 833 +2 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

ChrisRackauckas commented 4 months ago

Looks like some of the Pardiso tests are failing from this?

j-fu commented 4 months ago

Well, they did fail on master before... In fact, now I fixed the transpose flag for MKL Pardiso. Tested also for Panua (formerly project) pardiso ( see Pardiso.jl 0.5.7), which appears to be a bit brittle with iterative solution of complex problem when verbosity is on.

j-fu commented 4 months ago

Once this PR is merged I would prepare another one which should allow to choose form both pardiso flavors from the code. Now, just Panua is chosen over MKL if it is installed.

ChrisRackauckas commented 4 months ago

Thanks!