This web documentation corresponds to MESA release r8118.
This page documents the MESA options that are part of the star_job namelist. It is autogenerated from the file $MESA_DIR/star/defaults/star_job.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 star_job namelist in your inlist.
Contents 
directories ¶
mesa_dir ¶
if set to the empty string, '', then it defaults to using
environment variable $(MESA_DIR)
chem_isotopes_filename ¶
this file is in chem_data
in mesa_data_dir
pause_before_terminate ¶
if true, then will pause before terminate run. this can be useful if you'd like a chance to look at the final model pgstar windows before they go away.
cache directories ¶
eosDT_cache_dir ¶
eosPT_cache_dir ¶
eosDE_cache_dir ¶
ionization_cache_dir ¶
kap_cache_dir ¶
rates_cache_dir ¶
mesa uses caches to improve performance. the default location for these is in the mesa/data directory, but in some situations it is useful to keep the caches separately so, for example, multiple users can share the code and each can have a separate set of caches. '' means use default location for cache.
The need for separate caches arises in cases where we need to put the main mesa directory in a location that is "read only" for a group of users (such as in a system directory that requires "root" or "superuser" to write). In that case the caches must be moved out of the main directory to locations that the user can write.
if you specify cache directories, use a separate one for each. e.g., something like this
eosDT_cache_dir = '/Users/bpaxton/mesa_caches/eosDT_cache'
eosPT_cache_dir = '/Users/bpaxton/mesa_caches/eosPT_cache'
eosDE_cache_dir = '/Users/bpaxton/mesa_caches/eosDE_cache'
ionization_cache_dir = '/Users/bpaxton/mesa_caches/ionization_cache'
kap_cache_dir = '/Users/bpaxton/mesa_caches/kap_cache'
rates_cache_dir = '/Users/bpaxton/mesa_caches/rates_cache'
you must create the directories yourself  mesa doesn't do it automatically.
If you give an empty string for the cache_dir
, then
if you have set the environment variable MESA_CACHES_DIR
, then
the cache is a subdirectory of that with one of the following names:
eosDT_cache
, eosPT_cache
, kap_cache
, ionization_cache
, rates_cache
you must create the directories yourself  mesa doesn't do it automatically.
if MESA_CACHES_DIR
is not set or is the empty string, then
the cache is a subdirectory of the corresponding data subdirectory,
such as data/rates_data/cache
for the rates cache.
output ¶
save_star_job_namelist ¶
dumps all values for &star_job controls to file
star_job_namelist_name ¶
if empty, uses a default name
show_log_description_at_start ¶
set this false if you want to skip the initial terminal output
show_net_species_info ¶
if true, then output a list of the species in the current net
show_net_reactions_info ¶
if true, then output information about the reactions in the current net
list_net_reactions ¶
if true, then output a simple list of the reactions in the current net
show_eqns_and_vars_names ¶
if true, then output a list of the names of the equations and variables
pgstar_flag ¶
if true, activates pgplot output
save_pgstar_files_when_terminate ¶
if true, then when the run terminates,
pgstar outputs files for plots that have file_flag = .true.
independently of the corresponding file_cnt
.
history_columns_file ¶
if null string, use default.
profile_columns_file ¶
if null string, use default.
save_model_number ¶
at any point during the run, you can save a model for later use
save_model_when_terminate ¶
save final model when a run terminates
save_model_filename ¶
saved model root filename
save_photo_when_terminate ¶
if true, then save photo for last model before terminate the run
profile_starting_model ¶
profile_model_number ¶
write profile for a specific model number
write_profile_when_terminate ¶
filename_for_profile_when_terminate ¶
write profile to a given name upon termination
save_pulsation_info_for_model_number ¶
save_pulsation_info_when_terminate ¶
save_pulsation_info_filename ¶
write pulsation info for the model (format given by s% pulse_info_format
)
save_short_format_for_model_number ¶
save_short_format_filename ¶
write the model in .short format for use with GR1D code
internals_num ¶
write internals  for debugging only write if >= 0
report_retries ¶
report_backups ¶
in case you want some extra info about retries or backups
use_se_output ¶
hdf5 output for Nugrid codes. ask Falk about it.
starting model ¶
By default at the start of a run a zams starting model is loaded,
and then the initial_mass
, initial_z
, and initial_y
are adjusted as necessary.
However, there are alternatives. you can use a model you saved previously,
or you can request the system to create a premainsequence model.
BTW: the system finds the zams file by using the control called zams_filename
the default zams file is for Z=0.02 and lives in data/star_data/zams_models
.
You can create your own zams file and use it instead  see test_suite/create_zams
.
load_saved_model ¶
saved_model_name ¶
If load_saved_model
is true, then use the specified initial model.
create_pre_main_sequence_model ¶
If true, the code will create a starting model with uniform composition, a core temperature below 10^6 so no nuclear burning, and uniform contraction for enough luminosity to make it fully convective.
The mass is initial_mass
from the controls namelist.
if initial_y
is < 0 in the controls,
then code uses 0.24 + 2*initial_z
for initial_y
.
The h1 mass fraction is set to 1  (initial_y + initial_z)
.
The he3 and he4 mass fractions are set according to initial_y
with relative amounts set according to the AG89 solar mass fractions (from chem_def
).
The metallicity is initial_z
from the controls namelist
with the metals fractions set according to the GS98 values (from chem_def
).
to set the metals fractions, use initial_zfracs
(described below)
create_merger_model !!! EXPERIMENTAL ¶
saved_model_for_merger_1 ¶
saved_model_for_merger_2 ¶
If create_merger_model
is true, then create a star by merging the two models provided.
pre_ms_T_c ¶
Initial center temperature (must be below 1d6).
If you have initial convergence problems creating a prems model,
you might try different values for pre_ms_T_c
 that sometimes helps.
