---
title: "Replay a Perseus cavity pair against cooling losses"
description: "Use a fixed Rafferty table slice to calculate inner-cavity enthalpy, age sensitivity and required heating in a truncated aperture."
canonical_url: "https://sandboxphysics.com/stories/agn-feedback/perseus-cavity-replay/"
language: "en"
page_type: "story"
alternate_languages:
  zh-CN: "https://sandboxphysics.com/zh/stories/agn-feedback/perseus-cavity-replay/"
last_modified: "2026-11-12"
---

[How black holes move energy through cluster gas](https://sandboxphysics.com/stories/agn-feedback/)

L3 · Bubbles, waves and cluster heating

# Replay a Perseus cavity pair against cooling losses

Sandbox Physics · 2026-11-12

Open Rafferty et al., arXiv:astro-ph/0605323v2, at Table A1 on printed page fourteen and Table 2 on printed page four. This replay uses the two inner cavities to calculate enthalpy and compare it with radiation losses in the same paper’s aperture. The download needs only Python’s standard library.

## Before you begin

Read the enthalpy and radial-cooling chapters first. This is a replay of derived catalogue values, not a new reduction of Chandra photons or a fit of the idealized gentle-pulse model to Perseus. The input records both its catalogue provenance and the estimator used here.

## Identify the four rows before selecting a pair

Perseus occupies four rows in Table A1. The first two have projected centre distances of about 9.4 and 6.5 kiloparsecs; these are the inner pair selected here. Two farther cavities lie near 28 and 39 kiloparsecs. Cavities are identified by their original table rows. All four rows remain in the input, with only the first two selected.

The pressure-times-volume column already incorporates the paper’s geometry and surrounding-pressure estimates. Its errors include projection effects. We read that column directly and retain the original cosmology, without reconstructing an unreported line-of-sight axis from the printed ellipse.

| Inner cavity | Projected radius / kiloparsecs | Pressure times volume / ten-to-the-58 ergs | Buoyancy age / million years |
| --- | --- | --- | --- |
| First row | 9.4 | $3.7^{+4.7}_{-1.7}$ | 16 |
| Second row | 6.5 | $1.6^{+1.0}_{-0.1}$ | 11 |

Reading: Rafferty et al. (2006)

## Convert energy units first

One erg is one ten-millionth of a joule. One table energy unit is therefore ten to the fifty-first joules. With the relativistic-cavity factor of four, the inner-pair enthalpy is:

$$
H_{\rm inner}=4(3.7+1.6)\times10^{58}\,\mathrm{erg}=2.12\times10^{52}\,\mathrm J
$$

This is the current enthalpy estimate for two inner cavities. Outer cavities, shocks, jet radiation and energy already transferred in the past are additional quantities.

Reading: Rafferty et al. (2006) · Bîrzan et al. (2004)

## Read the cooling columns in the right order

Table 2 lists cavity energy, cavity power, X-ray luminosity, mass cooling rate, low-temperature cooling luminosity and aperture. The Perseus value twenty is a mass rate in solar masses per year. Twenty-one in the next column is the luminosity in units of ten to the forty-second ergs per second.

Section 3.1.3 defines the required heating as total X-ray luminosity minus the luminosity associated with gas cooling to low temperatures. Both luminosities use the same aperture and bolometric convention.

$$
L_{\rm req}=L_X-L_{\rm cool}=(554-21)\times10^{42}\,\mathrm{erg\,s^{-1}}=5.33\times10^{37}\,\mathrm W
$$

The table uses bolometric luminosities from 0.001 to 100 keV. The cooling-flow spectral component has an adopted low-temperature bound of 0.1 keV.

Reading: Rafferty et al. (2006)

## Keep the asterisk on ninety kiloparsecs

The paper normally defines a cooling region using a cooling time below 7.7 billion years. Perseus has an asterisk on its ninety-kiloparsec value: the cooling region extends beyond the detector chip, so the chip edge sets the quoted aperture.

This comparison therefore concerns luminosity inside that truncated aperture. It neither integrates unseen outer gas nor identifies ninety kiloparsecs as the full physical cooling radius. Removing this distinction from the input makes the script stop.

Reading: Rafferty et al. (2006)

## State the age estimator before calculating power

Our conditional estimator divides each inner-cavity enthalpy by its own tabulated age and adds the two quotients. Using buoyancy ages gives about 4.77 times ten to the thirty-seventh watts, or 0.896 of the required heating. The inner-pair enthalpy could replace about 12.6 million years of the quoted radiation loss if fully delivered to it.

Sound-crossing and refill ages remain in the input. The former uses travel at the local sound speed; the latter estimates the time for surrounding material to refill the displaced volume. Choosing them changes the inferred power substantially.

$$
P_{\rm pair,proxy}=\sum_{i=1}^{2}\frac{4p_iV_i}{t_i}
$$

For a long-term mean power, also determine the corresponding recurrence interval.

| Age column | Conditional inner-pair power / watts | Relative to required heating |
| --- | --- | --- |
| Buoyancy | $4.77\times10^{37}$ | 0.896 |
| Sound crossing | $7.59\times10^{37}$ | 1.42 |
| Refill | $1.52\times10^{37}$ | 0.285 |

Reading: Rafferty et al. (2006)

## Retain the sensitivity range and aggregate mismatch

Hold ages fixed and use opposite endpoints of the asymmetric pressure-volume and luminosity intervals. The resulting buoyancy-power ratio spans about 0.611 to 1.845. It crosses unity, but is an endpoint sensitivity envelope, not a joint confidence interval. Age uncertainty is not included and the table supplies no full covariance.

Table 2 also reports a published aggregate cavity power of 1.50 times ten to the thirty-seventh watts under its overall cavity selection and time convention. That differs from this inner-pair proxy. The script saves both and marks the aggregate as not reproduced. Reproducing it requires tracing the selected generations and outburst-time convention.

The inner cavities carry an energy worth comparing with losses in the aperture. Long-term local balance also depends on repetition, release location and dissipation.

Reading: Rafferty et al. (2006)

## Run the calculation and test a bad input

Place the input, script, expected output and notes in one folder. The script uses fifty-digit decimal arithmetic and records input and source hashes. A different Python-version string is acceptable; the physical outputs should agree.

Fourteen independent rational-arithmetic and bad-input checks actually passed. Copy the input and set one age to zero: the replay must stop. Wrong luminosity units, mixed cavity generations, a missing chip-edge flag or a changed enthalpy coefficient must also be rejected.

```
            python3 reproduce-perseus.py --input perseus-input.json --output local-results.json
python3 test-perseus-inputs.py
          
```

Reading: Rafferty et al. (2006)

## Download the independent scientific materials

The table slice, standard-library script, expected result and bad-input checks run in one folder. Paper and Chandra pixels stay with their original sources.

[Exact byte, SHA256 and license manifest](https://sandboxphysics.com/stories/agn-feedback/public-reproduction.json)

- [LICENSE-code.txt](https://sandboxphysics.com/stories/agn-feedback/materials/LICENSE-code.txt)

  1,362 bytes · Original calculation/documentation with attribution; see license notices

  `96630e05864696f836e37b8b3c5abf777a90485dbd8737d21eadd44ce0235613`

- [LICENSE-data.txt](https://sandboxphysics.com/stories/agn-feedback/materials/LICENSE-data.txt)

  1,054 bytes · Original calculation/documentation with attribution; see license notices

  `67ae54be72c18d72a70cb63400f912e5e31d43c36938aef6504bd89543e20223`

- [README.txt](https://sandboxphysics.com/stories/agn-feedback/materials/README.txt)

  3,682 bytes · Original calculation/documentation with attribution; see license notices

  `6a95562848a3ea45999f208d6050fce67cdc2cd84b6bd7b1423d235284ea5746`

- [perseus-expected.json](https://sandboxphysics.com/stories/agn-feedback/materials/perseus-expected.json)

  3,539 bytes · Original calculation/documentation with attribution; see license notices

  `c28dcc148a8cff521e1a17c3db6f0739834de1f70ff3a9dda654605c9bad9bc5`

- [perseus-input.json](https://sandboxphysics.com/stories/agn-feedback/materials/perseus-input.json)

  2,981 bytes · Factual table slice with Rafferty2006v2 attribution; original publication not relicensed

  `3cfbc4735afbd1c88f7f0d8aed9ce4aeaa842edf1831e936c17942b148435d0e`

- [reproduce-perseus.py](https://sandboxphysics.com/stories/agn-feedback/materials/reproduce-perseus.py)

  5,253 bytes · MIT; LICENSE-code.txt

  `335b823caae3e7625855f6ab3ed689a8ebebd2c65b65dc193d71126a448f1dac`

- [test-perseus-inputs.py](https://sandboxphysics.com/stories/agn-feedback/materials/test-perseus-inputs.py)

  3,465 bytes · MIT; LICENSE-code.txt

  `4e1da16a2b0ff03ad1d3cc4d4175d094b08749d8708ba85606b3dcdcc1a08f9d`

## Try the observation

### [Compare a catalogue estimate with a controlled model](https://sandboxphysics.com/labs/agn-cavity-transport/)

1. Change bubble power and observe size and delayed heating.
2. Distinguish a catalogue age proxy from a known physical time in the model.
3. Use the projection view to explain how geometry uncertainty enters an enthalpy estimate.

## Exercises and explained answers

What happens if the low-temperature cooling luminosity is mistaken for the entire heating requirement?

The buoyancy proxy divided by that small luminosity is about 22.7. Using the paper’s total X-ray luminosity minus the low-temperature component gives about 0.896. They answer different physical questions.

Does an endpoint range crossing unity establish statistically significant thermal balance?

No. It has no joint confidence level and holds ages fixed. Geometry, recurrence, release location and gas beyond the aperture also affect interpretation.

[Previous: Compare radial transport with radiative cooling](https://sandboxphysics.com/stories/agn-feedback/cooling-and-transport/) [Next: How to check whether a numerical wave is a shock](https://sandboxphysics.com/stories/agn-feedback/reading-wave-and-shock-evidence/)

## Primary sources and calculation notes

1. [Bîrzan et al. (2004), A systematic study of radio-induced X-ray cavities in clusters, groups, and galaxies](https://arxiv.org/pdf/astro-ph/0402348v2)

   Frozen 30 April 2004 version: Section 4.1 on three cavity ages; Section 5.2, equations 7–9 on buoyancy and enthalpy transfer; Section 5.3 compares mechanical power with radiative losses. The Perseus input values come from the separate Rafferty 2006 tables.

2. [Rafferty et al. (2006), The feedback-regulated growth of black holes and bulges](https://arxiv.org/pdf/astro-ph/0605323v2)

   Frozen 20 July 2006 version: Table A1 Perseus rows, Table 2 Perseus row/footnotes, Sections 3.1.2–3.1.3. The tutorial replays the inner pair with a separately stated age estimator.
