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.

The tracks of white dwarf progenitors ($0.6\,M_\odot \lesssim M < 7\,M_\odot$) continue past the end of the TP-AGB (MIST.eep_idxs.END_TPAGB) through the white dwarf cooling sequence [14]. By default, MISTv2TrackSet and MISTv2Library drop these EEPs, so that isochrones contain only living stars, as for the other libraries. Pass wd = true to keep the cooling sequence; isochrones then include white dwarfs descended from progenitors up to $\sim 6.5\,M_\odot$, and the largest initial mass of an isochrone is no longer that of the most evolved living star.

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  …  1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409], m_ini = [0.10045440288585127, 0.1027796853253648, 0.10516919581125582, 0.10762497887578185, 0.1101491512482873, 0.1127439042438625, 0.11541150614048754, 0.1181543045117766, 0.12097472850818781, 0.12387549045829424  …  0.8365668564611961, 0.8365669301332221, 0.8365670024884362, 0.8365670712473162, 0.8365671334587444, 0.8365671888474429, 0.8365672376742695, 0.8365672816979466, 0.836567322047887, 0.8365673597681293], logTe = [3.5018560390829148, 3.5064253182376115, 3.5110657911141248, 3.515764073002581, 3.520504293103436, 3.525267794202358, 3.530032752159829, 3.534773739310427, 3.539461253973277, 3.5440615181054325  …  3.607778649005571, 3.608366352700592, 3.609040767447616, 3.6098307098390063, 3.610874603859189, 3.611922589919255, 3.612942346599734, 3.6139014345131146, 3.6148247831458002, 3.615728104045334], Mbol = [12.068074036008737, 11.980741937185835, 11.892275991362487, 11.802811475721565, 11.712504774512826, 11.621535426612285, 11.530108837934614, 11.43845943309118, 11.346854113938189, 11.255589813679507  …  -3.6523257462511, -3.644173549219317, -3.6357503985199657, -3.6266404890455988, -3.616966634629537, -3.6069008550730906, -3.5963574279503554, -3.585410356503629, -3.5741364413189314, -3.562617534805422], logg = [5.3318328474338585, 5.324426310534936, 5.3169215042632185, 5.309322317883701, 5.30163255359679, 5.293855875453452, 5.285995764669318, 5.278055494641845, 5.2700381600521515, 5.261946168595376  …  0.25471577482026914, 0.2578696581508651, 0.2613585771190793, 0.26555147594107564, 0.27048247840303763, 0.2760518816154118, 0.2822647856056077, 0.28892449677278015, 0.2959702663580699, 0.30332014569191595], logL = [-2.9312296144034944, -2.8962967748743336, -2.8609103965449947, -2.8251245902886257, -2.7890019098051315, -2.7526141706449136, -2.716043535173846, -2.6793837732364723, -2.6427416455752755, -2.6062359254718026  …  3.35693029850044, 3.353669419687727, 3.3503001594079866, 3.3466561956182397, 3.342786653851815, 3.338760342029236, 3.3345429711801415, 3.3301641426014514, 3.325654576527573, 3.3210470139221693], log_surf_cell_z = [-2.9993080899011035, -2.999308089861811, -2.9993080897621875, -2.9993080895901096, -2.9993080893321817, -2.999308088971742, -2.9993080884911345, -2.9993080878724845, -2.999308087092097, -2.999308086124942  …  -3.004061032814657, -3.00406094280788, -3.004060860839557, -3.0040607910821433, -3.004060738954327, -3.004060699611468, -3.004060659805938, -3.0040601021103988, -3.0040596857194504, -3.004059357420098])

The result can be converted to a table:

