Astrophysics Source Code Library

Making codes discoverable since 1999

Welcome to the ASCL

The Astrophysics Source Code Library (ASCL) is a free online registry for source codes of interest to astronomers and astrophysicists, including solar system astronomers, and lists codes that have been used in research that has appeared in, or been submitted to, peer-reviewed publications. The ASCL is indexed by the SAO/NASA Astrophysics Data System (ADS) and Web of Science and is citable by using the unique ascl ID assigned to each code. The ascl ID can be used to link to the code entry by prefacing the number with (i.e.,

Most Recently Added Codes

2021 May 06

[submitted] Py-PDM: A Python wrapper of the Phase Dispersion Minimization (PDM)

Phase Dispersion Minimization (PDM) is a periodical signal detection method, and it is originally implemented by Stellingwerf with C ( With the help of Cython, Py-PDM is much faster than other Python implementations.

2021 Apr 30

[ascl:2104.031] Posidonius: N-Body simulator for planetary and/or binary systems

Posidonius is a N-body code based on the tidal model used in Mercury-T (ascl:1511.020). It uses the REBOUND (ascl:1110.016) symplectic integrator WHFast to compute the evolution of positions and velocities, which is also combined with a midpoint integrator to calculate the spin evolution in a consistent way. As Mercury-T, Posidonius takes into account tidal forces, rotational-flattening effects and general relativity corrections. It also includes different evolution models for FGKML stars and gaseous planets. The N-Body code is written in Rust; a Python package is provided to easily define simulation cases in JSON format, which is readable by the Posidonius integrator.

[ascl:2104.030] lofti_gaiaDR2: Orbit fitting with Gaia astrometry

Lofti_gaia fits orbital parameters for one wide stellar binary relative to the other, when both objects are resolved in Gaia DR2. It takes as input only the Gaia DR2 source id of the two components, and their masses. It retrieves the relevant parameters from the Gaia archive, computes observational constraints for them, and fits orbital parameters to those measurements. It assumes the two components are bound in an elliptical orbit.

[ascl:2104.029] TES: Terrestrial Exoplanet Simulator

TES models the evolution of exoplanet systems. This n-body integration package comes in two parts, the C++ TES source code, and the Python-based experiment manager for running experiments and plotting the results. The experiment manager, used as the interface to TES, handles temporary data storage and allows for experiment results to be saved and then loaded later on for plotting. The experiment manager can automatically use multiple threads to run independent experiments in parallel using the mpi4py package. The experiment manager is specifically designed to enable HPC to be performed as easily as possible.

[ascl:2104.028] globalemu: Global (sky-averaged) 21-cm signal emulation

globalemu emulates the Global or sky averaged 21-cm signal and the associated neutral fraction history. The code can train a network on your own Global 21-cm signal or neutral fraction simulations using the built-in globalemu pre-processing techniques. It also features a GUI that can be invoked from the command line and used to explore how the structure of the Global 21-cm signal varies with the values of the astrophysical inputs.

[ascl:2104.027] linemake: Line list generator

linemake generates formatted and curated atomic and molecular line lists suitable for spectral synthesis work. It is lightweight and easy-to-use. The code requires that the requested beginning and ending wavelengths not bridge the divide between two files of atomic line data; in such cases, run the code twice, once on either side of the divide, to generate the desired lists.

[ascl:2104.026] Skye: Equation of state for fully ionized matter

The Skye framework develops and prototypes new EOS physics; it is not tied to a specific set of physics choices and can be extended for new effects by writing new terms in the free energy. It takes into account the effects of positrons, relativity, electron degeneracy, and non-linear mixing effects and more, and determines the point of Coulomb crystallization in a self-consistent manner. It is available in the MESA (ascl:1010.083) EOS module and as a standalone package.

[ascl:2104.025] SpaceHub: High precision few-body and large scale N-body simulations

SpaceHub uses unique algorithms for fast precise and accurate computations for few-body problems ranging from interacting black holes to planetary dynamics. This few-body gravity integration toolkit can treat black hole dynamics with extreme mass ratios, extreme eccentricities and very close encounters. SpaceHub offers a regularized Radau integrator with round off error control down to 64 bits floating point machine precision and can handle extremely eccentric orbits and close approaches in long-term integrations.

[ascl:2104.024] GAMMA: Relativistic hydro and local cooling on a moving mesh

GAMMA models relativistic hydrodynamics and non-thermal emission on a moving mesh. It uses an arbitrary Lagrangian-Eulerian approach only in the dominant direction of fluid motion to avoid mesh entanglement and associated computational costs. Shock detection, particle injection and local calculation of their evolution including radiative cooling are done at runtime. The package is modular; though it was designed with GRB physics applications in mind, new solvers and geometries can be implemented easily, making GAMMA suitable for a wide range of applications.

[ascl:2104.023] PyBird: Python code for biased tracers in redshift space

PyBird evaluates the multipoles of the power spectrum of biased tracers in redshift space. In general, PyBird can evaluate the power spectrum of matter or biased tracers in real or redshift space. The code uses FFTLog (ascl:1512.017) to evaluate the one-loop power spectrum and the IR resummation. PyBird is designed for a fast evaluation of the power spectra, and can be easily inserted in a data analysis pipeline. It is a standalone tool whose input is the linear matter power spectrum which can be obtained from any Boltzmann code, such as CAMB (ascl:1102.026) or CLASS (ascl:1106.020). The Pybird output can be used in a likelihood code which can be part of the routine of a standard MCMC sampler. The design is modular and concise, such that parts of the code can be easily adapted to other case uses (e.g., power spectrum at two loops or bispectrum). PyBird can evaluate the power spectrum either given one set of EFT parameters, or independently of the EFT parameters. If the former option is faster, the latter is useful for subsampling or partial marginalization over the EFT parameters, or to Taylor expand around a fiducial cosmology for efficient parameter exploration.