meepmeep.numba3d.lambert_phase_curve_cd

meepmeep.numba3d.lambert_phase_curve_cd#

meepmeep.numba3d.lambert_phase_curve_cd(time: float | ndarray[tuple[Any, ...], dtype[_ScalarT]], ag: float, k: float, c: ndarray[tuple[Any, ...], dtype[_ScalarT]], dc: ndarray[tuple[Any, ...], dtype[_ScalarT]])[source]#

Evaluate the Lambertian phase-curve flux and its parameter derivatives at an expansion-point-centered time.

Derivative-returning counterpart of lambert.lambert_phase_curve_c: forms the flux \(F = (k/r)^2\, A_g\, f(\alpha)\) and propagates the chain rule through both the phase angle and the inverse-square illumination \(1/r^2\), with \(r\) the instantaneous star-planet distance in stellar radii.

Accepts a scalar time or a 1-D array of times and dispatches to the appropriate kernel at compile time (inside @njit) or at call time (pure Python).

Parameters:
timefloat or ndarray

Time(s) relative to the Taylor series expansion point.

agfloat

Geometric albedo.

kfloat

Planet-to-star radius ratio \(R_p/R_\star\).

cNDArray

A (3, 5) Taylor coefficient matrix produced by solve3d.

dcNDArray

A (7, 3, 5) parameter-derivative tensor produced by solve3d_d, with the leading axis ordered as (tc, p, a, i, e, w, lan).

Returns:
fluxfloat or ndarray

Reflected planet-to-star flux ratio. Shape (N,) for an array time.

dfluxNDArray

Partial derivatives of flux with respect to (tc, p, a, i, e, w, lan, ag, k). Shape (9,) for a scalar time, (N, 9) for an array time.

Notes

Because the illumination uses the instantaneous distance, the semi-major axis enters only through the Taylor coefficients (and hence through r); there is no separate a argument. The a slot (index 2) of the gradient captures r’s dependence on the semi-major axis.