using TypedTables: Table
Table(iso)
Table with 7 columns and 1166 rows:
      eep  m_ini     logTe    Mbol     logg     logL      log_surf_cell_z
    ┌────────────────────────────────────────────────────────────────────
 1  │ 244  0.100454  3.50186  12.0681  5.33183  -2.93123  -2.99931
 2  │ 245  0.10278   3.50643  11.9807  5.32443  -2.8963   -2.99931
 3  │ 246  0.105169  3.51107  11.8923  5.31692  -2.86091  -2.99931
 4  │ 247  0.107625  3.51576  11.8028  5.30932  -2.82512  -2.99931
 5  │ 248  0.110149  3.5205   11.7125  5.30163  -2.789    -2.99931
 6  │ 249  0.112744  3.52527  11.6215  5.29386  -2.75261  -2.99931
 7  │ 250  0.115412  3.53003  11.5301  5.286    -2.71604  -2.99931
 8  │ 251  0.118154  3.53477  11.4385  5.27806  -2.67938  -2.99931
 9  │ 252  0.120975  3.53946  11.3469  5.27004  -2.64274  -2.99931
 10 │ 253  0.123875  3.54406  11.2556  5.26195  -2.60624  -2.99931
 11 │ 254  0.12686   3.54854  11.165   5.25378  -2.57     -2.99931
 12 │ 255  0.12993   3.55284  11.0755  5.24555  -2.53419  -2.99931
 13 │ 256  0.133083  3.55691  10.9876  5.23726  -2.49905  -2.99931
 14 │ 257  0.136334  3.56071  10.9016  5.2289   -2.46464  -2.99931
 15 │ 258  0.139726  3.56419  10.8173  5.2204   -2.43093  -2.99931
 16 │ 259  0.143264  3.5673   10.7353  5.21176  -2.39812  -2.99931
 17 │ 260  0.146914  3.56995  10.6569  5.20307  -2.36677  -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 1166 rows:
      eep  m_ini     logTe    Mbol     logg     logL      log_surf_cell_z  ⋯
    ┌───────────────────────────────────────────────────────────────────────
 1  │ 244  0.100454  3.50186  12.0681  5.33183  -2.93123  -2.99931         ⋯
 2  │ 245  0.10278   3.50643  11.9807  5.32443  -2.8963   -2.99931         ⋯
 3  │ 246  0.105169  3.51107  11.8923  5.31692  -2.86091  -2.99931         ⋯
 4  │ 247  0.107625  3.51576  11.8028  5.30932  -2.82512  -2.99931         ⋯
 5  │ 248  0.110149  3.5205   11.7125  5.30163  -2.789    -2.99931         ⋯
 6  │ 249  0.112744  3.52527  11.6215  5.29386  -2.75261  -2.99931         ⋯
 7  │ 250  0.115412  3.53003  11.5301  5.286    -2.71604  -2.99931         ⋯
 8  │ 251  0.118154  3.53477  11.4385  5.27806  -2.67938  -2.99931         ⋯
 9  │ 252  0.120975  3.53946  11.3469  5.27004  -2.64274  -2.99931         ⋯
 10 │ 253  0.123875  3.54406  11.2556  5.26195  -2.60624  -2.99931         ⋯
 11 │ 254  0.12686   3.54854  11.165   5.25378  -2.57     -2.99931         ⋯
 12 │ 255  0.12993   3.55284  11.0755  5.24555  -2.53419  -2.99931         ⋯
 13 │ 256  0.133083  3.55691  10.9876  5.23726  -2.49905  -2.99931         ⋯
 14 │ 257  0.136334  3.56071  10.9016  5.2289   -2.46464  -2.99931         ⋯
 15 │ 258  0.139726  3.56419  10.8173  5.2204   -2.43093  -2.99931         ⋯
 16 │ 259  0.143264  3.5673   10.7353  5.21176  -2.39812  -2.99931         ⋯
 17 │ 260  0.146914  3.56995  10.6569  5.20307  -2.36677  -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.MISTv2Library — Type
MISTv2Library(vvcrit=0.0, afe=0.0; wd=false)

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. wd is passed to MISTv2TrackSet; by default the white dwarf cooling sequence is excluded.

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.isochrone — Method
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.MISTv2TrackSet — Type
MISTv2TrackSet(feh, vvcrit=0, afe=0; wd=false)

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

The MIST v2.5 tracks of white dwarf progenitors continue past the end of the TP-AGB (MIST.eep_idxs.END_TPAGB) through the white dwarf cooling sequence [14]. By default these EEPs are dropped, so that isochrones contain only living stars and their largest initial mass is that of the most evolved living star, as for the other libraries. Set wd = true to keep the white dwarf cooling sequence in track and isochrone interpolation.

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, 1409 EEPs and 155 initial stellar mass points.
source

Individual Tracks API

StellarTracks.MIST.MISTv2Track — Type
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]