Skip to content

Add EigenvalueProblem support with dense, Arpack, ArnoldiMethod, KrylovKit, and JacobiDavidson backends#1071

Open
AJ0070 wants to merge 3 commits into
SciML:mainfrom
AJ0070:fix/143-1
Open

Add EigenvalueProblem support with dense, Arpack, ArnoldiMethod, KrylovKit, and JacobiDavidson backends#1071
AJ0070 wants to merge 3 commits into
SciML:mainfrom
AJ0070:fix/143-1

Conversation

@AJ0070

@AJ0070 AJ0070 commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Checklist

  • Appropriate tests were added
  • Any code changes were done in a way that does not break public API
  • All documentation related to code changes were updated
  • The new code follows the
    contributor guidelines, in particular the SciML Style Guide and
    COLPRAC.
  • Any new documentation only uses public API

Additional context

  • Added an EigenvalueProblem abstraction analogous to LinearProblem, with solve dispatch and shared spectral selection (which, sigma).
  • Added DenseEigen (default, via LinearAlgebra.eigen) plus ArpackJL, ArnoldiMethodJL, KrylovKitEigen, and JacobiDavidsonJL backends as package extensions.
  • Added genuine factorized shift-and-invert for KrylovKit, and fixed Arpack generalized problems and the iterative default_nev.
  • Added guarded tests covering every backend.

Define a problem, pick (or auto-select) an algorithm, and call solve, giving eigenvalue computations the same experience as linear solves. Standard (Av = λv) and generalized (Av = λBv) problems are supported, with shift-and-invert for interior eigenvalues near sigma.

JacobiDavidson is wired up for standard problems only (upstream jdqz is broken) and targets eigenvalues nearest the shift.

Addresses #143.
AI Usage: Used GPT 5.5

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.

1 participant