[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