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

Fixes and test for LaplaceXY2Hypre; runtime options for Hypre interface #2247

Conversation

johnomotani
Copy link
Contributor

  • Integrated test for LaplaceXY2Hypre
  • Fixes for bugs found with integrated test
  • Add an Options &options argument to the HypreSystem constructor, use it to allow options to be set at run-time
  • Simplify options handling in LaplaceHypre3d, removing things now handled by HypreSystem
  • Setting to control command-line output from LaplaceXY2Hypre (off by default)

Were originally copied from LaplacePetsc3dAmg.
Use BOUT++ 'output' rather than std::cout.
Add an "Options& options" argument to the HypreSystem constructor so
that it can get run-time options. Use the options to set solver_type,
rtol, atol, maxits, and print_level.
Needed for autotools builds.
Should include neighbouring points in y, not in z.
Need to use the boundary regions defined by indexConverter.
@johnomotani
Copy link
Contributor Author

By the way, I think LaplaceXY2 is broken (not LaplaceXY, which should be fine).

I don't think the intention was ever for LaplaceXY2 to be a long-term option, so not sure what the best thing to do is. I guess either copy the test in this PR for LaplaceXY, and fix any bugs (fixes can probably be copied from LaplaceXY2Hypre), or remove it. If we remove it, I'd be nice to convert LaplaceXY to use the PETSc interface, but that's probably a job for later (maybe after merging the PETSc and Hypre interfaces into a common structure).

Previously was using expected solution as initial guess, this is
probably not a great test...
Print out extra info when we raise the hypre_print_level.
@ZedThree
Copy link
Member

ZedThree commented Mar 5, 2021

I really like the BOUT_ENUM_CLASS and its ability to set an enum from Options -- such a nice feature! Thanks @johnomotani!

@jonesholger jonesholger merged commit 797ec85 into next-hypre-outerloop-cuda Mar 9, 2021
@johnomotani johnomotani deleted the next-hypre-outerloop-cuda-runtime-options branch March 9, 2021 09:35
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

3 participants