# Kepler Solver

This module solves for the orbit of the planet given Keplerian parameters.

orbitize.kepler.calc_orbit(epochs, sma, ecc, inc, aop, pan, tau, plx, mtot, mass_for_Kamp=None, tau_ref_epoch=58849, tolerance=1e-09, max_iter=100, use_c=True, use_gpu=False)[source]

Returns the separation and radial velocity of the body given array of orbital parameters (size n_orbs) at given epochs (array of size n_dates)

Based on orbit solvers from James Graham and Rob De Rosa. Adapted by Jason Wang and Henry Ngo.

Parameters
• epochs (np.array) – MJD times for which we want the positions of the planet

• sma (np.array) – semi-major axis of orbit [au]

• ecc (np.array) – eccentricity of the orbit [0,1]

• inc (np.array) – inclination [radians]

• aop (np.array) – argument of periastron [radians]

• pan (np.array) – longitude of the ascending node [radians]

• tau (np.array) – epoch of periastron passage in fraction of orbital period past MJD=0 [0,1]

• plx (np.array) – parallax [mas]

• mtot (np.array) – total mass of the two-body orbit (M_* + M_planet) [Solar masses]

• mass_for_Kamp (np.array, optional) – mass of the body that causes the RV signal. For example, if you want to return the stellar RV, this is the planet mass. If you want to return the planetary RV, this is the stellar mass. [Solar masses]. For planet mass ~ 0, mass_for_Kamp ~ M_tot, and function returns planetary RV (default).

• tau_ref_epoch (float, optional) – reference date that tau is defined with respect to (i.e., tau=0)

• tolerance (float, optional) – absolute tolerance of iterative computation. Defaults to 1e-9.

• max_iter (int, optional) – maximum number of iterations before switching. Defaults to 100.

• use_c (bool, optional) – Use the C solver if configured. Defaults to True

• use_gpu (bool, optional) – Use the GPU solver if configured. Defaults to False

Returns

raoff (np.array): array-like (n_dates x n_orbs) of RA offsets between the bodies (origin is at the other body) [mas]

deoff (np.array): array-like (n_dates x n_orbs) of Dec offsets between the bodies [mas]

vz (np.array): array-like (n_dates x n_orbs) of radial velocity of one of the bodies

(see mass_for_Kamp description) [km/s]

Return type

3-tuple

Written: Jason Wang, Henry Ngo, 2018

orbitize.kepler.tau_to_manom(date, sma, mtot, tau, tau_ref_epoch)[source]

Gets the mean anomlay

Parameters
• date (float or np.array) – MJD

• sma (float) – semi major axis (AU)

• mtot (float) – total mass (M_sun)

• tau (float) – epoch of periastron, in units of the orbital period

• tau_ref_epoch (float) – reference epoch for tau

Returns

mean anomaly on that date [0, 2pi)

Return type

float or np.array