[WIP] Power Iteration Method for Numerical Stability Analysis of the Non-Linear System
Proposed Changes
Give a brief overview of your contribution here in a few sentences. We have a non-linear system described by x_{n+1} = F(x_n), where x_n and x_{n+1} are the solution states at time steps n and n+1, and F represents our nonlinear solver iteration. The spectral radius of the Jacobian matrix J_F = dF/dx determines the stability of our iterative scheme.
The power iteration method allows us to estimate the dominant eigenvalue (spectral radius) without explicitly forming the Jacobian matrix. The basic idea is:
- Start with a random vector v
- Repeatedly compute w = J_F * v (using forward-mode AD)
- Normalize w to get the new v
- The norm of w converges to the dominant eigenvalue of the system
The current version has some bugs leading to seg faults which i'm trying to debug. I would appreciate any comments.
Related Work
Resolve any issues (bug fix or feature request), note any related PRs, or mention interactions with the work of others, if any.
PR Checklist
Put an X by all that apply. You can fill this out after submitting the PR. If you have any questions, don't hesitate to ask! We want to help. These are a guide for you to know what the reviewers will be looking for in your contribution.
- [ ] I am submitting my contribution to the develop branch.
- [ ] My contribution generates no new compiler warnings (try with --warnlevel=3 when using meson).
- [ ] My contribution is commented and consistent with SU2 style (https://su2code.github.io/docs_v7/Style-Guide/).
- [ ] I used the pre-commit hook to prevent dirty commits and used
pre-commit run --allto format old commits. - [ ] I have added a test case that demonstrates my contribution, if necessary.
- [ ] I have updated appropriate documentation (Tutorials, Docs Page, config_template.cpp), if necessary.