/Rings-GR

A code to compute the secular dynamics of systems dominated by a central body.

Primary LanguageShellGNU General Public License v3.0GPL-3.0

--- Relativisitc Version ---
***************************** NOTICE *******************************
This version incorporate GR when calling /src/tides.c. 
So if the parameters for tidal effect is "inf 0 1 0 0 0 0" (no tides), then GR will not be called.
--> When GR is needed and tidal effect is not, then follow the -- Running -- instructions.
--> When GR & tides are both needed: Un-comment line 96-97 in /src/tides.c and comment line 100-109.
    Then follow the origial version readme starting in line 43 of this file.
********************************************************************

-- Installation --
$ git clone https://github.com/wei-lingfeng/Rings-GR.git
$ cd Rings-GR/
$ ./configure
$ make
$ make install

-- Running --
/PATH_TO_Rings-GR/src/./rings --input /PATH/Input.txt --output /PATH/Output.txt --time TIME

Input.txt: (with GR, no tides)
inf 0 1 0 0 0 0
m a e i Ω ω 1 1 1 1 0 0 0
...

Input.txt: (without GR, no tides)
inf 0 1 0 0 0 0
m a e i Ω ω inf 0 1 0 0 0 0
...

-- Common Errors --
-Error: make: *** [aclocal.m4] Error 127
-Solution: $ autoreconf -vfi
And run ./configure && make && make install again.
Reference: apereo/mod_auth_cas#97, taviso/ctypes.sh#18 (comment)

-Error: Error in evolution: 9 (problem with user-supplied function) at rings.c, line 217
-Solution: Set e=1e-4, i=1e-4 or some small number instead of 0.

-- Unsolved Problems --
-Nearly stops after some time. Unsolved.


-- Original Version Readme --
-------------------------------------------------------------------
A code to efficiently simulate the secular evolution of a system of
bodies under the dominating gravitational influence of a massive
central body.  The evolution includes the effects of tides between
each body and the central body.

The main executable is "rings".  It takes various command line options
controlling the integration; see "rings --help" for a summary.

The input file for "rings" should be in the following format:

tV k I R Spin0 Spin1 Spin2
m a e I Omega omega tV k I R Spin0 Spin1 Spin2
...

where the first line describes the tidal parameters of the central
body, and subsequent lines describe the orbital and tidal parameters
of the orbiting bodies.  The parameters are:

* m is the mass (central mass = 1.0). 

* a is the semi-major axis (arbitrary units; a = 1 corresponds to 2*Pi
  period).

* e is the eccentricity of the orbit.

* I is the inclination (degrees)

* Omega is the longitude of the ascending node (degrees).

* omega is the argument of periapse (degrees).

* tV is the viscous timescale (same units as orbital period).

* k is the apsidal motion constant (equals 1/2 Love number).

* I is the moment of inertia (units are consistent with m and a).

* R is the radius of the body (units are same as a).

* Spin0,1,2 are the instantaneous spin vector of the body in the
  global coordinate frame.

See Fabrycky & Tremaine (2007) for a description of the tidal
evolution equations (derived from Eggleton & Kiseleva-Eggleton
(2001)).

The output of the code is in the format 

t m a e I Omega omega tV k I R Spin0 Spin1 Spin2
...

with one line for each body (including the central body!) at each
time, t.