MIST v2.5

Here we describe the interface we provide to the MIST v2.5 library of stellar evolutionary tracks. See the MIST overview page for a comparison with MIST v1.2.

The MIST v2.5 tracks are described in Dotter et al. [13] (α-enhanced models) and Bauer et al. [14] (white dwarf cooling sequences). The key advances relative to MIST v1.2 are:

  • [α/Fe] as a free parameter: five [α/Fe] values spanning −0.2 to +0.6 are provided, making MIST v2.5 particularly well-suited for studying metal-poor stellar populations where α-enhancement is common.
  • Revised solar abundances: the v2.5 models adopt solar abundances from Grevesse and Sauval [16] rather than Asplund et al. [15] used in v1.2. The MISTv2Chemistry type (provided by BolometricCorrections.jl) encodes this mixture.
  • Denser metallicity grid: 17 [Fe/H] values (vs. 15 in v1.2), adding −2.75 and −2.25 dex.
  • Altered initial mass grid: 156 mass points (vs. 196 in v1.2) but with denser sampling in the range 0.7–1.2 M☉.

Data Acquisition

The MIST v2.5 tracks are organized by rotation parameter (vvcrit) and α-element enhancement (afe). Each (vvcrit, afe) combination is a separate DataDep. The main access point is MISTv2Library, which takes both parameters as arguments:

lib = MISTv2Library(0.0, 0.0)   # non-rotating, solar-scaled [α/Fe]=0
lib = MISTv2Library(0.4, 0.4)   # rotating, α-enhanced [α/Fe]=+0.4

The available values are:

  • vvcrit: StellarTracks.MIST.vvcrit_grid_v2 = {0.0, 0.4}
  • afe: StellarTracks.MIST.afe_grid_v2 = {−0.2, 0.0, 0.2, 0.4, 0.6}

The first time you call MISTv2Library for a given (vvcrit, afe) combination, you will be prompted to download the required data files. Each combination requires downloading 16–17 .txz archives (one per [Fe/H] value; the [α/Fe] = +0.6 grid has 16 values because [Fe/H] = +0.5 is not available). The total data volume per combination is approximately 1.3–1.5 GB before processing and ~160 MB after. Information on customizing the install location is available here.

Data layout

Each downloaded DataDep is named MISTv2.5_vvcrit<V>_afe_<A>, e.g. MISTv2.5_vvcrit0.0_afe_p0 for vvcrit=0.0, afe=0.0. To remove a specific combination, run e.g. using DataDeps; rm(datadep"MISTv2.5_vvcrit0.0_afe_p0"; recursive=true).

Table Details

As with v1.2, only the subset of columns given by StellarTracks.MIST.select_columns is saved after processing. The MIST v2.5 tracks use the same column format as v1.2.

using StellarTracks.MIST
MIST.select_columns
(:star_age, :log_L, :log_Teff, :log_g, :log_surf_cell_z)

Note that the MIST v2.5 grid has some individual mass tracks missing for certain (feh, vvcrit, afe) combinations. MISTv2TrackSet silently skips missing files rather than erroring, so the set of available masses may differ across the parameter grid.

Examples

Load the MIST v2.5 library of non-rotating, solar-scaled models. The vvcrit and afe parameters must be exact values from the grid.

using StellarTracks.MIST
lib = MISTv2Library(0.0, 0.0)
MISTv2Library with vvcrit=0.0, afe=0.0. Valid [M/H] range: (-4.0, 0.5).

Interpolate an isochrone at log10(age [yr]) = 10.05 and $[\text{M}/\text{H}] = -1.234$. The isochrone is returned as a NamedTuple.

