"This is, of course, a very simple introduction to what happens in binaries. We haven't talked about the remnants that are produced by interactions. When the stars do evolve on the giant branch, white dwarfs are made which can go on to suffer novae and (perhaps) thermonuclear explosions. The merging process itself leads to luminosus red novae and, in the case of neutron stars and black holes, kilonovae and gravitational wave events. "
"This is, of course, a very simple introduction to what happens in binaries. We haven't talked about the remnants that are produced by interactions. When the stars do evolve on the giant branch, white dwarfs are made which can go on to suffer novae and (perhaps) thermonuclear explosions. The merging process itself leads to luminous red novae and, in the case of neutron stars and black holes, kilonovae and gravitational wave events. "
First we set up a new population object. Our stars evolve to $13.7\mathrm{Gyr}$, the age of the Universe, and we assume the metallicity $Z=0.02$. These are rough approximations: a real population was born some finite time ago, so cannot possibly evolve to $13.7\mathrm{Gyr}$, and stars are not really born with a metallicity of $0.02$. These approximations only affect very low mass stars, so we assume all our stars have mass $M\geq 1 \mathrm{M}_\odot$, and metallicity does not change evolution too much except in massive stars through the dependence of their winds on metallicity, so we limit our study to $M\leq 10 \mathrm{M}_\odot$.
We choose stars prior to and including the thermally-pulsing asymptotic giant branch (TPAGB) phase that have $>0.1\mathrm{M}_\odot$ of material in their outer hydrogen envelope (remember the core of an evolved star is made of helium or carbon/oxygen/neon). This prevents us showing the post-AGB phase which is a bit messy and we avoid the white-dwarf cooling track.
The parse function must now catch lines that start with "HRD*n*", where *n* is 0 (primary star) or 1 (secondary star, which doesn't exist in single-star systems), and process the associated data.
Now that we configured all the main parts of the population object, we can actually run the population! Doing this is straightforward: `population.evolve()`
This will start up the processing of all the systems. We can control how many cores are used by settings `num_cores`. By setting the `verbosity` of the population object to a higher value we can get a lot of verbose information about the run.
There are many grid_options that can lead to different behaviour of the evolution of the grid. Please do have a look at the [grid options docs] (https://ri0005.pages.surrey.ac.uk/binary_c-python/grid_options_descriptions.html) for more details.
After the run is complete, some technical report on the run is returned. I stored that in `analytics`. As we can see below, this dictionary is like a status report of the evolution. Useful for e.g. debugging.
Now we put a secondary star of mass $0.5\mathrm{M}_\odot$ at a distance of $10\mathrm{R}_\odot$ to see how this changes things. Then we rerun the population. At such short separations, we expect mass transfer to begin on or shortly after the main sequence.
We plot here the track for the primary star only. You can see immediately where stars merge on the main sequence: the tracks move very suddenly where usually evolution on the main sequence is smooth.
If we now set the separation to be longer, say $100\mathrm{R}_\odot$, mass transfer should happen on the giant branch. We also set the secondary mass to be larger, $1\mathrm{M}_\odot$, so that the interaction is stronger.
You now see the interaction in the jerky red-giant tracks where the stars interact. These probably, depending on the mass ratio at the moment of interaction, go through a common-envelope phase. The system can merge (most of the above do) but not all. The interaction is so strong on the RGB of the $1\mathrm{M}_\odot$ star that the stellar evolution is terminated before it reaches the RGB tip, so it never ignites helium. This is how helium white dwarfs are probably made.
We can also plot the secondary stars' HRD. Remember, the primary is star 0 in binary_c, while the secondary is star 1. That's because all proper programming languages start counting at 0. We change the parsing function a little so we can separate the plots of the secondaries according to their primary mass.
Remember, all these stars start with a $1\mathrm{M}_\odot$ binary, which begins at $\log_{10}(T_\mathrm{eff}/\mathrm{K})\sim 3.750$, $\log_{10}L/\mathrm{L}_\odot \sim 0$. The $1\mathrm{M}_\odot$-$1\mathrm{M}_\odot$ binary evolves like two single stars until they interact up the giant branch at about $\log_{10} (L/\mathrm{L}_\odot) \sim 2.5$, the others interact long before they evolve very far on the main sequence: you can just about see their tracks at the very start.
This is, of course, a very simple introduction to what happens in binaries. We haven't talked about the remnants that are produced by interactions. When the stars do evolve on the giant branch, white dwarfs are made which can go on to suffer novae and (perhaps) thermonuclear explosions. The merging process itself leads to luminosus red novae and, in the case of neutron stars and black holes, kilonovae and gravitational wave events.
This is, of course, a very simple introduction to what happens in binaries. We haven't talked about the remnants that are produced by interactions. When the stars do evolve on the giant branch, white dwarfs are made which can go on to suffer novae and (perhaps) thermonuclear explosions. The merging process itself leads to luminous red novae and, in the case of neutron stars and black holes, kilonovae and gravitational wave events.