Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Runge Kutta methods for linear operators only #948

Closed
santiagobadia opened this issue Oct 18, 2023 · 4 comments
Closed

Runge Kutta methods for linear operators only #948

santiagobadia opened this issue Oct 18, 2023 · 4 comments

Comments

@santiagobadia
Copy link
Member

Hi @oriolcg

We were looking at the RK implementation in Gridap.
There is something that we don't understand.

You seem always to assume that the f operator is linear.
For instance, instead of storing the stages and then computing f(sum_j a[i,j]*u[j]), you are computing sum_j a[i,j]*f[j] and storing the f's.

This only works for f linear wrt u, but the implementation seems to be thought for nonlinear operators (we are using a nonlinear operator/solver for RK).

Do you agree that the current implementation only works for the linear case?

If we agree, we have to discuss what we need to do to generalise it.

@oriolcg
Copy link
Member

oriolcg commented Oct 18, 2023

True, current implementation assumes linear operators. We should think on how to make it general for the nonlinear case.

@oriolcg
Copy link
Member

oriolcg commented Oct 18, 2023

I would say that should be doable by storing u_i instead of f_i and doing the sum inside rhs!. I'll take a closer look later.

@oriolcg
Copy link
Member

oriolcg commented Oct 18, 2023

Hi @santiagobadia, I pushed a new branch (https://github.com/gridap/Gridap.jl/tree/nonlinear_RK) with a first attempt to make it general for nonlinear cases, for both RK and IMEX-RK. I haven't implemented the ability to handle explicit RK. The tests for the RK are passing, but for the IMEX version the TransientFEOperatorsTests are failing.

You can take a look and check if this is a good way to proceed. I'll also check what's the cause of the error in the IMEX in the coming days.

@santiagobadia
Copy link
Member Author

Solved issue, closed now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants