n-body simulation for the evolution of orbital environments
Explore the docs »
Report bug
·
Request feature
·
Discuss
As the number of artificial satellites orbiting our planet grows, the likelihood of collisions increases, potentially triggering a cascade effect making certain orbits unusable.
cascade is a C++/Python library developed to propagate the evolution of large number of orbiting objects while detecting reliably close encounters and collisions. It is coded in modern C++20 with focus on the efficency of the underlying N-body simulation with collision/conjunction detection. Its development was motivated to help conjunction tracking and collision detection of orbiting space debris populations.
Notable features include:
- an original collision detection algorithm exploiting high order Taylor expansions.
- guaranteed detection of all occuring collisions and conjunctions.
- high precision orbital propagation via Taylor integration.
- possibility to define custom dynamics.
- seamless usage of modern SIMD instruction sets (including AVX/AVX2/AVX-512/Neon/VSX).
- seamless multi-threaded parallelisation.
Install conda env:
conda env create -f cascade_devel.yml
conda activate cascade_devel
Compile:
mkdir build
cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DCMAKE_PREFIX_PATH=$CONDA_PREFIX -DBoost_NO_BOOST_CMAKE=ON -DPython3_EXECUTABLE=$CONDA_PREFIX/bin/python -DCASCADE_INSTALL_LIBDIR=lib -DCASCADE_BUILD_PYTHON_BINDINGS=yes -DCMAKE_BUILD_TYPE=Debug
make install