Skip to content
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

[WIP] Harmonize solvers #1030

Open
wants to merge 294 commits into
base: master
Choose a base branch
from
Open

[WIP] Harmonize solvers #1030

wants to merge 294 commits into from

Conversation

guyer
Copy link
Member

@guyer guyer commented Apr 2, 2024

No description provided.

Replace haphazard `.status`, logging, and divergence warnings
Allow selection from criteria supported by particular solver suite
Logging prevents app from reporting exception to commandline
PETSc applies preconditioners by default
`Solver._solve()` is common and has access to FiPy objects.
`Solver._solve_()` is defined for each solver suite
and takes L, x, b suitable for particular solver suite.
`Norm2()` returns a 1-element array for some dain-bramaged reason.
Make it agree with other solver suites
Default MultilevelDD doesn't work.
All (most) suites are flakey with this problem.
(Trilinos only fails in parallel if the rest of the examples/diffusion
tests have already been run.)
RHS >> initial residual, so solver never does anything
with (new) default criterion for convergence.
Still passes and doesn't throw obnoxious warnings from PETSc
or Trilinos
It just gets in the way
Default solver tolerances have been relaxed from 1e-10 to 1e-5 to
agree with default of most solver suites. This should save on
compute time and, in most cases, this is adequate for existing
tests to pass.
Where it is not, either adjust the solver or adjust the test.
Originally tried to make it do logging, too, but I couldn't figure
out how to get it to log in the correct scope.
Separating timing from logging substantially simplifies the logic
at a modest cost in LoC at point of use.
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.

None yet

1 participant