Rubble: An implicit code for simulating the local evolution of solid size distributions in protoplanetary disks
Rubble (Li, Chen & Lin, 2022, 2024) implicitly models the local evolution of dust distributions in size, mass, and surface density by solving the Smoluchowski equation (also known as the coagulation-fragmentation equation) under given disk conditions.
The code robustness has been validated by a suite of numerical benchmarks against known analytical and empirical results. Rubble is also able to model prescribed physical processes such as bouncing, modulated mass transfer, regulated dust loss/supply, and probabilistic collisional outcomes based on velocity distributions, etc. A thermal evolution module has been later included to self-consistently update opacity and temperature, and models silicate evaporation and condensation using the Clausius–Clapeyron relation. The package also includes a toolkit for analyzing and visualizing results produced by Rubble.
Rubble is built on PyTorch, enabling GPU-accelerated computation and significant performance gains over traditional CPU-based linear algebra backends.
You may install Rubble by this command:
pip install -U rubbleOr, you may try the most updated Rubble by this command:
pip install -U -e git+git://github.com/astroboylrx/RubbleIt will automatically install all the required modules.
Three demo Jupyter Notebooks are provided under the docs/JupyterNotebooks folder:
- Demo1 — Analytical kernels (constant, linear, product) and coagulation/fragmentation in protoplanetary disk environments, benchmarked against known analytical and empirical results.
- Demo2 — Collision physics including coagulation, bouncing, and fragmentation (destructive, erosion, and mass transfer), with or without velocity distributions.
- Demo3 — Evaporation and condensation of silicates via the Clausius–Clapeyron relation, with timestep convergence tests at different temperature regimes.
You may also try help(Rubble) to read the raw documentation.