Open
Description
Is this package the place where we'd like to put other algorithms as well? Such as
- Chebyshev (requires prior knowledge of spectral range of the operator)
- Padé (explicit & implicit Euler, Crank–Nicolson).
- Spectral (when the operator is diagonal in the basis chosen, or even if you have precomputed the diagonalization)
I imagine being able to do the following.
CrankNicolson{T} where T = Padé{1,1,T}
A = SymTridiagonal(...) # or whatever
# For a time-independent, this would precompute the factorizations necessary, that is I - A/2
# This requires fixed time-step, though
Ae = CrankNicolson(dt*A)
expv!(w, Ae, b) # Amounts to w = (I-A/2)\(I+A/2)*b
# Alternative interface, for time-dependent operators/adaptive time-steps, which cannot reuse previous factorizations
expv!(w, dt, A, P)
Metadata
Metadata
Assignees
Labels
No labels