GEOS-DEV / GEOS-DEV/GEOS

Consolidate our usage of `hypre`

Open
#2,210 4 comments 1 reaction 3 assignees View on GitHub

Nobody has claimed this yet.

EPIC
Dominant language
C++
Stars
287
Forks
109
Avg merge
4d 41m
Merged PRs (30d)
5

Description

What is the requested feature?

The GEOSX validation cases basically use no feature of hypre.
But it’s our key linear algebra backend when it comes to big simulations.
This must evolve in order to provide a more reliable environment to our researchers and end-users.

Describe the solution you'd like

Here are some actions; feel free to extend or modify the list.

  • Update geosxAts.
    Most probably by using a submodule (or some pip equivalent or anything else) to https://github.com/LLNL/ATS .
    This will prevent any further intertwining between our devs and the main framework. This will make future upgrades easier.
    Done in https://github.com/GEOSX/GEOSX/pull/2265
  • Build integrated cases that use hypre. https://github.com/GEOS-DEV/GEOS/pull/4108
    • Majority of tests should have a direct solver variant, and an interactive solver variant.
  • Build a policy (and tools) that validate results because the discrepancy of the result can be bigger than for direct solvers (due to the iterative nature of the hypre solvers). https://github.com/GEOS-DEV/GEOS/pull/4108
    • Criteria for iterative solver variant should be less exhaustive, such as norm of primary variable and iteration count information?? @castelletto1 @CusiniM please expand.
  • Build “big” cases to validate the scalability.
    Can we rely on (semi) analytical cases?
    Do we have to play them as part of the integrated tests?
  • Provide the hypre team with typical GEOSX validation matrix that could be directly embedded in the unit tests of hypre. @francoishamon
  • Provide the hypre team with automatic checks to help improve the codebase of hypre.
  • Create a repository containing our updated matrices, and get hypre tested against it.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.