This web documentation corresponds to MESA release r7624.
This page documents the MESA options that are part of the controls namelist. It is autogenerated from the file $MESA_DIR/star/defaults/controls.defaults.
The documented defaults files available for this version are:
Boxes like
show the default value of each option. To override the default values, add an entry to the controls namelist in your inlist.
specifications for starting model ¶
NOTE: if you are loading a saved model,
then the following initial values are NOT USED to modify the model.
in particular, you cannot use these to change Y or Z of an existing model.
if you want to do that, see star_job.defaults
controls such as change_Y
.
however, these are reported in output as the initial values for the star.
initial_mass ¶
initial mass in Msun units. can be any value you’d like when you are creating a premain sequence model.
not used when loading a saved model. however is reported in output as the initial mass of the star.
if you are loading a ZAMS model and the requested mass is in the range of
prebuilt models, the code will interpolate in mass using the closest prebuilt models.
if the requested mass is beyond the range of the prebuilt models, the code will
load the closest one and then call “relax mass” to create a model to match the request.
the prebuilt range is 0.08 Msun to 100 Msun, so the relax_mass
method is only used for extreme cases. there are enough prebuilt models that the
interpolation in mass seems to work fine for many applications.
initial_z ¶
initial metallicity for create prems and create initial model
initial_z
can be any value from 0 to 0.04
not used when loading a saved model. however is reported in output as the initial Z of the star.
however, if you are loading a zams model,
then initial_z
must match one of the prebuilt values.
look in the 'data/star_data/zams_models'
directory
to see what prebuilt zams Z’s are available.
at time of writing, only 0.02 was included in the standard version of star.
initial_y ¶
initial helium mass fraction for create prems and create initial (< 0 means use default which is 0.24 + 2*initial_z)
not used when loading a saved model or a zams model. however is reported in output as the initial Y of the star.
NOTE: this is only used for create premainsequence model and create initial model, and not when loading a zams model.
controls for output ¶
terminal_interval ¶
write info to terminal when mod(model_number, terminal_interval) = 0
.
write_header_frequency ¶
output the log header info to the terminal
when mod(model_number, write_header_frequency*terminal_interval) = 0
.
extra_terminal_output_file ¶
if not empty, output terminal info to this file in addition to terminal.
this does not capture all of the terminal output – just the common items.
it is intended for use in situations where you cannot directly see the terminal output
such as when running on a cluster. if you want to be able to monitor
the progress for such cases, you can set extra_terminal_output_file = 'log'
and then do tail f log
to view the terminal output as it is recorded in the file.
terminal_show_age_in_years ¶
if false, then show in seconds
num_trace_history_values ¶
any valid name for a history data column, such as surf_v_rot
for example if you have rapid rotation at the surface,
you might want to try something like this:
num_trace_history_values = 7
trace_history_value_name(1) = 'surf_v_rot'
trace_history_value_name(2) = 'surf_omega_div_omega_crit'
trace_history_value_name(3) = 'log_rotational_mdot_boost'
trace_history_value_name(4) = 'log_total_angular_momentum'
trace_history_value_name(5) = 'center n14'
trace_history_value_name(6) = 'surface n14'
trace_history_value_name(7) = 'average n14'
value must be less than or equal to 10
trace_history_value_name(:) ¶
write values to terminal
photo_directory ¶
directory for binary snapshots used in restarts
photostep ¶
save a photo file for possible restarting when mod(model_number, photostep) = 0
.
photo_digits ¶
use this many digits from the end of the model_number
for the photo name
log_directory ¶
for data files about the run
do_history_file ¶
history file is created if this is true
history_interval ¶
append an entry to the history.data file when mod(model_number, history_interval) = 0
.
star_history_name ¶
name of history file
star_history_header_name ¶
If not empty, then put star history header info in star_history_name
file.
In this case the history file has only data, making it easier
to use with some plotting packages.
star_history_dbl_format ¶
format for writing reals to star_history_name
file
star_history_int_format ¶
format for writing integer to star_history_name
file
star_history_txt_format ¶
format for writing characters to star_history_name
file
write_profiles_flag ¶
profiles are written only if this is true
profile_interval ¶
save a model profile info when mod(model_number, profile_interval) = 0
.
priority_profile_interval ¶
give saved profile a higher priority for retention when
mod(model_number, priority_profile_interval) = 0
.
profiles_index_name ¶
name of the profile index file
profiles_data_prefix ¶
prefix of the profile data
profiles_data_suffix ¶
suffix of the profile data
profile_data_header_suffix ¶
If not empty, then put profile data header info here. In this case the profile data file has only data, making it easier to use with some plotting packages.
profile_dbl_format ¶
format for writing reals to profile file
profile_int_format ¶
format for writing integers to profile file
profile_txt_format ¶
format for writing characters to profile file
max_num_profile_zones ¶
if nz > this
, then only write a subsample of the zones.
only used if > 1
max_num_profile_models ¶
Maximum number of saved profiles. If there’s no limit on the number of profiles saved, you can fill up your disk – I’ve done it. So it’s a good idea to set this limit to a reasonable number such as 20 or 30. Once that many have been saved during a run, old ones will be discarded to make room for new ones. Profiles that were saved for key events are given priority and aren’t removed as long as there is a lower priority profile that can be discarded instead. Less than zero means no limit.
profile_model ¶
save profile when model_number
equals this
write_model_with_profile ¶
if this is true, models are written at same time as profiles
model_data_prefix ¶
prefix of the model data files
model_data_suffix ¶
suffix of the model data files
write_controls_info_with_profile ¶
if this is true, the values of the options in the controls inlist are written at same time as profiles
controls_data_prefix ¶
prefix of the control data files
controls_data_suffix ¶
suffix of the control data files
mixing_D_limit_for_log ¶
if max D_mix
in mixing region is less than this, don’t include the region in the log
doesn’t apply to thermohaline or semiconvective regions
mass_loc_for_extra_log_info ¶
log contains info about this mass location in the model negative value means “don’t bother”
write_pulse_info_with_profile ¶
if true, write pulse info file when writing profile
pulse_info_format ¶
pulsation code format, e.g., ‘FGONG’, ‘OSC’, ‘GYRE’
add_atmosphere_to_pulse_info ¶
if true, write atmosphere to pulse files
add_center_point_to_pulse_info ¶
if true, add point for r=0 to pulse files
keep_surface_point_for_pulse_info ¶
if true, add k=1 cell to pulse files
format_for_FGONG_data ¶
the “official standard” seems to be ‘(1P5E16.9,x)’, but that can produce numbers with no space separating them. fortran can read such things, but other codes such as IDL cannot.
format_for_OSC_data ¶
[FGONG Format Documentation] (http://www.astro.up.pt/corot/ntools/docs/CoRoT_ESTA_Files.pdf)
write_pulsation_plot_data ¶
if true and saving pulsation info, also write out text file in column format for plotting
max_num_gyre_points ¶
limit gyre output files to at most this number of points only used when > 1
fgong_zero_A_inside_r ¶
when writing FGONG, if r < this and cell has mixing of some kind, force A = 0 Rsun units
trace_mass_location ¶
location for trace_mass_radius
, trace_mass_logT
, etc. (Msun units)
min_tau_for_max_abs_v_location ¶
controls choice of location in model for “max_abs_v” history info. can use this to exclude locations too close to surface.
min_q_for_inner_mach1_location ¶
controls choice of location in model for innermost mach 1 history info. can use this to exclude locations too close to center.
max_q_for_outer_mach1_location ¶
controls choice of location in model for outermost mach 1 history info. can use this to exclude locations too close to surface.
burn_min1 ¶
used for reporting where burning zone occur, for example in the pgstar TRho profiles.
see star/public/star_data.inc
for details.
must be < burn_min2
.
In ergs/g/sec.
burn_min2 ¶
used for reporting where burning zone occur, for example in the pgstar TRho profiles.
see star/public/star_data.inc
for details.
In ergs/g/sec.
max_conv_vel_div_csound_maxq ¶
only consider from center out to this location
width_for_limit_conv_vel ¶
look this number of cells on either side of boundary to see if any boundary k in that range has s% csound(k) < s% v(k) <= s% csound(k1) i.e. transition from subsonic to supersonic as go inward if find any such transition then don’t allow increase in convection velocity. this implies no change from radiative to convective. the purpose of this is to prevent convective energy transport from moving energy from behind a shock to in front of the shock.
max_q_for_limit_conv_vel ¶
for q(k) <= this, don’t allow conv_vel to grow
max_r_in_cm_for_limit_conv_vel ¶
for r(k) <= this, don’t allow conv_vel to grow
max_mass_in_gm_for_limit_conv_vel ¶
for m(k) <= this, don’t allow conv_vel to grow
center_avg_value_dq ¶
reported center values are averages over this fraction of star mass
surface_avg_abundance_dq ¶
reported surface abundances are averages over this fraction of star mass
mach1_plus_dr_factor ¶
offset plus_dr location by this factor times r
mach1_minus_dr_factor ¶
offset minus_dr location by this factor times r
definition of core overshooting boundary for output ¶
alpha_bdy_core_overshooting ¶
bdy = core_overshoot_r0 + core_overshoot_Hp* & (alpha_bdy_core_overshooting*core_overshoot_f  core_overshoot_f0)
The values of core_overshoot_r0, core_overshoot_Hp, core_overshoot_f, and core_overshoot_f0 are the actual values used for this step to calculate the core overshooting. ¶
definition of core boundaries ¶
he_core_boundary_h1_fraction ¶
If >= 0, boundary is outermost location where h1 mass fraction is <= this value,
and he4 mass fraction >= min_boundary_fraction
(see below).
If < 0, boundary is outermost location where he4 is the most abundant species.
c_core_boundary_he4_fraction ¶
If >= 0, boundary is outermost location where he4 mass fraction is <= this value,
and c12 mass fraction >= min_boundary_fraction
(see below).
If < 0, boundary is outermost location where c12 is the most abundant species.
o_core_boundary_c12_fraction ¶
If >= 0, boundary is outermost location where c12 mass fraction is <= this value,
and o16 mass fraction >= min_boundary_fraction
(see below).
If < 0, boundary is outermost location where o16 is the most abundant species.
si_core_boundary_o16_fraction ¶
If >= 0, boundary is outermost location where o16 mass fraction is <= this value,
and si28 mass fraction >= min_boundary_fraction
(see below).
If < 0, boundary is outermost location where si28 is the most abundant species.
fe_core_boundary_si28_fraction ¶
For this case, “iron” includes any species with A > 46.
If >= 0, boundary is outermost location where si28 mass fraction is <= this value,
and “iron” mass fraction >= min_boundary_fraction
(see below).
If < 0, boundary is outermost location where “iron” is the most abundant species.
neutron_rich_core_boundary_Ye_max ¶
Boundary is outermost location where Ye is <= this value.
min_boundary_fraction ¶
Value for deciding boundary regions.
when to stop ¶
max_model_number ¶
The code will stop when it reaches this model number. Negative means no maximum.
when_to_stop_rtol ¶
Relative error criteria when hitting stop target time. The system will automatically redo with a smaller timestep to hit a stopping target. It calculates the following “error” term and retries if it is > 1.
error = abs(value  target_value)/ &
(when_to_stop_atol + when_to_stop_rtol*max(abs(value),abs(target_value)))
when_to_stop_atol ¶
Abolute error criteria when hitting stop target time. The system will automatically redo with a smaller timestep to hit a stopping target. It calculates the following “error” term and retries if it is > 1.
error = abs(value  target_value)/ &
(when_to_stop_atol + when_to_stop_rtol*max(abs(value),abs(target_value)))
max_age ¶
Stop when the age of the star exceeds this value (in years).
only applies when > 0.
max_age_in_seconds ¶
Stop when the age of the star exceeds this value (in seconds).
only applies when > 0.
num_adjusted_dt_steps_before_max_age ¶
This adjusts max_years_for_timestep
so that hit max_age
exactly,
without needing possibly large change in timestep at end of run.
only used if > 0
number of time steps to adjust to prior to hitting max age only used if > 0
dt_years_for_steps_before_max_age ¶
timestep in years
reduction_factor_for_max_timestep ¶
per time step reduction limited to this
gamma_center_limit ¶
gamma is the plasma interaction parameter. Stop when the center value of gamma exceeds this limit.
eta_center_limit ¶
eta is the electron chemical potential in units of k*T. Stop when the center value of eta exceeds this limit.
log_center_density_limit ¶
Stop when log10 of the center density exceeds this limit.
log_center_density_lower_limit ¶
Stop when log10 of the center density is below this limit.
log_center_temp_limit ¶
Stop when log10 of the center temperature exceeds this limit.
log_center_temp_lower_limit ¶
Stop when log10 of the center temperature is below this limit.
surface_accel_div_grav_limit = 1 ¶
This is used when do not have a velocity variable.
The acceleration ratio is abs(accel)/grav
at surface,
where accel is (rdotrdot_old)/dt
and grav is G*m/r^2
.
Stop if the ratio becomes larger than this limit.
Ignored if <= 0.
log_max_temp_upper_limit ¶
stop when log10 of the maximum temperature rises above this limit.
log_max_temp_lower_limit ¶
stop when log10 of the maximum temperature drops below this limit.
center_entropy_limit ¶
stop when the center entropy exceeds this limit. in kerg per baryon
center_entropy_lower_limit ¶
stop when the center entropy is below this limit. in kerg per baryon
max_entropy_limit ¶
stop when the max entropy exceeds this limit. in kerg per baryon
max_entropy_lower_limit ¶
stop when the max entropy is below this limit. in kerg per baryon
xa_central_lower_limit_species ¶
xa_central_lower_limit ¶
Lower limits on central mass fractions.
Stop when central abundance drops below this limit.
Can have up to num_xa_central_limits
of these (see star_def.inc
for value).
xa_central_lower_limit_species
contains an isotope name as defined in chem_def.f
.
xa_central_lower_limit
contains the lower limit value.
xa_central_upper_limit_species ¶
xa_central_upper_limit ¶
Upper limits on central mass fractions.
Stop when central abundance rises above this limit.
Can have up to num_xa_central_limits
of these (see star_def.inc
for value).
E.g., to stop when center c12 abundance reaches 0.5, set
xa_central_upper_limit_species(1) = 'c12'
xa_central_upper_limit(1) = 0.5
xa_surface_lower_limit_species ¶
xa_surface_lower_limit ¶
Lower limits on surface mass fractions.
Stop when surface abundance drops below this limit.
Can have up to num_xa_surface_limits
of these (see star_def
for value)
xa_surface_lower_limit_species
contains an isotope name as defined in chem_def.f
xa_surface_lower_limit
contains the lower limit value
xa_surface_upper_limit_species ¶
xa_surface_upper_limit ¶
upper limits on surface mass fractions
stop when surface abundance rises above this limit
can have up to num_xa_surface_limits
of these (see star_def
for value)
e.g., to stop when surface c12 abundance reaches 0.5, set
xa_surface_upper_limit_species(1) = 'c12'
xa_surface_upper_limit(1) = 0.5
xa_average_lower_limit_species ¶
xa_average_lower_limit ¶
lower limits on average mass fractions
stop when average abundance drops below this limit
can have up to num_xa_average_limits
of these (see star_def
for value)
xa_average_upper_limit_species ¶
xa_average_upper_limit ¶
upper limits on average mass fractions
stop when average abundance rises above this limit
can have up to num_xa_average_limits
of these (see star_def
for value)
HB_limit ¶
For detecting horizontal branch. Only applies when center abundance by mass of h1 is < 1d4. Stop when the center abundance by mass of he4 drops below this limit.
stop_at_TP ¶
If true, stop at next AGB thermal pulse.
This is defined as having a convective zone with helium burning
when central helium is depleted
and he_core_mass  c_core_mass <= TP_he_shell_max
.
TP_he_shell_max ¶
Stop when thermal pulse helium shell mass reaches this value, in Msun units
star_mass_min_limit ¶
Stop when star mass in Msun units is < this. <= 0 means no limit.
star_mass_max_limit ¶
Stop when star mass in Msun units is > this. <= 0 means no limit.
star_H_mass_min_limit ¶
Stop when star hydrogen mass in Msun units is < this. <= 0 means no limit.
star_H_mass_max_limit ¶
Stop when star hydrogen mass in Msun units is > this. <= 0 means no limit.
star_He_mass_min_limit ¶
Stop when star he3+he4 mass in Msun units is < this. <= 0 means no limit.
star_He_mass_max_limit = 0 ¶
Stop when star he3+he4 mass in Msun units is > this. <= 0 means no limit.
star_C_mass_min_limit ¶
Stop when star c12 mass in Msun units is < this. <= 0 means no limit.
star_C_mass_max_limit = 0 ¶
Stop when star c12 mass in Msun units is > this. <= 0 means no limit.
envelope_mass_limit ¶
envelope_mass = star_mass  he_core_mass
Stop when envelope_mass
drops below this limit, in Msun units.
envelope_fraction_left_limit ¶
envelope_fraction_left = (star_mass  he_core_mass)/(initial_mass  he_core_mass) Stop when `envelope_fraction_left` < this limit.
xmstar_min_limit ¶
! xmstar = mstar  M_center stop when xmstar in grams is < this. <= 0 means no limit.
xmstar_max_limit ¶
xmstar = mstar  M_center stop when xmstar in grams is > this. <= 0 means no limit.
he_core_mass_limit ¶
stop when helium core reaches this mass, in Msun units
c_core_mass_limit ¶
stop when carbon core reaches this mass, in Msun units
o_core_mass_limit ¶
stop when oxygen core reaches this mass, in Msun units
si_core_mass_limit ¶
stop when silicon core reaches this mass, in Msun units
fe_core_mass_limit ¶
stop when iron core reaches this mass, in Msun units
neutron_rich_core_mass_limit ¶
stop when neutron rich core reaches this mass, in Msun units
he_layer_mass_lower_limit ¶
he layer mass is defined as he_core_mass
 c_core_mass
stop when c_core_mass
> 0 and he layer mass < this limit (Msun units).
abs_diff_lg_LH_lg_Ls_limit ¶
stop when abs(lg_LH  lg_Ls) <= abs_diff_LH_Lsurf_limit
can be useful for deciding when premain sequence star has reached ZAMS
set to negative value to disable
Teff_upper_limit ¶
stop when Teff is greater than this limit.
Teff_lower_limit ¶
stop when Teff is less than this limit.
photosphere_r_upper_limit ¶
stop when photosphere_r
is greater than this limit, in Rsun units
photosphere_r_lower_limit ¶
stop when photosphere_r
is less than this limit, in Rsun units
log_Teff_upper_limit ¶
stop when log10 of Teff is greater than this limit.
log_Teff_lower_limit ¶
stop when log10 of Teff is less than this limit.
log_Tsurf_upper_limit ¶
stop when log10 of T in outermost cell is greater than this limit.
log_Tsurf_lower_limit ¶
stop when log10 of T in outermost cell is less than this limit.
log_L_upper_limit ¶
stop when log10(total luminosity in Lsun units) is greater than this limit.
in order to skip prems, this limit only applies when L_nuc
> 0.01*L
log_L_lower_limit ¶
stop when log10(total luminosity in Lsun units) is less than this limit.
log_g_upper_limit ¶
stop when log10(gravity at surface) is greater than this limit.
log_g_lower_limit ¶
stop when log10(gravity at surface) is less than this limit.
log_Psurf_upper_limit ¶
stop when log10 of surface pressure is greater than this limit.
log_Psurf_lower_limit ¶
stop when log10 of surface pressure is less than this limit.
log_Dsurf_upper_limit ¶
stop when log10 of surface density is greater than this limit.
log_Dsurf_lower_limit ¶
stop when log10 of surface density is less than this limit.
power_nuc_burn_upper_limit ¶
stop when total power from all nuclear reactions (in Lsun units) is > this.
power_h_burn_upper_limit ¶
stop when total power from hydrogenconsuming reactions (in Lsun units) is > this.
power_he_burn_upper_limit ¶
stop when total power from reactions burning helium (in Lsun units) is > this.
power_c_burn_upper_limit ¶
stop when total power from reactions burning carbon (in Lsun units) is > this
power_nuc_burn_lower_limit ¶
stop when total power from all nuclear reactions (in Lsun units) is < this.
power_h_burn_lower_limit ¶
stop when total power from hydrogen consuming reactions (in Lsun units) is < this.
power_he_burn_lower_limit ¶
stop when total power from reactions burning helium (in Lsun units) is < this.
power_c_burn_lower_limit ¶
stop when total power from reactions burning carbon (in Lsun units) is < this.
max_number_backups ¶
Stop if the number of backups exceeds this value. Ignore if < 0.
max_number_retries ¶
Stop if the number of retries exceeds this value. Ignore if < 0.
max_backups_in_a_row ¶
if do more than this many without a successful step, then terminate the run.
relax_max_number_backups ¶
Stop if the number of backups during a “relax” evolution exceeds this value. ignore if < 0
relax_max_number_retries ¶
Stop if the number of retries during a “relax” evolution exceeds this value. ignore if < 0
min_timestep_limit ¶
stop if need timestep smaller than this limit, in seconds
logQ_limit ¶
logQ = logRho  2*logT + 12. stop if logQ at any zone is larger than this limit. 5 is a reasonable limit for the current mesa/eos.
center_Ye_lower_limit ¶
stop if center_ye
drops below this limit
fe_core_infall_limit ¶
stop if max infall velocity at any location interior to fe_core_mass
, in cm/s
non_fe_core_infall_limit ¶
stop if max infall velocity at any location interior to he_core_mass
. in cm/s
v_div_csound_surf_limit ¶
stop if abs(v_surf/csound_surf)
> this limit
v_surf_div_v_kh_upper_limit ¶
stop if abs(v_surf/v_kh)
> this limit, where v_kh = photosphere_r/kh_timescale
v_surf_div_v_kh_lower_limit ¶
stop if abs(v_surf/v_kh)
< this limit, where v_kh = photosphere_r/kh_timescale
v_surf_div_v_esc_limit ¶
stop if v_surf/v_esc
> this limit
Lnuc_div_L_zams_limit ¶
defines “near zams” – note: must also set stop_near_zams
stop_near_zams ¶
if true, stop if Lnuc/L > Lnuc_div_L_zams_limit
Lnuc_div_L_upper_limit ¶
stop when Lnuc/L is greater than this limit.
Lnuc_div_L_lower_limit ¶
stop when Lnuc/L is less than this limit.
Pgas_div_P_limit ¶
criteria for stopping on Pgas/P
Pgas_div_P_limit_max_q ¶
stop if Pgas/P < this limit at any location with q <= Pgas_div_P_limit_max_q
values near unity skip the outer envelope
peak_burn_vconv_div_cs_limit ¶
limits ratio of convection velocity to sound speed at location of peak eps_nuc
omega_div_omega_crit_limit ¶
stop if omega/omega_crit is > this anywhere in star ignore if < 0
delta_nu_lower_limit ¶
stop when asteroseismology delta_nu
in micro Hz is < this. <= 0 means no limit.
delta_nu_upper_limit ¶
stop when asteroseismology delta_nu
in micro Hz is > this. <= 0 means no limit.
delta_Pg_lower_limit ¶
stop when delta_Pg
in micro Hz is < this. <= 0 means no limit.
delta_Pg_upper_limit ¶
stop when delta_Pg
in micro Hz is > this. <= 0 means no limit.
stop_when_done_with_center_flash ¶
stop_when_done_with_piston ¶
stop_when_piston_v_goes_negative ¶
mixing parameters ¶
mixing_length_alpha ¶
The mixing length is this parameter times a local pressure scale height.
To increase R vs. L, decrease mixing_length_alpha
.
remove_small_D_limit ¶
If MLT diffusion coeff D (cm^2/sec) is less than this limit,
then set D to zero and change the point to mixing_type == no_mixing
.
use_Ledoux_criterion ¶
a location in the model is Schwarzschild stable when gradr < grada
it is Ledoux stable when gradr < gradL
, where gradL = grada + composition_gradient
note that these are the same when composition_gradient = 0
so you can force the use of the Schwarzschild criterion by passing 0 for
the composition_gradient
argument to the mlt routine.
that’s what happens if you set the control “use_Ledoux_criterion
” to false.
overshooting and rotational mixing are dealt with separately and are added after the MLT classifications are made.
num_cells_for_smooth_gradL_composition_term ¶
Number of cells on either side to use in weighted smoothing of gradL_composition_term
.
gradL_composition_term
is set to the “raw” unsmoothed brunt_B
and then optionally smoothed according num_cells_for_smooth_gradL_composition_term
.
alpha_semiconvection ¶
Determines efficiency of semiconvective mixing.
Semiconvection only applies if use_Ledoux_criterion
is true.
semiconvection_upper_limit_center_h1 ¶
Turn off semiconvection when center_h1
> this limit.
This let’s you delay semiconvection until helium burning.
E.g., you can do overshooting for core hydrogen burning,
then switch to semiconvection after core h is gone.
semiconvection_option ¶
 ‘Langer_85 mixing; gradT = gradr’ : uses Langer scheme for mixing but sets gradT = gradr
 ‘Langer_85’ : this calculates special gradT as well as doing mixing.
thermohaline_coeff ¶
Determines efficiency of thermohaline mixing.
was previously named “thermo_haline_coeff”.
thermohaline mixing only applies if use_Ledoux_criterion
is true.
thermohaline_option ¶
determines which method to use for calculating thermohaline diffusion coef:

'Kippenhahn'
: use method of Kippenhahn, R., Ruschenplatt, G., & Thomas, H.C. 1980, A&A, 91, 175. 
'Traxler_Garaud_Stellmach_11'
: use method of Traxler, Garaud, & Stellmach, ApJ Letters, 728:L29 (2011). 
'Brown_Garaud_Stellmach_13'
: use method of Brown, Garaud, & Stellmach, (2013). Recommendsthermohaline_coeff = 1
, but it can nevertheless be changed.
alt_scale_height_flag ¶
If false, then stick to the usual definition – P/(g*rho). If true, use min of the usual and sound speed * hydro time scale, sqrt(P/G)/rho.
mlt_use_rotation_correction ¶
When doing rotation, multiply grad_rad
by ft_rot/ft_rot
if this flag is true.
MLT_option ¶
Options are:
 ‘none’ : just give radiative values with no mixing.
 ‘Cox’ : MLT as developed in Cox & Giuli 1968, Chapter 14.
 ‘ML1’ : BohmVitense 1958
 ‘ML2’ : Bohm and Cassinelli 1971
 ‘Mihalas’ : Mihalas 1978, Kurucz 1979
 ‘Henyey’ : Henyey, Vardya, and Bodenheimer 1965
‘Cox’ option assumes optically thick material. The other options are various ways of extending to include optically thin material.
Henyey_MLT_y_param ¶
Henyey_MLT_nu_param ¶
Values of the f1..f4 coefficients are taken from Table 1 of Ludwig et al. 1999, A&A, 346, 111
with the following exception: their value of f3 for Henyey convection is f4/8
when it should be
8*f4
, i.e., f3=32*pi**2/3
and f4=4*pi**2/3
. f3 and f4 are related to the henyey y parameter, so
for the ‘Henyey’ case they are set based on the value of Henyey_y_param
.
T_mix_limit ¶
If there is any convection in surface zones with T < T_mix_limit
,
then extend the innermost such convective region outward all the way to the surface.
For example,

T_mix_limit <= 0
means omit this operation. 
T_mix_limit = 1d5
will effectively make the star convective down to the He++ region.
units in Kelvin
conv_dP_term_factor ¶
Set to 0 to turn off effect of pressure from convective turbulence.
The convective turbulence factor is based on Cox&Giuli (14.69)
Multiplier for conv_dP_term
P is increased by factor (1 + conv_dP_term)
by inclusion of convective turbulence.
okay_to_reduce_gradT_excess ¶
gradT_excess
= gradT_sub_grada
= superadiabaticity.
Inefficient convection => large gradT excess and steep T gradient to enhance radiative transport.
Reduce gradT excess by making gradT closer to adiabatic gradient.
If true, code is allowed to adjust gradT to boost efficiency of energy transport
See gradT_excess_f1
, gradT_excess_f2
, and gradT_excess_age_fraction
below.
gradT_excess_f1 ¶
gradT_excess_f2 ¶
These are for calculation of efficiency boosted gradT.
gradT_excess_age_fraction ¶
These are for calculation of efficiency boosted gradT. Fraction of old to mix with new to get next.
gradT_excess_max_change ¶
These are for calculation of efficiency boosted gradT. Maximum change allowed in one timestep for gradT_excess_alpha. Ignored if negative.
gradT_excess_lambda1 ¶
gradT_excess_beta1 ¶
In some situations you might want to force alfa = 1.
You can do that by setting gradT_excess_lambda1 < 0.
The following are for the normal calculation of gradT_excess_alfa
gradT_excess_lambda2 ¶
gradT_excess_beta2 ¶
The following are for the normal calculation of gradT_excess_alfa
.
gradT_excess_dlambda ¶
gradT_excess_dbeta ¶
The following are for the normal calculation of gradT_excess_alfa
.
gradT_excess_max_center_h1 ¶
No boost if center H1 > this limit.
gradT_excess_min_center_he4 ¶
No boost if center He4 < this limit.
gradT_excess_max_logT ¶
No local boost if local logT > this limit.
gradT_excess_min_log_tau_full_on ¶
gradT_excess_max_log_tau_full_off ¶
No local boost if local log tau < gradT_excess_max_log_tau_full_off. Reduced local boost if local log tau < gradT_excess_min_log_tau_full_on.
overshooting ¶
Overshooting depends on the classification of the convective zone and can be different at the top and the bottom of the zone.
min_overshoot_q ¶
Overshooting is only allowed at locations with mass m >= min_overshoot_q * mstar
.
E.g., if min_overshoot_q = 0.1
, then only the outer 90% by mass can have overshooting.
This provides a simple way of suppressing bogus center overshooting in which a small
convective region at the core can produce excessively large overshooting because of
a large pressure scale height at the center.
D_mix_ov_limit ¶
Overshooting shuts off when the exponential decay has dropped the diffusion coefficient to this level.
max_brunt_B_for_overshoot ¶
Terminate overshoot region when encounter stabilizing composition gradient where (unsmoothed) brunt_B is greater than this limit. (<= 0 means ignore this limit) note: both brunt_B and gradL_composition_term come from unsmoothed_brunt_B and differ only in optional smoothing. (see num_cells_for_smooth_brunt_B and num_cells_for_smooth_gradL_composition_term).
Parameters for exponential diffusive overshoot are described in the paper by Falk Herwig, “The evolution of AGB stars with convective overshoot”, A&A, 360, 952968 (2000).
NOTE: In addition to giving these ‘f’ parameters nonzero values, you should also
check the settings for mass_for_overshoot_full_on
and mass_for_overshoot_full_off
.
The switch from convective mixing to overshooting happens
at a distance f0*Hp into the convection zone
from the estimated location where grad_ad == grad_rad
,
where Hp is the pressure scale height at that location.
A value <= 0 for f0 is a mistake – you are required to set f0 as well as f.
take a look at the following from an email concerning this:
Overshooting works by taking the diffusion mixing coefficient at the edge
of the convection zone and extending it beyond the zone. But – and here’s the issue –
at the exact edge of the zone the mixing coefficient goes to 0. So we don’t want that.
Instead we want the value of the mixing coeff NEAR the edge, but not AT the edge.
The “f0” parameter determines the exact meaning of “near” for this. It tells the code
how far back into the zone to go in terms of scale height. The overshooting actually
begins at the location determined by f0 back into the convection zone rather than at
the edge where the diffusion coeff is illdefined. So, for example, if you want
overshooting of 0.2 scale heights beyond the normal edge, you might want to back up
0.05 scale heights to get the diffusion coeff from near the edge and then go out
by 0.25 scale heights from there to reach 0.2 Hp beyond the old boundary. In the
inlist this would mean setting the “f0” to 0.05 and the “f” to 0.25.
There is no default value for f0; if you set f > 0 then you must get f0 > 0 as well.
overshoot_alpha ¶
The value of Hp for overshooting is limited to the radial thickness of the convection zone divided by overshoot_alpha. only used when > 0. if <= 0, then use mixing_length_alpha instead.
overshoot_f_above_nonburn_core ¶
overshoot_f0_above_nonburn_core ¶
overshoot_f_above_nonburn_shell ¶
overshoot_f0_above_nonburn_shell ¶
overshoot_f_below_nonburn_shell ¶
overshoot_f0_below_nonburn_shell ¶
For nonburning regions.
overshoot_f_above_burn_h_core ¶
overshoot_f0_above_burn_h_core ¶
overshoot_f_above_burn_h_shell ¶
overshoot_f0_above_burn_h_shell ¶
overshoot_f_below_burn_h_shell ¶
overshoot_f0_below_burn_h_shell ¶
For hydrogen burning regions.
overshoot_f_above_burn_he_core ¶
overshoot_f0_above_burn_he_core ¶
overshoot_f_above_burn_he_shell ¶
overshoot_f0_above_burn_he_shell ¶
overshoot_f_below_burn_he_shell ¶
overshoot_f0_below_burn_he_shell ¶
For helium burning regions.
overshoot_f_above_burn_z_core ¶
overshoot_f0_above_burn_z_core ¶
overshoot_f_above_burn_z_shell ¶
overshoot_f0_above_burn_z_shell ¶
overshoot_f_below_burn_z_shell ¶
overshoot_f0_below_burn_z_shell ¶
For metals burning regions.
overshoot_below_noburn_shell_factor ¶
Multiply overshoot_f_below_nonburn_shell
by this factor
only during dredge up phase of AGB thermal pulse.
Optional step function for overshooting. This can be used simultaneously with exponential overshooting. When using step overshoot, you must set overshoot_f0 as well as f.
A convective region is considered a shell if it doesn’t reach the center.
step_overshoot_D ¶
step_overshoot_D0_coeff ¶
As above, f0*Hp
determines r0 where switch from convection to overshooting.
Overshooting extends a distance step_f*Hp0
from r0
with constant diffusion coeff D = step_D + step_D0_coeff*D0
where D0 = diffusion coefficient D at point r0.
overshoot_D2 ¶
overshoot_f2 ¶
mass_for_overshoot_full_on ¶
You can specify a range of star masses over which overshooting
above H burning zones is gradually enabled.
Do specified overshooting above H burning zone if star_mass
>= this (Msun).
mass_for_overshoot_full_off ¶
You can specify a range of star masses over which overshooting
above H burning zones is gradually enabled.
No overshooting above H burning zone if star_mass
<= this (Msun).
max_DUP_counter ¶
For deciding when to terminate use of overshoot_below_noburn_shell_factor
.
ovr_below_burn_he_shell_factor ¶
Multiply overshoot_f_below_burn_he_shell
by this factor
after the first AGB thermal pulse.
radiation turbulence ¶
radiation_turbulence_coeff ¶
To counter depletion of h and metals in outer envelope of stars with M > 1.4 Msun.
Morel, P., and Thevenin, F.,
Atomic diffusion in stellar models of type earlier than G.,
A&A, 390:611620 (2002)
D = radiation_turbulencecoef * 4*crad*T^4/(15*clight*opacity*rho^2)
1 is reasonable value for this coefficient
turbulent_diffusion_D0 ¶
Turbulent diffusion below outer convection zone.
Similar effect to overshooting.
Proffitt, C.R., and Michaud, G.,
GRAVITATIONAL SETTLING IN SOLAR MODELS,
ApJ, 380:238290, 1991.
e.g., 8000 cm^2 s^1
turbulent_diffusion_rho_max ¶
Only have turbulent diffusion if rho < this.
Diffusion coef D = D0*(rho/rho_base_cz)^3
,
but only if rho_base_cz <= turbulent_diffusion_rho_max
.
mixing misc ¶
such as smoothing and editing of diffusion coefficients
mix_factor ¶
Mixing coefficients are multiplied by this factor.
max_conv_vel_div_csound ¶
convective velocities are limited to local sound speed times this factor
min_T_for_acceleration_limited_conv_velocity ¶
Acceleration limiting based on Wood 1974 and Arnett 1969.
Wood, P.R., ApJ, 190:609630, 1974. (Appendix V, eqns 13)
Arnett, W.D., 1969, Ap. and Space Sci, 5, 180.
mlt_accel_g_theta ¶
use this (if > 0) for limiting the acceleration of convection velocities.
prune_bad_cz_min_Hp_height ¶
Lower limit on radial extent of cz (<= 0 to disable).
Remove tiny convection zones unless have strong nuclear burning
i.e., remove if size < prune_bad_cz_min_Hp_height
.and.
max_log_eps < prune_bad_cz_min_log_eps_nuc
.
prune_bad_cz_min_log_eps_nuc ¶
Lower limit on max log eps nuc in cz. In units of average pressure scale height at top and bottom of region. This allows emergence of very small cz at site of he core flash, for example.
redo_conv_for_dr_lt_mixing_length ¶
Check for small convection zones with total height less than mixing length
and redo with reduced mixing_length_alpha
to make mixing_length <= dr
.
limit_mixing_length_by_dist_to_bdy ¶
reduce local value of mixing length alpha if necessary in order to make mixing length <= distance to convective boundary times this value only applies when value is > 0 setting this value = 1 implements the restriction that near a convective boundary, the mixing length doesn’t exceed the distance to the boundary. Peter Eggleton, “Composition Changes during Stellar Evolution”, MNRAS 156, 361376, 1972.
WARNING: I’ve seen problems with 25M before He core burn when using this. bp.
conv_bdy_mix_softening_f0 ¶
conv_bdy_mix_softening_f ¶
conv_bdy_mix_softening_min_D_mix ¶
These controls cause the convective mixing coefficient to drop off “softly” near the boundary of the convective zone – i.e, they prevent situations where the mixing coefficient drops from 10^10 or more to zero in a distance covered by only one or two cells as can happen at jumps in composition. Such a sharp edge is no problem when it is not adjacent to a convective region. But when it shows up at a convective boundary, it is problematic. It may not be physical, and it is certainly bad news numerically. This has been discussed as early as 1970’s – see for example, Peter Eggleton, “Composition Changes during Stellar Evolution”, MNRAS 156, 361376, 1972.
The implementation of softening at convective boundaries is like overshooting
but the distances are typically smaller by an order of magnitude or more.
Also, the softening is primarily inside the convective region rather
than penetrating strongly into the area beyond. This is done by
backing up from the boundary into the convection region to start the
softening of the mixing coefficient so that most of the effect
takes place before reaching the exterior of the region. The softening
extends a short way into the exterior with a decreasing value of mixing.
For example, it might start a distance of 0.003*Hp
into the convective
region (Hp = pressure scale height at the boundary), and then project
a mixing coefficient outward from there decreasing exponentially
with distance scale of 0.001*Hp
. For those numbers, there are
3 efoldings before reaching the boundary, so most of the drop
has happened inside the convective region. The strength of the mixing
then continues to drop exponentially until it reaches some given limit.
The effect of this will be to soften the jump in abundances immediately
adjacent to the convective region. That will in turn soften the jump
in opacity and the corresponding jump in grad_rad
so that there will
not be a large jump from a convective point with grad_rad >> grad_ad
to a neighboring nonconvective point with grad_rad << grad_ad
.
smooth_convective_bdy ¶
This is an option to smooth composition gradients in newly nonconvective regions trailing behind a retreating convection zone. This effectively erases (most) of the staircasing that happens without it. But you should be aware that the smoothing process does not conserve species mass – e.g., if have retreating He burning core below H shell, then the smoothing will convert some H into He in the newly nonconvective region (this can be hand waved away as modeling partial burning of those regions during the substep period before the convection had retreated past the location).
set this true to have the staircasing removed at the price of some changes in abundances.
max_dR_div_Hp_for_smooth ¶
Don’t smooth across a newly nonconvective region larger than this limit where dR is radial thickness of region and Hp is min pressure scale height in region.
max_delta_limit_for_smooth ¶
Don’t smooth across a newly nonconvective region where any mass fraction changes by more than this limit.
redo_mlt_for_OPEC ¶
OPacity Extended Convection – work in progess.
remove_mixing_glitches ¶
If true, then okay to remove gaps and singletons.
glitches ¶
The following controls are for different kinds of “glitches” that can be removed.
okay_to_remove_mixing_singleton ¶
If true, remove singetons.
clip_D_limit ¶
Zero mixing diffusion coeffs that are smaller than this.
min_convective_gap ¶
Close gap between convective regions if smaller than this (< 0 means skip this). Gap measured radially in units of pressure scale height.
min_thermohaline_gap ¶
Close gap between thermohaline mixing regions if smaller than this (< 0 means skip this). Gap measured radially in units of pressure scale height.
min_thermohaline_dropout ¶
max_dropout_gradL_sub_grada ¶
If find radiative region embedded in thermohaline,
and max(gradL  grada)
in region is everywhere < max_dropout_gradL_sub_grada
and region height is < min_thermohaline_dropout
then convert the region to thermohaline.
min_thermohaline_dropout <= 0
disables.
min_semiconvection_gap ¶
Close gap between semiconvective mixing regions if smaller than this (< 0 means skip this). Gap measured radially in units of pressure scale height.
remove_embedded_semiconvection ¶
If have a semiconvection region bounded on each side by convection, convert it to be convective too.
set_min_D_mix ¶
min_D_mix ¶
D_mix
will be at least this large if set_min_D_mix
is true.
min_center_Ye_for_min_D_mix ¶
min_D_mix
is only used when center_ye >= this
i.e., when center_ye
drops below this, min_D_mix = 0
.
op_split_gradT_fraction_grada ¶
EXPERIMENTAL
smooth_outer_xa_big ¶
smooth_outer_xa_small ¶
Soften composition jumps in outer layers.
If smooth_outer_xa_big
and smooth_outer_xa_small
are bigger than 0, then
starting from the outermost grid point, homogeneously mix a region of size
smooth_outer_xa_small
(in solar masses), and proceed inwards, linearly reducing
the size of the homogeneously mixed region in such a way that it becomes zero.
After going smooth_outer_xa_big
solar masses in. In this way, the outer smooth_outer_xa_big
solar masses are “cleaned” of composition jumps.
rotation controls ¶
In the following “am” stands for “angular momentum”.
the mesa implementation of rotation closely follows these papers:
 Heger, Langer, & Woosley, ApJ, 528, 368. 2000

Heger, Woosley, & Spruit, ApJ, 626, 350. 2005

D_DSI
= dynamical shear instability 
D_SH
= SolbergHoiland 
D_SSI
= secular shear instability 
D_ES
= EddingtonSweet circulation 
D_GSF
= GoldreichSchubertFricke 
D_ST
= SpruitTayler dynamo
skip_rotation_in_convection_zones ¶
if true, then set rotational diffusion coefficients to 0 in convective regions. This applies both for material mixing and diffusion of angular momentum.
am_D_mix_factor ¶
Rotation and mixing of material.
D_mix
= diffusion coefficient for mixing of material
D_mix = D_mix_non_rotation + f*am_D_mix_factor*(
D_DSI_factor * D_DSI +
D_SH_factor * D_SH +
D_SSI_factor * D_SSI +
D_ES_factor * D_ES +
D_GSF_factor * D_GSF +
D_ST_factor * nu_ST)
f = 1 when logT <= D_mix_rotation_max_logT_full_on = full_on
= 0 when logT >= D_mix_rotation_max_logT_full_on = full_off
= (log(T)full_on)/(full_offfull_on) else
note that for regions with brunt N^2 < 0, we set Richardson number to 1 which is > Ri_critical and therefore turns off DSI and SSI
according to Heger et al 2000 : 1/30d0 by default : 0
am_nu_factor ¶
am_nu_non_rotation_factor ¶
diffusion of angular momentum
am_nu
= diffusion coefficient for angular momentum
am_nu_non_rot = am_nu_factor*am_nu_non_rotation_factor*D_mix_non_rotation
am_nu_rot = am_nu_factor*(
am_nu_visc_factor* D_visc +
am_nu_DSI_factor * D_DSI +
am_nu_SH_factor * D_SH +
am_nu_SSI_factor * D_SSI +
am_nu_ES_factor * D_ES +
am_nu_GSF_factor * D_GSF +
am_nu_ST_factor * nu_ST)
am_nu = am_nu_non_rot + am_nu_rot
Note that for regions with brunt N^2 < 0, we set Richardson number to 1 which is > Ri_critical and therefore turns off DSI and SSI.
am_nu_DSI_factor ¶
< 0 means use D_DSI_factor
am_nu_SSI_factor ¶
< 0 means use D_SSI_factor
am_nu_SH_factor ¶
< 0 means use D_SH_factor
am_nu_ES_factor ¶
< 0 means use D_ES_factor
am_nu_GSF_factor ¶
< 0 means use D_GSF_factor
am_nu_ST_factor ¶
< 0 means use D_ST_factor
am_nu_visc_factor ¶
< 0 means use D_visc_factor
.
By default = 1 to mix angular momentum.
am_nu_omega_rot_factor ¶
am_nu_omega_non_rot_factor ¶
dj/dt = d/dm((4 pi r^2 rho)^2*(am_nu_omega*i_rot*domega/dm + am_nu_j*dj/dm))
am_nu_omega = am_nu_omega_non_rot_factor*am_nu_non_rot + am_nu_omega_rot_factor*am_nu_rot
am_nu_j_rot_factor ¶
am_nu_j_non_rot_factor ¶
dj/dt = d/dm((4 pi r^2 rho)^2*(am_nu_omega*i_rot*domega/dm + am_nu_j*dj/dm))
am_nu_j = am_nu_j_non_rot_factor*am_nu_non_rot + am_nu_j_rot_factor*am_nu_rot
set_uniform_am_nu_non_rot ¶
uniform_am_nu_non_rot ¶
You can specify a uniform value for am_nu_non_rot
by setting this flag true.
A large uniform am_nu
will produce a uniform omega.
set_min_am_nu_non_rot ¶
min_am_nu_non_rot ¶
You can also specify a minimum am_nu_non_rot
.
am_nu
will be at least this large.
min_center_Ye_for_min_am_nu_non_rot ¶
min_am_nu_non_rot
is only used when center Ye >= this.
Each rotationally induced diffusion coefficient has a factor that lets you control it. Value of 1 gives normal strength; value of 0 turns it off.
Note that for regions with brunt N^2 < 0, we set Richardson number to 1, which is > Ri_critical and therefore turns off DSI and SSI.
D_visc_factor ¶
Kinematic shear viscosity. Should be = 0 because viscosity doesn’t mix chemical elements.
am_gradmu_factor ¶
Sensitivity to composition gradients.
In calculation of rotational induced mixing, grad_mu
is multiplied by am_gradmu_factor
.
Value from from Heger et al 2000.
Spatial smoothing is used in calculations of diffusion coefficients. These control the smoothing window widths (number of cells on each side).
time smoothing. Set to 0 to turn off time smoothing.
am_time_average ¶
If true, then D = (D_new + D_old)/2
,
where D_old
is D from previous step
and D_new
is D as calculated for current as if no time smoothing.
simple_i_rot_flag ¶
If true, i_rot = (2/3)*r^2
.
If false, use slightly more complex expression
that takes into account finite shell thickness.
In practice, there doesn’t seem to be a significant difference.
do_adjust_J_lost ¶
adjust_J_fraction ¶
adjust angular momentum EXPERIMENTAL
actual_J_lost = &
adjust_J_fraction*mass_lost*s% j_rot_avg_surf + &
(1d0  adjust_J_fraction)*s% angular_momentum_removed
premix_omega ¶
if premix_omega is true, then do 1/2 of the transport of angular momentum before updating the structure and 1/2 after. otherwise, do all of the transport after updating the structure.
For critical rotation mass loss This is experimental; check with Pablo. Redo step as needed to find mdot that bring model to just below critical. EXPERIMENTAL
FP_min ¶
FT_min ¶
Lower limits for rotational distortion corrections factors FP and FT.
FP_error_limit ¶
If calculate an fp < this, treat it as an error.
FT_error_limit ¶
If calculate an ft < this, treat it as an error.
D_mix_rotation_max_logT_full_on ¶
Use rotational components of D_mix
for locations where logT <= this.
For numerical stability, turn off rotational part of D_mix
at very high T.
D_mix_rotation_min_logT_full_off ¶
Drop rotational components of D_mix
for locations where logT >= this.
For numerical stability, turn off rotational part of D_mix
at very high T.
atmosphere boundary conditions ¶
which_atm_option ¶

'simple_photosphere'
: don’t integrate, just estimate for tau=2/3 
'Eddington_grey'
: Eddington Ttau integration 
'Krishna_Swamy'
: Krishna Swamy Ttau integration 
'solar_Hopf_grey'
: another T(tau), this one tuned to solar data. 
'tau_100_tables'
: use model atmosphere tables for Pgas and T at tau=100; solar Z only. 
'tau_10_tables'
: use model atmosphere tables for Pgas and T at tau=10; solar Z only. 
'tau_1_tables'
: use model atmosphere tables for Pgas and T at tau=1; solar Z only. 
'tau_1m1_tables'
: use model atmosphere tables for Pgas and T at tau=1e1; solar Z only. 
'photosphere_tables'
: use model atmosphere tables for photosphere; range of Z’s. 
'grey_and_kap'
: iterate simple grey to find consistent P, T, and kap at surface 
'grey_irradiated'
: based on Guillot, T, and Havel, M., A&A 527, A20 (2011). 
'Paczynski_grey'
: create an atmosphere for given base conditions. inspired by B. Paczynski, 1969, Acta Astr., vol. 19, 1. takes into account dilution when tau < 2/3, and calls mlt to get gradT allowing for convection. 
'WD_tau_25_tables'
: hydrogen atmosphere tables for cool white dwarfs giving Pgas and T at log10(tau) = 1.4 (tau = 25.11886) Teff goes from 40,000 K down to 2,000K with step of 100 K Log10(g) goes from 9.5 down to 5.5 with step of 0.1.
R.D. Rohrmann, L.G. Althaus, and S.O. Kepler,
Lyman α wing absorption in cool white dwarf stars,
Mon. Not. R. Astron. Soc. 411, 781–791 (2011) 
'fixed_Teff'
: set Tsurf from Eddington Ttau relation for current surface tau and Teff =atm_fixed_Teff
. set Psurf = Radiation_Pressure(Tsurf) 
'fixed_Tsurf'
: set Teff from Eddington Ttau relation for given Tsurf and tau=2/3 set Psurf = Radiation_Pressure(Tsurf) 
'fixed_Psurf'
: get value of Psurf from control parameter use_this_fixed_Psurf. set Tsurf from L and R using L = 4piR^2boltz_sigmaT^4. set Teff using Eddington Ttau relation for tau=2/3 and T=Tsurf.
which_atm_off_table_option ¶
If have selected an atm table as your option,
fallback to using this if the args are off the table.
'simple_photosphere'
or 'grey_and_kap'
.
atm_fixed_Teff ¶
Set this when using atm_option = 'fixed_Teff'
atm_fixed_Tsurf ¶
Set this when using atm_option = 'fixed_Tsurf'
atm_fixed_Psurf ¶
Set this when using which_atm_option = 'fixed_Psurf'
atm_switch_to_grey_as_backup ¶
If you select a table option, but the args are out of the range of the tables,
then this flag determines whether you get an error or the code automatically
switches to option = atm_simple_photosphere
as a backup.
Pextra_factor ¶
Parameter for extra pressure in surface boundary conditions.
Pressure at optical depth tau is calculated as P = tau*g/kap*(1 + Pextra)
Pextra takes into account nonzero radiation pressure at tau=0.
The equation for Pextra includes Pextra_factor
Pextra = Pextra_factor*(kap/tau)*(L/M)/(6d0*pi*clight*cgrav)
For certain situations such super eddington L,
you may need to increase Pextra to help convergence.
e.g. try Pextra_factor = 2
Pextra_factor < 0
means use (incorrect) old form 1.6d4kap(L/Lsun)/(M/Msun).
atm_grey_and_kap_atol ¶
atm_grey_and_kap_rtol ¶
Relative and absolute tolerance parameters for the grey_and_kap
option.
Iterates on kap until err = delta kap/(atol + rtol*kap) < 1
.
atm_grey_and_kap_max_tries ¶
trace_atm_grey_and_kap ¶
Limit on iterations and trace.
atm_grey_irradiated_atol
and atm_grey_irradiated_rtol
.
Parameters for the grey_irradiated
option.
Absolute and relative error tolerances.
atm_grey_irradiated_T_eq ¶
Equilibrium temperature based on irradiation.
irrad_flux = Lstar/(4*pi*orbit**2)
 Area of planet in plane perpendicular to
irrad_flux = pi*Rplanet**2
.  Stellar luminosity received by
planet = irrad_flux*area
.  This luminosity determines
T_eq
:T_eq**4 = irrad_flux/(4*sigma)
.
atm_grey_irradiated_kap_v ¶
atm_grey_irradiated_simple_kap_th ¶
Opacity for irradiation.
The T(tau) relation for this option depends on the ratio kap_v/kap_th
where kap_v
is the planet atmosphere opacity for stellar irradiation,
and kap_th
is the thermal opacity for internally produced radiation.
You can either specify the ratio of kap_v/kap_th
,
or you can specify kap_v
and have the code calc kap_th
to get the ratio.
atm_grey_irr_kap_v_div_kap_th ¶
If atm_grey_irradiated_simple_kap_th
is true, then just set kap_th = kap_v/kap_v_div_kap_th
.
Only used if > 0.
atm_grey_irradiated_P_surf ¶
Surface pressure ; set to 1 bar in cgs units.
atm_grey_irradiated_max_tries ¶
Limit on iterations.
trace_atm_grey_irradiated ¶
Trace the grey atmosphere.
atm_int_errtol ¶
dump_int_atm_info_model_number ¶
Parameters for integrate T(tau) and write atm structure at model number to terminal.
Parameters for Paczynski_grey
.
create_atm_max_step_size
in units of log10_tau
.
surface_extra_Pgas ¶
Extra gas pressure at surface. Added to surface pressure from atm. In ergs/cm^3.
use_atm_PT_at_center_of_surface_cell ¶
The surface boundary conditions for pressure and temperature, compare the model values at the center of the surface cell to values derived from the P and T returned by the atm module. If this flag is true, then the atm values are directly used. If false, then the values from the atm are treated as being for the outer boundary of the surface cell, and those values are used to estimate corresponding values for the cell center for comparison to the model values at the cell center.
Most cases will have this flag false. An example that sets this flag true is a case in which are using a special boundary condition (BC) routine to force a certain entropy for the surface cell. In that situation, it is better to have the special BC directly return P and T for the center of cell 1 to produce the desired entropy.
use_hydrodynamic_surface_BCs ¶
1) gradient of compression vanishes at surface see Grott, Chernigovski, Glatzel, 2005. d_dm(d_dm(r^2*v)) = 0 at surface by continuity, this is d_dm(d_dt(1/rho)) = 0 at surface finite volume form is (1/rho(1)  1/rho_start(1)) = (1/rho(2)  1/rho_start(2)) this BC determines the density for surface cell.
2) black body radiation at surface L = 4piR^2boltz_sigT^4 this BC determines the temperature for the surface cell given R and L.
use_momentum_eqn_outer_BC ¶
use P_surf to set pressure gradient at surface calculate v(1) based on that pressure gradient this replaces the usual equation extrapolating P(1) to surface for comparison to P_surf from the atm.
mass gain or loss ¶
mass_change ¶
Rate of accretion (Msun/year). Negative for mass loss.
This only applies when the wind_scheme = ''
.
Enhanced mass loss due to rotation as in Heger, Langer, and Woosley, 2000, ApJ, 528:368396.
Mdot = Mdot_no_rotation/(1  Osurf/Osurf_crit)^mdot_omega_power
where
Osurf = angular velocity at surface
Osurf_crit^2 = (1  Gamma_edd)*G*M/R^3
Gamma_edd = kappa*L/(4 pi c G M), Eddington factor
Typical value for mdot_omega_power = 0.43
.
mdot_omega_power ¶
Set to 0 to disable this feature.
max_rotational_mdot_boost ¶
This limits the rotational boost.
max_mdot_jump_for_rotation ¶
Don’t increase prev mdot by more that this.
NOTE: use vcrit_max_years_for_timestep
with this.
lim_trace_rotational_mdot_boost ¶
Output to terminal if boost > this.
rotational_mdot_boost_fac ¶
Increase mdot.
rotational_mdot_kh_fac ¶
Kelvinhelmholtz boost.
surf_avg_tau_min ¶
Use mass avg starting from this optical depth.
surf_avg_tau ¶
Use mass avg down to this optical depth.
RGB_wind_scheme ¶
Empty string means no RGB wind.
AGB_wind_scheme ¶
Empty string means no AGB wind.
RGB_to_AGB_wind_switch ¶
If center hydrogen abundance is < 0.01
and center helium abundance by mass is less than RGB_to_AGB_wind_switch
,
then system will use AGB_wind_scheme
rather than RGB_wind_scheme
.
The code will automatically choose between an RGB wind and an AGB wind. The following names for the different schemes are recognized:
 ‘Reimers’
 ‘Blocker’
 ‘de Jager’
 ‘van Loon’
 ‘Nieuwenhuijzen’
 ‘Kudritzki’
 ‘Vink’
 ‘Dutch’
 ‘Stern51’
 ‘Grafener’
 ‘other’ — experimental
