IMPRS Heidelberg School 2021 - Binary Populations

Lecture 1 : video - on YouTube - slides
Lecture 2 : video - on YouTube - slides

Binary star populations

This tutorial is a short introduction to running single and binary star populations using the binary_c code. We start with single stars to keep things fast and simple, then move on to binary stars. Full documentation for binary_c can be found at this link. You can run binary_c online at this link (although it's limited compared to what you can do yourself). You can find the lecture videos, and previous workshop tutorials, at binary_c's YouTube channel.

During the school I will be on the school's Slack, and you can email me at

Installing binary_c

You have a choice here. You can either use the provided Virtualbox virtual machine (VM), or build binary_c yourself. Building binary_c is not difficult, but of course requries a bit of knowledge. I recommend you have a go, because you're here to learn.

Using the virtual machine

This is the simplest option: just install Virtualbox, download the VM (link below) and just run it.

Building binary_c from source

If you have never built software from source before, then now is the time to learn! I highly recommend learning these skills as they will be very useful to you in the future. Binary_c uses meson, which is a modern and efficient build system. Note that binary_c is highly modular, so it uses support libraries wherever possible rather than support a huge code base itself. This is different to (say) MESA which requires the enormous MESA SDK, but does mean you may have to install these libraries. You only have to do this once! Please make sure you understand how environment variables work. On Linux, you need to set, Note: on MacOSX, LD_LIBRARY_PATH is DYLD_LIBRARY_PATH. They really do like to be annoyingly different... Once everything is working, run
$BINARY_C/binary_c-config version
and you should see something like
Note: The $BINARY_C/ prefix is not required if $BINARY_C is in your PATH.

Population examples and exercises

The binary_c-python module allows us to run binary_c in a Jupyter notebook. Example scripts are provided and I recommend the following for the course.

Reading material

This list of papers is certainly not complete, but they have been chosen for their pedagogical content rather than raw science.

Links and social media