SciML / OrdinaryDiffEq.jl

High performance ordinary differential equation (ODE) and differential-algebraic equation (DAE) solvers, including neural ordinary differential equations (neural ODEs) and scientific machine learning (SciML)
https://diffeq.sciml.ai/latest/
Other
536 stars 205 forks source link

Adding Pseudo-Symplectic Explicit Runge-Kutta methods #2174

Closed MarcoArtiano closed 4 months ago

MarcoArtiano commented 5 months ago

Checklist

Additional context

This implements some methods mentioned in https://github.com/SciML/OrdinaryDiffEq.jl/issues/1987

references

 "@article{Aubry1998,
    author = {A. Aubry and P. Chartier},
    journal = {BIT Numer. Math.},
    title =  {Pseudo-symplectic {R}unge-{K}utta methods},
    volume = {38},
    PAGES = {439-461},
    year = {1998},
    },
    https://link.springer.com/article/10.1007/BF02510253
    @article{Capuano2017,
    title = {Explicit {R}unge–{K}utta schemes for incompressible flow with improved energy-conservation properties},
    journal = {J. Comput. Phys.},
    volume = {328},
    pages = {86-94},
    year = {2017},
    issn = {0021-9991},
    doi = {https://doi.org/10.1016/j.jcp.2016.10.040},
    author = {F. Capuano and G. Coppola and L. Rández and L. {de Luca}},}"

I just did the ode_convergence_test locally. Please, let me know if any other tests are required. Thank you!

ChrisRackauckas commented 5 months ago

What's left here?

MarcoArtiano commented 5 months ago

What's left here?

I added proper testing, everything should be fine right now.