GaussianRiseBrokenPowerLawLightcurve#

class uvex_transients.models.lightcurves.generic.GaussianRiseBrokenPowerLawLightcurve(**overrides: Parameter | Quantity | float | int)[source]#

A Gaussian rise followed by a broken power-law decline, peaked at t_peak.

\[\begin{split}L(t) = A \times \begin{cases} \exp\left(-\dfrac{(t - t_\mathrm{peak})^2}{2\sigma_\mathrm{rise}^2}\right) & t \le t_\mathrm{peak} \\[4pt] \left(\dfrac{t}{t_\mathrm{peak}}\right)^{-\alpha_1} & t_\mathrm{peak} < t \le t_\mathrm{break} \\[4pt] \left(\dfrac{t_\mathrm{break}}{t_\mathrm{peak}}\right)^{-\alpha_1} \left(\dfrac{t}{t_\mathrm{break}}\right)^{-\alpha_2} & t > t_\mathrm{break} \end{cases}\end{split}\]

Extends GaussianRisePowerLawLightcurve with a second, steeper power-law segment past a break time t_break. Every branch agrees exactly at its boundary, by construction: \(L(t_\mathrm{peak}) = A\), and the two decline branches meet at \(t_\mathrm{break}\) without a jump. Useful for transients whose late-time decline steepens relative to the early-time behavior – e.g. a kilonova’s blue/early ejecta component fading faster once it becomes optically thin.

t_break is assumed to exceed t_peak, although this ordering is not enforced by the model itself.

sigma_rise is not itself a free parameter – it is fixed at \(\sigma_\mathrm{rise} = t_\mathrm{peak}/5\), one fifth of the time to peak, the same ratio GREDLightcurve fixes between the two quantities.

Parameters

The light curve parameters are summarized below.

Parameter

Symbol

Description

amplitude

\(A\)

Peak bolometric luminosity.

t_peak

\(t_\mathrm{peak}\)

Time of peak luminosity since explosion.

decline_index_1

\(\alpha_1\)

Positive power-law decline index between t_peak and t_break.

decline_index_2

\(\alpha_2\)

Positive power-law decline index past t_break.

t_break

\(t_\mathrm{break}\)

Time at which the decline steepens from \(\alpha_1\) to \(\alpha_2\).

Methods

eval(t, **parameters)

Evaluate the bolometric luminosity at the given time.

eval_cgs(t, **parameters)

Bolometric luminosity, taking and returning plain cgs numbers.

eval_from_arrays(t, *parameters)

Positional-argument form of eval().

eval_log(t, **parameters)

Natural log of the bolometric luminosity, given physical-unit inputs.

eval_log_cgs(t, **parameters)

Natural log of the bolometric luminosity, taking and returning plain cgs numbers.

get(k[,d])

items()

keys()

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(t[, size, rng])

Draw random parameter realizations and evaluate the model at the given time.

unpack_params_from_arrays(*parameters)

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

values()