SAWdoubler: A program for counting self-avoiding walks

Publication date

2013-03

Authors

Schram, R.D.
Barkema, G.T.ORCID 0000-0001-5289-4147ISNI 0000000117189768
Bisseling, R. H.ISNI 0000000384208994

Editors

Advisors

Supervisors

Document Type

Article
Open Access logo

License

Abstract

This article presents SAWdoubler, a package for counting the total number ZN of self-avoiding walks (SAWs) on a regular lattice by the length-doubling method, of which the basic concept has been published previously by us.Wediscuss an algorithm for the creation of all SAWs of length N, efficient storage of these SAWs in a tree data structure, and an algorithm for the computation of correction terms to the count Z2N for SAWs of double length, removing all combinations of two intersecting single-length SAWs. We present an efficient numbering of the lattice sites that enables exploitation of symmetry and leads to a smaller tree data structure; this numbering is by increasing Euclidean distance from the origin of the lattice. Furthermore, we show how the computation can be parallelised by distributing the iterations of the main loop of the algorithm over the cores of a multicore architecture. Experimental results on the 3D cubic lattice demonstrate that Z28 can be computed on a dual-core PC in only 1 h and 40 min, with a speedup of 1.56 compared to the single-core computation and with a gain by using symmetry of a factor of 26. We present results for memory use and show how the computation is made to fit in 4 GB RAM. It is easy to extend the SAWdoubler software to other lattices; it is publicly available under the GNU LGPL license.

Keywords

Self-avoiding walk, Enumeration, Simple cubic lattice, Taverne

Citation

Schram, R D, Barkema, G T & Bisseling, R H 2013, 'SAWdoubler: A program for counting self-avoiding walks', Computer Physics Communications, vol. 184, no. 3, pp. 891-898. https://doi.org/10.1016/j.cpc.2012.10.026