https://github.com/bluescarni/heyoka.py

Python library for ODE integration via Taylor's method and LLVM

https://github.com/bluescarni/heyoka.py

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 8 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.5%) to scientific vocabulary

Keywords

astrodynamics astronomy astrophysics celestial-mechanics differential-equations extended-precision just-in-time llvm multiprecision n-body nbody ode ode-solver python python3 simd

Keywords from Contributors

meta-heuristic
Last synced: 6 months ago · JSON representation

Repository

Python library for ODE integration via Taylor's method and LLVM

Basic Info
  • Host: GitHub
  • Owner: bluescarni
  • License: mpl-2.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 1.25 GB
Statistics
  • Stars: 78
  • Watchers: 6
  • Forks: 14
  • Open Issues: 2
  • Releases: 53
Topics
astrodynamics astronomy astrophysics celestial-mechanics differential-equations extended-precision just-in-time llvm multiprecision n-body nbody ode ode-solver python python3 simd
Created about 5 years ago · Last pushed 6 months ago
Metadata Files
Readme License

README.md

heyoka.py

Build Status Build Status

Anaconda-Server Badge PyPI


Logo

Modern Taylor's method via just-in-time compilation
Explore the docs

Report bug

<a href="https://github.com/bluescarni/heyoka.py/issues/new/choose">Request feature</a>

<a href="https://github.com/bluescarni/heyoka.py/discussions">Discuss</a>

heyoka.py is a Python library for the integration of ordinary differential equations (ODEs) via Taylor's method, based on automatic differentiation techniques and aggressive just-in-time compilation via LLVM. Notable features include:

  • support for single-precision, double-precision, extended-precision (80-bit and 128-bit), and arbitrary-precision floating-point types,
  • high-precision zero-cost dense output,
  • accurate and reliable event detection,
  • builtin support for analytical mechanics - bring your own Lagrangians/Hamiltonians and let heyoka.py formulate and solve the equations of motion,
  • builtin support for operational Earth-orbiting spacecraft analysis, including frame transformations, high-fidelity geopotential models, Earth Orientation Parameters (EOP), atmospheric models, space weather effects, ephemeris-based third-body perturbations,
  • builtin support for high-order variational equations - compute not only the solution, but also its partial derivatives,
  • builtin support for machine learning applications via neural network models,
  • the ability to maintain machine precision accuracy over tens of billions of timesteps,
  • batch mode integration to harness the power of modern SIMD instruction sets (including AVX/AVX2/AVX-512/Neon/VSX),
  • ensemble simulations and automatic parallelisation,
  • interoperability with SymPy.

heyoka.py is based on the heyoka C++ library.

If you are using heyoka.py as part of your research, teaching, or other activities, we would be grateful if you could star the repository and/or cite our work. For citation purposes, you can use the following BibTex entry, which refers to the heyoka.py paper (arXiv preprint):

