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.