-
Notifications
You must be signed in to change notification settings - Fork 94
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Minres solver #975
Minres solver #975
Conversation
format-rebase! |
Error: Rebase failed, see the related Action for details |
format! |
26a67da
to
ae95b88
Compare
ae95b88
to
7216293
Compare
SonarCloud Quality Gate failed. |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #975 +/- ##
===========================================
+ Coverage 89.23% 89.50% +0.27%
===========================================
Files 818 824 +6
Lines 68082 68588 +506
===========================================
+ Hits 60753 61391 +638
+ Misses 7329 7197 -132 ☔ View full report in Codecov by Sentry. |
benchmark/solver/solver.cpp
Outdated
"A comma-separated list of solvers to run. " | ||
"Supported values are: bicgstab, bicg, cb_gmres_keep, " | ||
"cb_gmres_reduce1, cb_gmres_reduce2, cb_gmres_integer, " | ||
"cb_gmres_ireduce1, cb_gmres_ireduce2, cg, cgs, fcg, minres, gmres, idr, " |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we try to use alphabetical order here, or?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right, I guess I wasn't paying attention.
SonarCloud Quality Gate failed. |
285d451
to
2af34a1
Compare
777448c
to
7e34ec9
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would like to see a mention of the used algorithm in the header description as well (the details can remain in the CPP file).
The rest looks good; my other comments are primarily nits.
Note: This review was done together with @nvenko, so consider our two reviews as one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The two used bibliographic references can be added in the minres header file. Also, the namespace should be corrected in the minres_kernels header file, from cg to minres.
7e34ec9
to
34bc634
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
aa12d70
to
9a45b07
Compare
ea61fcd
to
8b54622
Compare
based on 'Iterative Methods for Solving Linear Systems' (https://doi.org/10.1137/1.9781611970937) and 'Iterative Methods for Singular Linear Equations and Least-Squares Problems' (PhD thesis, Stanford University) Co-authored-by: Aditya Kashi <[email protected]> Co-authored-by: Hartwig Anzt <[email protected]> Signed-off-by: Marcel Koch <[email protected]>
- documentation - missing tests - refactor Co-authored-by: Thomas Grützmacher <[email protected]> Co-authored-by: nvenko <[email protected]> Signed-off-by: Marcel Koch <[email protected]>
8b54622
to
56c758b
Compare
|
This PR will add a Minres solver for symmetric/hermitian indefinite matrices. The implementation is based in the book 'Iterative Methods for Solving Linear Systems' (Ch. 8) by Anne Greenbaum (DOI: https://doi.org/10.1137/1.9781611970937). It uses the common kernel interface to define kernels.
One uncertainty for me is the computation of the residual norm approximation. I'm using the approach from Iterative Methods for Singular Linear Equations and Least-Squares Problems, but somehow this does not define the initial value for the used recursion. The three possible values are
beta = sqrt(<r, z>)
,||r||
or||z||
. I'm currently using||z||
, since I could also find that used by petsc. I've compared these three in matlab for smaller matrices, and the difference between these does not seem to matter.Todo: