-
Notifications
You must be signed in to change notification settings - Fork 1
ridgerunner is a knot-tightening program.
License
GPL-3.0, GPL-3.0 licenses found
Licenses found
GPL-3.0
COPYING
GPL-3.0
COPYING.txt
designbynumbers/ridgerunner
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
RIDGERUNNER 28 September 2022 1. Installation and dependencies. Ridgerunner is a program for computing minimum ropelength knots and links using a version of constrained gradient descent. The program depends on a number of other libraries: plcurve tsnnls argtable2 ncurses OpenBlas gsl If you've manually installed all of these dependencies, the program installs via the usual autotools ./configure make make check make install process, but a (much better) way to install is to use the Homebrew formula: brew tap designbynumbers/cantarellalab brew install ridgerunner 2. The (really brief) user's guide to Ridgerunner. The best way to get help on the various RR options is to use ridgerunner --help This displays a brief summary of the available options. For most users, the standard invocation of ridgerunner should look something like ridgerunner -a myknot.vect -r 5 -s 1000 Here's what those options mean: -a autoscale This scales the knot to (radius) thickness .501 before proceeding. This eliminates all self-contacts of the knot. Even if you are starting with a very tight knot, it is wise to use -a and let this run of ridgerunner rebuild the set of self contacts rather than starting from a tight position. myknot.vect The input file, in Geomview VECT format. You can read a description of VECT at www.geomview.org. -r 5 Resolution of 5 vertices per unit ropelength. This is considered a low resolution run, which is what you should be starting with. For a trefoil knot, this is a resolution of about 150 vertices. In principle, -r 10 is a medium resolution run, -r 20 is a high-resolution run, and -r 40 is about where ridgerunner starts to break down. The recommended procedure for getting high resolution data is to tighten as much as possible at -r 5 and -r 10 before jumping into an -r 20 run. -s 1000 Ridgerunner has a variety of options controlling when the computation stops. The easiest to understand is -s <n>, which gives the number of steps to take. -s 1000 is a fairly short run. 2a. Ok, what happens then? You should get a screen display which looks about like: ------------------------------------------------------------- Ridgerunner 1.0.1 (cvs build Nov 10 2007 23:53:55) plCurve Version: 1.0.1 Octrope Version: 1.4 tsnnls Version: 2.01.2 Loaded 1 component, 328 vertex plCurve from myfile.vect. Saved copy of myfile.vect to ./myfile.rr/myfile.vect. Curve has thickness 0.499985. Scaling to thickness 0.501. Scaled curve has thickness 0.501. Autoscale selftest ok. Rerez'd, autoscaled, eq'd file written to ./myfile.rr/myfile.atstart.vect. Overstep tolerance: 0.000100 of thickness 0.500000 (0.499950) minminrad: 0.49997500 ridgerunner: Curses screen display disabled, using stdout. Define CURSES_DISPLAY to enable better screen display. ridgerunner: Starting run. Will stop if step number >= 10000 residual < 0 ropelength decrease over last 20 steps < -1. 1 Rop:32.7526832 Str: 0 MrStruts: 0 Thi:0.5009661 2 Rop:32.7535673 Str: 0 MrStruts: 0 Thi:0.5009238 3 Rop:32.7544560 Str: 0 MrStruts: 0 Thi:0.5008814 4 Rop:32.7553638 Str: 0 MrStruts: 0 Thi:0.5008388 5 Rop:32.7563305 Str: 0 MrStruts: 0 Thi:0.5007954 6 Rop:32.7572847 Str: 0 MrStruts: 0 Thi:0.5007522 7 Rop:32.7582274 Str: 0 MrStruts: 0 Thi:0.5007092 8 Rop:32.7591592 Str: 0 MrStruts: 0 Thi:0.5006664 9 Rop:32.7600809 Str: 0 MrStruts: 0 Thi:0.5006239 10 Rop:32.7609933 Str: 0 MrStruts: 0 Thi:0.5005815 11 Rop:32.7618970 Str: 0 MrStruts: 0 Thi:0.5005393 ----------------------------------------------------------- This display is fairly self-explanatory. On the left is the step number. The "Rop:" column displays the current ropelength of the knot. The "Str:" column displays the number of self-contacts in the current version of the knot. The "MrStruts:" column displays the vertices of the knot which have reached the maximum curvature bound for the run. And the "Thi:" column tells you the current thickness of the knot. These columns will continue to scroll down your screen, every so often interrupted by a few debugging messages, until the end of the run. If all goes well, "Rop" should decrease steadily over time, slowing down as the run continues. Eventually, this display ends with something like ------------------------------------------------------------ 98 Rop:32.7556295 Str:369 MrStruts: 0 Thi:0.4999833 99 Rop:32.7555984 Str:372 MrStruts: 0 Thi:0.4999833 100 Rop:32.7555691 Str:375 MrStruts: 0 Thi:0.4999833 ridgerunner: run complete. Terminated because ridgerunner: reached maximum number of steps (100). ridgerunner: Run complete. ------------------------------------------------------------ 2b. So where's my data? All of the output files from the run are stored in a new subdirectory of whatever directory you were in when you started RR. This new directory has a name derived from the name of the input file. myfile.vect ------> output stored in myfile.rr 3.1.328.vect ------> output stored in 3.1.328.rr Let's look into this directory. It should look like: myfile.atstart.vect myfile.log snapshots/ myfile.final.struts myfile.vect vectfiles/ myfile.final.vect logfiles/ The filenames are pretty self-explanatory. Since you autoscaled and maybe changed the resolution of your input VECT file, myfile.atstart.vect records the literal VECT file that RR started with on step 1. You also have a copy of your original myfile.vect for comparison. The final output of RR is the myfile.final.vect. The file myfile.final.struts is mostly useful for strutplot-- it's not very helpful to read and won't plot in Geomview, either. myfile.log contains an overview of what went on in the computation (helpful for long runs where you weren't watching the screen). Unless something went wrong, it's not very useful and you don't need to worry about it. The directories snapshots/ vectfiles/ and logfiles/ contain data gathered during the run. Unless you're debugging, writing a paper, or making a movie, you probably don't care. We note that vectfiles/, for instance, stores the curve at various stages of tightening, and can get pretty big (it's capped at 100 MB by default). logfiles/ can get large also. You can control their size with the options --MaxLogSize=1M (maximum log size 1 megabyte per log -- 20 MB total) --MaxVectDirSize=20M (maximum size of /vectfiles) Snapshots are taken every 1000 steps by default. You can change this frequency with --SnapshotInterval=n 2c. What if something goes wrong? If something goes wrong, you'll get an error message (we hope). At that point, please pack up the entire directory myfile.rr and send it to jason.cantarella AT gmail.com. If it's really big, then it's ok to post it somewhere on the web and send me a link to it.
About
ridgerunner is a knot-tightening program.
Topics
Resources
License
GPL-3.0, GPL-3.0 licenses found
Licenses found
GPL-3.0
COPYING
GPL-3.0
COPYING.txt
Stars
Watchers
Forks
Packages 0
No packages published