Source code for jnkepler.nbodyrv.nbodyrv


__all__ = ["NbodyRV"]

from ..jaxttv import Nbody
from ..jaxttv.rv import *
from ..jaxttv.utils import initialize_jacobi_xv
from ..jaxttv.symplectic import integrate_xv


[docs] class NbodyRV(Nbody): """class for RV-only analysis""" def __init__(self, t_start, t_end, dt, nitr_kepler=3): """initialization Args: t_start: start time of integration t_end: end time of integration dt: integration time step (day) nitr_kepler: number of iterations in Kepler steps """ super(NbodyRV, self).__init__( t_start, t_end, dt, nitr_kepler=nitr_kepler)
[docs] def get_rv(self, times_rv, par_dict): """compute stellar RV Args: times_rv: times at which RVs are evaluated par_dict: dictionary of input parameters (same as TTVs) Returns: array: stellar RVs at times_rvs (m/s), positive when the star is moving away """ xjac0, vjac0, masses = initialize_jacobi_xv( par_dict, self.t_start) times, xvjac = integrate_xv( xjac0, vjac0, masses, self.times, nitr=self.nitr_kepler) # integration return rv_from_xvjac(times_rv, times, xvjac, masses)