Improve linear solver options
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 245
- Forks
- 36
- Avg merge
- 8d 23h
- Merged PRs (30d)
- 4
Description
We have a few major issues with our current linear solvers:
- SuperLU has a memory leak and cannot be used when many linear solves are required.
- The performance of BoomerAMG has severely degraded since updating to Hypre 2.26.
- The MFEM-based GMRES often tests preconditioned residuals for convergence, leading to the linear solver thinking it is converged before it really is.
To fix these problems, I suggest the following:
- Add strumpack as our default direct solver.
- Use ILU as our default preconditioner until the upstream Boomer PRs are merged.
- Investigate other GMRES implementations to avoid the early exit issue.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the current linear-solver configuration and the SuperLU, BoomerAMG, and MFEM-based GMRES paths. Compare the solver and preconditioner choices against the reported memory leak, performance regression, and early convergence behavior. Done means the replacement options are evaluated and a clear implementation scope is established for all three problems.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100