Skip to content

Split Smoother Matrix Construction into Separate COO and Tridiagonal Sections#206

Open
julianlitz wants to merge 13 commits intomainfrom
litz_mjoelnir
Open

Split Smoother Matrix Construction into Separate COO and Tridiagonal Sections#206
julianlitz wants to merge 13 commits intomainfrom
litz_mjoelnir

Conversation

@julianlitz
Copy link
Copy Markdown
Collaborator

@julianlitz julianlitz commented Apr 3, 2026

Close #233

Merge Request - GuideLine Checklist

Guideline to check code before resolve WIP and approval, respectively.
As many checkboxes as possible should be ticked.

Checks by code author:

Always to be checked:

  • There is at least one issue associated with the pull request.
  • New code adheres with the coding guidelines
  • No large data files have been added to the repository. Maximum size for files should be of the order of KB not MB. In particular avoid adding of pdf, word, or other files that cannot be change-tracked correctly by git.

If functions were changed or functionality was added:

  • Tests for new functionality has been added
  • A local test was succesful

If new functionality was added:

  • There is appropriate documentation of your work. (use doxygen style comments)

If new third party software is used:

  • Did you pay attention to its license? Please remember to add it to the wiki after successful merging.

If new mathematical methods or epidemiological terms are used:

  • Are new methods referenced? Did you provide further documentation?

Checks by code reviewer(s):

  • Is the code clean of development artifacts e.g., unnecessary comments, prints, ...
  • The ticket goals for each associated issue are reached or problems are clearly addressed (i.e., a new issue was introduced).
  • There are appropriate unit tests and they pass.
  • The git history is clean and linearized for the merge request. All reviewers should squash commits and write a simple and meaningful commit message.
  • Coverage report for new code is acceptable.
  • No large data files have been added to the repository. Maximum size for files should be of the order of KB not MB. In particular avoid adding of pdf, word, or other files that cannot be change-tracked correctly by git.

@julianlitz
Copy link
Copy Markdown
Collaborator Author

@EmilyBourne

  • Improve Readability of Give parallelization
  • Remove unnecessary Stencils in DirectSolverCSR
  • Use COO Mumps Solver class in Extrapolated Smoother
  • Improve the 'symmetric matrix' comment for the interior boundary matrix.

@julianlitz julianlitz requested a review from EmilyBourne April 3, 2026 21:47
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 3, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.65%. Comparing base (6d9c787) to head (ede5671).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #206      +/-   ##
==========================================
- Coverage   90.70%   90.65%   -0.06%     
==========================================
  Files          86       85       -1     
  Lines        9458     9320     -138     
==========================================
- Hits         8579     8449     -130     
+ Misses        879      871       -8     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@julianlitz julianlitz mentioned this pull request Apr 20, 2026
14 tasks
Copy link
Copy Markdown
Collaborator

@EmilyBourne EmilyBourne left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leaving the first part of my review as I see the same patterns repeating so it will be easier to finish the review when I have the reply to the first set of questions

Comment thread include/Residual/ResidualTake/residualTake.inl
Comment thread include/DirectSolver/DirectSolver-CSR-LU-Give/buildSolverMatrix.inl
Comment thread include/DirectSolver/DirectSolver-CSR-LU-Give/buildSolverMatrix.inl
Comment thread include/DirectSolver/DirectSolver-CSR-LU-Give/matrixStencil.inl
@julianlitz
Copy link
Copy Markdown
Collaborator Author

julianlitz commented Apr 24, 2026

@EmilyBourne We could merge #230 into this branch before merging it into main.

@julianlitz julianlitz changed the title Substitute COO_Mumps_Solver in ExtrapolatedSmoother Split Smoother Matrix Construction into Separate COO and Tridiagonal Sections Apr 29, 2026
@EmilyBourne
Copy link
Copy Markdown
Collaborator

@julianlitz Can you fix the conflicts for this branch?

@EmilyBourne
Copy link
Copy Markdown
Collaborator

@EmilyBourne We could merge #230 into this branch before merging it into main.

If #230 modifies code that is not touched in this branch then I would prefer to merge after this PR instead of merging into this PR to simplify the review. This PR is already enormous (+1,293 -1,533) and therefore hard to review. Let's not make it worse 😅

@julianlitz
Copy link
Copy Markdown
Collaborator Author

@EmilyBourne Resolving conflicts is now done

@julianlitz julianlitz requested a review from EmilyBourne May 1, 2026 10:03
@EmilyBourne
Copy link
Copy Markdown
Collaborator

@EmilyBourne Resolving conflicts is now done

Thanks

Comment thread include/DirectSolver/DirectSolver-CSR-LU-Give/buildSolverMatrix.inl
@julianlitz
Copy link
Copy Markdown
Collaborator Author

#230 Eliminates the changes done to DirectSolverCSR in this Pull Request by deleting the class. But apart from that they can be viewed separately.

@julianlitz
Copy link
Copy Markdown
Collaborator Author

julianlitz commented May 1, 2026

This PR has mainly that many changes because I needed to move code sections into a different file.

But I think it is quite important to merge it. 🙃

@julianlitz
Copy link
Copy Markdown
Collaborator Author

And in this PR I do the necessary adjustments for
SmootherGive and ExtrapolatedSmootherGive.

We did a similar PR a month ago where I did the exact same thing for
SmootherTake and ExtrapolatedSmootherTake.

@EmilyBourne
Copy link
Copy Markdown
Collaborator

This PR has mainly that many changes because I needed to move code sections into a different file.

But I think it is quite important to merge it. 🙃

image

I'm getting there. I promise 😬

Comment on lines +29 to +33
template <class LevelCacheType>
void ExtrapolatedSmootherGive<LevelCacheType>::nodeBuildInteriorBoundarySolverMatrix_i_r_0(
int i_theta, const PolarGrid& grid, bool DirBC_Interior, InnerBoundaryMatrix& matrix, double arr, double att,
double art, double detDF, double coeff_beta)
{
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suspect that this method was moved from somewhere else, but it has also been renamed so I can't find the original. Can you give me a hint

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found it. It was extracted from void ExtrapolatedSmootherGive<LevelCacheType>::nodeBuildAscGive in include/ExtrapolatedSmoother/ExtrapolatedSmootherGive/buildAscMatrices.inl

@EmilyBourne
Copy link
Copy Markdown
Collaborator

This PR has mainly that many changes because I needed to move code sections into a different file.

The trouble is that it doesn't show up that way easily so I have to split screen it and find the matching functions to check if it's just a move, or if something changed too.

@julianlitz
Copy link
Copy Markdown
Collaborator Author

Basically any matrix entries related to COO/CSR moved to a different file and the i_r=0 treatment for tridiagonal matrices is that they get a 1 diagonal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Split Smoother Matrix Construction into Separate COO and Tridiagonal Sections

2 participants