Open ketch opened 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.
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).
@ketch @ranocha Could you suggest a good first issue?
@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 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.
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.
There are several extensions of "B-series for Runge-Kutta methods" that could also be implemented in this package:
AdditiveRungeKuttaMethod
s in #43substitute
needed formodified_equation
,modifying_integrator
) (implemented in #51 and #53)compose
latexify
(u, u')' = (u', f)
We should also extend the analysis and handling of B-series, e.g.,
order_of_accuracy
compose
)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