chianti.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:synthesizAR 作者: wtbarnes 项目源码 文件源码
def proton_collision_rate(self):
        """
        Calculates the collision rate for de-exciting and exciting collisions for protons
        """
        # Create scaled temperature--these are not stored in the file
        bt_t = np.vectorize(np.linspace, excluded=[0, 1], otypes='O')(0, 1, [ups.shape[0] 
                                                                      for ups in self._psplups['bt_rate']])
        # Get excitation rates directly from scaled data
        energy_ratio = np.outer(const.k_B.cgs*self.temperature, 1.0/self._psplups['delta_energy'].to(u.erg))
        ex_rate = np.array(list(map(self.burgess_tully_descale, bt_t, self._psplups['bt_rate'], energy_ratio.T,
                                    self._psplups['bt_c'], self._psplups['bt_type'])))
        ex_rate = u.Quantity(np.where(ex_rate > 0., ex_rate, 0.), u.cm**3/u.s).T
        # Calculation de-excitation rates from excitation rate
        omega_upper = 2.*self._elvlc['J'][self._psplups['upper_level'] - 1] + 1.
        omega_lower = 2.*self._elvlc['J'][self._psplups['lower_level'] - 1] + 1.
        dex_rate = (omega_lower/omega_upper)*ex_rate*np.exp(1./energy_ratio)

        return dex_rate, ex_rate
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号