Skip to content

Allow SuperLU_DIST to solve with repeated right-hand sides - #4074

Merged
jhale merged 41 commits into
mainfrom
jhale/make-copy-of-matrix-csr-values
Feb 9, 2026
Merged

Allow SuperLU_DIST to solve with repeated right-hand sides#4074
jhale merged 41 commits into
mainfrom
jhale/make-copy-of-matrix-csr-values

Conversation

@jhale

@jhale jhale commented Feb 6, 2026

Copy link
Copy Markdown
Member

It turns out that SuperLU_DIST holds quite a bit of 'state' through repeated calls to its solve driver routines to allow for fast repeated solves with pre-computed factors. The previous design didn't work for repeated solves.

This PR:

  1. Copies values from MatrixCSR into SuperLUDistMatrix, instead of sharing them. SuperLU_DIST modifies the values of the SuperLUDistMatrix in place during the solve, so the previous design led to MatrixCSR being modified.
  2. Properly persists LU factors and other solve information across solves, allowing for repeated solves with different right-hand sides.
  3. Wraps SuperLUDistMatrix into Python - this is necessary for advanced usage where new systems are solved with previously computed factors/permutations.

Comment thread cpp/dolfinx/la/superlu_dist.h Outdated
@jhale
jhale marked this pull request as ready for review February 8, 2026 10:50
@jhale
jhale enabled auto-merge February 9, 2026 13:16
@jhale
jhale added this pull request to the merge queue Feb 9, 2026
Merged via the queue into main with commit 8ff3dc9 Feb 9, 2026
18 of 19 checks passed
@jhale
jhale deleted the jhale/make-copy-of-matrix-csr-values branch February 9, 2026 13:56
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