Central configurations in planar n-body problem for n = 5, 6, 7 with equal masses
by M. Moczurad and P. Zgliczyński
An installation of the program realizing the numerical part of the proofs in the paper
Requirements
The program is written in C++ and has been tested under Ubuntu Linux 14.04 with gcc version 4.9.2 (Debian 4.9.2-10+deb8u2) compiler and MacOS 10.14 with Apple LLVM version 10.0.1 (clang-1001.0.46.4). The benchmarks in the article were performed on the former configuration. The program uses the CAPD library ver. 5.0.6 (see also the sourceforge download zone). The CAPD library is also available as debian deb package. There are also prebuilt versions for Debian, Ubuntu and OSX.
Compilation
It is possible to compile the CAPD library under MS Windows but we strongly recommend to compile and run the program on linux-like or Mac OS systems. The following commands should be executed from the terminal (or msys environment under MS Windows)
- unzip the archive:
unzip nbodies.zip
- go to the directory of the program:
cd nbodies
- edit
makefile
to ensure thatCAPDBINDIR
variable points to the directory that contains the filecapd-config
, which should be created during your CAPD's installation. Do not forget to put the backslash sign at the end, for example it should beCAPDBINDIR=capd/bin/
- build the program using the makefile provided, by writting at the command prompt:
make
An executable file is created in the current directory.
Ruuning the program, input and output
Observe that the subdirectory nbodies/data
was created while unzipping nbodies
. In this subdirectory you will find a number of input files
for our proofs. You can put your own input data in that directory, the conventions for naming of the input files and their structure are described below
Running the program for the proof the central configurations with equal masses
For the proof of the of all central configurations with equal masses for n = 3, 4, 5, 6, 7 the program should be run as ./cc-nb st n 1 16 > out-n.txt
out-n.txt
will contain the output report from the proof.
For example, for n = 6, the program should be run as ./cc-nb st 6 1 16 > out-6.txt
.
Filenames
The program reads input data from the file init-data-n-k.txt
and creates a binary file cc-zeros-n-k.dat
with all CCs found (before
the identity and symmetry elimination). Numbers n
and k
in the file names correspond to command line parameters given (see below).
Input file has to be in the data
directory; the binary file is also written there. Sample files for proofs of all central configurations
for n = 3, 4, 5, 6, 7 and for nonsymetrical configurations for n = 8, 9, 10 are already in the data
directory.
Format of a file with input data
0/1 | // 0 -- unequal masses (unfinished mode), 1 -- equal masses | ||||||
n | // number of bodies | ||||||
x0L | x0R | ... | x(n-3)L | x(n-3)R | x(n-2)L | x(n-2)R | |
y0L | y0R | ... | y(n-3)L | y(n-3)R | 0.0 | 0.0 | |
mass0L | mass0R | ... | mass(n-3)L | mass(n-3)R | mass(n-2)L | mass(n-2)R |
Coordinates (xi, yi)
and mass mi
of a qi
body are given as intervals xi = (xiL, xiR)
, yi = (yiL, yiR)
and mi = (massiL, massiR)
. The coordinates and mass of the last body are calculated. In the cases of equal masses the line with masses intervals are optional and is ignored by the program.
Running the program
The program can be run from the terminal, and the usage is the following:
./cc-nb <st> n k [d]
where the parameters mean the following:
-
s
-- perform a search -
t
-- perform a test (note that this step requires the output generated by the "search" step, but it can be generated by a separate run of the program) -
n
-- the number of bodies -
k
-- suffix of the input data file; for n = 8, 9, 10 this is the position of CC in Ferrario's list; it has no significance for n < 8 -
d
-- (optional) maximum call chain depth up to which we launch recursive search functions concurrently. This effectively limits the number of threads the program will be using. The default value is 0, meaning a fully sequential run. In our experiments, values slightly higher than the maximal number of physical threads in the system were producing the best results. For example, on a 6-core (12 thread) Intel i7, the best results are for d between 12 and 16.
We recommend redirecting the standard output of the program to a file, as it is quite verbose and unreadable in the terminal. For example, to see the proofs of
all central configurations with equal masses for n = 6, the program should be run as ./cc-nb st 6 1 16 > out-6.txt
.