pre_ms_guess_rho_c ¶
Guess for initial center density; set to 0 to let the code pick.
pre_ms_d_log10_P ¶
Suggested spacing in pressure between points; set to 0 to let the code pick.
pre_ms_logT_surf_limit ¶
pre_ms_logP_surf_limit ¶
Model contruction is from inside out and stops when reaches either of the following limits.
pre_ms_relax_num_steps ¶
Let prems model settle in for this many steps before changing anything else.
create_initial_model ¶
This is an alternative to create_pre_main_sequence_model
.
If true, creates an adiabatic, contracting model for given mass and radius.
Assumes no nuclear burning and constant entropy. Ignores radiation pressure.
Uses star controls initial_y
and initial_z
to set X, Y, and Z.
Uses initial_zfracs
to set abundances of metals.
Note: if you'd like to doityourself, then you can use other_build_initial_model
.
In that case, in addition to setting create_initial_model
, also set
star controls use_other_build_initial_model
.
Then your run_star_extras
routine will be called instead of the standard one.
radius_in_cm_for_create_initial_model ¶
mass_in_gm_for_create_initial_model ¶
Radius in cm and mass in grams.
center_logP_1st_try_for_create_initial_model ¶
entropy_1st_try_for_create_initial_model ¶
max_tries_for_create_initial_model ¶
abs_e01_tolerance_for_create_initial_model ¶
abs_e02_tolerance_for_create_initial_model ¶
initial_model_relax_num_steps ¶
Let initial model settle in for this many steps before changing anything else.
initial_model_eps ¶
Integration accuracy.
when to stop ¶
steps_to_take_before_terminate ¶
If > 0, stop after taking this many steps.
Sets max_model_number
= model_number
+ steps_to_take_before_terminate
.
Ignore if <= 0.
stop_if_this_file_exists ¶
At each step, the code will try to open this file. If the file exists, it will terminate the run. If the file doesn't exist, it will keep going.
modifications to model ¶
These controls enable one to alter the MESA model at the
start of a run (./rn
) or after a restart (./re
). Controls
that only apply to the first model have 'initial' in their
names, and are ignored for restarts.
set_initial_age ¶
initial_age ¶
if true, set initial age in years
set_initial_model_number ¶
initial_model_number ¶
if true, set initial model number
set_initial_dt ¶
years_for_initial_dt ¶
seconds_for_initial_dt ¶
if true, set initial timestep, dt, in years
limit_initial_dt ¶
Like set_initial_dt
, but does not increase current value for dt_next
.
Used in conjunction with years_for_initial_dt
.
dt_next = min(dt_next, years_for_initial_dt*secyer)
set_uniform_initial_composition ¶
Set uniform composition.
This is useful with create_pre_main_sequence_model
.
initial_h1 ¶
initial_h2 ¶
initial_he3 ¶
initial_he4 ¶
if set_uniform_initial_composition
is true, then
set hydrogen and helium mass fractions according to the following:
If no h2 in current net, then this will be added to h1.
If no he3 in current net, then this will be added to he4.
initial_zfracs ¶
if set_uniform_initial_composition
is true, then set metal fractions
z fractions  select one of the options defined in chem/public/chem_def
:
AG89_zfracs = 1
GN93_zfracs = 2
GS98_zfracs = 3
L03_zfracs = 4
AGS05_zfracs = 5
AGSS09_zfracs = 6
L09_zfracs = 7
A09_Prz_zfracs = 8
for example, initial_zfracs = 3
for GS98_zfracs
or set initial_zfracs = 0
to use the special list of z fractions specified in controls
(i.e., z_fraction_li
, z_fraction_be
, z_fraction_b
, etc.)
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.
file_for_uniform_xa ¶
set_uniform_initial_xa_from_file ¶
set_uniform_xa_from_file ¶
an alternative to the above set_uniform_initial_composition
method.
if set_uniform_initial_xa_from_file
is .true.,
read list of iso name and mass fraction pairs from file file_for_uniform_xa
and use them to set uniform composition.
E.g., to convert the star to pure fe56,
a file with just the following line will work.
fe56 1.0
mix_envelope_down_to_T ¶
mix_initial_envelope_down_to_T ¶
fully mix envelope from surface down to given temperature
set_abundance ¶
set_initial_abundance ¶
chem_name ¶
new_frac ¶
set_abundance_nzlo ¶
set_abundance_nzhi ¶
given a chem_name
from chem_def
,
set its abundance to be new_frac
in a given range of cells, from set_abundance_nzlo
to set_abundance_nzhi
replace_element ¶
replace_initial_element ¶
chem_name1 ¶
chem_name2 ¶
replace_element_nzlo ¶
replace_element_nzhi ¶
replace one iso by another in a given range of cells
chem_name1
and chem_name2
from chem_def
relax_initial_composition ¶
num_steps_to_relax_composition ¶
relax_composition_filename ¶
relax composition from current to specified over number of steps.
relax_composition_filename
holds the desired composition profile information
file format for relax composition
1st line: num_points num_species
then 1 line for for each point where define desired composition
xq xa(1) ... xa(num_species)
xq = fraction of xmstar exterior to the point
where xmstar = mstar  M_center
the interpolation routines require that the xq values which
appear in your file must be monotonically increasing
xa(i) = mass fraction of i'th species
NOTE: it is up to you to ensure that the current net isotopes match
the species in the composition file.
You can set show_net_species_info = .true.
to check the isotopes in the net.
relax_initial_to_xaccrete ¶
Like relax_initial_composition
(and uses num_steps_to_relax_composition
),
but new composition is set by current specification of accretion abundances.
some modifications must be done gradually over several steps in "pseudo" evolution these operations have "relax" in their names. many have an alternative, with "set" in name, that simply make the change all at once. the "set" version is fine if star can manage to converge the modified model. but for larger changes where that's not possible, you'll need to "relax" instead.
relax_Y ¶
change_Y ¶
relax_initial_Y ¶
change_initial_Y ¶
new_Y ¶
relax_Y = .true.
gradually changes average Y, reconverging at each step.
change_Y = .true.
changes abundances; doesn't reconverge the model.
note: relax_dY
in the controls inlist determines the rate of change
relax_Z ¶
change_Z ¶
relax_initial_Z ¶
change_initial_Z ¶
new_Z ¶
relax_Z = .true.
gradually changes average Z, reconverging at each step.
change_Z = .true.
simply changes abundances; doesn't reconverge the model.
note: relax_dlnZ
in the controls inlist determines the rate of change
relax_mass ¶
relax_initial_mass ¶
new_mass ¶
lg_max_abs_mdot ¶
Gradually change total mass by a wind to new_mass
.
lg_max_abs_mdot = 4
means max abs mdot 1d4 msun/year;
Set <= 100 to let code pick.
relax_mass_scale ¶
relax_initial_mass_scale ¶
dlgm_per_step ¶
change_mass_years_for_dt ¶
Gradually rescale mass of star to new_mass
.
Rescales star mass without changing composition as function of m/mstar.
relax_initial_entropy ¶
max_steps_to_relax_entropy ¶
timescale_for_relax_entropy ¶
max_dt_for_relax_entropy ¶
num_timescales_for_relax_entropy ¶
relax_entropy_filename ¶
relax entropy from current to specified over a certain amount of relaxation timescales. This is done by adding an extra heating term of the form
s% extraheat(k) = & (1d0  expcr(s%lnS(k))/desiredentropy(k))*expcr(s%lnE(k))/(timescaleforrelax_entropy*secyer)
and evolving the star without changing the composition for numtimescalesforrelaxentropy times timescaleforrelaxentropy. To circumvent convection we limit the acceleration of convective velocities using minTforaccelerationlimitedconv_velocity = 0 (see controls.defaults), and the timescale for relaxation should be very short (less than a second).
relax_entropy_filename
holds the desired entropy profile information
file format for relax entropy
1st line: num_points
then 1 line for for each point where define desired composition
xq entropy
xq = fraction of xmstar exterior to the point
where xmstar = mstar  M_center
entropy = specific entropy in units of erg/gr/K
relax_dxdt_nuc_factor ¶
relax_initial_dxdt_nuc_factor ¶
new_dxdt_nuc_factor ¶
dxdt_nuc_factor_multiplier ¶
Gradually rescale dxdt_nuc_factor
.
At each step, multiply dxdt_nuc_factor
by dxdt_nuc_factor_multiplier
,
until reach new_dxdt_nuc_factor
.
relax_eps_nuc_factor ¶
relax_initial_eps_nuc_factor ¶
new_eps_nuc_factor ¶
eps_nuc_factor_multiplier ¶
Gradually rescale eps_nuc_factor
.
At each step, multiply eps_nuc_factor
by eps_nuc_factor_multiplier
until reach new_eps_nuc_factor
.
relax_opacity_max ¶
relax_initial_opacity_max ¶
new_opacity_max ¶
opacity_max_multiplier ¶
Gradually rescale opacity_max
.
At each step, multiply opacity_max
by opacity_max_multiplier
until reach new_opacity_max
.
relax_max_surf_dq ¶
relax_initial_max_surf_dq ¶
new_max_surf_dq ¶
max_surf_dq_multiplier ¶
Gradually rescale max_surface_cell_dq
.
At each step, multiply max_surface_cell_dq
by opacity_max_multiplier
until reach new_max_surf_dq
.
relax_to_this_tau_factor ¶
dlogtau_factor ¶
relax_tau_factor ¶
relax_initial_tau_factor ¶
relax_tau_factor_after_core_He_burn ¶
relax_tau_factor_after_core_C_burn ¶
relax_to_this_tau_factor = 1
puts outer cell at photosphere;
can go much larger or much smaller to move surface in or out from photosphere.
dlogtau_factor
changes log10(tau_factor)
by at most this amount per step
relax_tau_factor
true gradually changes tau_factor
, reconverging at each step.
relax_tau_factor_after_core_He_burn
ignored if <= 0;
change tau_factor
when center H1 < 1e4 and
center He4 < relax_tau_factor_after_core_He_burn
.
relax_tau_factor_after_core_C_burn
ignored if <= 0;
change tau_factor
when center H1 < 1e4,
He4 < 1e4, and center C12 < relax_tau_factor_after_core_C_burn
.
set_to_this_tau_factor ¶
set_tau_factor ¶
set_initial_tau_factor ¶
set_tau_factor_after_core_He_burn ¶
set_tau_factor_after_core_C_burn ¶
As for relax_to_this_tau_factor
, but changes tau_factor
without reconverging.
adjust_tau_factor_to_surf_density ¶
base_for_adjust_tau_factor_to_surf_density ¶
if adjusttaufactortosurfdensity, then at start of each step set taufactor to current Rho(1) divided by baseforadjusttaufactortosurf_density
relax_to_this_Tsurf_factor ¶
dlogTsurf_factor ¶
relax_Tsurf_factor ¶
relax_initial_Tsurf_factor ¶
set_to_this_Tsurf_factor ¶
set_Tsurf_factor ¶
set_initial_Tsurf_factor ¶
As for relax_to_this_Tsurf_factor
, but changes Tsurf_factor
without reconverging.
relax_mass_change ¶
relax_initial_mass_change ¶
relax_mass_change_min_steps ¶
relax_mass_change_max_yrs_dt ¶
relax_mass_change_init_mdot ¶
relax_mass_change_final_mdot ¶
relax_mass_change_max_yrs_dt
in years
relax_mass_change_init_mdot
in Msun/year
relax_irradiation ¶
relax_initial_irradiation ¶
relax_to_this_irrad_flux ¶
relax_irradiation_min_steps ¶
relax_irradiation_max_yrs_dt ¶
irrad_col_depth ¶
extra heat near surface to model irradiation.
relax_to_this_irrad_flux
is flux in erg s^1 cm^2 from companion.
we capture Pi*R^2
of that flux and distribute it uniformly
in the outer 4*Pi*R^2*irrad_col_depth
grams of the star,
where irrad_col_depth
is in g cm^2.
set_irradiation ¶
set_initial_irradiation ¶
set_to_this_irrad_flux ¶
as for relax_irradiation
but sets values and does not reconverge
change_lnPgas_flag ¶
change_initial_lnPgas_flag ¶
new_lnPgas_flag ¶
lnPgas variables
lnPgas_flag
is true if we are using lnPgas variables in place of lnd
change_lnE_flag ¶
change_initial_lnE_flag ¶
new_lnE_flag ¶
E variables
lnE_flag
is true if we are using lnE variables in place of lnT
NOTE: the mesa/eos has special tables for this.
they are constructed from the standard (lnd,lnT) tables and have similar limits.
in particular, like the other tables, they only go up to Z of 0.04
when the eos is called with offtable arguments, it reverts to making iterative calls on the (lnd,lnT) eos.
that works pretty well, but in some cases the partials are not as accurate as the ones from the (lnd,lnE) table.
the less accurate partials can lead to convergence problems that force unexpectedly small timesteps.
in such cases, it may be desirable to leave lnE_flag false.
change_L_flag ¶
change_initial_L_flag ¶
new_L_flag ¶
luminosity variables
L_flag
is true if we are using luminosity variables
change_RTI_flag ¶
change_initial_RTI_flag ¶
new_RTI_flag ¶
RTI variables
RTI_flag
is true if we are doing Rayleigh Taylor Instabilities
velocity variables ¶
change_v_flag ¶
change_initial_v_flag ¶
new_v_flag ¶
change whether MESA evolves a (radial) velocity variable, v, defined at cell boundaries
center_ye_limit_for_v_flag ¶
automatically turn on velocities if center_ye
drops below this limit.
this is useful for evolution leading up to core collapse.
gamma1_integral_for_v_flag ¶
automatically turn on velocities if center_gamma1_integral
drops below this limit.
this is useful for evolution leading up to pair instability core collapse.
integral is sum over all cells of (gamma14d0/3d0)
weighted by dm*P/rho
change_u_flag ¶
change_initial_u_flag ¶
new_u_flag ¶
change whether MESA evolves a (radial) velocity variable, u, defined at cell centers. this is an alternative to v at cell boundaries. can use one or the other, but not both.
Experimental  not ready for use.
rotation controls ¶
new_rotation_flag ¶
change_rotation_flag ¶
change_initial_rotation_flag ¶
rotation is enabled only if rotation_flag
is true
change_rotation_flag
is only used if change_rotation_flag
is true
if change_rotation_flag
true, then change rotation_flag
to new_rotation_flag
NOTE: why 2 flags? because I want 3 options: set true, set false, and leave it alone. there are of course other ways to get 3 options, but this is what we have.
the following only apply when rotation is already on (i.e., when rotation_flag
is true),
including when you have just done change_rotation_flag
true.
all of these initialize the model to uniform omega (i.e. "solid body")
new_omega ¶
set_omega ¶
set_initial_omega ¶
new_omega
in rad/sec
set_omega
applies when do ./rn or ./re; if true, sets uniform omega = new_omega
set_initial_omega
only applies at start of run, not for restarts
if true, sets uniform omega = new_omega
new_omega_div_omega_crit ¶
set_omega_div_omega_crit ¶
set_initial_omega_div_omega_crit ¶
as above, but sets omega/omegacrit `omegacrit` is defined as:
gamma_factor = 1d0  min(L_div_Ledd, 0.9999d0)
omega_crit = sqrt(gamma_factor*s% cgrav(k)*s% m_grav(k)/pow3(s% r(k)))
new_surface_rotation_v = 0 ! (km sec^1) ¶
set_surface_rotation_v = .false. ¶
set_initial_surface_rotation_v = .false. ¶
as above, but sets surface velocity in km/sec
the previous controls are "one shot"  they set omega once and are done. however you might need to set omega for several models in a row in order to give things a chance to adjust to the change. the following controls let you do that.
set_omega_step_limit ¶
if model_number
is <= this, then do set_omega
set_omega_div_omega_crit_step_limit ¶
if model_number
is <= this, then do set_omega_div_omega_crit
set_surf_rotation_v_step_limit ¶
if model_number
is <= this, then do set_surface_rotation_v
set_near_zams_omega_steps ¶
set_near_zams_omega_div_omega_crit_steps ¶
set_near_zams_surface_rotation_v_steps ¶
You might want to start a run at prems but only turn on rotation when near zams
rather than force you to stop the run near zams, change the inlist, and restart.
The following will turn on rotation automatically.
The working definition of "near zams" is
L_nuc_burn_total/L_phot >= Lnuc_div_L_upper_limit
Lnuc_div_L_upper_limit
is in the controls part of the inlist.
The following apply when rotation is off and model satisfies the "near zams" test. Each turns on rotation and sets a step limit
only applies if > 0
set_omega_step_limit = model_number + set_near_zams_omega_steps  1
only applies if > 0
set_omega_div_omega_crit_step_limit =
model_number + set_near_zams_omega_div_omega_crit_steps  1
only applies if > 0
set_surf_rotation_v_step_limit = model_number + set_surf_rotation_v_step_limit  1
num_steps_to_relax_rotation ¶
use num_steps_to_relax_rotation
steps to relax omega to new value
relax_omega_max_yrs_dt ¶
relax_omega_max_yrs_dt
sets a maximum time step used during the relaxation process
< 0 implies MESA chooses the step. Useful number is 1d4 if
num_steps_to_relax_rotation
> ~150
relax_omega ¶
relax_initial_omega ¶
near_zams_relax_omega ¶
if relax_omega
true, relax to value of new_omega
. applies when do ./rn or ./re
relax_initial_omega
only applies at start of run, not for restarts.
near_zams_relax
+omega applies when "near zams".
The working definition of "near zams" is
L_nuc_burn_total/L_phot >= Lnuc_div_L_upper_limit
Lnuc_div_L_upper_limit
is in the controls part of the inlist.
relax_omega_div_omega_crit ¶
relax_initial_omega_div_omega_crit ¶
near_zams_relax_omega_div_omega_crit ¶
as above for relax_omega
, but for omega
/omega_crit
relax_surface_rotation_v ¶
relax_initial_surface_rotation_v ¶
near_zams_relax_initial_surface_rotation_v ¶
as above for relax_omega
, but for surface speed
relax_core ¶
relax_initial_core ¶
new_core_mass ¶
dlg_core_mass_per_step ¶
relax_core_years_for_dt ¶
core_avg_rho ¶
core_avg_eps ¶
controls for nonzero center M (mass), R (radius), L (luminoisty)
(e.g., to model neutron star envelope or rocky core planet)
new_core_mass
in Msun units.
If you have convergence problems,
you'll need to reduce the mass/step dlg_core_mass_per_step
and timestep relax_core_years_for_dt
values.
core_avg_rho
in g/cm^3 and core_avg_eps
in ergs/g/sec are just examples.
Adjust them to values appropriate for your application.
relax_M_center ¶
relax_initial_M_center ¶
relax_M_center_dt ¶
Like relax_mass_scale
, but all change in mass goes into M_center
.
NOTE: new_mass
is new total mass for star, not the new M_center
value.
uses dlgm_per_step
in same way as relax_mass_scale
.
relax_M_center_dt
in seconds
Example: If you want to end up with total mass = 1.4 and M_center
= 1.3,
start with star_mass
= total  center = 0.1 = mass exterior to center.
Then relax_M_center
with new_mass
= 1.4.
That will give a new total mass of 1.4 by changing M_center
.
The mass exterior to the center will stay = 0.1,
so the final M_center
will be 1.3.
relax_R_center ¶
relax_initial_R_center ¶
new_R_center ¶
dlgR_per_step ¶
relax_R_center_dt ¶
as above for the mass, but for the radius.
new_R_center
in cm.
relax_R_center_dt
in seconds.
set_v_center ¶
set_initial_v_center ¶
relax_v_center ¶
relax_initial_v_center ¶
new_v_center ¶
dv_per_step ¶
relax_v_center_dt ¶
new_v_center
in cm/s.
relax_v_center_dt
in seconds.
set_L_center ¶
set_initial_L_center ¶
relax_L_center ¶
relax_initial_L_center ¶
new_L_center ¶
dlgL_per_step ¶
relax_L_center_dt ¶
as above for the mass, but for the luminosity.
new_L_center
in erg/sec.
relax_L_center_dt
in seconds.
remove_initial_center_at_cell_k ¶
remove_initial_center_by_temperature ¶
remove_initial_center_by_mass_fraction_q ¶
remove_initial_center_by_delta_mass_gm ¶
remove_initial_center_by_delta_mass_msun ¶
remove_initial_center_by_mass_gm ¶
remove_initial_center_by_mass_msun ¶
remove_initial_center_by_radius_cm ¶
remove_initial_center_by_radius_Rsun ¶
remove_initial_center_by_si28 ¶
remove_initial_center_by_ye ¶
remove_initial_center_by_infall_kms ¶
remove_initial_center_by_infall_kms ¶
allows the core to be removed. ignored if <= 0 value for si28 is mass fraction at which to make mass cut i.e. cut at first location going inward where mass fraction of si28 >= this limit value for ye is electron per baryon number for cut value for infall_kms is infall speed in km per sec to make the cut
remove_center_at_cell_k ¶
remove_center_by_temperature ¶
remove_center_by_mass_fraction_q ¶
remove_center_by_delta_mass_gm ¶
remove_center_by_delta_mass_Msun ¶
remove_center_by_mass_gm ¶
remove_center_by_mass_Msun ¶
remove_center_by_radius_cm ¶
remove_center_by_radius_Rsun ¶
remove_center_by_si28 ¶
remove_center_by_ye ¶
remove_center_by_infall_kms ¶
allows the core to be removed. ignored if <= 0
remove_initial_center_at_inner_max_v ¶
remove_center_at_inner_max_v ¶
remove_initial_surface_at_cell_k ¶
remove_initial_surface_by_optical_depth ¶
remove_initial_surface_by_temperature ¶
remove_initial_surface_by_density ¶
remove_initial_surface_by_pressure ¶
remove_initial_surface_by_mass_fraction_q ¶
remove_initial_surface_by_mass_gm ¶
remove_initial_surface_by_mass_msun ¶
remove_initial_surface_by_radius_cm ¶
remove_initial_surface_by_radius_Rsun ¶
allows the outer envelope to be removed. ignored if <= 0
remove_surface_at_cell_k ¶
remove_surface_by_optical_depth ¶
remove_surface_by_temperature ¶
remove_surface_by_density ¶
remove_surface_by_pressure ¶
remove_surface_by_mass_fraction_q ¶
remove_surface_by_mass_gm ¶
remove_surface_by_mass_Msun ¶
remove_surface_by_radius_cm ¶
remove_surface_by_radius_Rsun ¶
allows the outer envelope to be removed. ignored if <= 0
repeat_remove_surface_for_each_step ¶
if true, then at each step removes surface as specified. e.g., if doing remove at specific density and expansion has lowered the surface density to below the limit, then remove surface mass down to the limit.
report_mass_not_fe56 ¶
reports mass that is not fe56
report_cell_for_xm ¶
in grams. if > 0 then write smallest k s.t.
mass in cells 1 to k is >= report_cell_for_xm
set_to_xa_for_accretion ¶
set_initial_to_xa_for_accretion ¶
set_nzlo ¶
set_nzhi ¶
changes the composition to the mass fractions xa_for_accretion
.
useful for creating a model with specific uniform composition.
set_to_xa_for_accretion
true, means do when start or restart.
set_initial_to_xa_for_accretion
true, means do for start but not for restarts.
nzlo and nzhi determine the range of cells that will be changed.
nzlo < 0 means change out to surface.
nzhi < 0 or nzhi > number of cells means change to center.
eos controls ¶
eos_file_prefix ¶
eosDT_Z1_suffix ¶
eosPT_Z1_suffix ¶
Modify this to select a different set of EoS tables.
set_Z_all_HELM ¶
Z_all_HELM ¶
Max Z for using tables instead of switching to HELM.
If set_Z_all_HELM
false, just use the eos default.
Otherwise switch to HELM for Z > Z_all_HELM
.
set_HELM_SCVH_lgTs ¶
logT_low_all_HELM ¶
logT_low_all_SCVH ¶
Transition temperature zone for SCVH to HELM at low T.
If set_HELM_SCVH_lgTs
true, change limits.

