Chrono is a physics-based modelling and simulation infrastructure implemented in C++. It can handle multibody dynamics, collision detection, and granular flows, among many other physical processes. Though the applications for which Chrono has been used most often are vehicle dynamics, robotics, and machine design, it has been used to simulate asteroid aggregation and granular systems for astrophysics research. Chrono is written in C++; a Python version, PyChrono, is also available.
Please see citation information here: https://projectchrono.org/faq/#how-do-i-cite-chrono