bibtex @article{10.1093/mnras/stab1032, author = {Biscani, Francesco and Izzo, Dario}, title = "{Revisiting high-order Taylor methods for astrodynamics and celestial mechanics}", journal = {Monthly Notices of the Royal Astronomical Society}, volume = {504}, number = {2}, pages = {2614-2628}, year = {2021}, month = {04}, issn = {0035-8711}, doi = {10.1093/mnras/stab1032}, url = {https://doi.org/10.1093/mnras/stab1032}, eprint = {https://academic.oup.com/mnras/article-pdf/504/2/2614/37750349/stab1032.pdf} }

heyoka.py's novel event detection system is described in the following paper (arXiv preprint):

bibtex @article{10.1093/mnras/stac1092, author = {Biscani, Francesco and Izzo, Dario}, title = "{Reliable event detection for Taylor methods in astrodynamics}", journal = {Monthly Notices of the Royal Astronomical Society}, volume = {513}, number = {4}, pages = {4833-4844}, year = {2022}, month = {04}, issn = {0035-8711}, doi = {10.1093/mnras/stac1092}, url = {https://doi.org/10.1093/mnras/stac1092}, eprint = {https://academic.oup.com/mnras/article-pdf/513/4/4833/43796551/stac1092.pdf} }

Installation

Via pip:

console $ pip install heyoka

Via conda + conda-forge:

console $ conda install heyoka.py

Documentation

The full documentation can be found here.

Authors

  • Francesco Biscani (European Space Agency)
  • Dario Izzo (European Space Agency)

License

heyoka.py is released under the MPL-2.0 license.

Owner

  • Name: Francesco Biscani
  • Login: bluescarni
  • Kind: user
  • Location: Germany
  • Company: European Space Agency

GitHub Events

Total
  • Create event: 34
  • Release event: 8
  • Issues event: 3
  • Watch event: 10
  • Delete event: 20
  • Issue comment event: 31
  • Push event: 101
  • Pull request event: 50
  • Fork event: 4
Last Year
  • Create event: 34
  • Release event: 8
  • Issues event: 3
  • Watch event: 10
  • Delete event: 20
  • Issue comment event: 31
  • Push event: 101
  • Pull request event: 50
  • Fork event: 4

Committers

Last synced: 11 months ago

All Time
  • Total Commits: 1,530
  • Total Committers: 7
  • Avg Commits per committer: 218.571
  • Development Distribution Score (DDS): 0.069
Past Year
  • Commits: 295
  • Committers: 5
  • Avg Commits per committer: 59.0
  • Development Distribution Score (DDS): 0.102
Top Committers
Name Email Commits
Francesco Biscani b****i@g****m 1,424
Dario Izzo d****o@g****m 81
Francesco Biscani F****i@e****t 13
Sceki g****i@g****m 7
seba0018 s****t@h****r 3
Théo Verhelst t****t@e****t 1
Alex Seaton a****n@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 10
  • Total pull requests: 198
  • Average time to close issues: 24 days
  • Average time to close pull requests: 7 days
  • Total issue authors: 9
  • Total pull request authors: 7
  • Average comments per issue: 5.3
  • Average comments per pull request: 0.25
  • Merged pull requests: 183
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 53
  • Average time to close issues: 28 days
  • Average time to close pull requests: 1 day
  • Issue authors: 2
  • Pull request authors: 5
  • Average comments per issue: 9.0
  • Average comments per pull request: 0.47
  • Merged pull requests: 47
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • yurivict (2)
  • bluescarni (1)
  • alangfor (1)
  • AlexandreFoley (1)
  • hfsf (1)
  • agseaton (1)
  • wenheping (1)
  • viivgit (1)
  • mtitze (1)
  • TheoVerhelst (1)
Pull Request Authors
  • bluescarni (210)
  • darioizzo (17)
  • seba0018 (3)
  • TheoVerhelst (2)
  • agseaton (2)
  • AlexandreFoley (1)
  • Sceki (1)
Top Labels
Issue Labels
bug (6) enhancement (2)
Pull Request Labels

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 1,251 last-month
  • Total dependent packages: 1
    (may contain duplicates)
  • Total dependent repositories: 2
    (may contain duplicates)
  • Total versions: 43
  • Total maintainers: 1
pypi.org: heyoka

Python library for ODE integration via Taylor's method and LLVM

  • Versions: 25
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 1,251 Last month
Rankings
Dependent packages count: 4.8%
Stargazers count: 9.0%
Forks count: 11.4%
Downloads: 11.6%
Average: 11.7%
Dependent repos count: 21.5%
Maintainers (1)
Last synced: 6 months ago
conda-forge.org: heyoka.py
  • Versions: 18
  • Dependent Packages: 0
  • Dependent Repositories: 1
Rankings
Dependent repos count: 24.4%
Stargazers count: 40.8%
Average: 41.9%
Forks count: 50.6%
Dependent packages count: 51.6%
Last synced: 6 months ago

Dependencies

.github/workflows/gh_actions_ci.yml actions
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite
  • jupyterhub/repo2docker-action master composite
  • microsoft/setup-msbuild v1.0.2 composite
.github/workflows/static.yml actions
  • actions/checkout v4 composite
  • actions/configure-pages v4 composite
  • actions/deploy-pages v4 composite
  • actions/upload-pages-artifact v3 composite
environment.yml pypi