Note: all code posted here is free to distribute.

The following routines are used for calculating the net winding of two curves bound between planes

as well as the polar writhing of a single curve. This can be used to calculate the open equivalent of the

Calugareanu-White-Fuller decomposition of the ribbon detailed in this paper. I extended this framework in joint work

with Sebastien Neukirch in which we allowed for ribbons which looped over their ends (this motion is the so-called dirac belt trick)

(the paper can be found here). The code has recently been modified in order to deal with less than differentiable curves following private conversations with Zachary Sierzega

The first set of routines calculate various forms of the writhe. First for closed curves

Closed writhe

Here the polar and standard writhe definitions give the same value. However, with the polar writhe calculation there

is further information in the decomposition into local and non local contributions.

On Linux The routine is compiled under g++ by running

sh makeFileGenClosed.sh

then running

./polarWritheClosed <file>

<file> is assumed to be in the same folder as the command polarWritheClosed

Open polar writhe

This quantity calculates the angles the end points of the curve make with the curve itself. This is the standard definition

(see here for details).

On Linux The routine is compiled under g++ by running

sh makeFileGenStandard.sh

then running

./polarWritheGen <file>

Following conversations with Zacahary Sierzega