ranocha / BSeries.jl

Computing with B-series in Julia
https://ranocha.github.io/BSeries.jl
MIT License
27 stars 5 forks source link

Extensions of B-series #8

Open ketch opened 3 years ago

ketch commented 3 years ago

There are several extensions of "B-series for Runge-Kutta methods" that could also be implemented in this package:

We should also extend the analysis and handling of B-series, e.g.,

A nice test of pseudo-symmetry and pseudo-symplecticity could be the complex compisitions of Casas, Chartier, Escorihuela-Tomas, and Zhang (2021), https://doi.org/10.1016/j.cam.2020.113006

ranocha commented 3 years ago

What would be necessary to support these extensions and how could we approach that? As far as I know, we would need another kind of rooted trees with (at least) two different leaf types for some of these extensions, correct? Is there something "cheaper" we could look at first that doesn't require other tree types? That might help us to improve the interfaces etc. we're using.

ketch commented 3 years ago

I don't know completely what is needed, but yes, one of the main things would be to support trees with two types of nodes (or n types of nodes for n-additive methods).

dynamic-queries commented 1 year ago

@ketch @ranocha Could you suggest a good first issue?

ketch commented 1 year ago

@dynamic-queries Thanks for the interest; it depends quite a bit on your background. Are you already familiar with B-series (as a mathematical tool)? With time integration methods?

dynamic-queries commented 1 year ago

@dynamic-queries Thanks for the interest; it depends quite a bit on your background. Are you already familiar with B-series (as a mathematical tool)? With time integration methods?

@ketch I am a masters student in scientific computing with some experience in time integration methods. B-series is new-territory for me. I am reading Algebraic Structures of B-series to start with.

ranocha commented 1 year ago

Thanks for your interest! If you're new to Julia and/or GitHub, you could start with a small PR, e.g., https://github.com/ranocha/BSeries.jl/issues/103 If you are interested in time integration methods and want to implement something completely new, you could check whether the class of time integration schemes you are interested in is already covered by BSeries.jl. If not, you can implement it. Something a bit simpler would be to implement new functions checking properties of B-series, e.g., symplecticity. The book "Geometric Numerical Integration" of Hairer et al. describes the theory in Section VI.7.