[Mesa-users] lowT opacities---preprocessor step blends Freedman tables and Ferguson tables
Emily Sandford
sandford at strw.leidenuniv.nl
Wed May 27 10:26:24 UTC 2026
Hello all,
Back with more questions about the lowT opacity tables! Based on the kap
module documentation, I had assumed that the Freedman tables and the
Ferguson tables were two separate options, but investigating further, it
appears that the Ferguson tables can be used on their own, but that the
Freedman tables are always blended with the Ferguson tables in the
kap/preprocessor step.
Specifically, in kap/preprocessor/src/kap_support.f:
-if lowT_flag is .true. and Freedman_flag is .false., then the
funciton eval_ferg from kap/preprocessor/src/ferguson.f is called,
returning an opacity from the Ferguson tables, as I would have expected.
-however, if lowT_flag is .true. and Freedman_flag is .true., then
the function get_lowT_blend is called, which returns an opacity from the
Freedman tables for logT <= 3.58, but an opacity from the *Ferguson*
tables for logT >= 3.6. For 3.58 < logT < 3.6, it returns a linear blend
between the Freedman and Ferguson opacities.
The Freedman tables do cover temperatures up to logT = 4.5, so I'm not
sure why this blend is enforced. Additionally, I don't think the blend
is calculated at the right metal mass fraction, because if Freedman_flag
is .true., then ferguson.f reads in the Ferguson table corresponding to
X = 0.7, Z = 0.1 regardless of the user-supplied composition (see the
get_ferg_filename routine in ferguson.f).
I want to use the Freedman tables only, so my plan is to change the
get_lowT_blend call to an eval_freedman call and rerun all the table
preprocessing. I'm happy to pull request my changes if this is another
legitimate problem in the preprocessor scripts, but curious if anyone
can shed some light on the situation.
Thanks,
Emily
More information about the Mesa-users
mailing list