-
Notifications
You must be signed in to change notification settings - Fork 3
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
Factorize matrix for SvaerdKalischEquations1D
#114
Conversation
There are some quite significant changes in the reference values in the CG case... |
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.
Thanks!
It looks like some reference values changed |
Co-authored-by: Hendrik Ranocha <[email protected]>
It looks like they changed a bit too much. This, e.g., doesn't look good 😬 |
Ah, the system matrix is not symmetric in the CG case. |
Right, something like M * (Diagonal(h) - D1betaD1) should be symmetric (in the usual sense) since the operator we wrap right now is symmetric with respect to the mass matrix |
Yes, exactly. Thus, it makes more sense to always apply the Cholesky decomposition to |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #114 +/- ##
==========================================
+ Coverage 96.82% 96.83% +0.01%
==========================================
Files 17 17
Lines 1227 1234 +7
==========================================
+ Hits 1188 1195 +7
Misses 39 39 ☔ View full report in Codecov by Sentry. |
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.
Thanks!
Closes #107. Let's see if CI is happy with the
cholesky
decomposition this time. It is significantly faster and less allocating thanlu
. Since we know thathmD1betaD1
is sparse sinceD1betaD1
is constructed to be sparse, I only implemented the first branch in your proposal #107 (comment), @ranocha.Result of
julia> include("examples/svaerd_kalisch_1d/svaerd_kalisch_1d_dingemans.jl");
formain
:and this branch (note that I added some
@timeit
statements to have a better overview):cholesky!
still allocates more than I would have hoped, but I think there is not much we can do against, right? But overall this is a nice speedup.