BSeries

Docs-stable Docs-dev Build Status Coveralls Codecov License: MIT DOI

A collection of functionality around B-series in Julia. See

  • Philippe Chartier, Ernst Hairer, Gilles Vilmart (2010) Algebraic Structures of B-series. Foundations of Computational Mathematics DOI: 10.1007/s10208-010-9065-1

API Documentation

The API of BSeries.jl is documented in the online documentation. Information on each function is available in their docstrings.

BSeries.jl re-exports everything from RootedTrees.jl. However, if you rely on functionality from that package, you should also include it explicitly in your project dependencies to track breaking changes, since the version numbers of RootedTrees.jl and BSeries.jl are not necessarily synchronized.

The main API of BSeries.jl consists of the following components.

  • B-series behave like AbstractDicts mapping RootedTrees to coefficients.
  • The B-series of time integration methods such as Runge-Kutta methods can be constructed by the function bseries.
  • Vector space operations (addition/subtraction and multiplication by scalars) are available.
  • The algebraic structures of the composition law and the substitution law are implemented via compose and substitute.
  • Backward error analysis can be performed via modified_equations and modifying_integrators.

Please consult the documentation or the docstrings for further information.

Referencing

If you use BSeries.jl for your research, please cite it using the bibtex entry

@online{ketcheson2021computing,
  title={Computing with {B}-series},
  author={Ketcheson, David I and Ranocha, Hendrik},
  year={2021},
  month={11},
  eprint={2111.11680},
  eprinttype={arXiv},
  eprintclass={math.NA}
}

In addition, you can also refer to BSeries.jl directly as

@misc{ranocha2021bseries,
  title={{BSeries.jl}: {C}omputing with {B}-series in {J}ulia},
  author={Ranocha, Hendrik and Ketcheson, David I},
  year={2021},
  month={09},
  howpublished={\url{https://github.com/ranocha/BSeries.jl}},
  doi={10.5281/zenodo.5534602}
}

License and contributing

This project is licensed under the MIT license (see LICENSE.md). Since it is an open-source project, we are very happy to accept contributions from the community. Please refer to CONTRIBUTING.md for more details.