Reimers_wind_eta ¶
Reimers mass loss for red giants.
D. Reimers
“Problems in Stellar Atmospheres and Envelopes”
Baschek, Kegel, Traving (eds), Springer, Berlin, 1975, p. 229.
Parameter for mass loss by Reimers wind prescription.
Reimers mdot is eta*4d13*L*R/M
(Msun/year), with L, R, and M in solar units.
Typical value is 0.5.
Blocker_wind_eta = 0 ¶
Blocker’s mass loss for AGB stars.
T. Blocker
“Stellar evolution of low and intermediatemass stars”
A&A 297, 727738 (1995).
Parameter for mass loss by Blocker’s wind prescription.
Blocker mdot is eta*4.83d9*M**2.1*L**2.7*4d13*L*R/M
(Msun/year),
with L, R, and M in solar units.
Typical value is 0.1d0.
de_Jager_wind_eta ¶
de Jager mass loss for various applications. de Jager, C., Nieuwenhuijzen, H., & van der Hucht, K. A. 1988, A&AS, 72, 259. Parameter for mass loss by de Jager wind prescription.
van_Loon_wind_eta ¶
see van Loon et al. 2005, A&A, 438, 273 “An empirical formula for the massloss rates of dustenshrouded red supergiants and oxygenrich Asymptotic Giant Branch stars”
Kudritzki_wind_eta ¶
Radiation driven winds of hot stars. See Kudritzki et al, Astron. Astrophys. 219, 205218 (1989).
Nieuwenhuijzen_wind_eta ¶
See Nieuwenhuijzen, H.; de Jager, C. 1990, A&A, 231, 134.
Vink_wind_eta ¶
Vink, J.S., de Koter, A., & Lamers, H.J.G.L.M., 2001, A&A, 369, 574. “Massloss predictions for O and B stars as a function of metallicity”
Grafener_wind_eta ¶
Grafener, G. & Hamann, W.R. 2008, A&A 482, 945 contributed to mesa by Nilou Afsari
Dutch_wind_eta ¶
The “Dutch” wind scheme for massive stars combines results from several papers, all with authors mostly from the Netherlands.
The particular combination we use is based on Glebbeek, E., et al, A&A 497, 255264 (2009) [more Dutch authors!]
For Teff > 1e4 and surface H > 0.4 by mass, use Vink et al 2001 Vink, J.S., de Koter, A., & Lamers, H.J.G.L.M., 2001, A&A, 369, 574.
For Teff > 1e4 and surface H < 0.4 by mass, use Nugis & Lamers 2000 Nugis, T.,& Lamers, H.J.G.L.M., 2000, A&A, 360, 227 Some folks use 0.8 for nonrotating mdoels (Maeder & Meynet, 2001).
Dutch_wind_lowT_scheme ¶
For Teff < 1e4
Use de Jager if Dutch_wind_logT_scheme = 'de Jager'
de Jager, C., Nieuwenhuijzen, H., & van der Hucht, K. A. 1988, A&AS, 72, 259.
Use van Loon if Dutch_wind_logT_scheme = 'van Loon'
van Loon et al. 2005, A&A, 438, 273.
Use Nieuwenhuijzen if Dutch_wind_logT_scheme = 'Nieuwenhuijzen'
Nieuwenhuijzen, H.; de Jager, C. 1990, A&A, 231, 134
use_accreted_material_j ¶
Angular momentum of accreted material.
If false, then accreted material is given j so that it
is rotating at the same angular velocity as the surface.
If true, then accreted material is given j = accreted_material_j
.
no_wind_if_no_rotation ¶
Use this to delay start of wind until after have started rotation.
min_wind ¶
Min wind in Msun/year > 0; ignore this limit if it is <= 0. e.g., might have low level wind even when normal scheme doesn’t call for any.
max_wind ¶
Max wind in Msun/year > 0; ignore this limit if it is <= 0.
remove_H_wind_mdot ¶
This wind removes surface material until reaching a target total H mass for the star. Max rate of removal in Msun/year ; only applies if this is > 0.
remove_H_wind_H_mass_limit ¶
This wind removes surface material until reaching a target total H mass for the star. Turn off this wind when total H mass < this limit (Msun units).
super_eddington_wind_eta ¶
For super eddington wind we use Ledd averaged by mass to optical depth tau = surf_avg_tau
.
super_eddington_wind_Ledd_factor ¶
Parameter for mass loss driven by super Eddington luminosity. Divide L by this factor when computing super Eddington wind, e.g., if this is 2, then only get wind when L/2 > Ledd.
wind_boost_full_off_L_div_Ledd ¶
Boost off for L/Ledd <= this (set large to disable this).
This alternative form is used when super_eddington_wind_eta
== 0.
wind_boost_full_on_L_div_Ledd ¶
Do max boost for L/Ledd >= this.
This alternative form is used when super_eddington_wind_eta
== 0.
super_eddington_wind_max_boost ¶
Multiply wind mdot by up to this amount.
This alternative form is used when super_eddington_wind_eta
== 0.
trace_super_eddington_wind_boost ¶
Send super eddington wind information to terminal.
mass_change_full_on_dt ¶
mass_change_full_off_dt ¶
These params provide the option to turn off mass change when have very small timesteps.
Between mass_change_full_on_dt
and mass_change_full_ff_dt
mass change is gradually reduced.
Units in seconds.
trace_dt_control_mass_change ¶
min_abs_mdot_for_change_limits ¶
Only apply limits if abs(prev mdot) > this limit. These limit the change in mdot from one step to the next.
max_abs_mdot_factor ¶
Only allow abs(mdot) to increase by this factor per timestep.
min_abs_mdot_factor ¶
Only allow abs(mdot) to decrease by this factor per timestep.
max_star_mass_for_gain ¶
Automatic stops for mass loss/gain in Msun units (negative means ignore this parameter). Turn off mass gain when star mass reaches this limit.
max_star_mass_for_loss ¶
Automatic stops for mass loss/gain in Msun units (negative means ignore this parameter). Turn off mass loss when star mass reaches this limit.
max_T_center_for_any_mass_loss ¶
No mass loss for T center > this.
max_T_center_for_full_mass_loss ¶
No reduction in mass loss for T center <= this.
This must be <= max_T_center_for_full_mass_loss
.
Reduce mass loss rate to 0 as T center climbs from max_for_full
to max_for_any
.
The idea behind this is that during final stages of burning, there is so little time
left in the life of the star, that any mass loss to winds will be negligible,
but the inclusion of that insignificant mass loss can actually make
convergence more difficult, so you are better off without it.
wind_envelope_limit ¶
Winds automatically shut off when the hydrogen rich envelope mass is less than this limit.
The value of h1_boundary_limit
defines what is considered to be hydrogen poor.
Mass in Msun units.
rlo_wind_eta ¶
Amplitude of mass loss. “rlo” wind scheme provides a simple radiusdeterminedwind with exponential increase.
rlo_wind_min_L ¶
Only on when L > this limit. (Lsun)
rlo_wind_max_Teff ¶
Only on when Teff < this limit.
rlo_wind_roche_lobe_radius ¶
Only on when R > this (Rsun).
rlo_wind_base_mdot ¶
Base rate of mass loss when R = roche lobe radius (Msun/year).
rlo_wind_scale_height ¶
Determines exponential growth rate of mass loss (Rsun).
roche_lobe_xfer_full_on ¶
Full accretion when R/RL <= this.
Limit accretion when Roche lobe is nearing full (only with rlo_wind_eta
> 0).
roche_lobe_xfer_full_off ¶
No accretion when R/RL >= this.
nova_wind_eta ¶
Amplitude of wind.
“nova” wind is scheme used in Kato and Hachisu, ApJ 437:802826, 1994. (eqn 23).
This only applies when nova_wind_eta
> 0.
nova_wind_b ¶
Wind parameter
nova_wind_max_Teff ¶
Only on when Teff < this limit.
nova_wind_min_L ¶
only on when L > this limit. (Lsun)
nova_min_Teff_for_accretion ¶
When nova_wind_eta /= 0
and Teff < this
and L > nova_wind_min_L
, no accretion.
nova_roche_lobe_radius ¶
units in Rsun
nova_RLO_mdot ¶
roche lobe overflow mdot, Msun/year
flash_wind_mdot ¶
Rate of mass ejection in Msun/year.
“flash” wind is scheme used in Kato, Saio, and Hachisu, ApJ 340:509517, 1989.
This only applies when flash_wind_mdot
> 0.
flash_wind_starts ¶
Wind starts when R >= this limit (Rsun units).
flash_wind_declines ¶
Wind starts to decline when R <= this limit (Rsun units).
flash_wind_full_off ¶
Wind full off when R <= this limit (Rsun units).
controls for adjust_mass ¶
max_logT_for_k_below_const_q ¶
max_q_for_k_below_const_q ¶
min_q_for_k_below_const_q ¶
Move k_below_const_q
inward from surface until q(k) <= max_q
.
Then continue moving inward until reach logT(k) >= max_logT
or q(k) <= min_q
.
max_logT_for_k_const_mass ¶
max_q_for_k_const_mass ¶
min_q_for_k_const_mass ¶
Move k_below_const_q
inward from k_below_const_q+1
until q(k) <= max_q
.
Then continue moving inward until reach logT(k) >= max_logT
or q(k) <= min_q
.
composition controls ¶
accrete_same_as_surface ¶
If true, composition of accreted material is identical to the current surface composition.
accrete_given_mass_fractions ¶
If true, use the following mass fractions – they must add to 1.0.
num_accretion_species ¶
Up to max_num_accretion_species
.
accretion_species_id ¶
Isotope name as defined in chem_def
.
accretion_species_xa ¶
mass fraction
otherwise, use the following composition
accretion_h1 ¶
Hydrogen mass fraction.
accretion_h2 ¶
If no h2 in current net, then this is automatically added to h1.
accretion_he3 ¶
he3 mass fraction
accretion_he4 ¶
he4 mass fraction
accretion_zfracs = ¶
One of the following identifiers for different Z fractions from chem_def
.

