struts - find self-contacts of tube with Geomview VECT core
struts -e <eps> -l <levels> -s -S -M <maxstruts> --sv -v <verbosity> <file>
struts is designed to demonstrate some of the features of
the liboctrope library. If the function d(x,y)
gives the space
distance between two points x and y on a polygonal curve
in 3-space, then struts finds local minima of d(x,y)
(excluding
distances in the form d(x,x)=0). The program records all locally
minimal pairs whose distance is within eps of the distance
of the closest such pair, and displays them in the Geomview SKEL
format. These locally minimal pairs are called ``struts''.
Displays a help message showing the options for struts.
struts will display all pairs whose distance is within eps of the closest such pair. eps defaults to 0.01.
If this option is present, struts will display a human-readable summary of the characteristics of the set of pairs with distance within eps of the shortest locally minimal distance.
Write the struts to stdout giving component, edge (by leading vertex number) and fraction of the way along the edge.
Don't write the struts to a strut file. For cases when you want to capture them from stdout or just count them.
Write the struts to stdout giving their endpoints. This option turns on -n.
struts efficiently identifies pairs of points of interest using an octree-based clustering algorithm called octrope. The number of levels in the octree affects the resolution at which edges are clustered-- a higher number of levels allows more pairs of edges to be eliminated from struts' search before the code begins checking pairs of edges against one another. But this speedup must be balanced against the overhead incurred in building a larger tree.
The user can fine-tune this tradeoff by setting levels. Setting levels = 1 reduces the algorithm to checking all pairs of edges (very slow), while for an n edge link the default is levels = 0.75*log2(n).
The user can print debugging information by setting verblevel from 0 (lowest) to 9 (highest). Usually useful only for library maintainers.
This sets the size of struts' internal list of struts. If more struts are found than that (if, for example, epsilon is set large), then any struts beyond the table size are lost. By default struts sets the table size to 20 times the number of edges. -M allows setting it larger.
The input file, expected to be in Geomview VECT format. If the filename is infile.vect, the output file is named infile.struts.skel. This argument is not optional.
Find all nontrivial local minima of the self-distance function with length within 0.01 (the default) of minimum length for the file 3_1.vect:
struts 3_1.vect
Find nontrivial local minima with length within 0.0001 of minimum:
struts -e 0.0001 3_1.vect
the liboctrope manpage, http://www.geomview.org
Ted Ashton and Jason Cantarella
This program is covered by the GNU General Public License for free software, modified as follows: Any publication of computations performed using struts must include a citation of the paper A Fast Octree-Based Algorithm for Computing Ropelength (arXiv:math.DG/0409416).