logT_low_all_HELM
: use HELM for lgT <= this 
logT_low_all_SCVH
: use SCVH for lgT >= this
set_HELM_OPAL_lgTs ¶
logT_all_HELM ¶
logT_all_OPAL ¶
Transition temperature zone for OPAL to HELM at high T.
If set_HELM_OPAL_lgTs
true, change limits.

logT_all_HELM
: use HELM for lgT >= this 
logT_all_OPAL
: use OPAL/SCVH for lgT <= this
set_logRho_OPAL_SCVH_limits ¶
logRho1_OPAL_SCVH_limit ¶
logRho2_OPAL_SCVH_limit ¶
Transition density zone for OPAL/SCVH to HELM/PC.
If set_logRho_OPAL_SCVH_limits
true, change limits.

logRho1_OPAL_SCVH_limit
: don't useOPAL_SCVH
for logRho > this 
logRho2_OPAL_SCVH_limit
: fullOPAL_SCVH
okay for logRho < this
Blend OPAL/SCVH with HELM/PC for logRho between these.
set_eos_PC_parameters ¶
mass_fraction_limit_for_PC ¶
logRho1_PC_limit ¶
logRho2_PC_limit ¶
log_Gamma_all_HELM ¶
log_Gamma_all_PC ¶
PC_min_Z ¶
Change HELM PC limits.
If set_eos_PC_parameters
true, change limits.