AG89_zfracs = 1
, Anders & Grevesse 1989 
GN93_zfracs = 2
, Grevesse & Noels 1993 
GS98_zfracs = 3
, Grevesse & Sauval 1998 
L03_zfracs = 4
, Lodders 2003 
AGS05_zfracs = 5
, Asplund, Grevesse & Sauval 2005
or set accretion_zfracs = 0
to use the following list of z fractions
accretion_dump_missing_metals_into_heaviest ¶
this controls the treatment metals that are not included in the current net. if this flag is true, then the mass fractions of missing metals are added to the mass fraction of the most massive metal included in the net. if this flag is false, then the mass fractions of the metals in the net are renormalized to make up for the total mass fraction of missing metals.
Special list of z fractions. If you use these, they must add to 1.0.
lgT_lo_for_set_new_abundances ¶
lgT_hi_for_set_new_abundances ¶
Composition controls for set_new_abundances
.
pure_fe56_limit ¶
Pure fe56 for base of ns envelope. If mass fraction of fe56 > this, convert cell to pure fe56.
mesh adjustment ¶
max_allowed_nz ¶
Maximum number of grid points allowed.
remesh_max_allowed_logT ¶
Turn off remesh if any cell has logT > this.
mesh_max_allowed_ratio ¶
Must be >= 2.5. Max ratio for mass of adjacent cells. If have ratio exceeding this, split the larger cell.
max_delta_x_for_merge ¶
Don’t merge neighboring cells if any abundance differs by more than this.
mesh_delta_coeff ¶
A larger value increases the max allowed deltas and decreases the number of grid points.
and a smaller does the opposite.
E.g., you’ll roughly double the number of grid points if you cut mesh_delta_coeff
in half.
Don’t expect it to exacly double the number however since other parameters in addition to
gradients also influence the details of the grid spacing.
mesh_delta_coeff_for_highT ¶
Use different mesh_delta_coeff
at higher temperatures.
logT_max_for_standard_mesh_delta_coeff ¶
Use mesh_delta_coeff_for_highT
for center logT <= this.
logT_min_for_highT_mesh_delta_coeff ¶
Use mesh_delta_coeff_for_highT
for center logT >= this.
Linear interpolate in logT for intermediate center temperatures.
mesh_Pgas_div_P_exponent ¶
Multiply mesh_delta_coeff
by (Pgas/Ptotal) to this power.
mesh_delta_coeff_pre_ms ¶
Multiply mesh_delta_coeff
by this when center XH > 0.5 and lg_LH < lg_L  1.
max_dq ¶
Max size for cell as fraction of total mass.
min_dq ¶
Min size for cell as fraction of total mass.
min_dq_for_xa ¶
Min size for splitting because of composition gradient.
mesh_min_dlnR ¶
Limit on difference in lnR across cell for mesh refinement. Do not make this smaller than about 1d14 or will fail with numerical problems.
merge_if_dlnR_too_small ¶
If true, mesh adjustment will force merge if difference in lnR across cell is too small.
mesh_min_dr_div_cs ¶
Limit (in seconds) on sound crossing time for mesh refinement. Don’t split if sound crossing time would drop below this limit.
merge_if_dr_div_cs_too_small ¶
If true, mesh adjustment will force merge if dr_div_cs
too small.
max_center_cell_dq ¶
Largest allowed dq at center.
max_surface_cell_dq ¶
Largest allowed dq at surface.
max_num_subcells ¶
Limits number of new cells from 1 old one.
max_num_merge_cells ¶
Limits number of old cells to merge into 1 new one.
mesh_adjust_use_quadratic ¶
Linear or quadratic reconstruction polynomials for mesh adjustments.
mesh_adjust_get_T_from_E ¶
If true, then use internal energy conservation to set new temperature. If false, just use average temperature based on reconstruction polynomials.
P_function_weight ¶
Pressure gradient, P_function = P_function_weight*log10(P)
.
T_function1_weight ¶
Temperature gradient, T_function1 = T_function1_weight*log10(T)
.
NOTE: The T gradient mesh controls below seems to be necessary to allow burning that starts off center
to be able to reach the center. You can see this in the pre_zahb test_suite case if you
try running it without the T function. The center temperature will fail to rise.
T_function2_weight ¶
T_function2_param ¶
T_function2 = T_function2_weight*log10(T / (T + T_function2_param))
Largest change in T_function2 happens around T = T_function2_param. Default value puts this in the envelope ionization region.
R_function_weight ¶
R_function_param ¶
radius gradient
R_function = R_function_weight*log10(1 + (r/Rsun)/R_function_param)
R_function2_weight ¶
R_function2_param1 ¶
R_function2_param2 ¶
R_function2 = R_function2_weight*min(R_function2_param1,max(R_function2_param2,r/Rstar))
where Rstar = radius of outer edge of model.
M_function_weight ¶
M_function_param ¶
mass gradient
M_function = M_function_weight*log10(1 + (m/Msun)/M_function_param)
gradT_function_weight ¶
gradT gradient, gradT_function = gradT_function_weight*gradT
log_tau_function_weight ¶
log_tau gradient (optical depth)
log_tau_function = log_tau_function_weight*log10(tau)
log_kap_function_weight ¶
log_kap gradient (optical depth)
log_kap_function = log_kap_function_weight*log10(kap)
omega_function_weight ¶
omega gradient (rotation omega in rad/sec)
omega_function = omega_function_weight*log10(omega)
gam_function_weight ¶
gam_function_param1 ¶
gam_function_param2 ¶
For extra resolution around liquid/solid transition.
gam = plasma interaction parameter
gam_function = gam_function_weight*tanh((gam  gam_function_param1)/gam_function_param2)
xa_function_species ¶
xa_function_weight ¶
Mass fraction gradients.
xa_function = xa_function_weight*log10(xa + xa_function_param),
Up to num_xa_function
of these  see star_def
for value of num_xa_function
.
0 length string means skip, otherwise name of nuclide as defined in chem_def
.
weight <= 0 means skip.
xa_mesh_delta_coeff ¶
Useful if you want to increase mesh_delta_coeff
during advanced burning.
If xa_function_species(j)
has the largest atomic number in current set of species,
then multiply mesh_delta_coeff
by xa_mesh_delta_coeff(j)
.
“Indirect” mesh controls work by increasing sensitivity in selected regions.
They work in the same way as mesh_delta_coeff
– values less than 1.0 mean
smaller allowed jumps in mesh functions and hence smaller grid points and
higher resolution. But whereas mesh_delta_coeff
applies uniformly to all
cells, the “extra” coefficients can vary in value from one cell to the next.
xtra_coef_above_xtrans ¶
xtra_coef_below_xtrans ¶
Multiply mesh_delta_coeff
near any change in most abundant species by this factor.
Value < 1 gives increased resolution.
xtra_dist_above_xtrans ¶
xtra_dist_below_xtrans ¶
Increase resolution up to this distance away from the abundance transition with distance measured in units of the pressure scale height at the boundary.
mesh_logX_species ¶
mesh_logX_min_for_extra ¶
Increase resolution at points with large abs(dlogX/dlogP); logX = log10(X mass fraction).
mesh_dlogX_dlogP_extra(1) ¶
mesh_dlogX_dlogP_full_on(1) ¶
mesh_dlogX_dlogP_full_off(1) ¶
Only increase resolution if logX >= mesh_logX_min_for_extra
.
Make mesh_dlogX_dlogP_extra < 1
for smaller allowed change in logP and hence higher resolution.
Full effect if abs(dlogX/dlogP) >= mesh_dlogX_dlogP_full_on
.
No effect if abs(dlogX/dlogP)) <= mesh_dlogX_dlogP_full_off
.
Up to num_mesh_logX
of these (see star_def
for value of num_mesh_logX
).
Multiply mesh_delta_coeff
near convection zone boundary (czb) by the following factors.
Value < 1 gives increased resolution.
xtra_coef_czb_full_on ¶
xtra_coef_czb_full_off ¶
The center mass fraction of he4 is used to control this extra coefficient. The default settings limit the application to after center he4 is depleted.
 if center he4 <
