double rec_HRecFast_dxedlna(double xe, double nH, double H, double TM, double TR, double energy_rate) { double RLya, alphaB, four_betaB, C; RLya = 4.662899067555897e15 * H / nH / (1.-xe); alphaB = 1.14 * alphaB_PPB(TM); four_betaB = 3.016103031869581e21 *TR*sqrt(TR) *exp(-0.25*EI/TR) *alphaB; C = (3.*RLya + L2s1s)/(3.*RLya + L2s1s + four_betaB); return (-nH*xe*xe*alphaB + four_betaB*(1.-xe)*exp(-E21/TR))*C/H +(1.-xe)/(3.*nH)*energy_rate*(1./EI+(1.-C)/E21)/H; }
double rec_HRecFast_dxedlna(double xe, double nH, double H, double TM, double TR, double energy_rate) { double RLya, alphaB, four_betaB, C; double chi_ion_H; RLya = 4.662899067555897e15 * H / nH / (1.-xe); alphaB = 1.14 * alphaB_PPB(TM); four_betaB = 3.016103031869581e21 *TR*sqrt(TR) *exp(-0.25*EI/TR) *alphaB; C = (3.*RLya + L2s1s)/(3.*RLya + L2s1s + four_betaB); //chi_ion_H = (1.-xe)/3.; // old approximation from Chen and Kamionkowski if (xe < 1.) chi_ion_H = 0.369202*pow(1.-pow(xe,0.463929),1.70237); // coefficient as revised by Galli et al. 2013 (in fact it is a fit by Vivian Poulin of columns 1 and 4 in Table V of Galli et al. 2013) else chi_ion_H = 0.; return (-nH*xe*xe*alphaB + four_betaB*(1.-xe)*exp(-E21/TR))*C/H +chi_ion_H/nH*energy_rate*(1./EI+(1.-C)/E21)/H; }