mass_fraction_limit_for_PC
: skips species if abundance < this 
logRho1_PC_limit
: use pure PC for logRho > this 
logRho2_PC_limit
: don't use PC for logRho < this (>= 2.8 or so because of PPT) 
log_Gamma_all_HELM
: HELM forlog_Gamma
<= this (1.60206 = log10(40)) 
log_Gamma_all_PC
: PC forlog_Gamma
>= this (1.90309 = log10(80)) 
PC_min_Z
: don't use PC for Z < this
set_other_HELM_flags ¶
HELM_include_radiation ¶
HELM_always_skip_elec_pos ¶
HELM_always_include_elec_pos ¶
Flags for controlling parts of HELM. If HELM skips electronpositron, it also skips coulomb. Together, this reduces HELM to doing an ideal gas eos. If you'd like to see what happens using an ideal gas for all cases, then set these controls:
set_other_HELM_flags = .true.
HELM_always_skip_elec_pos = .true.
HELM_always_include_elec_pos = .false.
HELM_include_radiation = .true. or .false. depending on what you want
set_Z_all_HELM = .true.
Z_all_HELM = 0.1 ! switch to HELM for Z > this
PC_min_Z = 1.1 ! don't use PC for Z < this
nuclear reactions ¶
change_net ¶
new_net_name ¶
change_initial_net ¶
For switching reaction networks.
new_net_name
only used if change_net
if true.
adjust_abundances_for_new_isos ¶
If false, new isos initial abundance set to 0.
set_rates_preference ¶
new_rates_preference ¶
 1 = NACRE rates
 2 = jina reaclib rates
