meepmeep.numba3d.lambert_phase_curve_c

meepmeep.numba3d.lambert_phase_curve_c#

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

Evaluate the Lambertian phase-curve flux contribution at an expansion-point-centered time.

Centered counterpart of lambert_phase_curve: assumes time has already been shifted to be relative to the expansion point. Evaluates \(F = (k/r)^2\, A_g\, f(\alpha)\) where \(f\) is the Lambert kernel, \(\alpha\) the instantaneous phase angle, and \(r\) the instantaneous star-planet distance in stellar radii. The result is the planet-to-star flux ratio of reflected light.

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 relative to the Taylor series expansion point.

agfloat

Geometric albedo.

kfloat

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

cNDArray

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

Returns:
fluxfloat or NDArray

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

Notes

The inverse-square illumination uses the instantaneous 3D distance \(r = \sqrt{x^2 + y^2 + z^2}\) recovered from the coefficient matrix, so the result is exact for eccentric orbits and does not need a separate semi-major axis argument.