Table of Contents

For my research during my masters and PhD I’ve made us of the rapid (binary) stellar evolution code binary_c, to simulate (binary) star systems. The population-synthesis wrapper that enabled running many of these systems was written in Perl but I decided to rewrite this into a Python based code.

The code is well documented and automatically generated based on docstrings, and is available on We provide tutorial and example notebooks on how to use the code technically, and how to actually calculate useful things with it on documentation page. A JOSS 1 paper is currently under review, which comes together with a review of the code base.

We have recently released version 0.9.6 for binary_c version 2.2.3. This version release contains many code-base changes and restructuring. I have implemented a (beta) version of Monte-Carlo based sampling, and many other small things have changed. The next release won’t take as long as this one, and will contain handlers for event-based logging (standard outputs for events like supernovae, Roche-lobe overflow, stellar mergers etc), a clean-up of the logging functionality, a rewrite of the sampling from source-file and a rewrite of the grid options.

## Usage

The installation instructions for binary_c-python are available here. To use binary_c-python you need to have binary_c installed (docs and git).

A very simple example of running a system is,

from binarycpython import run_system

run_system(M_1=10, M_2=5, orbital_period=200, log_filename='log.txt')

where run_system handles the call to binary_c which evolves a system with the properties we passed along. More complex examples are available through our tutorial and example notebooks.

  1. Journal of Open Source Software ↩︎

David Hendriks
David Hendriks
PhD Student Astrophysics

My research is on stellar astrophysics and the formation of compact objects, but I’m interested in many science related topics!