set_rate_c12ag ¶
Empty string means ignore this control. Can be one of:
 'NACRE'
 'jina reaclib'
 'Kunz'
 'CF88'
(note: our CF88 is larger than the original by a factor of 1.7)
set_rate_n14pg ¶
Empty string means ignore this control. Can be one of
 'NACRE'
 'jina reaclib'
 'CF88'
set_rate_3a ¶
Empty string means ignore this control. Can be one of
 'NACRE'
 'jina reaclib'
 'CF88'
 'FL87'
FL87 is Fushiki and Lamb, Apj, 317, 368388, 1987 and includes both strong screening and pyconuclear
set_rate_1212 ¶
Empty string means ignore this control. Can be one of:

'CF88_basic_1212'
: the single rate approximation from CF88. 
'CF88_multi_1212'
: combines the rates for the n, p, and a channels. c12(c12,n)mg23, c12(c12,p)na23, and c12(c12,a)ne20 and uses neutron branching from dayras, switkowski, and woosley, 1976. 
'G05'
: based on Gasques, et al. Phys Review C, 72, 025806 (2005)
use can also provide tabulated rates for any of the reactions
tabulated rates automatically take priority over any other options for the reaction.
e.g., if you provide a rate table for c12ag, those rates will be used
if preference to the other options given in set_rate_c12ag
.
to provide tabulated rates: create a file of (T8, rate) pairs as in data/rates_data/rates you can give as many pairs as you want with any spacing in T8 add the file name to reactions.list you can have a local copy of reactions.list as well as rates directory
num_special_rate_factors ¶
reaction_for_special_factor ¶
special_rate_factor ¶
For using other special rate factors.
num_special_rate_factors
must be <= max_num_special_rate_factors
.
auto_extend_net ¶
h_he_net ¶
co_net ¶
adv_net ¶
If auto_extend_net
true, then automatically extend the net as needed
from h_he_net
to co_net
and then to adv_net
.
enable_adaptive_network ¶
min_x_for_keep ¶
min_x_for_n ¶
min_x_for_add ¶
max_Z_for_add ¶
max_N_for_add ¶
max_A_for_add ¶
Hegerstyle adaptive network (Woosley, Heger, et al, ApJSS, 151:75102, 2004).
If enable_adaptive_network
is true, then
at each step, the system calculates a new set of isos according to the following rules:
for each iso in the current net:
let Z = number of protons in the iso and N = number of neutrons.
let x = max mass fraction for the iso in any cell in the model.
if x >= `min_x_for_keep` then include the iso in new net.
if x >= `min_x_for_n` then include following related isos:
(Z,N+1) (Z,N1)  add or remove neutron
if x >= min_x_for_add then include following related isos:
(Z+1,N) (Z1,N)  add or remove proton
(Z+2,N+2) (Z2,N2)  add or remove alpha
(Z+2,N+1) (Z2,N1)  exchange neutron/alpha
(Z+1,N+2) (Z1,N2)  exchange proton/alpha
(Z+1,N1) (Z1,N+1)  exchange proton/neutron
(Z+4,N+4) (Z+3,N+4)  extend alpha chain
Isos in the previous net can be dropped if they have x < min_x_for_keep
and
no other iso in the previous net causes them to be included in the new net.
The new net has the included isos and all relevant reactions.
The definition for the new net is saved to a text file in your local "nets" directory.
The file name is composed of the model number and the number of species.
net_reaction_filename ¶
Looks first in current directory, then in mesa_data_dir/net_data
.
jina_reaclib_filename ¶
Empty string means use current standard version.
Else give name of file in directory mesa/data/rates_data
,
e.g., jina_reaclib_results_20130213default2
(which is an 18.8 MB file of rates data).
To use previous version, set to jina_reaclib_results05301331
.
jina_reaclib_min_T9 ¶
set jina reaclib rates to zero for T9 <= this. if this control is <= 0, then use the standard default from rates. need <= 3d3 for prems li7 burning if change this, must remove old cached rates from data/rates_data/cache
rate_tables_dir ¶
It will look for a local directory of this name first.
If doesn't find one, it will use the one in data/rates_data
.
rate_cache_suffix ¶
If this not empty, then use it when creating names
for cache files for reaction rates from rate_tables_dir
.
If empty, the suffix will be '0'.
T9_weaklib_full_off ¶
T9_weaklib_full_on ¶
Weak rates blend weaklib and reaclib according to temperature.
These can be used to overwrite the defaults in mesa/rates/public/rates_def

