Update arnoldi.jl to include a reorthogonalisation option - #262
Update arnoldi.jl to include a reorthogonalisation option#262cneverett wants to merge 2 commits into
Conversation
Added an option to reorthogonalise (`reorth`) each basis vector during its construction in `arnoldi!`. This helps numerical roundoff from leading to poor basis orthogonalisation, especially when the Krylov subspace dimension is large.
|
Do you have a test case where this was shown to be a tangible improvement? |
|
Unfortunately I don't have a simple test case that shows the improvement. I have been developing a modified version of I can try to come up with a simple test-case to demonstrate these findings but it will take time. Or I could use the systems I am currently modelling and show some outputs with and without this re-orthogonalisation? |
|
Tests fail. This should get at least one test exercising it. |
`reorth` now a kwarg to `arnoldi_step!` set by default to `false` to avoid downstream breaking of functions
|
I have now made I will come up with at least one test demonstrating the difference, which will take a little time. |
Added an option to reorthogonalise (
reorth) each basis vector during its construction inarnoldi!. This helps numerical roundoff from leading to poor basis orthogonalisation, even with a modified Gram-Schmidt procedure, especially when the Krylov subspace dimension is large. This can lead to better stability and smaller errors for large, highly stiff, non-normal systems.This is my first time contributing to SciML, so I am not familiar with the format of pull requests. This pull request only adds a small feature and I have updated the function documentation to include it. I am not sure if it needs any specific tests.
Checklist
contributor guidelines, in particular the SciML Style Guide and
COLPRAC.
Additional context
Add any other context about the problem here.