{"id":15360540,"url":"https://github.com/ranocha/bseries.jl","last_synced_at":"2025-07-26T04:35:18.820Z","repository":{"id":37819768,"uuid":"407556682","full_name":"ranocha/BSeries.jl","owner":"ranocha","description":"Computing with B-series in Julia","archived":false,"fork":false,"pushed_at":"2024-04-22T07:04:02.000Z","size":4350,"stargazers_count":25,"open_issues_count":20,"forks_count":3,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-04-23T08:59:28.951Z","etag":null,"topics":["average-vector-field","b-series","backward-error-analysis","energy-preservation","hacktoberfest","julia","modified-equations","modifying-integrators","runge-kutta"],"latest_commit_sha":null,"homepage":"https://ranocha.github.io/BSeries.jl","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ranocha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.bib","codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-17T13:46:52.000Z","updated_at":"2024-06-12T12:00:31.689Z","dependencies_parsed_at":"2023-11-24T09:28:16.653Z","dependency_job_id":"b694cc35-52f0-476e-91f2-798e860530dd","html_url":"https://github.com/ranocha/BSeries.jl","commit_stats":{"total_commits":160,"total_committers":6,"mean_commits":"26.666666666666668","dds":0.475,"last_synced_commit":"56b93037d7698ef34dfdcd257f33d586d813df02"},"previous_names":[],"tags_count":69,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ranocha%2FBSeries.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ranocha%2FBSeries.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ranocha%2FBSeries.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ranocha%2FBSeries.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ranocha","download_url":"https://codeload.github.com/ranocha/BSeries.jl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248654089,"owners_count":21140236,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["average-vector-field","b-series","backward-error-analysis","energy-preservation","hacktoberfest","julia","modified-equations","modifying-integrators","runge-kutta"],"created_at":"2024-10-01T12:50:32.646Z","updated_at":"2025-04-13T02:12:13.466Z","avatar_url":"https://github.com/ranocha.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BSeries\n\n[![Docs-stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://ranocha.de/BSeries.jl/stable)\n[![Docs-dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://ranocha.de/BSeries.jl/dev)\n[![Build Status](https://github.com/ranocha/BSeries.jl/workflows/CI/badge.svg)](https://github.com/ranocha/BSeries.jl/actions?query=workflow%3ACI)\n[![Coveralls](https://coveralls.io/repos/github/ranocha/BSeries.jl/badge.svg?branch=main)](https://coveralls.io/github/ranocha/BSeries.jl?branch=main)\n[![Codecov](https://codecov.io/gh/ranocha/BSeries.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/ranocha/BSeries.jl)\n[![License: MIT](https://img.shields.io/badge/License-MIT-success.svg)](https://opensource.org/licenses/MIT)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5534602.svg)](https://doi.org/10.5281/zenodo.5534602)\n\nA collection of functionality around\n[B-series](https://en.wikipedia.org/wiki/Butcher_group)\nin [Julia](https://julialang.org/). See\n\n- Philippe Chartier, Ernst Hairer, Gilles Vilmart (2010)\n  Algebraic Structures of B-series.\n  Foundations of Computational Mathematics\n  [DOI: 10.1007/s10208-010-9065-1](https://doi.org/10.1007/s10208-010-9065-1)\n\n\n## API Documentation\n\nThe API of [BSeries.jl](https://github.com/ranocha/BSeries.jl) is documented in\nthe [online documentation](https://ranocha.de/BSeries.jl/stable). Information\non each function is available in their docstrings.\n\nBSeries.jl re-exports everything from\n[RootedTrees.jl](https://github.com/SciML/RootedTrees.jl).\nHowever, if you rely on functionality from that package, you should also include\nit explicitly in your project dependencies to track breaking changes, since the\nversion numbers of RootedTrees.jl and BSeries.jl are not necessarily synchronized.\n\nThe main API of BSeries.jl consists of the following components.\n\n- B-series behave like `AbstractDict`s mapping `RootedTree`s to coefficients.\n- The B-series of time integration methods such as Runge-Kutta methods\n  can be constructed by the function `bseries`.\n- Vector space operations (addition/subtraction and multiplication by scalars)\n  are available.\n- The algebraic structures of the composition law and the substitution law are\n  implemented via `compose` and `substitute`.\n- Backward error analysis can be performed via `modified_equation`s and\n  `modifying_integrator`s.\n\nPlease consult the documentation or the docstrings for further information.\n\nPlease note that B-series analysis is most conveniently applied to the\nautonomous form of ordinary differential equations (ODEs). Thus, BSeries.jl and\nRootedTrees.jl usually assume that time integration methods give the same\nresult, independent of whether an ODE is written in an autonomous or a\nnon-autonomous form. For Runge-Kutta methods, this means that the usual row-sum\nassumption is used.\n\n## Referencing\n\nIf you use\n[BSeries.jl](https://github.com/ranocha/BSeries.jl)\nfor your research, please cite it using the bibtex entry\n```bibtex\n@article{ketcheson2023computing,\n  title={Computing with {B}-series},\n  author={Ketcheson, David I and Ranocha, Hendrik},\n  journal={ACM Transactions on Mathematical Software},\n  volume={49},\n  number={2},\n  year={2023},\n  month={06},\n  doi={10.1145/3573384},\n  eprint={2111.11680},\n  eprinttype={arXiv},\n  eprintclass={math.NA}\n}\n```\nIn addition, you can also refer to BSeries.jl directly as\n```bibtex\n@misc{ranocha2021bseries,\n  title={{BSeries.jl}: {C}omputing with {B}-series in {J}ulia},\n  author={Ranocha, Hendrik and Ketcheson, David I},\n  year={2021},\n  month={09},\n  howpublished={\\url{https://github.com/ranocha/BSeries.jl}},\n  doi={10.5281/zenodo.5534602}\n}\n```\n\n\n## License and contributing\n\nThis project is licensed under the MIT license (see [LICENSE.md](LICENSE.md)).\nSince it is an open-source project, we are very happy to accept contributions\nfrom the community. Please refer to [CONTRIBUTING.md](CONTRIBUTING.md) for more\ndetails.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Franocha%2Fbseries.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Franocha%2Fbseries.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Franocha%2Fbseries.jl/lists"}