Minimizing the Riesz energy using some standard solvers. The code tries to find a (local) minimum of an energy functional generated by a discrete subset of the ** d ** -dimensional unit sphere assuming the points of this subset interact via the Riesz kernel: |x1-x2|^-s.
The problem is controlled by a set of parameters specified in the control.inp file:
- s is the power used in Riesz kernel
- dim dimension of the ambient space
- file is an int, controlling whether a starting configuration is provided; if not, a random one is generated
- numpts total number of points in the configuration
- outfile name of the output file; .txt extension will be appended
- LBFGSHistorySize previous iterations of the LBFGS-method that need to be taken into account
Written with Ziqi (Ken) Yang with input from Doug Hardin and his collaborators. Based on a Cpp solver library
The uppercase prefix shows the solver that's being used. Suffixes: _parallel uses OMP, _truncated minimizes an energy produced by the truncated version of the Riesz kernel.
ATTN: since commit 94e0ea4 only L-BFGS_truncated.cpp is used. This is to be changed sometime soon.
Eigen:
- sudo apt-get install libeigen3-dev (deb-based distributions)
- brew install eigen (MacOS)
- set parameter values in control.inp
- cmake .
- make
- ./main