Skip to content

Implement fully implicit Gauss methods #3454

@ranocha

Description

@ranocha

What kind of problems is it mostly used for? Please describe.

Somewhat stiff problems that require symmetric and symplectic methods could benefit from them.

Describe the algorithm you’d like

The classical Gauss methods (s stages, order 2s) would be nice to have, e.g., for two, three, and four stages.

Other implementations to know about

https://github.com/JuliaGNI/GeometricIntegrators.jl implements them but does apparently not use the specialized implementations to reduce the complexity of the linear algebra routines like the Radau methods implemented in OrdinaryDiffEqFIRK.jl do, cf. http://www.unige.ch/~hairer/preprints/coimbra.pdf.

https://github.com/SciML/IRKGaussLegendre.jl implements the 8-stage version with a specialized fixed-point solver, making it really useful only for non-stiff equations (as described in their README.md).

PETSc implements Gauss methods, but only for sparse Jacobians. It can currently be used via the low-level interface of PETSc.jl, see https://github.com/JuliaParallel/PETSc.jl/blob/main/examples/ex51_implicit.jl

References

Any standard textbook on numerical methods for ODEs includes these methods, even Wikipedia: https://en.wikipedia.org/wiki/List_of_Runge–Kutta_methods#Gauss–Legendre_methods

This is related to #521 and #1004.

The papers https://doi.org/10.1007/s11075-014-9825-0 (preprint available at https://arxiv.org/abs/1304.0974) and https://doi.org/10.1007/s11075-017-0367-0 are related to this.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions