Commit 3c50535e authored by Romolo Politi's avatar Romolo Politi
Browse files

Upload Version 1.0

parents
Loading
Loading
Loading
Loading

README.md

0 → 100644
+34 −0
Original line number Diff line number Diff line
# DPI Library - Dynamical Plug-In for Mercury 6 (release 1.0)
## Author: Diego Turrini

DPI is a FORTRAN77 library that supplies the symplectic mapping method for binary star systems (Chambers, Quintana, Duncan & Lissauer, 2002, AJ 123, 2884-2894) for the Mercury N-Body software package by John E. Chambers (ascl:1201.008). The binary symplectic mapping is implemented as a hybrid symplectic method (Chambers, 1999, MNRAS 304, 793-799) that allows close encounters and collisions between massive bodies and is therefore suitable for planetary accretion simulations.

License: DPI is released under GPL 3 license.

Note on this release: release 1.0 supplies the symplectic mapping for S-type binary systems (also called wide binary systems in Chambers et al. 2002), where the planets orbit one of the stars and are perturbed by the stellar companion (which is the outermost body of the system).

Disclaimer: the DPI library is supplied with a modified version of Mercury 6 for the convenience of the users; however, only those files whose name begins with "dpi" are property of the author and are released under GPL 3 license.

## USING DPI LIBRARY WITH MERCURY 6

The use of DPI in conjunction with Mercury 6 should be straightforward for Mercury's users. Users not familiar with Mercury 6 are advised to first read Mercury's manual to get in touch with its working.

In order to use Mercury together with DPI the users need to compile together the following two files:
- dpi1_0.for, containing the DPI library
- mercury6_2-dpi.for, containing a modified version of Mercury 6 adapted to call the subroutines provided by the DPI library

The two files can either be compiled together, e.g:

gfortran mercury6_2-dpi.for dpi-rc2.for -o executablename

or separately by using the option "-c" to create binary object files, e.g.:

gfortran -c mercury6_2-dpi.for
gfortran -c dpi1_0.for
gfortran mercury6_2-dpi.o dpi1_0.o -o executablename

Once compiled, to use the S-type symplectic mapping:
- create a file big.in with the bodies you want to integrate, taking care that the binary companion is the last body listed
- indicate "wb" (wide binary, since the binary star is the outermost body of the system) as the algorithm in the file param.in of Mercury

If the program is run using the test input files supplied with DPI, the energy error should oscillate around 1E-7 and the angular momentum error varying between 1E-13 and 1E-14 (the behaviour of the latter can vary depending on the hardware and the compiler due to the actual precision of the computations and the way rounding errors are handled).

src/big.in

0 → 100755
+20 −0
Original line number Diff line number Diff line
)O+_05 Big-body initial data
) Lines beginning with ) are ignored
)--------------------------------------------------
style (Cartesian,Asteroidal,Cometary) = Asteroidal
epoch (in days) = 0.0
)--------------------------------------------------
 Planet1   m=  1.0d-3 r=  1.  d=  1.33000004
 5.000E+00 0.000E-00 0.000E+00
 0.000E+00 0.000E+00 0.000E+00
 0.000E+00 0.000E+00 0.000E+00
 Planet2   m=  1.0d-3 r=  1.  d=  1.33000004
 1.000E+01 0.000E-00 0.000E+00
 0.000E+00 0.000E+00 0.000E+00
 0.000E+00 0.000E+00 0.000E+00
 Planet3   m=  1.0d-3 r=  1.  d=  1.33000004
 2.000E+01 0.000E-00 0.000E+00
 0.000E+00 0.000E+00 0.000E+00
 0.000E+00 0.000E+00 0.000E+00
 
 No newline at end of file

src/dpi1_0.for

0 → 100644
+0 −0

File added.

Preview size limit exceeded, changes collapsed.

src/element.in

0 → 100755
+19 −0
Original line number Diff line number Diff line
)O+_06 element  (WARNING: Do not delete this line!!)
) Lines beginning with `)' are ignored.
)---------------------------------------------------------------------
 number of input files = 1
)---------------------------------------------------------------------
) List the input files, one per line
 xv.out
)---------------------------------------------------------------------
 type of elements (central body, barycentric, Jacobi) = ce
 minimum interval between outputs (days) = 100.d0
 express time in days or years = years
 express time relative to integration start time = yes
)---------------------------------------------------------------------
) Output format? (e.g. a8.4 => semi-major axis with 8 digits & 4 dec. places)
 a21.16 e21.16 i21.16 x21.16 y21.16 z21.16 u21.16 v21.16 w21.16
)---------------------------------------------------------------------
) Which bodies do you want? (List one per line or leave blank for all bodies)
) a21.16 e8.6 i8.4 g8.4 n8.4 l8.4 m13e 

src/element6.for

0 → 100755
+0 −0

File added.

Preview size limit exceeded, changes collapsed.