KAKaran Akbari

Play X-ray binaries

Inside an X-ray binary

This is a black hole eating a star, in 3D, and you can zoom from the whole binary down to a few tens of kilometres from the hole. The star gets pulled into a teardrop, its gas spills over the tip and piles up into a disc, and the disc gets hotter the closer it is to the hole. The last few hundred kilometres shine in X-rays. Down there I've put the flickering I work on, using the same models as a ray tracer I wrote in Python (not public yet), so you can watch a power spectrum find it.

Whole binary
Real time
84°
1×

Light curve seen from Earth

Where the optical light comes from

What you're seeing

The binary is made up but built from textbook pieces: a 10 M☉ black hole and a 1 M☉, 1 R☉ star that just fills its Roche lobe. Eggleton's (1983) formula for the lobe and Kepler's third law then set the separation at 4.8 R☉ and the orbit at 8.9 hours. The star's surface is the Roche equipotential through L1, ray traced on the GPU, with gravity darkening, limb darkening and heating from the X-rays on the side facing the hole. The stream is a ballistic orbit from L1 in the rotating frame, so it lands on the disc edge where the maths puts it. The disc's outer edge is at 70% of the black hole's own Roche lobe, outside the circularisation radius at 0.31 of the separation (the faint ring on the disc).

Temperature shows as colour and, more weakly, as brightness. The disc goes roughly as r−3/4 (Shakura & Sunyaev 1973), from about 6,300 K at the rim to 5 million K next to the hole, far too much range to show directly, so both colour and brightness are squashed and re-scaled for each zoom level. Cool is deep orange, hotter is yellow and white, hottest is blue-white.

The light curves come from the same geometry, seen from Earth's inclination only (the camera can go anywhere, Earth can't). For every orbital phase I add up the star, the disc and the bright spot at 550 nm, hiding whatever the star or the disc rim covers. From about 80° up, the star covers the hole once per orbit and the X-rays go out in a sharp eclipse. The thick part of the rim where the stream lands dims them just before, and above 88° the rim hides the centre all the time and only a faint corona gets through.

Zoom in far enough and the rays stop going straight. Inside 360 GM/c² of the hole every pixel's ray is bent along a photon orbit around a non-spinning black hole, so the lensed far side of the disc, the shadow and the thin ring around it are real 3D effects you can look at from any side, and the companion star gets bent into a ring when it sits behind the hole. From far away none of this shows: the hole is smaller than a pixel, and its Einstein radius out at the star is about 50 times smaller than the star.

The three inner modes run the models from my own QPO code with its default numbers. Type-C: a tilted hot flow precessing at the Ingram, Done & Fragile (2009) rate, 0.28 Hz. High-frequency QPO: a blob on the relativistic precession model orbit (Stella & Vietri 1998), at 440, 296 and 17.5 Hz. Heartbeat: a one-zone version of the radiation-pressure instability (Lightman & Eardley 1974) as a limit cycle. Each one feeds a simulated X-ray light curve with band-limited noise on top (flat at low frequency, falling as 1/f² above a break). The QPO phases drift at random, so the peaks have widths like real ones, quality factors of 6 to 10 instead of spikes. The power spectrum averages the light curve segment by segment, which is how you'd find these in real data too.

What this toy leaves out

The light bending is for a non-spinning black hole. Spin only moves the disc's inner edge (Bardeen, Press & Teukolsky 1972) and changes how fast the gas goes, so for the heartbeat's spin of 0.98 the shadow has the wrong shape and size. That spin puts the inner edge at 1.6 GM/c², inside the non-spinning photon sphere, so in the heartbeat mode the disc is drawn from 3 GM/c² out. My Python ray tracer follows real Kerr photon orbits. This doesn't. The photon ring is drawn about a pixel wide, and the real one is much thinner.

There's no radiative transfer. Colour and brightness are squashed temperature scales picked by eye (the Doppler boost is the one thing drawn at full strength, the fourth power of the Doppler factor, before the display's tone curve), and the hot flow and blob are glowing fog, not Comptonisation. The star has its own colour scale, stretched so the heated face and the darker nose show, and close to the hole it's dimmed by a fixed amount, because at its real brightness it would be invisible there.

Time is bent too. The orbit is sped up about 1,300 times, the disc spins on its own slowed-down clock that isn't the QPO clock, and the power spectrum isn't on the picture's clock either. For the plain disc and the Type-C mode it takes in the simulated light curve 16 times faster than the picture plays, for the heartbeat 10 times faster, and in the high-frequency mode the picture is slowed 500 times while the spectrum runs in real time. There's no counting noise from a detector, which in real data buries the high-frequency peaks unless you have hours of it.

The QPO modes borrow their black holes from three real sources (H 1743-322, GRO J1655-40 and GRS 1915+105), so the inner disc isn't quite the same black hole as the 10 M☉ one in the binary, and the km on the scale bar assume 10 M☉. The Type-C tilt is exaggerated to 20°. The spin the relativistic precession model gives for GRO J1655-40, 0.29, doesn't agree with other ways of measuring it. And the heartbeat is one zone with random cycle-to-cycle jitter, not a full disc simulation, so it says nothing about whether this is what really drives GRS 1915+105.