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

added method ROK4a #2260

Merged
merged 3 commits into from
Jun 29, 2024
Merged

added method ROK4a #2260

merged 3 commits into from
Jun 29, 2024

Conversation

cwittens
Copy link
Contributor

Checklist

  • Appropriate tests were added
  • Any code changes were done in a way that does not break public API
  • All documentation related to code changes were updated
  • The new code follows the
    contributor guidelines, in particular the SciML Style Guide and
    COLPRAC.
  • Any new documentation only uses public API

Additional context

added method ROK4a from Rosenbrock--Krylov Methods for Large Systems of Differential Equations
I dont think OrdinaryDiffEq currently utilizes Krylov Solvers for solving the Jacobian, but I need the _transformtab(Alpha,Gamma,B,Bhat) in function ROK4aTableau() for a different project, so I thought I might as well implement the method, if I already added the Tableau.

@ChrisRackauckas
Copy link
Member

I dont think OrdinaryDiffEq currently utilizes Krylov Solvers for solving the Jacobian

That's a choice. Just change linsolve = KrylovJL_GMRES() and it'll use a Krylov method. The tableau and the way the linear equations are solved are not 1-1.

@cwittens
Copy link
Contributor Author

Ohh I didn't know that.
What do you mean with The tableau and the way the linear equations are solved are not 1-1. ?

@ChrisRackauckas
Copy link
Member

Every tableau can be used with every linear solver, and every linear solver can be used with every tableau.

@ChrisRackauckas
Copy link
Member

What's the next steps here?

@cwittens
Copy link
Contributor Author

are the failed checks from this method? I thought they were general. Otherwise I will try and look for a fix.

The "different project" I was talking about is something in Fortran where I needed the coefficients in the a,C,b,btilde,d,c format and not Alpha,Gamma,B,Bhat as given in the paper, which is why I used _transformtab(Alpha,Gamma,B,Bhat).
And after already implementing the Alpha,Gamma,B,Bhat coefficients, i thought I made as well add this as a new method, but I didnt plan to do more with it in julia/ordinarydiffeq.

@ChrisRackauckas ChrisRackauckas merged commit b77a82f into SciML:master Jun 29, 2024
25 of 33 checks passed
@ChrisRackauckas
Copy link
Member

The failed checks were from the method, but it was just a typo so I handled it.

Thanks! Did you benchmark it on a few problems to see how it works in practice?

@cwittens
Copy link
Contributor Author

cwittens commented Jul 2, 2024

Thanks.
Nop, I only checked if it works but did not benchmark it in any way.

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

Successfully merging this pull request may close these issues.

2 participants