xtra_coef_czb_full_on
, then use xtra coef’s  if center he4 >
xtra_coef_czb_full_off
, then don’t use xtra coef’s
a more verbose form of these names might be the following: xtra_coef_czb_full_on_if_center_he4_below_this xtra_coef_czb_full_off_if_center_he4_above_this
xtra_coef_{above  below}_{lower  upper}_{nonburn  hburn  heburn  zburn}_czb ¶
Make these < 1 to increase resolution.
xtra_dist_{above  below}_{lower  upper}_{nonburn  hburn  heburn  zburn}_czb ¶
Increase resolution up to this distance away from the convective zone boundary, with distance measured in units of the pressure scale height at the boundary.
xtra_coef_scz_above_{nonburn  hburn  heburn  zburn}_cz ¶
Make these < 1 to increase resolution in semiconvective region adjacent to convective region. e.g., ‘xtra_coef_scz_above_nb_cz’ is extra coef for semiconvectize zone above a nonburn convective zone.
Multiply mesh_delta_coeff
in overshooting regions by the following factors.
Value < 1 gives increased resolution.
xtra_coef_os_full_on ¶
xtra_coef_os_full_off ¶
The center mass fraction of he4 is used to control this extra coefficient. The default settings limit the application to after center he4 is depleted.
 if center he4 <