T9_weaklib_full_off
: use pure reaclib for T <= this (ignore if <= 0) 
T9_weaklib_full_on
: use pure weaklib for T >= this (ignore if <= 0)
weaklib_blend_hi_Z ¶
Ignore if <= 0. Blend for intermediate temperatures. For high Z elements, switch to reaclib at temp where no longer fully ionized. As rough approximation for this, we switch at Fe to higher values of T9.
T9_weaklib_full_off_hi_Z ¶
T9_weaklib_full_on_hi_Z ¶
If input element has Z >= weaklib_blend_hi_Z
, then use the following T9 limits:

T9_weaklib_full_off_hi_Z
: use pure reaclib for T <= this (ignore if <= 0) 
T9_weaklib_full_on_hi_Z
: use pure weaklib for T >= this (ignore if <= 0)
controls for special weak rates ¶
use_special_weak_rates ¶
If this is true, calculate special weak rates using the approach described in Schwab et al. (2015).
special_weak_states_file ¶
File specifiying which states to include
Provide the lowlying energy levels of a given nucleus. These are needed to calcuate the partition function and to indicate which states have allowed transitions. Each isotope should have an entry of the form
<name> <nlevels>
<E_1> <J_1>
...
<E_n> <J_n>
where E = energy, J = spin.
special_weak_transitions_file ¶
File specifying to include
These are the transitions for electron capture / beta decay reactions that should be used.
Each reaction should have and entry of the form
<iso1> <iso2> <ntrans>
<si_1> <sf_1> <logft_1>
...
<si_n> <sf_n> <logft_n>
where si / sf are the nth parent / daughter state, counting in the order that you specified in the states file. logft is the comparative halflife of that transition.
ion_coulomb_corrections ¶
select which expression for the ion chemical potential to use to calculate the energy shift associated with changing ion charge
 'none': no corrections
 'DGC1973': Dewitt, Graboske, & Cooper, M. S. 1973, ApJ, 181, 439
 'I1993': Ichimaru, 1993, Reviews of Modern Physics, 65, 255
 'PCR2009': Potekhin, Chabrier, & Rogers, 2009, Phys. Rev. E, 79, 016411
