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_Co are fixed shape constants. Light-curve priors (t0 through tau_Co) come from a scipy.optimize.curve_fit() to SN 1999em and SN 2003hn; temperature-law priors (T_0 through s_1) are hand-tuned against the aggregate Type IIP photospheric-temperature dataset in test_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 Model of this SpectralModel for a given parameter set.

as_source_spectrum(t, *[, redshift, ...])

Build a SourceSpectrum giving 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()