/*************** README file for "min", version 2.1 ****************/ "min.c" is the C code of a program for minimizing the MD energy of a polygonal knot. To compile it, use gcc min.c -lm -o min To run the program, type min OR min knot1 knot2 where knot1 is the input file, and knot2 the output file. The knot file should be such that the first line contains the number of vertices, and each of the successive line contains the coordinates of successive vertices. See the file "fig8" for an example. The program will ask you to send a command. Type "h" to see a list of commands. Here are some that need explanation. "method": Toggle between Method m and Method e for approaching. Method m uses gradient flow of MD energy, Method e uses that of edge energy. Method e might change knot type. "pstyle": Toggle between short (default) and long output stype. The short output only contains the knot data and energy, the long output also contains gradient and edge length. "tpoint x": Set up turning point between two different approaches. The first one is faster for bad knot, while the second one is more accurate. See below for details. x=-1 (default) for automatic change. Set x between 0 and 1 if you want it run x*100% with the first method. If number of edges exceed 1010, change "size 1010" in the #define part of the program file to the desired number. The program run in two methods: 1. Move each vertex according to its own gradient and derivative, subject to restriction on min distance from adjacent edges to the other edges. For generic knot, this one reduce energy more rapidly, but it does not work when close to a critical point. 2. Move along gradient direction, try to minimize gradient. It is slower, but gets better approach to critical point. Definition. A "badrun" is a step which increases the energy. "badrunlimit" is a number set to 0.01. "runnum" is the total number of steps. When the number of badruns exceed badrunlimit*runnum, the program change from method 1 to method 2. After that, each time badruns exceed that number the speed in method 2 is bring down by a factor of 0.9. Thus, for example, if the knot is already close to min, we may set tpoint to 0 to use method 2 only, to get slow but accurate approach. On the other hand, if we only want some rough approach, we may set tpoint to 1. Please send any comments or suggestions to wu@math.uiowa.edu. Thanks. ---- Ying-Qing Wu