electron_coulomb_corrections ¶
select which expression to use to calculate the shift in the electron chemical potential at the location of the nucleus
 'none': no corrections
 'ThomasFermi': ThomasFermi theory
 'Itoh': Itoh et al., 2002, ApJ, 579, 380
kap controls ¶
kappa_file_prefix ¶
Modify this to select a different set of opacity tables. alternatives:
'gn93'
'gs98'
'a09'
'OP_gs98'
'OP_a09'
kappa_lowT_prefix ¶
For lower temperatures. alternatives:
'lowT_Freedman11'
'lowT_fa05_gs98'
'lowT_fa05_gn93'
'lowT_fa05_a09p'
'lowT_af94_gn93'
kappa_blend_logT_upper_bdy ¶
<= 0 means use default. Actual upper boundary will be min of this and max logT for lowT tables. it is probably a good idea to keep the blend away from H ionization. logT upper of about 3.9 or a bit less will do that. older version had default of 4.1 for kappablendlogTupperbdy.
kappa_blend_logT_lower_bdy ¶
<= 0 means use default Actual lower boundary will be max of this and min logT for highT tables. typical logTmin for tables is 3.75. check your tables to be sure. older version had default of 4.0 for kappablendlogTlower_bdy.
kappa_type2_logT_lower_bdy ¶
<= 0 means use default Only use type2 opacities at temperatures above this limit.
kappa_CO_prefix ¶
For C/O enhanced (Type 2 OPAL opacities). alternatives:
 'gn93_co'
 'a09_co'
