meepmeep.numba3d.solve3d_orbit#
- meepmeep.numba3d.solve3d_orbit(ep_times, p, a, i, e, w, lan=0.0, npt=15)[source]#
Pre-compute Taylor coefficients at every expansion point of one orbit.
For each interior expansion point this calls
solve3d()once and stacks the resulting(3, 5)matrices into a single(npt, 3, 5)array. The last slot is the periodic image of the first and is copied rather than recomputed.- Parameters:
- ep_times
ndarray, shape (npt,) Normalised expansion-point phases in
[0, 1], withep_times[-1]equal toep_times[0] + 1. Built bycreate_expansion_points().- p
float Orbital period [days].
- a
float Scaled semi-major axis \(a/R_\star\).
- i
float Inclination [radians].
- e
float Eccentricity, \(0 \le e < 1\).
- w
float Argument of periastron [radians].
- lan
float, optional Longitude of the ascending node [radians]. Constant rotation of the sky-plane (x, y) coordinates about the line of sight. Defaults to 0.0.
- npt
int, optional Number of expansion points, including the periodic-image slot. Defaults to 15.
- ep_times
- Returns:
- coeffs
ndarray, shape (npt, 3, 5) Taylor coefficient matrices at every expansion point. Each
coeffs[ix]is a(3, 5)matrix in the layout produced bysolve3d(rows: x, y, z; columns: position, velocity, acceleration, jerk, snap; pre-scaled by factorial of the Taylor order).
- coeffs
Notes
If you hand-roll
ep_timesyou must enforce the periodic-image contract yourself;expansion points.create_expansion_pointsdoes this automatically.