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

Hypre IJ interface: Enable access to additional solvers and preconditioners available in Hypre #1437

Merged
merged 7 commits into from
Oct 5, 2020

Conversation

sayerhs
Copy link
Contributor

@sayerhs sayerhs commented Oct 4, 2020

This PR extends the AMReX hypre IJ interface to allow access to additional solvers and preconditioners available in hypre.

  • Refactored HypreABecLap3 and HypreNodeLap (IJ matrix/vector ParCSR interfaces) and created a new IJ interface class that provides a unified way to access Hypre ParCSR solvers.
  • In addition to BoomerAMG, adds support for 7 other ParCSR solvers (GMRES (4 variants), PCG, BiCGSTAB, and Hybrid). Also adds support for BoomerAMG and Euclid as preconditioners for solvers that can use a preconditioner.
  • Adds support to parse user options to configure hypre library via AMReX ParmParse interface and input file, using a custom namespace (default is hypre)
  • Adds MLMG::setHypreOptionsNamespace that allow applications to customize the namespace for different types of linear solvers (e.g., mac_proj.hypre.<option>, nodal_proj.hypre.<option>, etc.)
  • Add option to skip solver/preconditioner setup step recompute_preconditioner for cases where the matrix coefficients do not change.
  • Add option to dump linear system in hypre IJ{Matrix,Vector} format for debugging.

Additional background

The extensions to hypre interface supports ExaWind AMR-Wind overset and RANS applications.

Checklist

The proposed changes:

  • fix a bug or incorrect behavior in AMReX
  • add new capabilities to AMReX
  • changes answers in the test suite to more than roundoff level
  • are likely to significantly affect the results of downstream AMReX users
  • are described in the proposed changes to the AMReX documentation, if appropriate

@WeiqunZhang WeiqunZhang self-requested a review October 4, 2020 22:04
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.

2 participants