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)

  1. unzip the archive: unzip nbodies.zip
  2. go to the directory of the program: cd nbodies
  3. edit makefile to ensure that CAPDBINDIR variable points to the directory that contains the file capd-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 be CAPDBINDIR=capd/bin/
  4. 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

The file 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.