---
title: "Compare white dwarf cooling models with original Gaia data"
description: "Fetch named DR3 fields locally, verify fixed MIST inputs and recompute conditional age comparisons, native holdouts and published cooling delays."
canonical_url: "https://sandboxphysics.com/stories/white-dwarf-cooling/mesa-gaia-cooling-model-comparison/"
language: "en"
page_type: "story"
alternate_languages:
  zh-CN: "https://sandboxphysics.com/zh/stories/white-dwarf-cooling/mesa-gaia-cooling-model-comparison/"
last_modified: "2026-11-03"
---

[The heat and clocks of white dwarfs](https://sandboxphysics.com/stories/white-dwarf-cooling/)

L3 · White dwarf cooling and crystallization

# Compare white dwarf cooling models with original Gaia data

Sandbox Physics · 2026-11-03

Start with three fixed native MIST white-dwarf tracks and the original Gaia DR3 photometric fields. You will calculate the colour–magnitude coordinates yourself, compare conditional cooling ages, retain poor fits, and reproduce a separate published-model delay. The data analysis runs locally; it does not turn a limited candidate sample into a Galactic age.

## Before you begin

Read Inferring a cooling age from brightness. The reference uses Python 3.12.12, NumPy 2.4.4, SciPy 1.17.1 and Matplotlib 3.10.8. It analyzes native outputs without installing or evolving MESA/STELUM.

## Open the fixed sources and verify what the bundle contains

The native cooling inputs are three complete surface tracks from MIST dataset Zenodo 15242047: Track035\_MWD\_0.571.data, Track072\_MWD\_0.693.data and Track095\_MWD\_1.010.data. Their actual final masses are given in the file headers. All three belong to the rotating-progenitor family at iron abundance minus 1.75 relative to the Sun on the logarithmic scale, with no alpha enhancement. They are not solar-metallicity substitutes.

The scientific download supplies those licensed models, the fixed pure-hydrogen bolometric-correction table, four original saved MESA structures and three native STELUM scalar sequences. Its Python and manifest are separate from the website Engine. It includes no precomputed Gaia source rows or per-object age results.

Gaia data are reader-acquired under the current Gaia licence and ESDC terms. The bundle contains seven exact named DR3 query recipes and an explicit local fetcher. The page does not fetch the observations. Read the terms for your intended use; the website illustrates the method with synthetic and native-model figures.

Compare the downloaded archive’s SHA256 with the full value in the download panel. After extraction, the member manifest gives every supplied file’s byte count and digest. The following model-only commands verify the supplied inputs, calculate new outputs and run the seventeen-check model suite. No Gaia cache is required.

```
python -W error scripts/astronomy/ac31/implementation/verify_reader_inputs.py --models-only
python -W error scripts/astronomy/ac31/run_thermal_reference.py
python -W error scripts/astronomy/ac31/run_native_comparison.py
python -W error scripts/astronomy/ac31/run_error_audit.py
python -W error scripts/astronomy/ac31/implementation/compute_textbook_examples.py
python -W error scripts/astronomy/ac31/implementation/plot_teaching_figures.py
python -W error scripts/astronomy/ac31/implementation/validate_model_reference.py
```

Sources: [MIST white dwarf models, arXiv2509.21717v1, cooling clocks, surface boundary and model comparisons](https://arxiv.org/abs/2509.21717v1) · [Bauer and Dotter, MIST white dwarf grid v1, Zenodo 15242047, CC BY 4.0](https://doi.org/10.5281/zenodo.15242047) · [Bauer 2023, fixed MESA inputs and starting models, Zenodo 7846751, CC BY 4.0](https://doi.org/10.5281/zenodo.7846751) · [Bédard, Blouin and Cheng 2024, fixed cooling sequences, Zenodo 10201676, CC BY 4.0](https://doi.org/10.5281/zenodo.10201676) · [ESA Gaia data licence and ESDC terms of use](https://www.cosmos.esa.int/web/gaia-users/license) · [ESA Science Data Centre terms and conditions, including commercial-use permission](https://www.cosmos.esa.int/web/esdc/terms-and-conditions) · [Sandbox Physics, standalone white-dwarf scientific reference, original model inputs and independent tests](https://sandboxphysics.com/stories/white-dwarf-cooling/materials/white-dwarf-cooling-science.zip)

## Read the clocks before plotting a track

Open a track’s header, then its columns. The cooling and total ages are base-ten logarithms of years. Total age includes the progenitor’s lifetime; cooling time starts at the MIST calculation’s stated white-dwarf radius criterion. The two columns must not be exchanged, and neither shares the controlled thermal model’s reset origin.

The surface fields are $\log_{10}(L/L_\odot)$, $\log_{10}T_{\rm eff}$, $\log_{10}(R/R_\odot)$ and $\log_{10}g$ in the documented units. Check the Stefan–Boltzmann and gravity identities before an age analysis. For these rounded fixed tables, their maximum relative residuals are about $7.65\times10^{-6}$ and $3.79\times10^{-6}$. These checks are sensitive to a wrong column or unit; they do not establish the complete cooling physics.

The bolometric-correction table maps native luminosity, effective temperature and gravity to synthetic Gaia magnitudes. First turn total luminosity into bolometric absolute magnitude, then subtract the tabulated correction for each band. The pure-hydrogen atmosphere describes the present surface; the progenitor’s iron abundance describes an earlier initial condition. They are separate assumptions. Interpolation is restricted to the supplied temperature/gravity grid; a request outside it fails.

The selected surface tracks have central temperature and density columns, but no radial temperature profile, crystallized mass fraction or latent power. A point on this diagram does not supply an internal front. The controlled radial calculation uses a separate model and a separate clock.

$$
L=4\pi R^2\sigma T_{\rm eff}^4,\qquad g=\frac{GM}{R^2}
$$

Use the fixed MESA solar constants recorded with the reference. Reconstruct the physical quantities before comparing the identities.

$$
M_{\rm bol}=4.74-2.5\log_{10}(L/L_\odot),\qquad M_G=M_{\rm bol}-BC_G(T_{\rm eff},\log_{10}g)
$$

The reference uses the supplied pure-H EDR3 correction table. Apply the corresponding BP and RP corrections in the same way before forming colour.

| Field | Read it as |
| --- | --- |
| log\_cool\_age | Base-ten logarithm of elapsed cooling years |
| log\_tot\_age | Base-ten logarithm of total stellar years |
| log\_L, log\_R | Logarithms in the declared solar units |
| log\_Teff, log\_g | Temperature in kelvin; gravity in cgs |
| Native mass header | One fixed source hypothesis; no mass interpolation |

Sources: [MIST white dwarf models, arXiv2509.21717v1, cooling clocks, surface boundary and model comparisons](https://arxiv.org/abs/2509.21717v1) · [Bauer and Dotter, MIST white dwarf grid v1, Zenodo 15242047, CC BY 4.0](https://doi.org/10.5281/zenodo.15242047) · [MESA 22.11.1 fixed const\_def.f90, matching original source units](https://github.com/MESAHub/mesa/blob/22.11.1/const/public/const_def.f90)

## Retrieve the named DR3 fields into your local directory

When the applicable terms permit your intended use, run the named fetcher. It requests only the saved query URLs, limits the total response body to one megabyte, checks expected bytes/SHA and stops if a response differs. An existing matching cache is reused; --reuse-cache-only verifies it without opening a connection.

Each query asks for source ID, parallax/error, mean G/BP/RP magnitudes, their flux-over-error values, RUWE and the duplicate flag, with two additional quality fields retained. Seven disjoint source-ID ranges avoid an expensive single request. Their row counts remain below the per-query cap; these are index ranges, not equal sky areas or randomly drawn subsamples.

The selection uses parallax above twenty milliarcseconds, parallax signal-to-noise above twenty, absoluteG above ten and colour between minus0.5 and1.5 magnitudes. The subsequent quality cut keeps RUWE below1.4, removes duplicates and requires G flux signal-to-noise above fifty and BP/RP above twenty. These rules define compact-star candidates, not a complete or spectroscopically pure DA sample.

Compute colour and absolute magnitude from the original fields. With independent reported errors, the formal variances below propagate mean-flux and high-significance parallax errors. The script saves those assumptions together with the selected counts and CMD. It makes no extinction, parallax-zero-point, binary or atmospheric-classification calibration.

$$
c=G_{\rm BP}-G_{\rm RP},\qquad M_G=G+5\log_{10}(\varpi_{\rm mas})-10
$$

These are calculated from original measured fields, not from a catalogue’s fitted white-dwarf mass or age.

$$
\begin{aligned}\sigma_c^2&=\left(\frac{2.5}{\ln10}\right)^2\left(S_{\rm BP}^{-2}+S_{\rm RP}^{-2}\right),\\\sigma_{M_G}^2&=\left(\frac{2.5}{(\ln10)S_G}\right)^2+\left(\frac5{\ln10}\frac{\sigma_\varpi}{\varpi}\right)^2.\end{aligned}
$$

The $S$ values are the reported flux-over-error ratios. Correlated calibration and systematic errors require additional covariance information beyond this formal approximation.

```
python -W error scripts/astronomy/ac31/implementation/acquire_gaia_for_reader.py
python -W error scripts/astronomy/ac31/verify_inputs.py
python -W error scripts/astronomy/ac31/run_observed_reference.py
```

Sources: [Gaia DR3 archive data model, gaia\_source fields](https://gea.esac.esa.int/archive/documentation/GDR3/Gaia_archive/chap_datamodel/sec_dm_main_source_catalogue/ssec_dm_gaia_source.html) · [ESA Gaia data licence and ESDC terms of use](https://www.cosmos.esa.int/web/gaia-users/license) · [ESA Science Data Centre terms and conditions, including commercial-use permission](https://www.cosmos.esa.int/web/esdc/terms-and-conditions) · [Sandbox Physics, standalone white-dwarf scientific reference, original model inputs and independent tests](https://sandboxphysics.com/stories/white-dwarf-cooling/materials/white-dwarf-cooling-science.zip)

## Compare conditional ages and keep the failures

The age producer uses one native mass/composition/DA-atmosphere hypothesis at a time. It restricts the calculation to effective temperatures from five to twenty thousand kelvin and the supported part of a requested ten-million-to-ten-billion-year cooling interval. The prior is proper and uniform in elapsed time, not equal per output row.

For each local candidate, inspect the minimum continuous formal residual before reading age quantiles. A poor fit remains a poor fit; its numerical conditional posterior does not become a stellar-age label. The separate histograms are conditional on different fixed hypotheses and a declared formal-fit cut. Their shape is not a completeness-corrected Galactic age distribution.

The public figure below uses only native MIST outputs. Every other native point is withheld from interpolation, and unchanged withheld model photometry is analyzed under its known native hypothesis with explicitly assigned formal errors. The resulting age errors test interpolation. The zero-noise intervals do not calibrate confidence coverage on real stars.

The same reference retains the sparse-node failure from the numerical chapter. If a likelihood is narrower than the integration resolves, a probability sum of one is not an accuracy check. Exact time-segment integration and independent adaptive-CDF tests address that numerical failure without inventing extra model scatter.

```
python -W error scripts/astronomy/ac31/run_conditional_age.py
python -W error scripts/astronomy/ac31/plot_reference.py
python -W error scripts/astronomy/ac31/validate_reference.py
```

![Three native metal-poor MIST colour-magnitude tracks and the age errors of withheld model states](https://sandboxphysics.com/stories/white-dwarf-cooling/materials/native-mist-holdouts.png)

All plotted points are native model photometry. Left: the three fixed mass tracks and withheld model states. Right: conditional median minus known native cooling time. Assigned formal errors and zero added noise define an interpolation test; these are not Gaia source points or independent stellar age measurements.

Sources: [Bauer and Dotter, MIST white dwarf grid v1, Zenodo 15242047, CC BY 4.0](https://doi.org/10.5281/zenodo.15242047) · [Sandbox Physics, standalone white-dwarf scientific reference, original model inputs and independent tests](https://sandboxphysics.com/stories/white-dwarf-cooling/materials/white-dwarf-cooling-science.zip)

## Recompute a same-mass published delay without joining clocks

Open the three STELUM files named 100\_30PR30\_STD, DSTL1 and DSTL2. Their headers specify one solar mass, a standard nonuniform oxygen profile, a relatively thick helium layer and three-percent initial neon by mass. They are the standard-composition sensitivity family, not the nominal thin-helium family in the paper’s Figure 4.

The native time begins at the first supplied state, whose effective temperature is about sixty thousand kelvin. Read each case’s surface fields and time together. The analysis returns every supported crossing of a luminosity level and integrates the time spent in each luminosity bin, including local reversals.

At $\log_{10}(L/L_\odot)=-3$, partial and full distillation in this selected family reach the level about $1.764\,\mathrm{Gyr}$ and $5.417\,\mathrm{Gyr}$ later than STD. These are differences of published smoothed scalar sequences. The authors’ approximately one-gigayear smoothing limits fine-time interpretation; no radial front or full internal-energy check is available in these files.

Native MIST, native STELUM and the controlled core remain three calculations with different assumptions. A surface-radiation integral is useful, but it is not total stellar energy conservation when the internal, gravitational, nuclear and neutrino terms are absent. Retain each source age with its own model family and stated origin.

Sources: [Bédard, Blouin and Cheng 2024, Buoyant crystals halt the cooling of white dwarf stars, arXiv2409.04419v1, author manuscript of the Nature study, main text and Methods](https://arxiv.org/abs/2409.04419v1) · [Bédard, Blouin and Cheng 2024, fixed cooling sequences, Zenodo 10201676, CC BY 4.0](https://doi.org/10.5281/zenodo.10201676) · [Bauer 2023, Carbon-Oxygen Phase Separation in MESA White Dwarf Models, arXiv2303.10110v2, Eq1–8 and §§2–5](https://arxiv.org/abs/2303.10110v2) · [Sandbox Physics, standalone white-dwarf scientific reference, original model inputs and independent tests](https://sandboxphysics.com/stories/white-dwarf-cooling/materials/white-dwarf-cooling-science.zip)

## Save enough for someone else to repeat the analysis

Keep the input manifest, actual acquisition receipt, source versions, units, selection rules and producer scripts next to your local outputs. The public ZIP’s include manifest checks every supplied member. Its cold-run evidence separately tests the model-only branch with no Gaia rows and the original-data branch after a private local cache is supplied; no new network request is claimed by that verification.

The Gaia plots and per-object results generated by your run remain local under the applicable terms. Public teaching materials use the synthetic example and licensed native-model figures. If an original response fails the fixed hash, retain the new receipt and investigate the changed version or serialization before claiming reproduction.

A useful report states the hypothesis for each age distribution, the fraction of poor fits, sensitivity to the stated prior and quality cuts, interpolation errors and which systematics are still uncalibrated. A Galactic chronology would need additional classification, completeness, population and binary modelling. The present calculation gives the original-input comparison on which that larger analysis can build.

Sources: [Sandbox Physics, standalone white-dwarf scientific reference, original model inputs and independent tests](https://sandboxphysics.com/stories/white-dwarf-cooling/materials/white-dwarf-cooling-science.zip) · [ESA Gaia data licence and ESDC terms of use](https://www.cosmos.esa.int/web/gaia-users/license) · [ESA Science Data Centre terms and conditions, including commercial-use permission](https://www.cosmos.esa.int/web/esdc/terms-and-conditions) · [MIST white dwarf models, arXiv2509.21717v1, cooling clocks, surface boundary and model comparisons](https://arxiv.org/abs/2509.21717v1)

## Calculate from the original model inputs

The small archive contains fixed licensed MESA structures, MIST and STELUM outputs, standalone Python, units and original-input hashes. Its README separates seven model-only commands from the reader-local Gaia branch. Neither the website Engine nor installed scientific tools are included.

- [white-dwarf-cooling-science.zip](https://sandboxphysics.com/stories/white-dwarf-cooling/materials/white-dwarf-cooling-science.zip) 0.908 MB
- [include-manifest.json](https://sandboxphysics.com/stories/white-dwarf-cooling/materials/include-manifest.json) 0.008 MB

white-dwarf-cooling-science.zip
907651 bytes
SHA-256: 80a79ecda6908ce228f04a0c65b06efc918b8f75e23f21cb0b2a479b71032a8a

include-manifest.json
8262 bytes
SHA-256: fb07cf905b8862cfa73eacf46ecff53a715f77658d993b7333fadb4ee489a3e5

Dependencies, observations and reuse

Reference environment: Python 3.12.12, NumPy 2.4.4, SciPy 1.17.1 and Matplotlib 3.10.8. Install these separately before following the offline commands; no MESA or STELUM installation is required. New standalone Python is MIT, and our figures and documentation are CC BY 4.0. Original model attribution and source licences accompany the files.

Gaia source rows, per-object results and Gaia point figures are excluded. The archive supplies seven named queries and an explicit reader-run fetcher. Obtain observations locally under the current Gaia licence and ESDC terms; the public lessons use synthetic or licensed native-model figures. The cold replay used an existing private cache and made no fresh Gaia request.

[Gaia licence](https://www.cosmos.esa.int/web/gaia-users/license) · [ESDC terms](https://www.cosmos.esa.int/web/esdc/terms-and-conditions)

## Work through the question

Why should the three conditional age histograms not be merged into one measured Galactic age histogram?

They impose different fixed masses and the same limited metal-poor/DA assumptions on candidates whose true classifications are not known here. Their formal-fit selection is also hypothesis dependent. Combining them needs population priors and selection/systematic modelling.

The luminosity/radius/temperature identity passes. Has the native model’s entire cooling energy budget been independently verified?

No. The identity checks surface fields and units. A cooling-energy audit also needs internal/gravitational changes and all heating/loss terms along the native evolution.

What should happen if the named Gaia request returns bytes different from the fixed input hash?

The recipe stops and records what it actually received. A changed release, query result or serialization needs investigation; a new response must not be silently labelled as the frozen input.

### [Export a state with its source and clock](https://sandboxphysics.com/labs/white-dwarf-crystallization/)

1. Save a controlled state while a cell is freezing and identify its source SHA, independent clock and current heat terms.
2. Save a native surface state and check that it contains no inferred internal solid front.
3. Use the standalone Python bundle to recompute a native-model holdout before attempting the reader-local Gaia branch.

## Primary sources

1. [Sandbox Physics, standalone white-dwarf scientific reference, original model inputs and independent tests](https://sandboxphysics.com/stories/white-dwarf-cooling/materials/white-dwarf-cooling-science.zip)
2. [Bauer 2023, Carbon-Oxygen Phase Separation in MESA White Dwarf Models, arXiv2303.10110v2, Eq1–8 and §§2–5](https://arxiv.org/abs/2303.10110v2)
3. [Bauer 2023, fixed MESA inputs and starting models, Zenodo 7846751, CC BY 4.0](https://doi.org/10.5281/zenodo.7846751)
4. [MIST white dwarf models, arXiv2509.21717v1, cooling clocks, surface boundary and model comparisons](https://arxiv.org/abs/2509.21717v1)
5. [Bauer and Dotter, MIST white dwarf grid v1, Zenodo 15242047, CC BY 4.0](https://doi.org/10.5281/zenodo.15242047)
6. [Bédard, Blouin and Cheng 2024, Buoyant crystals halt the cooling of white dwarf stars, arXiv2409.04419v1, author manuscript of the Nature study, main text and Methods](https://arxiv.org/abs/2409.04419v1)
7. [Bédard, Blouin and Cheng 2024, fixed cooling sequences, Zenodo 10201676, CC BY 4.0](https://doi.org/10.5281/zenodo.10201676)
8. [MESA 22.11.1 fixed const\_def.f90, matching original source units](https://github.com/MESAHub/mesa/blob/22.11.1/const/public/const_def.f90)
9. [Gaia DR3 archive data model, gaia\_source fields](https://gea.esac.esa.int/archive/documentation/GDR3/Gaia_archive/chap_datamodel/sec_dm_main_source_catalogue/ssec_dm_gaia_source.html)
10. [ESA Gaia data licence and ESDC terms of use](https://www.cosmos.esa.int/web/gaia-users/license)
11. [ESA Science Data Centre terms and conditions, including commercial-use permission](https://www.cosmos.esa.int/web/esdc/terms-and-conditions)

[Previous: Inferring a cooling age from brightness](https://sandboxphysics.com/stories/white-dwarf-cooling/cooling-clocks-and-age-likelihoods/) [Next: Why crystals can float inside a white dwarf](https://sandboxphysics.com/stories/white-dwarf-cooling/white-dwarf-phase-separation-distillation/)