ionization controls ¶
ionization_file_prefix ¶
ionization_Z1_suffix ¶
Prefix and suffix of ionization files.
"extra" parameters ¶
For use by your run_star_extras
routines.
extras_lipar ¶
extras_ipar ¶
extras_lipar
number of integer parameters in extras_ipar
.
Must be <= max_extras_params
(defined in run_star_support
)
extras_lrpar ¶
extras_rpar ¶
extras_lrpar
number of real(dp) parameters in extras_rpar
.
Must be <= max_extras_params
(defined in run_star_support
)
extras_lcpar ¶
extras_cpar ¶
extras_lcpar
number of string parameters in extras_cpar
.
Must be <= max_extras_params
(defined in run_star_support
).
extras_llpar ¶
extras_lpar ¶
extras_llpar
number of logical parameters in extras_lpar
.
Must be <= max_extras_params
(defined in run_star_support
).
Color Files ¶
Filenames for each bolometric correction (BC) table to load ¶
Must set the number of files to load
Must be <= max_num_color_files
(defined in colors_def.f90
).
Must set the number of BC's in each file (May be different for each file).
Must be <= max_num_bcs_per_file
(defined in colors_def.f90
).
Files should be structed as:
Teff logg Feh filter1 filter1 ....
where filter1 is the name of the filter (No spaces allowed in name)
Names must be unique accross all files loaded
For a filter named filter1 history output will be bcfilter1 for bolometric corrections
and absmag_filter1 for absolute magnitude
Default file from Lejeune, Cuisinier, Buser (1998) A&AS 130, 6575 Can be replaced if need be.
misc ¶
first_model_for_timing ¶
To get a breakdown of where the time is going
set first_model_for_timing
to determine when the clocks start.
At the end of the run, there will be some output to the terminal showing times.
set_max_dt_to_frac_lifetime ¶
max_frac_of_lifetime_per_step ¶
limit max timestep.
If true, set max_timestep
and max_years_for_timestep
according to expected lifetime as a function of mass.
Use the Iben & Laughlin (1989) formula to estimate lifetime.
Multiply that times the value of max_frac_of_lifetime_per_step
to get max_timestep
.
astero_just_call_my_extras_check_model ¶
Communications flag for astero and star.
include other inlists ¶
You can split your star_job
inlist into pieces using the following controls.
BTW: it works recursively, so the extras can read extras too.
read_extra_star_job_inlist{1..5} ¶
extra_star_job_inlist{1..5}_name ¶
if read_extra_star_job_inlist{1..5}
is true,
then read &star_job from this namelist file
private or experimental ¶
warn_run_star_extras ¶
Due to changing the runstarsextra functions to hooks, we break peoples runstarsextra files. This flag sets a warning message and stops the MESA run until it is set to .false., if people This way people will hopefully not be confused as to why their runstarsextra functions are not being called.