The phi functions can be defined using the recurrence relation
The zero point values are
The recurrence relation naturally lends itself to a dynamic programming style implementation, where it is more efficient to calculate all
The phi functions can be defined using the recurrence relation
The zero point values are
The recurrence relation naturally lends itself to a dynamic programming style implementation, where it is more efficient to calculate all
include("Phi.jl")
using Phi: phim_alt, phimc
The Arnoldi iteratrion algorithm computes a basis for the Krylov subspace
During the summer, I contributed to multiple repositories under the JuliaDiffEq organization and completed the implementation of Exponential Runge-Kutta (ExpRK) integrators. My work can be roughly summarized into three parts: the exponential utilities, the integrators and sparse Jacobian support.
The development of utility functions/types used by the exponential occurs on the first four weeks and is summarized by the following blog posts:
Near the end of GSoC, I also migrated the utilities to a separate package ExponentialUtilities under JuliaDiffEq.
using OrdinaryDiffEq, ExponentialUtilities | |
using LinearAlgebra, SparseArrays | |
# Example: Use expv to solve constant-coefficient linear systems | |
# u' = ϵu_xx + u, u ∈ [0, 1], t ∈ [0, 1], Dirichlet BC | |
# The analytical solution is | |
# u(t) = exp(tA)u(0), A = L + I | |
# which we approximate with expv/expv_timestep | |
N = 100; T = 1.0 | |
dx = 1 / (N + 1) |