TypeIIPSED#
- class uvex_transients.models.supernovae.IIp.TypeIIPSED(**overrides: Parameter | Quantity | float | int)[source]#
Type IIP supernova SED: two shared-onset exponentials and a switched radioactive tail.
With a cooling blackbody photosphere.
\[L_\mathrm{bol}(t) = S_0(t)\,\bigl[1-S_P(t)\bigr] \Bigl[L_\mathrm{pk}\,e^{-(t-t_0)/\tau_\mathrm{cool}} + L_p\Bigr] + S_P(t)\, L_\mathrm{Co}\, e^{-(t-t_P)/\tau_\mathrm{Co}},\]with two logistic switches
\[S_0(t) = \frac{1}{1+e^{-(t-t_0)/\tau_\mathrm{rise}}}, \qquad S_P(t) = \frac{1}{1+e^{-(t-t_P)/\tau_\mathrm{drop}}}.\]\(S_0\) turns the photospheric emission on at the explosion/rise epoch \(t_0\); \(S_P\) turns it back off – and the radioactive tail on – at the plateau-end epoch \(t_P\). Well before \(t_0\), \(L_\mathrm{bol} \to 0\). Well after the rise but before the plateau ends, \(L_\mathrm{bol} \simeq L_\mathrm{pk}\,e^{-(t-t_0)/\tau_\mathrm{cool}} + L_p\): an early cooling-phase decline from \(L_\mathrm{pk}\) onto a constant plateau \(L_p\). After \(t_P\), \(L_\mathrm{bol} \to L_\mathrm{Co}\, e^{-(t-t_P)/\tau_\mathrm{Co}}\), a pure radioactive-tail exponential.
A deliberately minimum-complexity stand-in for the classic three-phase Type IIP morphology (shock-cooling decline, hydrogen-recombination plateau, radioactive tail): two logistic switches, two exponentials, three luminosity scales.
The photospheric temperature reuses the light curve’s own \(t_0\) and \(t_P\) and is a smooth, doubly-broken power law with three regimes – an early regime, a cooling-phase regime around \(t_0\), and a recombination/plateau regime around \(t_P\) –
\[T(t) = T_0\, \left(\frac{t}{t_0}\right)^{\alpha_r} \left(\frac{1 + (t/t_0)^{s_0}}{2}\right)^{\frac{\alpha_c - \alpha_r}{s_0}} \left(\frac{1 + (t/\sqrt{t_0 t_P})^{s_1}}{2}\right)^{-\frac{\alpha_c - \alpha_p}{s_1}},\](\(t\) in days). Both bracketed terms are normalized to equal 1 exactly at their own break (\(t=t_0\), \(t=\sqrt{t_0 t_P}\)), so \(T(t_0) \approx T_0\) (up to a small correction from the second bracket, negligible when \(t_0 \ll t_P\)). For \(t \ll t_0\), \(T(t) \to T_0\, (t/t_0)^{\alpha_r}\); between the two breaks (\(t_0 \ll t \ll \sqrt{t_0 t_P}\)), \(T(t) \propto t^{\alpha_c}\); for \(t \gg \sqrt{t_0 t_P}\) (approaching and past \(t_P\)), \(T(t) \propto t^{\alpha_p}\). With \(\alpha_r > 0 > \alpha_c > \alpha_p\), the temperature rises through the early, pre-\(t_0\) region (where \(L_\mathrm{bol} \approx 0\) anyway, so this region is not otherwise constrained), peaks near \(t_0\), then declines – fast through the cooling regime, and much more slowly (nearly flat) through the recombination/plateau regime. \(s_0\)/\(s_1\) set the sharpness of the two breaks (smooth, unlike the light curve’s logistic switches, but the same role); the second break has no epoch of its own, so it is centered on the geometric mean of \(t_0\) and \(t_P\).
Parameters
Parameter
Symbol
t0\(t_0\)
tau_rise\(\tau_\mathrm{rise}\)
L_pk\(L_\mathrm{pk}\)
tau_cool\(\tau_\mathrm{cool}\)
L_p\(L_p\)
t_P\(t_P\)
tau_drop\(\tau_\mathrm{drop}\)
L_Co\(L_\mathrm{Co}\)
tau_Co\(\tau_\mathrm{Co}\)
T_0\(T_0\)
alpha_r\(\alpha_r\)
alpha_c\(\alpha_c\)
alpha_p\(\alpha_p\)
s_0\(s_0\)
s_1\(s_1\)
Notes
tau_drop/tau_Coare fixed shape constants. Light-curve priors (t0throughtau_Co) come from ascipy.optimize.curve_fit()to SN 1999em and SN 2003hn; temperature-law priors (T_0throughs_1) are hand-tuned against the aggregate Type IIP photospheric-temperature dataset intest_data/transients(SN 1999em, SN 2003hn, SN 2012aw, SN 2012A, SN 2008in), following Dall’Ora et al.[1] and Faran et al.[2].Methods
as_astropy_model([x_type, y_type, y_kind, ...])Build an
Modelof thisSpectralModelfor a given parameter set.as_source_spectrum(t, *[, redshift, ...])Build a
SourceSpectrumgiving the observed flux at one fixed time \(t\).eval(nu, t, **parameters)Evaluate the spectral luminosity at the given frequency and time.
eval_bolometric(t, **parameters)Evaluate the bolometric luminosity at the given time.
eval_bolometric_cgs(t, **parameters)Bolometric luminosity, taking and returning plain cgs numbers.
eval_bolometric_log(t, **parameters)Natural log of the bolometric luminosity, given physical-unit inputs.
eval_bolometric_log_cgs(t, **parameters)Natural log of the bolometric luminosity, taking and returning plain cgs numbers.
eval_cgs(nu, t, **parameters)Spectral luminosity, taking and returning plain cgs numbers.
eval_from_arrays(nu, t, *parameters)Positional-argument form of
eval().eval_log(nu, t, **parameters)Natural log of the spectral luminosity, given physical-unit inputs.
eval_log_cgs(nu, t, **parameters)Natural log of the spectral luminosity, taking and returning plain cgs numbers.
eval_spectrum(nu, t, **parameters)Evaluate the normalized spectral shape at the given frequency and time.
eval_spectrum_cgs(nu, t, **parameters)Return the normalized spectral shape as plain cgs numbers; see
eval_log_cgs().eval_spectrum_log(nu, t, **parameters)Natural log of the normalized spectral shape, given physical-unit inputs.
eval_spectrum_log_cgs(nu, t, **parameters)Natural log of the normalized spectral shape, taking and returning plain cgs numbers.
flux(nu, t, *[, redshift, ...])Evaluate the observed flux density at the given frequency and time.
flux_band(nu, throughput, t, *[, redshift, ...])Evaluate the throughput-weighted mean observed flux density over a band.
flux_band_cgs(nu, throughput, t, redshift, ...)Band-averaged observed flux density as plain cgs numbers; see
flux_band_log_cgs().flux_band_log(nu, throughput, t, *[, ...])Natural log of the band-averaged observed flux density, given physical-unit inputs.
flux_band_log_cgs(nu, throughput, t, ...[, ...])Natural log of the throughput-weighted mean flux density over a band, plain cgs numbers.
flux_bolometric(t, *[, redshift, ...])Evaluate the observed bolometric flux at the given time.
flux_bolometric_cgs(t, redshift, ...)Observed bolometric flux, taking and returning plain cgs numbers.
flux_bolometric_log(t, *[, redshift, ...])Natural log of the observed bolometric flux, given physical-unit inputs.
flux_bolometric_log_cgs(t, redshift, ...)Natural log of the observed bolometric flux, taking and returning plain cgs numbers.
flux_cgs(nu, t, redshift, luminosity_distance, *)Observed flux density, taking and returning plain cgs numbers.
flux_log(nu, t, *[, redshift, ...])Natural log of the observed flux density, given physical-unit inputs.
flux_log_cgs(nu, t, redshift, ...[, ...])Natural log of the observed flux density, taking and returning plain cgs numbers.
get(k[,d])items()keys()mag(nu, t, *[, redshift, ...])Evaluate the apparent AB magnitude at the given frequency and time.
mag_band(nu, throughput, t, *[, redshift, ...])Evaluate the apparent AB magnitude of the band-averaged flux density.
mag_band_cgs(nu, throughput, t, redshift, ...)Apparent AB magnitude of the band-averaged flux density.
mag_bandpass(bandpass, t, *[, redshift, ...])Evaluate the apparent AB magnitude of the flux averaged over bandpass.
mag_cgs(nu, t, redshift, luminosity_distance, *)Apparent AB magnitude: \(m_\mathrm{AB} = -2.5 \log_{10}(F_\nu / F_{\mathrm{AB},0})\).
pack_params_to_arrays(**parameters)Convert a dict of parameter values into an ordered sequence.
sample_parameters([size, rng, parameters])Draw random samples of some or all of this model's parameters.
simulate(nu, t[, size, rng])Draw random parameter realizations and evaluate the model at the given frequency and time.
simulate_photometry(t, exptime, detector, ...)Simulate noisy synthetic photometry of this model at given time(s), against a real detector.
temperature(t, **parameters)\(T(t)\) in Kelvin.
unpack_params_from_arrays(*parameters)Convert an ordered sequence of parameter values back into a dict.
values()