MESA Evolution Phases¶
Evolution phases defined in NNaPS-mesa:
Name |
Function |
Description |
---|---|---|
the first evolution point |
||
the last evolution point |
||
the main sequence phase |
||
the start of the MS phase |
||
the end of the MS phase |
||
the red giant branch / first giant branch phase |
||
the start of the RGB phase |
||
the end of the RGB phase |
||
the moment of first He ignition |
||
the He core burning phase |
||
the He shell burning phase |
||
the subdwarf A type phase |
||
the subdwarf B type phase |
||
the subdwarf O type phase |
||
the He white dwarf phase |
||
the first mass loss phase |
||
the start of the MS phase |
||
the end of the ML phase |
||
the first common envelope phase |
||
the start of the CE phase |
||
the end of the CE phase |
Init - Final¶
Init and Final are the two most straightforward phases, they indicate respectively the first and the last evolution
time step. No extra parameters are necessary to distinguish these phases. They are encoded by respectively the
init()
and final()
function.
Depending on how you setup the MESA evolution model, it is possible that the last model does not get saved in the history file. This could cause a discrepancy between the max_model_number set in MESA and the output of the ‘final’ phase.
Main Sequence¶
The Main sequence phase is defined as the phase where hydrogen burning takes place is the core. The MSstart and MSend phases mark the first and last moment matching with the core hydrogen burning phase.
Specifically core hydrogen burning is defined as the time period starting when the majority of the energy is produced by nuclear reactions, and ending when the core hydrogen runs out.
start: 10^log_LH > 0.999 * 10^log_L
end: center_h1 < 1e-12
- Required history parameters:
log_L
log_LH
center_h1
age
The MS phase together with the parameters used to define the start and end point, for stars with 1, 2 and 3 solar masses is shown in the figure below:
Red Giant Branch¶
The red giant phase is defined as the phase starting at the end of the MS, and continuing until either a minimum in effective temperature or a maximum in luminosity is reached (whichever comes first) before He burning stars.
Specifically, the start is defined in the same way as the end of the MS phase, based on central hydrogen, and the end is defined based on Teff and log_L before the central He fraction is reduced:
start: center_h1 < 1e-12
end: ( Teff == min(Teff) or log_L == max(log_L) ) and center_He >= center_He_TAMS - 0.01
- Required history parameters:
center_h1
center_he4
effective_T
log_L
age
The RGB phase together with the parameters used to determine its end for stars with a mass of 1, 2 and 3 solar masses is shown in the figure below.
He Burning¶
The He burning phase, can be split up in the moment of He ignition (called HeIgnition), the phase of burning He in the core (HeCoreBurning) and the phase of burning He in a Shell (HeShellBurning). These phases are defined as follows:
- He ignition:
The moment of He ignition is defined by a peak in the He luminosity. This is the first moment of He ignition, but is not necessarily in the core as for low mass stars, He ignition occurs under degenerate conditions, and due to neutrino cooling typically happens in a shell around the core.
Ignition is defined as the point with the maximum LHe between the first moment when LHe > 10 Lsol and the formation of the carbon-oxygen core. This corresponds to the (first) He flash.
- Required history parameters:
log_LHe
c_core_mass
age
- He Core burning:
He core burning is defined as the period between ignition of He in the core and formation of CO core.
He ignition in the core is defined as the first moment when both the temperature and density in the core are sufficiently high to allow He burning. NNaPS uses the same conditions to define the ignition criteria as MESA.
CO core formation is defined as the point in time when the CO core reaches as mass of 0.01
start: log_center_T > He_Ignition_Limit[log_center_Rho]
end: CO core mass > 0.01 Msol
- Required history parameters:
log_center_T
log_center_Rho
log_LHe
c_core_mass
age
- He Shell burning:
The He shell burning phase is defined as the period in time between the formation of the CO core, and the final drop in He luminosity indicating the end of He burning. This final drop is defined as the time when LHe drops below half the LHe at the start of He shell burning.
start: CO core mass > 0.01 Msol
end: LHe < 1/2 * LHe[start of shell burning]
- Required history parameters:
log_LHe
c_core_mass
age
The He core burning phase and the moment of ignition is shown together with some of the criteria for stars with a mass of 1, 2 and 3 solar masses in the figure below.
Subdwarf phases¶
Subdwarfs phases are implemented in NNaPS based on their evolutionary definition, not based on their spectroscopic definition. This means that a subdwarf is defined as a core He burning star that has lost its envelope and therefor has a much higher effective temperature as a typical core He burning star. The temperature ranged for the three different subdwarfs are defined as:
sdA: 15000 - 20000 K
sdB: 20000 - 40000 K
sdO: > 40000 K
More information can be found in the review paper: Heber, U. 2016, PASP, 128
- Required history parameters:
log_center_T
log_center_Rho
log_LHe
c_core_mass
log_Teff
age
In the figure below three different subdwarfs are shown. The first two originate from low mass progenitors, while the last originates from a 4 solar mass progenitor.
White dwarfs¶
White dwarfs are defined based on their effective temperature and logg. The WD cooling track is selected to start when Teff < 10000K and logg > 7, or when logg > 7.5 regardless of Teff
NNaPS differs between He and CO WDs based on their core composition. If the mass of the CO core is less than 0.01 Msol, it is a He-WD, if the mass is higher it is a CO WD.
- Required history parameters:
log_LHe
c_core_mass
log_Teff
log_g
age
Mass loss¶
This phase marks the first occurring mass loss phase, which is defined as the period in time when the mass loss rate of the primary exceeds log(Mdot) >= -10. When using this phase in the nnaps-mesa extract command, it will automatically assume that mass loss due to RLOF is requested. In that case, the mass loss rate that is evaluated is defined as:
lg_mass_loss_rate = log10( 10^lg_mstar_dot_1 - 10^lg_wind_mdot_1 )
log10(lg_mass_loss_rate) >= -10
- Required history parameters:
lg_mstar_dot_1
lg_wind_mdot_1
age
There can be a significant difference in the start and end of a mass loss phase depending on if total mass loss is
considered, or if only mass loss due to winds or RLOF is considered. When using the api directly, you can differ between
the three possibilities by calling the ML()
,
MLstart()
or MLend()
functions directly. They
accept an extra keyword to indicate which mass loss is requested.
import pylab as pl
from nnaps.mesa import evolution_phases
from nnaps.mesa.fileio import read_compressed_track
# Read the compressed history file of a MESA model in the test suite
history, _ = read_compressed_track('../nnaps/tests/test_data/M2.341_M1.782_P8.01_Z0.01412.h5')
# Get the range for the first ML phase based on RLOF and wind mass loss
MLrlof = evolution_phases.ML(history, mltype='rlof')
MLwind = evolution_phases.ML(history, mltype='wind')
# plot everything
pl.figure(figsize=(15,6))
lg_rlof_mdot_1 = np.log10(10**history['lg_mstar_dot_1'] - 10**history['lg_wind_mdot_1'])
pl.plot(history['model_number'], history['lg_wind_mdot_1'], label='Wind', color='C1', ls='-')
pl.plot(history['model_number'], lg_rlof_mdot_1, label='RLOF', color='g', ls='-')
pl.plot(history['model_number'], history['lg_mstar_dot_1'], label='Total', color='C0', lw=3, ls=':')
pl.axhline(y=-10, ls='--', color='k')
pl.axvline(x=history[MLrlof]['model_number'][0], color='g', ls=':', lw=2)
pl.axvline(x=history[MLrlof]['model_number'][-1], color='g', ls=':', lw=2)
pl.axvline(x=history[MLwind]['model_number'][0], color='C1', ls=':', lw=2)
pl.axvline(x=history[MLwind]['model_number'][-1], color='C1', ls=':', lw=2)
pl.legend(loc='best')
pl.ylim([-14, -3])
pl.xlim([0, 2500])
pl.xlabel('Model number', size=14)
pl.ylabel('log(Mdot) [Msol / yr]', size=14)
Calculating the number of mass loss phases¶
At the moment nnaps-mesa extract only provides support for using the first mass loss phase as an evolutionary phase, and
only uses the RLOF mass loss phase. As is visible in the image above, there are ofter evolution models that will have
more than one mass loss phase. As a temporary solution nnaps-mesa will calculate the number of mass loss phases that
your model goes through and store it in the ‘n_ML_phases’ parameters. The api function used for this is:
count_ml_phases()
When applied on the model used above, it should return 2, regardless of the mltype as for all of RLOF, wind and total mass loss, there are 2 separate mass loss phases.
from nnaps.mesa.extract_mesa import count_ml_phases
n_rlof = count_ml_phases(history, mltype='rlof')
n_wind = count_ml_phases(history, mltype='wind')
n_total = count_ml_phases(history, mltype='total')
print('# RLOF phases: ', n_rlof)
print('# wind phases: ', n_wind)
print('# total phases: ', n_total)
# RLOF phases: 2
# wind phases: 2
# total phases: 2
Common Envelope¶
The CE phase only contains the start and end point of the CE phase. For more information on how it is determined, see the documentation on the common envelope calculation in NNaPS: Common Envelope