You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
dy =ntuple(Val(N)) do k
dₖx =partials.(x_and_dx, k)
dₖx_vec =vec(dₖx)
dₖc_vec =similar(y_vec)
mul!(dₖc_vec, B_vec, dₖx_vec)
dₖy_vec =solve(implicit.linear_solver, A_vec_presolved, -dₖc_vec)
reshape(dₖy_vec, size(y))
end
y_and_dy =map(eachindex(IndexCartesian(), y)) do i
Dual{T}(y[i], Partials(ntuple(k -> dy[k][i], Val(N))))
end
instead of solving with gmres for each slice you could use block-gmres once. I didn't check the block-gmres implementation but I think it is worth testing whether this speeds up computation and this might also allow to solve #118
The latest Krylov.jl version has a block-gmres version which I think can simplify/speed-up some parts of the code.