Quickstart#

We begin by importing the Track module from mesagrid and loading our work directory containing a MESA LOGS directory:

from mesagrid import Track
Updated star.py 2025-10-10 11:48:55.989104
track = Track('work/LOGS')
track
Track in directory: work/LOGS
call track.history, track.profiles, track.freqs, track.index

MESA history#

track.history
model_number num_zones ... num_iters Fundamental Period
0 1 792 ... 6 0.2769
1 2 790 ... 3 0.2412
2 3 790 ... 3 0.2675
3 4 790 ... 2 0.2616
4 5 790 ... 3 0.2618
... ... ... ... ... ...
205 206 938 ... 10 NaN
206 207 954 ... 10 NaN
207 208 965 ... 10 NaN
208 209 975 ... 10 NaN
209 210 988 ... 5 NaN

210 rows × 60 columns

MESA index#

track.index
model_number priority profile_number
0 20 1 1
1 40 1 2
2 60 1 3
3 80 1 4
4 100 1 5
5 120 1 6
6 140 1 7
7 160 1 8
8 180 1 9
9 200 1 10
10 210 3 11

MESA profile files#

track.profiles[5] # lazy load profiles 
zone mass ... cno tri_alpha
0 1 1.0000e+00 ... 0.0000 0.0000e+00
1 2 1.0000e+00 ... 0.0000 0.0000e+00
2 3 1.0000e+00 ... 0.0000 0.0000e+00
3 4 1.0000e+00 ... 0.0000 0.0000e+00
4 5 1.0000e+00 ... 0.0000 0.0000e+00
... ... ... ... ... ...
791 792 1.2501e-06 ... 20.2880 8.8078e-36
792 793 6.2504e-07 ... 20.2812 8.8314e-36
793 794 3.1252e-07 ... 20.2768 8.8464e-36
794 795 1.5626e-07 ... 20.2741 8.8558e-36
795 796 7.8130e-08 ... 20.2671 8.8643e-36

796 rows × 12 columns

track.get_history(5) # 5th profile file 
model_number num_zones ... num_iters Fundamental Period
99 100 796 ... 5 NaN

1 rows × 60 columns

Oscillation frequencies from GYRE#

track.freqs[5] # oscillation frequencies 
E_norm Re(freq) ... n_p n_pg
0 1.4937e-06 1060.9191 ... 8 8
1 6.2035e-07 1179.9991 ... 9 9
2 2.7293e-07 1295.5155 ... 10 10
3 1.3608e-07 1408.7765 ... 11 11
4 7.9321e-08 1521.4284 ... 12 12
... ... ... ... ... ...
89 7.6890e-09 3157.4535 ... 25 25
90 7.8444e-09 3273.0641 ... 26 26
91 8.1053e-09 3388.7345 ... 27 27
92 8.5209e-09 3504.1846 ... 28 28
93 9.1780e-09 3619.1481 ... 29 29

94 rows × 7 columns