.. _physics-chemicalReactionRate: Chemical Reaction Rates ======================= Class providing rates for chemical reactions among gas-phase species (e.g.\ H\ :math:`_2` formation and photodissociation, HD, HeH\ :math:`^+`). Given local conditions---column density for self-shielding, gas temperature, chemical abundances, a clumping factor, and the ambient radiation field---each implementation returns the net reaction rates (in consistent volumetric units) for each tracked chemical species. These rates drive the non-equilibrium evolution of the chemical network and are particularly relevant for modeling the formation of molecular gas and cooling in the early universe and in low-metallicity :term:`IGM` gas. **Default implementation:** ``chemicalReactionRateZero`` Methods ------- ``rates`` → ``void`` Return the collisional excitation cooling rate , in units of J/m\ :math:`^3`/s, for ion of given ``atomicNumber`` and ``electronNumber`` at temperature ``T`` (in Kelvin). * ``double precision , intent(in ) :: lengthColumn , temperature`` * ``type (chemicalAbundances ), intent(in ) :: chemicalDensity`` * ``double precision , intent(in ) :: factorClumping`` * ``class (radiationFieldClass), intent(inout) :: radiation`` * ``type (chemicalAbundances ), intent(inout) :: chemicalRates`` * ``type (treeNode ), intent(inout) :: node`` .. _physics-chemicalReactionRateHydrogenNetwork: ``chemicalReactionRateHydrogenNetwork`` --------------------------------------- A chemical reaction rate class that computes rates using the network of reactions and fitting functions from :cite:t:`abel_modeling_1997` and :cite:t:`tegmark_small_1997`. The parameter ``[fast]`` controls the approximations made. If set ``true`` then H\ :math:`^-` is assumed to be at equilibrium abundance, H\ :math:`_2^+` reactions are ignored and other slow reactions are ignored (see :cite:author:`abel_modeling_1997` :cite:year:`abel_modeling_1997`). **Methods** * ``rateH_Electron_to_Hplus_2Electron`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H} + \hbox{e}^- \rightarrow \hbox{H}^+ + 2\hbox{e}^-`. * ``rateHplus_Electron_to_H_Photon`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H}^+ + \hbox{e}^- \rightarrow \hbox{H} + \gamma`. * ``rateH_Electron_to_Hminus_Photon`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H} + \hbox{e}^- \rightarrow \hbox{H}^- + \gamma`. * ``rateH_Hminus_to_H2_Electron`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H} + \hbox{H}^- \rightarrow \hbox{H}_2 + \hbox{e}^-`. * ``rateH_Hplus_to_H2plus_Photon`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H} + \hbox{H}^+ \rightarrow \hbox{H}_2^+ + \gamma`. * ``rateH2plus_H_to_H2_Hplus`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H}_2^+ + \hbox{H} \rightarrow \hbox{H}_2 + \hbox{H}^+`. * ``rateH2_Hplus_to_H2plus_H`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H}_2 + \hbox{H}^+ \rightarrow \hbox{H}_2^+ + \hbox{H}`. * ``rateH2_Electron_to_2H_Electron`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H}_2 + \hbox{e}^- \rightarrow 2\hbox{H} + \hbox{e}^-`. * ``rateH2_H_to_3H`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H}_2 + \hbox{H} \rightarrow 3\hbox{H}`. * ``rateHminus_Electron_to_H_2Electron`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H}_2^+ + \hbox{H} \rightarrow \hbox{H}_2 + \hbox{H}^+`. * ``rateHminus_H_to_2H_Electron`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H}^- + \hbox{H} \rightarrow 2 \hbox{H} + \hbox{e}^-`. * ``rateHminus_Hplus_to_2H`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H}_2^+ + \hbox{H} \rightarrow \hbox{H}_2 + \hbox{H}^+`. * ``rateHminus_Hplus_to_H2plus_Electron`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H}^- + \hbox{H}^+ \rightarrow \hbox{H}_2^+ + \hbox{e}^-`. * ``rateH2plus_Electron_to_2H`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H}_2^+ + \hbox{e}^- \rightarrow 2\hbox{H}`. * ``rateH2plus_Hminus_to_H2_H`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H}_2^+ + \hbox{H}^- \rightarrow \hbox{H}_2 + \hbox{H}`. * ``rateH_Gamma_to_Hplus_Electron`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H} + \gamma \rightarrow \hbox{H}^+ + \hbox{e}^-`. * ``rateHminus_Gamma_to_H_Electron`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H}^- + \gamma \rightarrow \hbox{H} + \hbox{e}^-`. * ``rateH2_Gamma_to_H2plus_Electron`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H}_2 + \gamma \rightarrow \hbox{H}_2^+ + \hbox{e}^-`. * ``rateH2plus_Gamma_to_H_Hplus`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H}_2^+ + \gamma \rightarrow \hbox{H} + \hbox{H}^+`. * ``rateH2plus_Gamma_to_2Hplus_Electron`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H}_2^+ + \gamma \rightarrow 2\hbox{H}^+ + \hbox{e}^-`. * ``rateH2_Gamma_to_H2star_to_2H`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H}_2^+ + \gamma \rightarrow 2\hbox{H}^+ + \hbox{e}^-`. * ``rateH2_Gamma_to_2H`` — Computes the rate (in units of cm\ :math:`^{-3}` s\ :math:`^{-1}`) for the reaction :math:`\hbox{H}_2 + \gamma \rightarrow 2\hbox{H}`. **Parameters** * ``[fast]`` (default ``.true.``) — Specifies whether or not to use simplifying assumptions to speed the hydrogen network calculation. If true, H\ :math:`^-` is assumed to be at equilibrium abundance, H\ :math:`_2^+` reactions are ignored and other slow reactions are ignored (see :cite:author:`abel_modeling_1997` :cite:year:`abel_modeling_1997`). * ``[includeSelfShielding]`` (default ``.false.``) — If true, include estimates of self-shielding when computing reaction rates involving the radiation field. .. _physics-chemicalReactionRateZero: ``chemicalReactionRateZero`` ---------------------------- A null implementation of the chemical reaction rate class that returns zero rates for all reactions and all chemical species. Useful for disabling chemistry while testing other physical processes or in models that do not require chemical evolution. **(Default implementation)**