Solver for Astroparticle Equation of Transport Analysis in Spherical Symmetry
A Python library for simulating cosmic-ray transport in spherically symmetric astrophysical environments using a finite volume method approach.
Overview
SAETASS numerically solves the astroparticle transport equation in spherically symmetric astrophysical environments; this is, the fundamental equation governing the propagation and energy losses of energetic particles within astrophysical environments such as stellar wind bubbles.
The package decomposes the full transport equation into independent physical operators: diffusion, advection, energy losses and source. It evolves them via mathematically robust operator-splitting schemes. Each operator is implemented as a dedicated finite-volume solver, ensuring modularity, testability and physical transparency.
For comprehensive documentation, visit the SAETASS Documentation.
Key Features
| Feature | Description |
|---|---|
| Modular solvers | Independent numerical schemes for advection, diffusion energy losses, and source injection; combined via operator splitting |
| Flexible grids | Dedicated grid object with support for diverse spatial and momentum grid configurations |
| Physical accuracy | Deep integration with astropy.units and astropy.constants for strict dimensional analysis |
| Extensibility | Plug in custom diffusion coefficients, velocity fields, loss functions and source terms |
| Fast numerical core | Compiled Numba kernels, multithreaded on large grids, and parallel parameter sweeps across processes |
Installation
A quick simple installation to get started using SAETASS can be simply done via pip:
pip install saetass
This will install the latest stable version of SAETASS from PyPI.
The dependencies of other use cases are installed as extras: tutorials to run the tutorials and examples, test, docs, and dev for all of them, for instance pip install "saetass[tutorials]".
See the full Installation Guide for additional installation options and troubleshooting.
Quickstart
For step-by-step guides to get started with SAETASS, check the Tutorials section of the documentation.
For complete, more advanced examples, check the Examples section of the documentation.
Mathematical background
SAETASS solves the following astroparticle transport equation in spherically symmetric geometry:
$$\frac{\partial \psi}{\partial t} + \frac{1}{r^2}\frac{\partial}{\partial r}\left(r^2 u_\mathrm{w}\psi\right) + \frac{\partial}{\partial p}\left( \dot{p} \psi \right) = \frac{1}{r^2} \frac{\partial}{\partial r} \left(r^2 D\frac{\partial \psi}{\partial r}\right) + Q.$$
Where:
- $\psi(t, r, p)$ is the differential (in momentum) density function ($\psi = 4\pi p^2 f_\mathrm{ps}$),
- $u_\mathrm{w}(t,r,p)$ is the advection (wind) velocity,
- $\dot{p}(t, r, p)$ is the rate of energy loss,
- $D(t, r, p)$ is the spatial diffusion coefficient,
- $Q(t, r, p)$ is the source term.
The equation is discretized using a finite volume scheme and solved by an operator-splitting routine, which decomposes the full PDE into simpler, independently solvable subproblems.
References
For a detailed derivation of the numerical schemes, see the technical paper.
Citation
If you use SAETASS in your research, please cite the technical paper to acknowledge the development effort:
@article{saetass_technical_paper,
author = {García-Morillo, José María and Menchiari, Stefano and López-Coto, Rubén},
title = {SAETASS: Solver for Astroparticle Equation of Transport Analysis in Spherical Symmetry},
journal = {Journal of Cosmology and Astroparticle Physics},
publisher = {IOP Publishing},
year = {2026},
month = {sep},
volume = {2026},
number = {09},
pages = {133},
doi = {10.1088/1475-7516/2026/09/133},
url = {https://doi.org/10.1088/1475-7516/2026/09/133},
}
For software-specific citations, you may use the Zenodo DOI 10.5281/zenodo.19468484 citation:
@software{saetass_software,
author = {García-Morillo, José María and Menchiari, Stefano and López-Coto, Rubén},
title = "{SAETASS: Solver for Astroparticle Equation of Transport Analysis in Spherical Symmetry}",
month = apr,
year = 2026,
publisher = {Zenodo},
doi = {10.5281/zenodo.19468484},
url = {https://doi.org/10.5281/zenodo.19468484}
}
Contributing
Contributions, bug reports and feature suggestions are welcome! Whether you want to fix a typo, improve a solver or add a new physical module: we'd love your help!
Please read the Contributing Guidelines and our Code of Conduct before getting started. The changelog lists the changes of every release.
License
SAETASS is released under the BSD 3-Clause License.
Acknowledgements
SAETASS is developed within the VHEGA research group at the Instituto de Astrofísica de Andalucía (IAA-CSIC), Granada, Spain.
Metadata
Release files for saetass 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| saetass-0.6.0.tar.gz | 3.2 MB | With provenance | Details for saetass-0.6.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| saetass-0.6.0-py3-none-any.whl | Python 3 | none | any | Details for saetass-0.6.0-py3-none-any.whl |
Total release size: 3.4 MB
Release files / saetass-0.6.0.tar.gz
| Download URL | saetass-0.6.0.tar.gz |
|---|---|
| Size | 3.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
706a2146d2bd9565c658da6c2506b673d02e5ffe53c2bdba2d51880aea25cbe1
|
|
BLAKE2b-256 checksum How to use checksums |
6c5ff11e1455ffee78c49e442a0addf4d08ae53a2dfea27d1f93d91bbefc7de4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.
Transparency logRelease files / saetass-0.6.0-py3-none-any.whl
| Download URL | saetass-0.6.0-py3-none-any.whl |
|---|---|
| Size | 128.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c2ea987dc0d59f456d2d509d8199841da3e31b89667f7712aff9b69183252cda
|
|
BLAKE2b-256 checksum How to use checksums |
483e747064fd1928ea978a4566f66e3cdeb16cac51879f1e7737699b4e8b3d6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.
Transparency logSecurity for saetass 0.6.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for saetass-0.6.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.