项目作者: bluescarni

项目描述 :
Python library for ODE integration via Taylor's method and LLVM
高级语言: C++
项目地址: git://github.com/bluescarni/heyoka.py.git
创建时间: 2020-11-30T06:37:58Z
项目社区:https://github.com/bluescarni/heyoka.py

开源协议:Mozilla Public License 2.0

下载


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
·
Request feature
·
Discuss


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):

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

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

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

Installation

Via pip:

  1. $ pip install heyoka

Via conda + conda-forge:

  1. $ 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.