def _fontes_cross_section(self, energy: u.erg):
"""
Calculate direct ionization cross-section according to [1]_.
References
----------
.. [1] Fontes, C. J., et al., 1999, Phys. Rev. A., `59 1329 <https://journals.aps.org/pra/abstract/10.1103/PhysRevA.59.1329>`_
"""
is_hydrogenic = (self.atomic_number - self.charge_state == 1) and (self.atomic_number >= 6)
U = energy/self.ip
A = 1.13
B = 1 if is_hydrogenic else 2
F = 1 if self.atomic_number < 20 else (140 + (self.atomic_number/20)**3.2)/141
if self.atomic_number >= 16:
c, d, C, D = -0.28394, 1.95270, 0.20594, 3.70590
if self.atomic_number > 20:
C += ((self.atomic_number - 20)/50.5)**1.11
else:
c, d, C, D = -0.80414, 2.32431, 0.14424, 3.82652
Qrp = 1./U*(A*np.log(U) + D*(1. - 1./U)**2 + C*U*(1. - 1./U)**4 + (c/U + d/U**2)*(1. - 1./U))
return B*(np.pi*const.a0.cgs**2)*F*Qrp/(self.ip.to(u.Ry).value**2)
评论列表
文章目录