iso = isochrone(lib, 10.05, -1.234)
(eep = [244, 245, 246, 247, 248, 249, 250, 251, 252, 253  …  1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705], m_ini = [0.1002292935413561, 0.10058856708968392, 0.1013223992965421, 0.10242048480717406, 0.10387247135756134, 0.10566795109272412, 0.10779645024829558, 0.11024741738419522, 0.11301021053101462, 0.11607444309267027  …  4.707476434811085, 4.736688954723211, 4.787806202121945, 4.9843534064026445, 5.070162203520624, 5.111486504448091, 5.14191802469514, 5.179055554241181, 5.235928339264879, 5.313929353028611], logTe = [3.5014181348211455, 3.5021579562739134, 3.5036274477243166, 3.505799090843737, 3.5086405454837064, 3.5121132773433197, 3.5161707643310423, 3.52075638970236, 3.5258011441444177, 3.531221871705987  …  3.65567920884187, 3.6516126418020876, 3.648022059571033, 3.6459362238087105, 3.6426941959356967, 3.638638085294163, 3.6341426153466445, 3.629852806125219, 3.6258028157042355, 3.6217394547874995], Mbol = [12.076450970121098, 12.062423085377086, 12.034435454691652, 11.993047951084739, 11.93891247514432, 11.872778450519858, 11.795501556026188, 11.708054672834733, 11.611539981084453, 11.507189122914625  …  16.267757000634756, 16.318650055412927, 16.370698647935843, 16.42604631667067, 16.480518819386614, 16.534952158461074, 16.590601430428546, 16.645920983401346, 16.701660777337967, 16.760988613683907], logg = [5.332533875252552, 5.331309416299944, 5.328907930235329, 5.325377218232284, 5.320770889690092, 5.315147885798554, 5.308572072092438, 5.301111854867413, 5.29283981378112, 5.283831274890101  …  8.612390148277917, 8.617912994050451, 8.626820251472177, 8.645958333424257, 8.658020359381487, 8.6656317897035, 8.671389553139683, 8.677999672981759, 8.686200930849866, 8.695911573819721], logL = [-2.9345803880484387, -2.928969234150834, -2.917774181876661, -2.901219180433896, -2.8795649900577285, -2.8531113802079426, -2.8222006224104756, -2.787221869133893, -2.748615992433781, -2.706875649165849  …  -4.611102800253903, -4.631460022165172, -4.652279459174338, -4.674418526668268, -4.696207527754646, -4.717980863384429, -4.740240572171418, -4.762368393360538, -4.784664310935188, -4.808395445473564], log_surf_cell_z = [-2.999308089904139, -2.999308089894867, -2.999308089876962, -2.9993080898419753, -2.9993080897763393, -2.9993080896589075, -2.999308089462856, -2.999308089157074, -2.99930808869894, -2.9993080880401606  …  -14.264776235982586, -14.50633677087571, -14.44812953844897, -14.390125117287747, -14.42656339204474, -14.4018216194667, -14.382894206795108, -14.475672066012041, -14.467088094394475, -14.432920037739787])

The result can be converted to a table:

using TypedTables: Table
Table(iso)
Table with 7 columns and 1462 rows:
      eep  m_ini     logTe    Mbol     logg     logL      log_surf_cell_z
    ┌────────────────────────────────────────────────────────────────────
 1  │ 244  0.100229  3.50142  12.0765  5.33253  -2.93458  -2.99931
 2  │ 245  0.100589  3.50216  12.0624  5.33131  -2.92897  -2.99931
 3  │ 246  0.101322  3.50363  12.0344  5.32891  -2.91777  -2.99931
 4  │ 247  0.10242   3.5058   11.993   5.32538  -2.90122  -2.99931
 5  │ 248  0.103872  3.50864  11.9389  5.32077  -2.87956  -2.99931
 6  │ 249  0.105668  3.51211  11.8728  5.31515  -2.85311  -2.99931
 7  │ 250  0.107796  3.51617  11.7955  5.30857  -2.8222   -2.99931
 8  │ 251  0.110247  3.52076  11.7081  5.30111  -2.78722  -2.99931
 9  │ 252  0.11301   3.5258   11.6115  5.29284  -2.74862  -2.99931
 10 │ 253  0.116074  3.53122  11.5072  5.28383  -2.70688  -2.99931
 11 │ 254  0.11943   3.53692  11.3964  5.27416  -2.66254  -2.99931
 12 │ 255  0.123066  3.54277  11.2807  5.26392  -2.61626  -2.99931
 13 │ 256  0.126965  3.54863  11.162   5.25321  -2.56879  -2.99931
 14 │ 257  0.131128  3.55434  11.0419  5.24208  -2.52076  -2.99931
 15 │ 258  0.13554   3.55972  10.9226  5.23063  -2.47305  -2.99931
 16 │ 259  0.140214  3.56459  10.8058  5.21892  -2.4263   -2.99931
 17 │ 260  0.145144  3.56874  10.6937  5.20703  -2.38148  -2.99931
 ⋮  │  ⋮      ⋮         ⋮        ⋮        ⋮        ⋮             ⋮

Plot the HR diagram:

Example block output

