SmoothBrokenPowerLawLightcurve#

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

A smoothly broken power-law transient.

The asymptotic behavior is

\[\begin{split}L(t) \propto \begin{cases} t^{\alpha_\mathrm{rise}}, & t \ll t_\mathrm{peak}, \\ t^{-\alpha_\mathrm{decline}}, & t \gg t_\mathrm{peak}, \end{cases}\end{split}\]

with a smooth transition between the two branches. The implementation uses

\[f(x) = \left[ x^{-s\alpha_\mathrm{rise}} + x^{s\alpha_\mathrm{decline}} \right]^{-1/s},\]

but rescales the argument and normalization so that the maximum occurs exactly at t_peak and

\[L(t_\mathrm{peak}) = A.\]

The positive smoothness parameter \(s\) controls the sharpness of the transition: larger values approach a sharply broken power law.

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.

rise_index

\(\alpha_\mathrm{rise}\)

Positive asymptotic rise index.

decline_index

\(\alpha_\mathrm{decline}\)

Positive asymptotic decline index.

smoothness

\(s\)

Sharpness of the transition between power-law branches.

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()