xtra_coef_os_full_on
, then usextra_coef
coef’s  if center he4 >
xtra_coef_os_full_off
, then don’t usextra_coef
coef’s
xtra_coef_os_{above  below}_{nonburn  hburn  heburn  zburn} ¶
Make these < 1 to increase resolution.
xtra_dist_os_{above  below}_{nonburn  hburn  heburn  zburn} ¶
Continue to increase resolution for this distance beyond the edge of the overshooting region, with distance measured in units of the pressure scale height at the edge of the overshooting region. This applies to both edges of the overshooting region.
Increase resolution at points with large abs(dlog_eps/dlogP)
for nuclear power eps (ergs/g/sec).
At any particular location, only use eps nuc category with max local value
e.g., only use mesh_dlog_pp_dlogP_extra
at points where pp is the max burn source.
mesh_dlog_eps_min_for_extra ¶
Only increase resolution if log_eps >= mesh_dlog_eps_min_for_extra
.
mesh_dlog_eps_dlogP_full_on ¶
Full effect if abs(dlog_eps/dlogP) >= mesh_dlog_eps_dlogP_full_on
.
mesh_dlog_eps_dlogP_full_off ¶
No effect if abs(dlog_eps/dlogP)) <= mesh_dlog_eps_dlogP_full_off
.
Multiply the allowed change between adjacent cells by the following factors; (small factor => smaller allowed change => more cells).
pp and cno burning
triple alpha, c, n, and o burning
ne, na, and mg burning
c12+c12. c12+o16, and o16+o16 burning
si to iron alog alpha chain burning
photodisintegration burning
convective_bdy_weight ¶
convective_bdy_dq_limit ¶
convective_bdy_min_dt_yrs ¶
Mesh function to enhance resolution near convective boundaries including regions that are newly nonconvective because of moving boundary. EXPERIMENTAL
trace_mesh_adjust_error_in_conservation ¶
If true, report relative errors for total PE, KE, and IE. (potential, kinetic, internal).
okay_to_remesh ¶
If false, then no remeshing.
remesh_dt_limit ¶
No remesh if dt < remesh_dt_limit
, in seconds.
remesh_log_L_nuc_burn_min ¶
No mesh adjustments when log10(L_nuc_burn_total)
is less than this.
By default, this turns off mesh changes during the early preMS.
remesh_max_brunt_N2_composition_term ¶
Don’t split cell if brunt_N2_composition_term > this
.
nuclear reaction controls ¶
default_net_name ¶
Name of base reaction network.
Each net corresponds to a file in $MESA_DIR/data/net_data/nets
.
Look in that directory to see your network options,
or learn how to create your own net.
screening_mode ¶
 empty string means no screening

