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
Revise vector operations in SolverIDR to improve performance #14256
Conversation
include/deal.II/lac/solver_idr.h
Outdated
{ | ||
double beta = phi(k) / M(k, k); | ||
r.add(-1.0 * beta, G[k]); | ||
const double beta = phi(k) / M(k, k); |
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.
double
?
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.
Do you want me to use VectorType::value_type
like in the other PR? I can do that, if you agree with changing the matrix types and all other stuff currently in double
variables, such as this one here:
dealii/include/deal.II/lac/solver_idr.h
Lines 423 to 424 in fb2242d
Vector<double> phik(s - k); | |
FullMatrix<double> Mk(s - k, s - k); |
Or are you suggesting something else?
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.
Do you want me to use VectorType::value_type like in the other PR? I can do that, if you agree with changing the matrix types and all other stuff currently in double variables, such as this one here:
Yes, sounds reasonable 👍
fb6c89e
to
0fc6a4d
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.
Very nice. Getting rid of some of the temporaries/reductions might be visible even for situations where the preconditioner is expensive...
No description provided.