-
Notifications
You must be signed in to change notification settings - Fork 104
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
Coarse level options for AMG preconditioner #359
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #359 +/- ##
=======================================
Coverage 41.02% 41.02%
=======================================
Files 13 13
Lines 4119 4119
=======================================
Hits 1690 1690
Misses 2429 2429 ☔ View full report in Codecov by Sentry. |
After reviewing this a bit more, I noticed that we do not have the option to add iterative refinement with the AMG PC. Even though NK and ANK solvers default to no refinement, would it make sense to add a similar block like:
to the AMG PC setup? |
The new changes look good. I also want to add the option to enable iterative refinement to ANK and NK if desired. Default should be no refinement as that is what the code is doing for all cases now. I want to add 2 python options that control this behavior: Should we make this change in this PR or should I create a new PR for this? I can also make these changes here and push. Up to you @sseraj. |
I think it would be better to make the ANK and NK changes in a separate PR |
@eirikurj I think this is good to go, but we can wait to merge if you want to take a look. |
doc/options.yaml
Outdated
innerPreconIts: | ||
desc: > | ||
Number of local preconditioning iterations for the adjoint solution. | ||
Increasing this number may help with difficult problems. | ||
However, each iteration will take more time. | ||
|
||
innerPreconItsCoarse: | ||
desc: > | ||
Same as :py:data:`innerPreconItsCoarse` but for the coarse levels when using ``multigrid`` for :py:data:`globalPreconditioner`. |
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.
Typo innerPreconItsCoarse
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.
Fixed, thanks
Purpose
This PR adds separate ASM overlap, ILU fill level, and inner (ILU) iteration options for the coarse levels when using the AMG preconditioner. The motivation behind this is to allow for cheaper iterations at the coarse levels to speed up the overall solution time. The defaults for the coarse levels are set to the cheapest options possible (no ASM overlap, no ILU fill, 1 inner iteration). This changes the default behavior but should be advantageous for most cases.
Expected time until merged
2-3 weeks
Type of change
Testing
I added an AMG test with non-default options. The default options are used in the existing tests.
Checklist
flake8
andblack
to make sure the Python code adheres to PEP-8 and is consistently formattedfprettify
or C/C++ code withclang-format
as applicable