from tardis.plasma.properties.base import (
Input,
ProcessingPlasmaProperty,
)
__all__ = [
"Abundance",
"AtomicData",
"ContinuumInteractionSpecies",
"DilutePlanckianRadField",
"DilutionFactor",
"HeliumTreatment",
"IsotopeAbundance",
"JBlues",
"LinkTRadTElectron",
"NumberDensity",
"TRadiative",
"TimeExplosion",
]
[docs]
class TRadiative(ProcessingPlasmaProperty):
"""
Radiative temperature property.
Attributes
----------
t_rad : Numpy Array, dtype float
"""
outputs = ("t_rad",)
latex_name = (r"T_{\textrm{rad}}",)
[docs]
def calculate(self, dilute_planckian_radiation_field: object) -> object:
"""Return the radiation-field temperature in cgs units."""
return dilute_planckian_radiation_field.temperature.cgs.value
[docs]
class DilutionFactor(ProcessingPlasmaProperty):
"""
Dilution factor of the radiation field.
Attributes
----------
w : Numpy Array, dtype float between 0 and 1
Factor used in nebular ionisation / dilute excitation calculations
to account for the dilution of the radiation field.
"""
outputs = ("w",)
latex_name = ("W",)
[docs]
def calculate(self, dilute_planckian_radiation_field: object) -> object:
"""Return the radiation-field dilution factor."""
return dilute_planckian_radiation_field.dilution_factor
[docs]
class AtomicData(Input):
"""Store the atomic-data input."""
outputs = ("atomic_data",)
[docs]
class Abundance(Input):
"""Store elemental abundances."""
outputs = ("abundance",)
[docs]
class IsotopeAbundance(Input):
"""Store isotope abundances."""
outputs = ("isotope_abundance",)
[docs]
class TimeExplosion(Input):
"""Store time since explosion in seconds."""
outputs = ("time_explosion",)
latex_name = (r"t_{\textrm{exp}}",)
[docs]
class JBlues(Input):
"""Store line blue-wing mean intensities."""
outputs = ("j_blues",)
latex_name = (r"J_{\textrm{blue}}",)
[docs]
class LinkTRadTElectron(Input):
"""Store the electron-to-radiation temperature ratio."""
outputs = ("link_t_rad_t_electron",)
latex_name = (r"T_{\textrm{electron}}/T_{\textrm{rad}}",)
[docs]
class HeliumTreatment(Input):
"""Store the configured helium treatment."""
outputs = ("helium_treatment",)
[docs]
class ContinuumInteractionSpecies(Input):
"""Store species with enabled continuum interactions."""
outputs = ("continuum_interaction_species",)
[docs]
class NumberDensity(Input):
"""Store elemental number densities by shell."""
outputs = ("number_density",)
latex_name = ("N_{i}",)
[docs]
class DilutePlanckianRadField(Input):
"""Store the dilute Planckian radiation field."""
outputs = ("dilute_planckian_radiation_field",)