VillarCoolingBlackbodySED#

class uvex_transients.models.supernovae.villar.VillarCoolingBlackbodySED(**overrides: Parameter | Quantity | float | int)[source]#

Supernova light curve with an evolving blackbody photosphere.

This model combines the phenomenological bolometric light curve of VillarLightcurve (the parametric form introduced by [1]) with a time-dependent blackbody spectral shape,

\[L_\nu(\nu, t) = L_\mathrm{bol}(t)\, S_\mathrm{BB}\!\left[\nu, T(t)\right],\]

where \(S_\mathrm{BB}\) is the normalized blackbody spectrum provided by BlackbodySpectrum.

The photospheric temperature evolves according to

\[T(t) = T_\mathrm{floor} + \left(T_0-T_\mathrm{floor}\right) \left(1+\frac{t}{\tau_T}\right)^{-\alpha_T}.\]

Thus, the temperature begins at \(T_0\) at \(t=0\) and approaches \(T_\mathrm{floor}\) asymptotically at late times. The parameters \(\tau_T\) and \(\alpha_T\) control the characteristic cooling timescale and the rate of the decline, respectively.

Because the blackbody shape is normalized independently of luminosity, the bolometric and spectral components remain exactly separable:

\[\int L_\nu(\nu,t)\,d\nu = L_\mathrm{bol}(t).\]

Consequently, _eval_bolometric() delegates directly to VillarLightcurve, while _eval_spectrum() evaluates BlackbodySpectrum at the time-dependent temperature \(T(t)\). No numerical frequency integration is required to recover the bolometric luminosity.

The model is intended as a generic phenomenological description of supernova-like transients whose continuum can be approximated by a cooling photosphere. It does not attempt to model photospheric-radius evolution, line blanketing, recombination physics, nebular emission, or detailed radiative transfer.

Parameters

The model parameters are summarized below.

Parameter

Symbol

Description

amplitude

\(A\)

Overall luminosity normalization.

t0

\(t_0\)

Reference time at which the logistic rise is centered.

gamma

\(\gamma\)

Duration of the plateau, measured from t0.

beta

\(\beta\)

Linear slope of the plateau.

tau_rise

\(\tau_\mathrm{rise}\)

Logistic rise timescale.

tau_fall

\(\tau_\mathrm{fall}\)

Exponential decline timescale, after the plateau.

T0

\(T_0\)

Photospheric temperature at t=0 (the T(t) -> T0 limit, not literally T at peak).

T_floor

\(T_\mathrm{floor}\)

Asymptotic late-time photospheric temperature (T(t) -> T_floor as t -> infinity).

tau_T

\(\tau_T\)

Photospheric cooling timescale.

alpha_T

\(\alpha_T\)

Photospheric cooling power-law index.

Notes

The default parameter distributions are broad, phenomenological starting points rather than subtype-specific empirical priors.

Subclasses may define only the entries of _DEFAULT_PARAMETERS they wish to modify. Their parameter definitions are merged with the complete parameter set of VillarCoolingBlackbodySED during subclass creation. This makes it straightforward to define supernova-subtype variants by changing only the parameters whose distributions differ between populations.

The temperature law assumes \(T_0 > T_\mathrm{floor}\) for a cooling photosphere, although this ordering is not enforced by the model itself.

References

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.

unpack_params_from_arrays(*parameters)

Convert an ordered sequence of parameter values back into a dict.

values()