https://github.com/darioizzo/heyoka
Science Score: 23.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
✓DOI references
Found 8 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.5%) to scientific vocabulary
Last synced: 9 months ago
·
JSON representation
Repository
Basic Info
- Host: GitHub
- Owner: darioizzo
- License: mpl-2.0
- Language: C++
- Default Branch: master
- Size: 437 MB
Statistics
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 0
Fork of bluescarni/heyoka
Created almost 6 years ago
· Last pushed about 2 years ago
https://github.com/darioizzo/heyoka/blob/master/
heyoka ====== [](https://circleci.com/gh/bluescarni/heyoka) [](https://github.com/bluescarni/heyoka/actions?query=workflow%3A%22GitHub+CI%22)  [](https://codecov.io/github/bluescarni/heyoka?branch=master) [](https://anaconda.org/conda-forge/heyoka)
Modern Taylor's method via just-in-time compilation
heyoka is a C++ 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](https://llvm.org/). 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 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](https://en.wikipedia.org/wiki/SIMD) instruction sets (including AVX/AVX2/AVX-512/Neon/VSX), * ensemble simulations and automatic parallelisation. If you prefer using Python rather than C++, heyoka can be used from Python via [heyoka.py](https://github.com/bluescarni/heyoka.py), its Python bindings. If you are using heyoka 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 paper ([arXiv preprint](https://arxiv.org/abs/2105.00800)): ```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's novel event detection system is described in the following paper ([arXiv preprint](https://arxiv.org/abs/2204.09948)): ```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} } ``` Quick example ------------- As a simple example, here's how the ODE system of the [pendulum](https://en.wikipedia.org/wiki/Pendulum_(mathematics)) is defined and numerically integrated in heyoka: ```c++ #include
Explore the docs
Report bug Request feature Discuss#include using namespace heyoka; int main() { // Create the symbolic variables x and v. auto [x, v] = make_vars("x", "v"); // Create the integrator object // in double precision. auto ta = taylor_adaptive {// Definition of the ODE system: // x' = v // v' = -9.8 * sin(x) {prime(x) = v, prime(v) = -9.8 * sin(x)}, // Initial conditions // for x and v. {0.05, 0.025}}; // Integrate for 10 time units. ta.propagate_for(10.); // Print the state vector. std::cout << "x(10) = " << ta.get_state()[0] << '\n'; std::cout << "v(10) = " << ta.get_state()[1] << '\n'; } ``` Output: ```console x(10) = 0.0487397 y(10) = 0.0429423 ``` Documentation ------------- The full documentation can be found [here](https://bluescarni.github.io/heyoka/). Authors ------- * Francesco Biscani (European Space Agency) * Dario Izzo (European Space Agency) License ------- heyoka is released under the [MPL-2.0](https://www.mozilla.org/en-US/MPL/2.0/FAQ/) license.
Owner
- Name: Dario Izzo
- Login: darioizzo
- Kind: user
- Location: Noordwijk
- Company: European Space Agency
- Website: www.esa.int/act
- Repositories: 15
- Profile: https://github.com/darioizzo