'classic'
: DeWitt, Graboske, Cooper, “Screening Factors for Nuclear Reactions. I. General Theory”, ApJ, 181:439456, 1973. Graboske, DeWitt, Grossman, Cooper, “Screening Factors for Nuclear Reactions. II. Intermediate Screening and Astrophysical Applications”, ApJ, 181:457474, 1973. 
' extended'
: extends the Graboske method using results from Alastuey and Jancovici (1978), along with plasma parameters from Itoh et al (1979) for strong screening. 
'salpeter'
: weak screening only. following Salpeter (1954), with equations (4215) and (4221) of Clayton (1968).
net_logTcut_lo ¶
strong rates are zero logT < logTcut_lo
net_logTcut_lim ¶
strong rates cutoff smoothly for logT < logTcut_lim
max_abar_for_burning ¶
if abar > this, suppress all burning e.g., if want an “inert” core heavy elements, set this to 55 or, if want to turn off the net, set this to 1
dxdt_nuc_factor ¶
Control for abundance changes by burning.
Changes dxdt_nuc
(rate of change of abundances)
without changing the rates or eps_nuc
(rate of energy generation).
weak_rate_factor ¶
all weak rates are multiplied by this factor
reaction_neuQs_factor ¶
all neutrino Q factors are multiplied by this factor
element diffusion ¶
gravitational settling and chemical diffusion.
show_diffusion_info ¶
terminal output for diffusion
show_diffusion_substep_info ¶
terminal output for diffusion
show_diffusion_timing ¶
show time for each call on diffusion
do_element_diffusion ¶
determines whether or not we do element diffusion
diffusion_dt_limit ¶
no element diffusion if dt < this limit (in seconds)
diffusion_use_iben_macdonald ¶
if false, use atomic diffusion coefficients according to Paquette et al. (1986) if true, similar to Iben & MacDonald (1985) this was previously called ‘diffusion_use_pure_coulomb’.
diffusion_min_dq_at_surface ¶
treat at least this much at surface as a single cell for purposes of diffusion
diffusion_min_T_at_surface ¶
treat cells cells at surface with T < this as a single cell for purposes of diffusion default should be large enough to ensure hydrogen ionization
diffusion_min_dq_ratio_at_surface ¶
combine cells at surface until have total mass >= this factor times the next cell below them this helps with surface boundary condition for diffusion by putting large cell at surface
diffusion_dt_div_timescale ¶
dt is at most this fraction of timescale.
Each stellar evolution step can be divided into many substeps for diffusion.
The substep timescale is set by rates of flow in and out for each species in each cell.
The substep size, dt, is initially set to timescale*diffusion_dt_div_timescale
.
diffusion_min_num_substeps ¶
Max substep dt is total time divided by this.
diffusion_max_iters_per_substep ¶
If the substep requires too many iterations, the substep time is decreased for a retry.
diffusion_max_retries_per_substep ¶
If the substep requires too many retries, diffusion fails and forces a retry for the star.
diffusion_tol_correction_max ¶
diffusion_tol_correction_norm ¶
Tolerances for newton iterations. Corrections smaller will be treated as converged. Corrections larger will cause another newton iteration.
diffusion_min_X_hard_limit ¶
tolerance for negative mass fraction errors errors larger will cause retry; errors smaller will be corrected.
diffusion_X_total_atol ¶
diffusion_X_total_rtol ¶
tolerances for errors in total species conservation errors larger will cause retry; errors smaller will be corrected.
diffusion_upwind_abs_v_limit ¶
switch to upwind for i at face k if abs(v(i,k)) > this limit mainly for use with radiative levitation where get very much higher velocities
diffusion_v_max ¶
Max velocity (cm/sec).
We can get extremely large velocities in the extreme outer envelope
that cause problems numerically without really effecting the results,
so we allow a max for the velocities that should help the numerics
without changing the results.
Note: change diffusion_v_max
to at least 1d2 when using radiative levitation.
diffusion_gamma_full_off ¶
diffusion_gamma_full_on ¶
gamma_full_on <= gamma_full_off
Shut off diffusion for large gamma (i.e. for gamma >= gamma_full_off
).
Gradually decrease diffusion as gamma increases from full_on
to full_off
.
Allow normal diffusion for gamma <= gamma_full_on
.
Default is diffusion off when get well into liquid regime.
diffusion_T_full_on ¶
diffusion_T_full_off ¶
T_full_on >= T_full_off
Shut off diffusion for small T (i.e., for T <= T_full_off
)
Gradually decrease diffusion as T decreases from T_full_on
to T_full_off
.
Allow normal diffusion for T >= T_full_on
.
diffusion_calculates_ionization ¶
If diffusion_calculates_ionization
is false, MESA uses
typical charges for a set of representative species as
defined in diffusion_class_typical_charge
and
diffusion_class_representative
for all points rather than
calculating the ionization from the local conditions.
diffusion_nsmooth_typical_charge ¶
smoothing over charge
diffusion_SIG_factor ¶
diffusion_GT_factor ¶
factors for playing with SIG and GT terms for concentration diffusion and advection
diffusion_AD_dm_full_on ¶
diffusion_AD_dm_full_off ¶
diffusion_AD_boost_factor ¶
artificial concentration diffusion near surface (mainly for radiative levitation)
Msun units for full_on
and full_off
boost only used if > 0
diffusion_Vlimit_dm_full_on ¶
diffusion_Vlimit_dm_full_off ¶
in Msun units artificial velocity limitation near surface (mainly for radiative levitation)
diffusion_Vlimit ¶
In units of local cell crossing velocity (only used if > 0).
When full on, limit abs(v) <= Vlimit*dr/dt
, cell size dr, substep time dt.
diffusion_min_T_for_radaccel ¶
diffusion_max_T_for_radaccel ¶
If T between these limits, then include radiative levitation at that location.
Calculation of radiative levitation is costly, so only use it where necessary.
Note: change diffusion_v_max
to at least 1d2 when using radiative levitation.
diffusion_screening_for_radaccel ¶
Include screening for radiative levitation.
diffusion_num_classes ¶
Number of representative classes of species for diffusion calculations.
diffusion_class_representative(:) ¶
isotope names for diffusion representatives
diffusion_class_A_max(:) ¶
atomic number A. in ascending order. species goes into 1st class with A_max
>= species A
diffusion_class_typical_charge(:) ¶
Typical charges for use if diffusion_calculates_ionization
is false
Use charge 21 for Fe in the sun, from
Thoul, Bahcall, and Loeb (1994), ApJ, 421, 828.
diffusion_class_factor(:) ¶
Arbitrarily enhance or inhibit diffusion effects by class.
parameters for ionization solver ¶
diffusion_use_isolve ¶
Activate iterative solver.
diffusion_rtol_for_isolve ¶
diffusion_atol_for_isolve ¶
Relative and absolute error parameters for iterative solver.
diffusion_maxsteps_for_isolve ¶
Maximum number of steps to take in iterative solver.
diffusion_isolve_solver ¶
Which ode solver to use for iterative.
Options include:
'ros2_solver'
'rose2_solver'
'ros3p_solver'
'ros3pl_solver'
'rodas3_solver'
'rodas4_solver'
'rodasp_solver'
diffusion_dump_call_number ¶
debugging info of diffusion at call number
eos controls ¶
more eos controls can be found in star_job.defaults
use_eosDT_ideal_gas ¶
if true, then eos is ideal gas eos as implemented by HELMEOS
use_eosDT_HELMEOS ¶
if true, then eos is as implemented by HELMEOS alone; no blending.
eosDT_HELMEOS_include_radiation ¶
if use_eosDT_HELMEOS
, then this flag is passed as arg
to control whether include radiation.
eosDT_HELMEOS_always_skip_elec_pos ¶
if use_eosDT_HELMEOS, then this flag is passed as arg to control whether skip electrons and positrons.
use_fixed_XZ_for_eos ¶
for debugging
fixed_X_for_eos ¶
if use_fixed_XZ_for_eos
, then pass this value to eos instead of actual X.
fixed_Z_for_eos ¶
if use_fixed_XZ_for_eos
, then pass this value to eos instead of actual Z.
use_eosDE_get ¶
if use_eosDE_get
, then call eosDE_get in mesa/eos lib.
else call eosDT_get_T to search for T to give desired E.
opacity controls ¶
more opacity controls can be found in star_job.defaults
cubic_interpolation_in_X ¶
type of interpolation in X
cubic_interpolation_in_Z ¶
type of interpolation in Z
include_electron_conduction ¶
add conduction opacities to radiative opacities
use_simple_es_for_kap ¶
for experiments with simple electron scattering
if true, opacity = 0.2*(1 + x)
use_Type2_opacities ¶
Type2 opacities for extra C/O during and after He burning
Zbase ¶
the base metallicity for the Type2 kap evaluations.
kap_Type2_full_off_X ¶
kap_Type2_full_on_X ¶
switch to Type1 if X too large
Type2 is full off for X >= kap_Type2_full_off_X
Type2 can be full on for X <= kap_Type2_full_on_X
kap_Type2_full_off_dZ ¶
kap_Type2_full_on_dZ ¶
switch to Type1 if dZ too small (dZ = Z  Zbase)
Type2 is full off for dZ <= kap_Type2_full_off_dZ
Type2 can be full on for dZ >= kap_Type2_full_off_dZ
.
X and dZ terms are multiplied to get actual fraction of Type2.
The fraction of Type2 is calculated for each cell depending on the X and dZ for that cell.
So you can be using Type1 in cells where X is large or dZ is small,
while at the same time you can be using Type2 where X is small and dZ is large.
When frac_Type2
is > 0 and < 1, then both Type1 and Type2 are evaluated and
combined linearly as (1frac_Type2)*kap_type1 + frac_Type2*kap_type2
.
Add kap_frac_Type2
to your profile columns list to see frac_Type2
for each cell.
opacity_max ¶
limit opacities to this value (ignore this is value is < 0)
opacity_factor ¶
opacities are multiplied by this value
min_logT_for_opacity_factor_off ¶
min_logT_for_opacity_factor_on and ¶
max_logT_for_opacity_factor_on ¶
max_logT_for_opacity_factor_off ¶
temperature controls for where the opacity_factor
is applied
if, for example, you only want the opacity factor to apply in the iron bump region
you can give a logT range such as
min_logT_for_opacity_factor_off = 5.2
min_logT_for_opacity_factor_on = 5.3
max_logT_for_opacity_factor_on = 5.7
max_logT_for_opacity_factor_off = 5.8
ignore these if < 0.
if you need cellbycell control of opacity factor,
set the vector “extra_opacity_factor
” using the routine “other_opacity_factor
”
OP mono opacities ¶
The OP_mono
opacities use data and code from the OP website
as modified by Haili Hu. Since the tar.gz file is large (656 MB),
it is not included in the standard mesa download.
You can get OP4STARS_1.3.tar.gz
here
Put it any place you want on your disk.
gunzip OP4STARS_1.3.tar.gz
tar xvf OP4STARS_1.3.tar
Set the inlist controls for the “mono” directory with the data files. For example, in my case it looks like the following, but you can put the directory anywhere you like – it doesn’t need to be in the mesa/data directory. And the cache file doesn’t need to be in the mono directory.
op_mono_data_path = '/Users/bpaxton/OP4STARS_1.3/mono'
op_mono_data_cache_filename = '/Users/bpaxton/OP4STARS_1.3/mono/op_mono_cache.bin'
op_mono_data_path ¶
if this path is set to the empty string, ‘’, then it defaults to the
environment variable $(MESA_OP_MONO_DATA_PATH)
op_mono_data_cache_filename ¶
if this is set to the empty string, ‘’, then it defaults to the
environment variable $(MESA_OP_MONO_DATA_CACHE_FILENAME)
high_logT_op_mono_full_off ¶
high_logT_op_mono_full_on ¶
low_logT_op_mono_full_off ¶
low_logT_op_mono_full_on ¶
you can select a range of log10T for using op_mono
opacities
outside that range, the code will use standard opacity tables.
for example, you might only use high T limits so that op_mono
is only used in the envelope, or you might set both low and
high T limits so that op_mono
is used around the Fe peak logT
but not for other locations in the star.
high_logT_op_mono_full_off >= high_logT_op_mono_full_on
high_logT_op_mono_full_on >= low_logT_op_mono_full_on
low_logT_op_mono_full_on >= low_logT_op_mono_full_off
op_mono opacities full on if
log10T <= high_logT_op_mono_full_on
and
log10T >= low_logT_op_mono_full_on
op_mono opacities full off if
log10T >= high_logT_op_mono_full_off
or
log10T <= low_logT_op_mono_full_off
partially on for other cases
op_mono_min_X_to_include ¶
skip iso if mass fraction < this
use_op_mono_alt_get_kap ¶
if true, call the op_mono_alt_get_kap
routine instead of op_mono_get_kap
.
see mesa/kap/public/kap_lib.f
for details about these routines.
asteroseismology controls ¶
get_delta_nu_from_scaled_solar ¶
use scaled solar values
nu_max_sun ¶
solar value of nu_max
delta_nu_sun ¶
solar value of delta_nu
Teff_sun ¶
solar value of Teff
delta_Pg_mode_freq ¶
uHz. if <=0, use nu_max from scaled solar value
Brunt controls ¶
calculate_Brunt_N2 ¶
Only calculate Brunt_N2
if this is true.
brunt_N2_coefficient ¶
Standard N2 is multiplied by this value.
num_cells_for_smooth_brunt_B ¶
Number of cells on either side to use in weighted smoothing of brunt_B
.
use_brunt_dlnRho_form ¶
If true, compare density for adiabatic displacement of fluid element.
N^2 = (g/r)*A, A = (1/gamma1)*(dlnP/dlnR)  (dlnRho/dlnR)
If false, use Brassard form as revised by Mike Montgomery.
N^2 = g^2*(rho/P)*(chiT/chiRho)*(grada + brunt_B  gradT)
This form is less vulnerable to numerical noise.
use_brunt_gradmuX_form ¶
For comparison to older codes.
Assumes ideal gas plus radiation for brunt_B
.
Uses hydrogren mass fraction to estimate dlnmu = dX/(X + 0.6).
interpolate_rho_for_pulsation_info ¶
If true, then get rho_face by interpolating rho at cell center. If false, then calculate rho_face by dm/(4pir^2*dr).
min_magnitude_brunt_B ¶
If set brunt_B
to 0 if absolute value is < this.
structure equations ¶
velocity_q_upper_bound ¶
Local override for global v_flag
.
If local q > this bound, local v_flag
is set false,
else local v_flag
is set to global v_flag
.
this lets you force v = 0 in outer envelope.
velocity_logT_lower_bound ¶
Local override for global v_flag
.
If local logT < this bound, local v_flag
is set false,
else local v_flag
is set to global v_flag
.
this lets you force v = 0 in outer envelope.
max_dt_yrs_for_velocity_logT_lower_bound ¶
Only apply velocity_logT_lower_bound
when timestep < this limit.
use_dP_dm_rotation_correction ¶
With rotation, multiply dP/dm by fp_rot
if this flag is true.
use_mass_corrections ¶
Gravitational vs baryonic mass corrections. If false, then no distinction between gravitational and baryonic mass. If true, then gravitational mass is calculated using mass corrections. Note: may need to wait for prems model to converged before turning this on.
use_sr_sound_speed ¶
SR correction for sound speed.
use_gr_factors ¶
GR corrections. Currently just for pressure equation.
use_dlnddt_form_of_density_eqn ¶
if true, use continuity equation, d(1/rho)/dt = 4pid(v*r^2)/dm else use default rho = cell_mass/cell_volume
use_dvdt_form_of_momentum_eqn ¶
if true, use dv/dt = … form of momentum equation. this replaces the default pressure gradient form.
use_dedt_form_of_energy_eqn ¶
if true, use de/dt = … form of energy equation. this replaces the default dL/dm and eps_grav form.
non_nuc_neu_factor ¶
Multiplies power from nonnuclear reaction neutrinos. i.e., thermal neutrinos such as computed by mesa/neu.
eps_nuc_factor ¶
Multiplies eps_nuc
without changing rates or dxdt_nuc
.
Thus controls energy production without modifying the amount of change in abundances.
max_abs_eps_nuc ¶
Limit magnitude of eps_nuc to this.
fe56ec_fake_factor ¶
Multiplier on ni56 electron capture rate to take isotopes in hardwired networks to more neutron rich isotopes.
eps_grav ¶
In mesa, “eps_grav
” means T*dS/dt
which is equivalent to (dE/dt + P*dV/dt)
where S is specific entropy, E is specific internal energy, and V = 1/rho
.
There are several options for how eps_grav
is calculated.
These alternatives are equivalently from the “ideal” physics viewpoint,
but they can be very different numerically depending on the situation.
The standard default forms are used if you don’t set any of the following flags. The default when using lnd instead of lnPgas as primary variable is
eps_grav = Tcp((1grada)chiTdlnT_dt  gradachiRhodlnd_dt)
When using lnPgas instead of lnd, the default is
eps_grav = Tcp((1grada4Prad/P)dlnT_dt  gradaPgas/PdlnPgas_dt)
use_dEdRho_form_for_eps_grav ¶
If true, use eps_grav
= (cvTdlnT_dt + (rhodE_dRho  P/rho)dlnd_dt)
use_dlnd_dt_form_for_eps_grav ¶
If true, use eps_grav
= dedt + P/rho*dlnd_dt.
use_dlnd_dt_form_for_eps_grav ¶
If true, use eps_grav
= dedt + P/rho*dlnd_dt.
use_PdVdt_form_for_eps_grav ¶
If true, use eps_grav
= (dedt + Pd(1/rho)/dt). [1/rho = V,specific vol.]
With time centering for 1/rho, Pd(1/rho)/dt becomes P*(1/rho  1/rho_start)/dt
use_lnS_for_eps_grav ¶
If true, use eps_grav
= T*DS/Dt.
Note: while this seems like the obvious way to go, it has problems numerically.
lnS is not a basic variable in the way that lnT and lnd (or lnPgas) are.
I.e., we get lnT and lnd from the newton solver directly,
but we get lnS by calling the eos using lnT and lnd as args.
Also, in many cases, the cell mass coordinates don’t change for the step,
making it possible to use the solver value for the increment in the lnT or lnd
directly in estimating the Lagrangian time derivative
(e.g., DlnT/dt =
include_dmu_dt_in_eps_grav ¶
The above do not include the contribution from composition changes.
In most cases, that is okay (at least it is a common practice!),
but for high T, high density situations, you may want to full the full form.
to do that, set include_dmu_dt_in_eps_grav
to true.
This only is relevant when you are not using the lnS form of eps_grav
.
Since when using eps_grav = T*dS/dt
, the composition effects are already included.
otherwise, we calculate the composition term in eps_grav
as dE_dmu*dmu_dt
with mu approximated by abar/(1 + zbar)
corresponding to complete ionization
and dE_dmu
approximated by 3/2*cgas*T/mu^2
(cgas = ideal gas constant; erg/K/mole)
where dmu_dt
is 1st order approximation Lagrangian time derivative, (mu  prev_mu)/dt
,
prev_mu
interpolated at same mass coordinate in startofstep model.
Gamma_lnS_eps_grav_full_off ¶
Gamma_lnS_eps_grav_full_on ¶
Automatic switch to lnS form for regions with high Gamma (plasma interaction parameter).
Set use_lnS_for_eps_grav
false to use these controls.
These are ignored when use_lnS_for_eps_grav
is true.
eps_grav_factor ¶
multiply eps_grav by this factor
eps_grav_dt_use_start_values ¶
set true if must use values for lnT, lnd, or lnP from start of step in d_dt. e.g., if have made significant changes in abundance profiles in diffusion.
eps_grav_time_deriv_separation ¶
Separation (in grid cells) over which eps_grav can be timedifferenced when Mstar changes The mesh has two major regions  an interior region where the cells are Lagrangian and an outer region where they are homologous (constant dq =dm/M). There is also a small transition region between these two. In the Lagrangian region Ds/dt is evaluated with a Lagrangian finite difference in time, while in the homologous region Ds/dt is evaluated with a finite difference in time at constant q plus an advectionlike term accounting for the movement of the q boundaries in mass. In the transition region, these two derivatives are combined. This means that at the edges of the transition region, finite differences may cross cell boundaries. This control determines how the mesh for the end of the current timestep is placed to ensure that finite differences cross no more than this many cell boundaries.
zero_eps_grav_in_just_added_material ¶
If true, set eps_grav(k) = 0
for k < k_below_just_added
.
NOTE: this does not mean that Ds/Dt is forced to be 0 in cell k.
Instead it simply means we ignore Ds/Dt in the cell’s energy calculation.
min_dxm_Eulerian_div_dxm_removed ¶
Controls for Eulerian or Lagrangian forms of eps_grav
.
Only for mass loss.
Specifies a minimum value for the ratio of
the mass layer at the surface using Eulerian eps_grav
(dxm_Eulerian
)
divided by the mass removed in the current step.
min_dxm_Eulerian_div_dxm_added ¶
Controls for Eulerian or Lagrangian forms of eps_grav
.
Only for mass gain.
Specifies a minimum value for the ratio of
the mass layer at the surface using Eulerian eps_grav
(dxm_Eulerian
)
divided by the mass added in the current step.
min_dxm_Eulerian_div_dxm_CpTMdot_lt_L ¶
Controls for Eulerian or Lagrangian forms of eps_grav
Only for mass gain.
Specifies a minimum value for the ratio of
the mass layer at the surface using Eulerian eps_grav
(dxm_Eulerian
)
divided by the surface mass layer with CpTMdot < L (dxm_CpTMdot_lt_L)
.
Note that it is possible for CpTMdot < L for the entire star,
in which case, if this control is > 0, the entire star will use Eulerian eps_grav.
min_cells_for_Eulerian_to_Lagrangian_transition ¶
Width of eulerian to lagrangian transition region.
min_del_T_div_dt ¶
Controls for Lagrangian time derivatives in newly added material
only applies to cells with k < k_below_just_added
.
If del_t_for_just_added(k)/dt < this limit
,
then set del_t_for_just_added(k) = dt*this limit
.
max_num_surf_revisions ¶
Max number of forced reconverges for changes in surf_lnS
.
max_abs_rel_change_surf_lnS ¶
Force newton reconverge if surf_lnS changed more than this.
trace_force_another_iteration ¶
If true, report when force another iter.
accel_factor ¶
coefficient for acceleration term in the momentum equation
extra_power_source ¶
erg/g/sec applied uniformly throughout the model
This can be used to push a prems model up the track to lower center temperatures.
Can be used simultaneously with inject_extra_ergs_sec
and inject_uniform_extra_heat
inject_uniform_extra_heat ¶
extra heat in erg g^1 s^1
Added to cells in range min_q_for_uniform_extra_heat
to max.
Can be used simultaneously with inject_extra_ergs_sec
and extra_power_source
.
min_q_for_uniform_extra_heat ¶
sets bottom of region for inject_uniform_extra_heat
max_q_for_uniform_extra_heat ¶
sets top of region for inject_uniform_extra_heat
inject_extra_ergs_sec ¶
added to mass equal to grams_for_inject_extra_core_ergs_sec
can be used simultaneously with extra_power_source
and inject_uniform_extra_heat
base_of_inject_extra_ergs_sec ¶
(units: Msun) sets bottom of region for inject_extra_ergs_sec
note: actual base is at max of this and the center of the model
total_mass_for_inject_extra_ergs_sec ¶
(units: Msun) sets size of region for inject_extra_ergs_sec
start_time_for_inject_extra_ergs_sec ¶
(units: sec) start time for injecting extra ergs/s
duration_for_inject_extra_ergs_sec ¶
(units: sec) length of time for injecting extra ergs/s set to large value to keep injecting indefinitely
inject_until_reach_delta_total_energy ¶
(units: ergs) target for change in total energy stop injecting when total_energy  total_energy_initial > this.
theta_P ¶
for time weighting P in energy and momentum equations
= theta_P*P + (1  theta_P)*P_start