#
Software for polymer simulation

Future home of an open source software library for the rapid Monte Carlo
simulation of polymers, in particular self-avoiding walks and related
models. The data structure and algorithms are described
in the following papers:
N. Clisby, Efficient implementation of the pivot algorithm for
self–avoiding walks, arXiv:1005.1444, J. Stat.
Phys. **140**:349–392 (2010), and
N. Clisby, Accurate estimate of the critical exponent ν for
self–avoiding walks via a fast implementation of the pivot
algorithm, arXiv:1002.0494, Phys. Rev.
Lett. **104**, 055702 (2010).

I have wanted to release this software for a number of years, but have not yet found the time and energy to do so. This will change soon!

At the moment I have a working, efficient implementation of the
algorithm described in the above papers (*version 1*). I've used it for a number of
computer experiments, and I'm confident that it's correct, but the code
is inflexible and difficult to adapt to different problems. In
particular, it is quite specialised to self-avoiding walks.
It is also rather poorly documented!
But, with
some effort it will
be possible to extend it to interacting self-avoiding walks and the
Domb-Joyce model, and likely some other problems such as quasi-prudent
walks too.

In addition, I have an initial version of a far more flexible software
library (*version 2*). I've tested it a little and it seems to be correct (using it
for simulations of self-avoiding walks on the hydrogen peroxide lattice), and it can be
extended to a wide range of models on any lattice or in the continuum.
But, it is
significantly slower than my original code, and still clunkier than I
would like. This will take a significant amount of work to improve, and
I'm still not sure if the best approach might be to just throw it away and
start again.

To break the log-jam, I'll tidy up and document
*version 1*, and release the code in March or April, 2016.
(Completely missed the deadline of 2015 when I became bogged down with
teaching, so I would understand if you take this with a grain of salt or
two.)
I'll then consider how to proceed. It may be the case that I
progressively upgrade this version to add new features, and make it more
useable, or I look at working on and then releasing *version 2*.

Over the next year or two I will have at least one more software library to release.