eos module controls
The MESA/eos parameters are given default values here. The actual values as modified by your inlist are stored in the EoS_General_Info data structure. They can be accessed by code at runtime using the eos_handle to get a pointer to it.
PC EOS controls
use_PC
Select whether to use the PC eos.
use_PC = .false.
mass_fraction_limit_for_PC
Only consider isotopes in the EOS if their mass fraction is above this value.
mass_fraction_limit_for_PC = 1d-4
logRho1_PC_limit
logRho2_PC_limit
Blend in logRho from no PC for below logRho1_PC_limit
to all PC above logRho2_PC_limit
.
logRho1_PC_limit = 2.999d0 ! keep < logRho2_OPAL_SCVH_limit
logRho2_PC_limit = 2.8d0 ! must be > 2.8 or so to avoid NaN's from PC
logT1_PC_limit
logT2_PC_limit
Blend in logT from all PC for below logT1_PC_limit
to no PC above logT2_PC_limit
.
Unused by default. See subsequent controls.
logT1_PC_limit = 7.6d0 ! okay for pure PC for logT < this (like logT_all_OPAL)
logT2_PC_limit = 7.7d0 ! don't use PC for logT > this (like logT_all_HELM)
PC_use_Gamma_limit_instead_of_T
log_Gamma_e_all_HELM
log_Gamma_e_all_PC
If PC_use_Gamma_limit_instead_of_T
is true, then these
controls are active instead of logT1_PC_limit
and
logT2_PC_limit
. Here, \(\Gamma_e\) is the electron
Coulomb coupling parameter. Blend in log_Gamma_e from no PC for
below log_Gamma_e_all_HELM
to all PC above
log_Gamma_e_all_PC
.
PC_use_Gamma_limit_instead_of_T = .true.
log_Gamma_e_all_HELM = -1.8d0
log_Gamma_e_all_PC = -1.7d0
PC_Gamma_start_crystal
PC_Gamma_full_crystal
PC crystallization boundaries. Here, \(\Gamma\) is the mean ion Coulomb coupling parameter.
PC_Gamma_start_crystal = 170d0
PC_Gamma_full_crystal = 180d0
FreeEOS controls
use_FreeEOS
Select whether to use FreeEOS.
use_FreeEOS = .true.
logQ_max_FreeEOS_hi = 5.6d0
logQ_max_FreeEOS_lo = 5.5d0
logQ_min_FreeEOS_hi = -9.9d0
logQ_min_FreeEOS_lo = -10.0d0
logRho_min_FreeEOS_hi = -18.0d0
logRho_min_FreeEOS_lo = -18.1d0
logRho_max_FreeEOS_hi = 10.1d0
logRho_max_FreeEOS_lo = 10.0d0
logT_min_FreeEOS_hi = 3.1d0
logT_min_FreeEOS_lo = 3.0d0
logT_max_FreeEOS_hi = 8.2d0 ! FreeEOS tabulations go up to here
logT_max_FreeEOS_lo = 8.1d0
logQ_cut_FreeEOS_lo_Z_max = 0.3d0
logQ_cut_lo_Z_FreeEOS_hi = 0.5d0
logQ_cut_lo_Z_FreeEOS_lo = -0.5d0
logQ_cut_hi_Z_FreeEOS_hi = -0.5d0 ! for wd_c_core_ignition
logQ_cut_hi_Z_FreeEOS_lo = -1.5d0
logRho_cut_FreeEOS_hi = -5.5d0 ! for make_zams_low_mass, make_brown_dwarf
logRho_cut_FreeEOS_lo = -6.5d0
logT_cut_FreeEOS_hi = 6.5d0 ! for inlist_cool in make_o_ne_wd
logT_cut_FreeEOS_lo = 6.4d0
suffix_for_FreeEOS_Z(:) = ''
suffix_for_FreeEOS_Z(13) = '_CO' ! Z = 0.8
suffix_for_FreeEOS_Z(14) = '_CO' ! Z = 0.9
suffix_for_FreeEOS_Z(15) = '_CO' ! Z = 1.0
OPAL/SCVH controls
use_OPAL_SCVH
Select whether to use the OPAL/SCVH EOS. These two EOSes are pre-blended with each other.
use_OPAL_SCVH = .true.
logT_low_all_HELM = 2.2d0 ! HELM for lgT <= this
logT_low_all_SCVH = 2.3d0 ! SCVH for lgT >= this
logT_all_OPAL = 7.5d0 ! OPAL for lgT <= this
logT_all_HELM = 7.6d0 ! HELM for lgT >= this
logRho1_OPAL_SCVH_limit = 3.50d0 ! must be <= 3.7
logRho2_OPAL_SCVH_limit = 3.48d0 ! must be < logRho1_OPAL_SCVH_limit
logRho_min_OPAL_SCVH_limit = -14.299d0
logQ_max_OPAL_SCVH = 5.3d0
logQ_min_OPAL_SCVH = -8.0d0
Z_all_OPAL = 0.035d0
Z_all_HELM = 0.040d0
HELM controls
HELM is our backstop EOS. Therefore, there is no option that completely deactivates HELM.
coulomb_temp_cut_HELM = -1d99
coulomb_den_cut_HELM = -1d99
include_radiation = .true.
include_elec_pos = .true.
Skye controls
use_Skye
Select whether to use the Skye EOS.
use_Skye = .true.
mass_fraction_limit_for_Skye
Only consider isotopes in the EOS if their mass fraction is above this value.
mass_fraction_limit_for_Skye = 1d-4
Skye_use_ion_offsets
If true, set neutral ground state as zero point for each ion species energy. If false, zero point assumes fully ionized.
Skye_use_ion_offsets = .true.
Skye Gamma Limits
The one-component plasma fits in Skye are only valid in certain ranges of the ion interaction parameter Gamma. Beyond these, Skye employs thermodynamic extrapolation. The default limits are set to the edges of the data that went into the fits. Only expand these ranges (lower min, raise max) if you have reason to believe the OCP fits are valid in the expanded range.
Skye_min_gamma_for_solid = 170
Skye_max_gamma_for_liquid = 200
Skye Solid Mixing Corrections
Skye computes corrections to the linear mixing rule in the solid phase using the prescription from either
Ogata+1993 or Potekhin & Chabrier 2013. The former provides better agreement with calculations done at
typical white dwarf charge ratios (R = Z2 / Z1 ~ 4/3 for C/O), see e.g. Blouin+2020. The latter gives better
agreement with analytic expectations at large charge ratios R > 2.
Select between these choices by specifying either "Ogata"
or "PC"
.
Skye_solid_mixing_rule = "PC"
Skye Blending
replace the polygon blend with simple Rho/T blends
use_simple_Skye_blends = .false.
logRho_min_for_any_Skye = 2.3
logRho_min_for_all_Skye = 2.4
logT_min_for_any_Skye = 7.2
logT_min_for_all_Skye = 7.4
CMS controls
use_CMS
Select whether to use the CMS EOS. (EXPERIMENTAL)
use_CMS = .false.
CMS_use_fixed_composition
Use a single table for a fixed composition. Don’t interpolate in H mass fraction.
CMS_use_fixed_composition = .false.
CMS_fixed_composition_index
Integer with valid values from 0 to 10 inclusive corresponding to the table to use in the fixed composition case. A value of 0 corresponds to the pure Helium table while a value of 10 corresponds the the pure Hydrogen table.
CMS_fixed_composition_index = -1
max_Z_for_any_CMS = -1 max_Z_for_all_CMS = -1 logQ_max_for_any_CMS = -1 logQ_max_for_all_CMS = -1 logQ_min_for_any_CMS = -1 logQ_min_for_all_CMS = -1 logRho_max_for_all_CMS = -1 logRho_max_for_any_CMS = -1 logRho_min_for_all_CMS = -1 logRho_min_for_any_CMS = -1 logT_max_for_all_CMS = -1 logT_max_for_any_CMS = -1 logT_min_for_all_CMS = -1 logT_min_for_any_CMS = -1 logT_max_for_all_CMS_pure_He = -1 logT_max_for_any_CMS_pure_He = -1
Miscellaneous controls
eosDT_use_linear_interp_for_X = .false.
eosDT_use_linear_interp_to_HELM = .false.
eosDT_file_prefix = 'mesa'
okay_to_convert_ierr_to_skip = .true.
tiny_fuzz = 1d-6
Other EOS controls
use_other_eos_component
Select whether to use the other (i.e., user-provided) EOS component.
If true, the user must provide the routines
other_eos_component
and other_eos_frac
.
See eos/other/other_eos.f90
for more details.
use_other_eos_component = .false.
use_other_eos_results
Select whether to call the other_eos_results hook. This provides
an opportunity for the user to modify the results from the EOS right
before they are returned. If true, the user must provide the routine
other_eos_results
.
See eos/other/other_eos.f90
for more details.
use_other_eos_results = .false.
User controls
These are arrays of size(10) that can be used to pass in custom information to the eos
eos_ctrl(:) = 0d0
eos_integer_ctrl(:) = 0
eos_logical_ctrl(:) = .false.
eos_character_ctrl(:) = ''
Debugging controls
dbg = .false.
logT_lo = -1d99
logT_hi = 1d99
logRho_lo = -1d99
logRho_hi = 1d99
X_lo = -1d99
X_hi = 1d99
Z_lo = -1d99
Z_hi = 1d99
Extra inlist controls
One can split an eos inlist into pieces using the following parameters. It works recursively, so the extras can read extras too.
read_extra_eos_inlist(1..5)
extra_eos_inlist_name(1..5)
If read_extra_eos_inlist(i)
is true, then read &eos from the file extra_eos_inlist_name(i)
.
read_extra_eos_inlist(:) = .false.
extra_eos_inlist_name(:) = 'undefined'