Load a bolometric correction grid from BolometricCorrections.jl to place the isochrone into an observational photometric system. Because the MIST v2.5 stellar track and BC grids share the same MISTv2Chemistry chemical mixture, metallicities are handled consistently without the need for any conversion.

using BolometricCorrections.MIST: MISTv2BCGrid
bc = MISTv2BCGrid("JWST")
iso_phot = isochrone(lib, bc, 10.05, -1.234, 0.02)  # logAge, [M/H], Av
Table with 36 columns and 1462 rows:
      eep  m_ini     logTe    Mbol     logg     logL      log_surf_cell_z  ⋯
    ┌───────────────────────────────────────────────────────────────────────
 1  │ 244  0.100229  3.50142  12.0765  5.33253  -2.93458  -2.99931         ⋯
 2  │ 245  0.100589  3.50216  12.0624  5.33131  -2.92897  -2.99931         ⋯
 3  │ 246  0.101322  3.50363  12.0344  5.32891  -2.91777  -2.99931         ⋯
 4  │ 247  0.10242   3.5058   11.993   5.32538  -2.90122  -2.99931         ⋯
 5  │ 248  0.103872  3.50864  11.9389  5.32077  -2.87956  -2.99931         ⋯
 6  │ 249  0.105668  3.51211  11.8728  5.31515  -2.85311  -2.99931         ⋯
 7  │ 250  0.107796  3.51617  11.7955  5.30857  -2.8222   -2.99931         ⋯
 8  │ 251  0.110247  3.52076  11.7081  5.30111  -2.78722  -2.99931         ⋯
 9  │ 252  0.11301   3.5258   11.6115  5.29284  -2.74862  -2.99931         ⋯
 10 │ 253  0.116074  3.53122  11.5072  5.28383  -2.70688  -2.99931         ⋯
 11 │ 254  0.11943   3.53692  11.3964  5.27416  -2.66254  -2.99931         ⋯
 12 │ 255  0.123066  3.54277  11.2807  5.26392  -2.61626  -2.99931         ⋯
 13 │ 256  0.126965  3.54863  11.162   5.25321  -2.56879  -2.99931         ⋯
 14 │ 257  0.131128  3.55434  11.0419  5.24208  -2.52076  -2.99931         ⋯
 15 │ 258  0.13554   3.55972  10.9226  5.23063  -2.47305  -2.99931         ⋯
 16 │ 259  0.140214  3.56459  10.8058  5.21892  -2.4263   -2.99931         ⋯
 17 │ 260  0.145144  3.56874  10.6937  5.20703  -2.38148  -2.99931         ⋯
 ⋮  │  ⋮      ⋮         ⋮        ⋮        ⋮        ⋮             ⋮         ⋱
using TypedTables: columnnames
columnnames(iso_phot)
(:eep, :m_ini, :logTe, :Mbol, :logg, :logL, :log_surf_cell_z, :NIRCAM_F070W, :NIRCAM_F090W, :NIRCAM_F115W, :NIRCAM_F140W, :NIRCAM_F150W, :NIRCAM_F150W2, :NIRCAM_F162M, :NIRCAM_F164N, :NIRCAM_F182M, :NIRCAM_F187N, :NIRCAM_F200W, :NIRCAM_F210M, :NIRCAM_F212N, :NIRCAM_F250M, :NIRCAM_F277W, :NIRCAM_F300M, :NIRCAM_F322W2, :NIRCAM_F323N, :NIRCAM_F335M, :NIRCAM_F356W, :NIRCAM_F360M, :NIRCAM_F405N, :NIRCAM_F410M, :NIRCAM_F430M, :NIRCAM_F444W, :NIRCAM_F460M, :NIRCAM_F466N, :NIRCAM_F470W, :NIRCAM_F480W)

To take advantage of the [α/Fe] degree of freedom, load a library with a non-zero afe value. Here we compare solar-scaled and α-enhanced isochrones at the same age and [M/H]. Note that both isochrone calls receive the same value of [M/H], not [Fe/H]; at the same [M/H] the α-enhanced population has a lower [Fe/H] but the same total metal mass fraction Z.

lib_afe = MISTv2Library(0.0, 0.4)
iso_afe = isochrone(lib_afe, 10.05, -1.234)
Example block output

Here we compare JWST/NIRCam CMDs for α-enhanced and scaled-solar MIST v2.5 models with matched properties of log10(age [yr]) = 10.05, $[\text{M}/\text{H}] = -1.234$, and $A_v=0.02$ mag.

Example block output

Chemistry API

