Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

simonrw/ttvfast-python

Open more actions menu

Repository files navigation

TTVFast

Author: Simon Walker <s.r.walker101@googlemail.com>
https://img.shields.io/pypi/v/ttvfast.svg?maxAge=2592000 https://travis-ci.org/mindriot101/ttvfast-python.svg?branch=master

A Python wrapper around Katherine Deck's TTVFast C program (https://github.com/kdeck/TTVFast)

For the latest changes, see the CHANGELOG.

Installation

For contributing to the package, see the Development instructions.

Install from pypi:

pip install ttvfast

For the latest development version, install with pip:

pip install git+https://github.com/mindriot101/ttvfast.git

Development instructions

To contribute to ttvfast, clone the repository and fetch the submodule:

git clone https://github.com/mindriot101/ttvfast-python.git
cd ttvfast-python
git submodule init
git submodule update # grabs code from TTVFast

install the package, in "development mode" into the current python environment:

pip install -e .

This way any python code changes made to the current directory will be reflected in the package. Note: any changes to the C code require recompilation by reinstalling the package with pip install -e . (see the editable install documentation documentation for more information).

Once the package is installed, test that everything built properly using:

$ py.test
============================== test session starts ===============================
testing/test_lweiss.py .
testing/test_models.py ...
testing/test_python_api.py ...
testing/test_ttvfast.py ...

Usage

To compute the TTV properties for one or more planets:

  • build a ttvfast.models.Planet instance (see the class documentation for required parameters)
  • pass a list of the planets in the system to ttvfast.ttvfast along with:
    • the stellar mass in units of solar mass,
    • the start point of the integration in days,
    • the time step for the integration in days,
    • and the end point for integration in days.

The function ttvfast.ttvfast returns a dictionary containing positions and rv. The positions entry is a tuple of:

  1. a list of integer indices for which values correspond to which planet,
  2. a list of integers defining the epoch,
  3. a list of times,
  4. a list of rsky values, and
  5. a list of vsky values.

The optional rv_times parameter takes a list of RV times on which the RV is to be calculated. If so the rv entry in the output dictionary is populated with a list of RV values, and otherwise None.

For example:

from ttvfast import models


gravity = 0.000295994511                        # AU^3/day^2/M_sun
stellar_mass = 0.95573417954                    # M_sun


planet1 = models.Planet(
    mass=0.00002878248,                         # M_sun
    period=1.0917340278625494e+01,              # days
    eccentricity=5.6159310042858110e-02,
    inclination=9.0921164935951211e+01,         # degrees
    longnode=-1.1729336712101943e-18,           # degrees
    argument=1.8094838714599581e+02,            # degrees
    mean_anomaly=-8.7093652691581923e+01,       # degrees
)

planet2 = models.Planet(
    mass=0.00061895914,
    period=2.2266898036209028e+01,
    eccentricity=5.6691301931178648e-02,
    inclination=8.7598285693573246e+01,
    longnode=4.6220554014026838e-01,
    argument=1.6437004273382669e+00,
    mean_anomaly=-1.9584857031843157e+01,
)

planets = [planet1, planet2]
Time = -1045                                    # days
dt = 0.54                                       # days
Total = 1700                                    # days

results = ttvfast.ttvfast(planets, stellar_mass, Time, dt, Total)

For more details, see the original C module's documentation: https://github.com/kdeck/TTVFast/blob/master/c_version/README

Citations

If you use this code, please cite Deck, Agol, Holman, & Nesvorny (2014), ApJ, 787, 132, arXiv:1403.1895.

-Katherine Deck, Eric Agol, Matt Holman, & David Nesvorny

About

Python interface to the TTVFast library

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  
Morty Proxy This is a proxified and sanitized view of the page, visit original site.