We need to address a few questionable choices pertaining to h2dustS and h2dustC. I enumerate these issues below:
- first of all
h2dustS is a terrible name. - The current description within initialize_rates (and attached to add_h2dust_S_reaction_rate says that it specifies the H2 formation rate on dust grains with S compositions
- Up until now, I've always assumed that "S" represents the atomic number for Sulfur. While it may be obvious to people who know more about dust chemistry than me (honestly, that's a very low bar) that this must refer to silicate surfaces, it is stil a terrible name because we make extensive use of atomic symbols throughout the codebase (e.g. some dust grain species are named
MgSiO3_dust, SiM_dust, etc).
- the fact that this is intended for silicates is made clear by the citation attached to the
h2dust_S_rate function: Cazaux & Tielens 2002. The ADS page is here
- we should absolutely adopt a more descriptive name, like
h2dust_silicate or something.
- Next, we need to figure out where the values used in
h2dustC are taken from.
- The definition of
h2dust_C_rate mention cites Cazaux & Tielens 2002, but I can't find any mention of the values (maybe its buried in there? I didn't read it super carefully)
- There's a small chance it could come from this paper https://ui.adsabs.harvard.edu/abs/2004ApJ...604..222C/abstract (it was originally submitted in 2002), but from a quick skim I didn't see any obvious references to the coefficients that the function uses
- We should also rename
h2dustC in a consistent manner with how we rename h2dustS. - Maybe h2dust_carbonaceous?
- For context, it's only used with the
AC_dust species (amorphous carbon). We probably don't want to just call it h2dust_carbon since it isn't use with organic dust grain species (which of course must definitionally be composed of carbon).
- Finally we must address the fact that
h2dustS is used for every grain species except for AC_dust (amorphous carbon). This includes grains that are clearly not silicates.
- as a reminder, the dust grain species include
MgSiO3_dust (enstatite), AC_dust (amorphous carbon), SiM_dust (metallic silicon), FeM_dust (metallic iron), Mg2SiO4_dust (forsterite), Fe3O4_dust (magnetite), SiO2_dust (silica), MgO_dust (magnesia), FeS_dust (troilite), Al2O3_dust (alumina), ref_org_dust (refractory organics), vol_org_dust (volatile organics), H2O_ice_dust (water ice)
- at the bare minimum, we must very explicitly document this behavior. It's obviously a shortcoming in the dust-chemistry module. Importantly it's something that could change between Grackle versions. We should consider addressing the following questions:
- Is this choice physically motivated or a common convention? (I have a sneaking suspicion that there wasn't an obvious model to use and this is a quick and dirty choice)
- do we have a sense for how "wrong" the choice is? (e.g. will it generally overpredict/underpredict)
- why don't we use the generic
h2dust rate as a generic fallback for non-silicate grains instead of using h2dustS?
We need to address a few questionable choices pertaining to h2dustS and h2dustC. I enumerate these issues below:
h2dustSis a terrible name. - The current description withininitialize_rates(and attached toadd_h2dust_S_reaction_ratesays that it specifies the H2 formation rate on dust grains with S compositionsMgSiO3_dust,SiM_dust, etc).h2dust_S_ratefunction: Cazaux & Tielens 2002. The ADS page is hereh2dust_silicateor something.h2dustCare taken from.h2dust_C_ratemention cites Cazaux & Tielens 2002, but I can't find any mention of the values (maybe its buried in there? I didn't read it super carefully)h2dustCin a consistent manner with how we renameh2dustS. - Maybeh2dust_carbonaceous?AC_dustspecies (amorphous carbon). We probably don't want to just call ith2dust_carbonsince it isn't use with organic dust grain species (which of course must definitionally be composed of carbon).h2dustSis used for every grain species except forAC_dust(amorphous carbon). This includes grains that are clearly not silicates.MgSiO3_dust(enstatite),AC_dust(amorphous carbon),SiM_dust(metallic silicon),FeM_dust(metallic iron),Mg2SiO4_dust(forsterite),Fe3O4_dust(magnetite),SiO2_dust(silica),MgO_dust(magnesia),FeS_dust(troilite),Al2O3_dust(alumina),ref_org_dust(refractory organics),vol_org_dust(volatile organics),H2O_ice_dust(water ice)h2dustrate as a generic fallback for non-silicate grains instead of usingh2dustS?