Source code for mosfit.modules.energetics.thin_shell

"""Definitions for the `ThinShell` class."""
import numpy as np

from mosfit.constants import FOE, KM_CGS, M_SUN_CGS
from mosfit.modules.energetics.energetic import Energetic


# Important: Only define one ``Module`` class per file.


[docs]class ThinShell(Energetic): """Generate `vejecta` from `kinetic_energy` if ejecta in thin shell."""
[docs] def process(self, **kwargs): """Process module.""" self._energy = kwargs[self.key('kinetic_energy')] self._m_ejecta = kwargs[self.key('mejecta')] v_ejecta = np.sqrt(2.0 * self._energy * FOE / (self._m_ejecta * M_SUN_CGS)) / KM_CGS return {self.key('vejecta'): v_ejecta}