lanl / lanl/singularity-eos

Matrix solvers for the Jacobian

Open
#549 0 comments 1 reaction 1 assignee View on GitHub

@Yurlungur is already working on this.

Since Aug 25, 2025.

help wanted Robustness
Dominant language
C++
Stars
39
Forks
22
Avg merge
10h 22m
Merged PRs (30d)
3

Description

A strenuous test in hydro solvers is to run a problem that should be symmetric, without enforcing it, and check that the solution remains symmetric with time. Running this test in riot with real materials on a strenuous problem, I found that the PTE solver can play a key role in symmetry preservation. This experience suggests that, in particular, the matrix inversion for the Jacobian can matter a great deal.

I found that the most radical solution---replacing the matrix inversion with an SVD pseudo-inverse (hacked in to the code) was effective, but much more expensive and quite brittle. In particular, Eigen's psuedo-inverse on CPU functioned well but the SVD in Kokkos-Kernels frequently failed to converge. The default algorithm provided by Kokkos, however, doesn't have any preconditioning. This suggests to me that more attention should be payed to the matrix inversion, perhaps by introducing pivoting to the QR decomposition we use in the Kokkos code-path.

Contributor guide

No contributing guide indexed for this repository

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.