We re-export the BolometricCorrections.MIST.MISTv2Chemistry type defined in BolometricCorrections.jl that encodes the solar chemical mixture assumed for the MIST v2.5 models (Grevesse and Sauval [16]). Because [α/Fe] is a free parameter in v2.5, the data grid is indexed by [Fe/H] rather than [M/H]. However, the isochrone interface always accepts [M/H] (the total logarithmic metal abundance), and MISTv2Chemistry handles the conversion between [M/H] and [Fe/H] via the Salaris et al. [17] relation. When a MISTv2Library is used with a MISTv2BCGrid, the afe value is inferred from the track library automatically so the correct bolometric corrections are selected.

Library API

StellarTracks.MIST.MISTv2LibraryType
MISTv2Library(vvcrit=0.0, afe=0.0)

MISTv2Library implements the AbstractTrackLibrary interface for the MIST v2.5 stellar evolution library.

The library interpolates in [M/H] (metallicity). The vvcrit and afe parameters must be exact values from the MIST v2.5 grid (vvcrit_grid_v2 and afe_grid_v2); they select which DataDep is loaded but are not interpolated over.

Calling the library as lib(mh, mass) returns a MISTv2Track or InterpolatedTrack interpolated to mh and mass.

This type also supports isochrone construction (see isochrone).

Examples

julia> p = MISTv2Library(0.0, 0.0)
MISTv2Library with vvcrit=0.0, afe=0.0. Valid [M/H] range: (-4.0, 0.5).

julia> isochrone(p, 10.05, -2) isa NamedTuple
true

julia> p(-2.05, 1.05)
InterpolatedTrack with M_ini=1.05, MH=-2.05, Z=0.000174801, Y=0.249231, X=0.750594.
source
StellarTracks.isochroneMethod
isochrone(p::MISTv2Library, logAge::Number, mh::Number)

Interpolates properties of the stellar tracks in the library at the requested logarithmic age (logAge = log10(age [yr])) and logarithmic metallicity [M/H] = mh. Returns a NamedTuple containing the properties listed below:

  • eep: Equivalent evolutionary points
  • m_ini: Initial stellar masses, in units of solar masses.
  • logTe: Base-10 logarithm of the effective temperature [K] of the stellar model.
  • Mbol: Bolometric luminosity of the stellar model.
  • logg: Surface gravity of the stellar model.
  • log_surf_cell_z: Base-10 logarithm of the surface metal mass fraction (Z).
source

Track Set API

StellarTracks.MIST.MISTv2TrackSetType
MISTv2TrackSet(feh, vvcrit=0, afe=0)

MISTv2TrackSet implements the AbstractTrackSet interface for the MIST v2.5 stellar evolution library.

julia> ts = StellarTracks.MIST.MISTv2TrackSet(0.0, 0.0, 0.0)
MISTv2TrackSet with MH=0.0, afe=0.0, vvcrit=0.0, Z=0.0185, Y=0.2735, 1721 EEPs and 155 initial stellar mass points.
source

Individual Tracks API

StellarTracks.MIST.MISTv2TrackType
MISTv2Track(feh, mass, vvcrit=0, afe=0)

MISTv2Track implements the AbstractTrack interface for the MIST v2.5 stellar evolution library.

julia> track = StellarTracks.MIST.MISTv2Track(-2, 0.15, 0.0, 0.0)
MISTv2Track with M_ini=0.15, MH=-2.0, afe=0.0, vvcrit=0.0, Z=0.000196117, Y=0.24926, X=0.750544.
source

MIST v2.5 References

This page cites the following references:

[13]
A. Dotter, E. B. Bauer, M. Park, C. Conroy, A. P. Milone, M. Joyce and M. Cantiello. MESA Isochrones and Stellar Tracks (MIST). II. Models with alpha-enhanced Chemical Composition. ApJS 283, 64 (2026), arXiv:2602.22012 [astro-ph.SR].
[14]
E. B. Bauer, A. Dotter, C. Conroy, T. Cunningham, M. Park and P.-E. Tremblay. MESA Isochrones and Stellar Tracks (MIST). III. The White Dwarf Cooling Sequence. ApJS 283, 41 (2026), arXiv:2509.21717 [astro-ph.SR].
[15]
M. Asplund, N. Grevesse, A. J. Sauval and P. Scott. The Chemical Composition of the Sun. Annual Review of Astronomy and Astrophysics 47, 481–522 (2009).
[16]
[17]