Binary_C-python

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 https://gitlab.com/binary_c/binary_c-python/. 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!