Source code for pynbody.analysis.hifrac
"""
Deprecated module for calculating HI fractions with optional self-shielding.
New code should use :mod:`pynbody.analysis.ionfrac` instead.
"""
[docs]
def calculate(sim, ion='hi', selfshield=False) :
"""Deprecated method for calculating HI fractions with optional self-shielding.
This method is retained for backward compatibility with pynbody v1 and uses a table of HI fractions. Unlike
:meth:`pynbody.analysis.ionfrac.calculate`, this method returns HI as a fraction of *total* gas, meaning the
peak value is equal to the mass fraction of hydrogen in the gas.
"""
from . import ionfrac
if selfshield:
table = ionfrac.use_custom_ion_table('v1_duffy_shielded')
else:
table = ionfrac.use_custom_ion_table('v1_duffy')
with table:
result_array = ionfrac.calculate(sim, ion)
# convert to fraction of total gas, not just of hydrogen
result_array *= sim.gas['hydrogen']
return result_array