-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
ENH: sparse.linalg: An efficient implementation of GMRES method #15693
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
Conversation
Dear Andrew @lobpcg , Could you review it again? The references have been added according to your suggestions and the rest of the code remains unchanged. Thanks |
Dear @zhaog6, I take this opportunity to share some results and discuss a few points. I plan to add the weighted GMRES(m) to What I did so far:
A few questions:
Paul |
Example: For Execution time (in s.):
Final residuals are: I tried other configurations, and obtained the similar relative performance. I hope this helps! |
While performing the simulations, I detected two possible issues. I defined this callback:
With
I get:
With
I get:
Comments:
Paul |
Dear @pescap thanks for your attention!
Yes, it is interesting and meaningful.
I downloaded it and take a look. There are some differences. The algorithm steps of the algorithm are almost the same because we all refer to the textbook of Yousef Saad, but some optimizations have been made for data storage way based on Python and some mathematical operations. Therefore it will be expected to bring performance improvements.
No. General steps of the algorithm are basically the same, but the implementation details and optimizations are different.
Yes |
Thanks. Increase the number of DOFs (mesh: 64x64/128x128/256x256/...), |
Yes, self.residual.append(rk / np.linalg.norm(b)) |
You are right. For a 3D Helmholtz scattering problem with
Final residuals:
Remarks:
|
I understand. Yet, for compatibility issues, don't you think that |
I'll create an issue, and start working on its implementation as soon as |
I see, I'll fix the bug. |
In fact, I prefer callback of absolute residual norm because it can be compared with the results of many math library. If users want to get relative residual norm, which can be defined in |
Reference issue
Closes gh-15149 because my forked scipy repository is removed by mistake
What does this implement/fix?
The PR reimplemented restarted GMRES algorihm, the code in the PR is more efficient than the original version. The comments and performance is shown in gh-15149.
Additional information