Computer Physics Communications 182 (2011) 1027–1033
Contents lists available at ScienceDirect
Computer Physics Communications www.elsevier.com/locate/cpc
Parallel algorithm for calculation of the exact partition function of a lattice polymer Jae Hwan Lee a , Seung-Yeon Kim b , Julian Lee a,c,∗ a b c
School of Systems Biomedical Science and Department of Bioinformatics and Life Science, Soongsil University, Seoul 156-743, Republic of Korea School of Liberal Arts and Sciences, Chungju National University, Chungju 380-702, Republic of Korea Department of Pharmaceutical Chemistry and Graduate Group in Biophysics, University of California, San Francisco, CA 94158, USA
a r t i c l e
i n f o
a b s t r a c t
Article history: Received 26 August 2010 Received in revised form 4 January 2011 Accepted 7 January 2011 Available online 13 January 2011 Keywords: Lattice polymer Exact enumeration Parallel computation
We develop a parallel algorithm that calculates the exact partition function of a lattice polymer, by enumerating the number of conformations for each energy level. An efficient parallelization of the calculation is achieved by classifying the conformations according to the shape of the box spanned by a conformation, and enumerating only those in a given box at a time. The calculation time for each box is reduced by preventing the conformations related by symmetries from being generated more than once. The algorithm is applied to study the collapse transition of a lattice homopolymer on a square lattice, by calculating the specific heat for chain lengths up to 36. © 2011 Elsevier B.V. All rights reserved.
1. Introduction
transition of the lattice polymer by observing behaviors of various quantities such as the specific heat,
Polymers on discrete lattices serve as a simple toy model of a polymer [1–6]. By introducing hydrophobic inter-monomer interaction, the lattice model can be used to study the collapse transition of a polymer [7–26]. Various quantities such as radius of gyration, end-to-end distance, and specific heat have been calculated, both using Monte Carlo samplings [8,11,16–22,24–26] and exact enumeration [9,12,14,23]. Although the length of chain that can be studied using exact enumeration is much less than that of the Monte Carlo sampling methods, the exactness of the calculation enables one to use powerful extrapolation methods to study the behavior of the lattice polymers in the limit of infinite chain length. In the current study, we develop a method for calculating the exact partition function of a lattice polymer. The partition function is the most basic quantity from which all the important thermodynamic properties can be calculated. The number of states for each energy E, Ω( E ), contains all the information needed for the calculation of the partition function Z , which is given by
Z (β) =
Ω( E )e −β E ,
(1)
E
where β ≡ 1/k B T with the Boltzmann constant k B and temperature T . In particular, it can be used for studying the collapse phase
*
0010-4655/$ – see front matter doi:10.1016/j.cpc.2011.01.004
©
2011 Elsevier B.V. All rights reserved.
(2)
with increasing N. Since the number of conformations is finite in the case of a lattice polymer, the partition function can be made a polynomial in e −β by considering models with integer values of E. To elaborate, we consider a polymer on regular lattice such as two-dimensional square or three-dimensional cubic lattices. Then the Hamiltonian for a heteropolymer is given by
H=−
(ai , a j )(ri , r j ),
(3)
i< j
where
(ri , r j ) =
1 (|i − j | > 1 and |ri − r j | = 1) 0
(otherwise),
(4)
ai is the type of the i-th monomer, and (a, b) is the interaction energy between the monomers of type a and b. By taking (a, b) to be integer multiples of a unit energy , (a, b) = n(a, b) , the partition function is expressed as a polynomial:
Z= Corresponding author at: School of Systems Biomedical Science and Department of Bioinformatics and Life Science, Soongsil University, Seoul 156-743, Republic of Korea. E-mail address:
[email protected] (J. Lee).
∂E ∂ 2 ln Z = β2 , ∂T ∂β 2
C (T , N ) =
{κ (a,b)}
Ω( K ) z K , Ω˜ κ (a, b) z a,b n(a,b)κ (a,b) =
(5)
K
˜ κ (a, b)}) is the number of polymer conforwhere z ≡ exp(β ), Ω({ mations with contact numbers {κ (a, b)}, and
1028
Ω( K ) ≡
J.H. Lee et al. / Computer Physics Communications 182 (2011) 1027–1033
Ω˜ κ (a, b)
(6)
n(a,b)κ (a,b)= K
is the number of conformations with energy E = − K . The homopolymer composed of only one kind of monomers is a special case where n(a, b) = 1 regardless of a, b, with K now being the number of intra-chain contacts. In this work, we develop an efficient parallel algorithm for calculating the exact partition function of a lattice polymer by enumerating Ω( K ). The parallelization is implemented by classifying the conformations by the shape of the box enclosing a conformation. Only the conformations corresponding to a given box are enumerated at a time by pruning partial conformations incompatible with the box, and the tasks of enumerating the conformations for the boxes are distributed among computational nodes. Since no communications are required during the calculation, the computational speed scales well with the number of CPUs. The calculation time for each box is reduced by exploiting the symmetries of the system. A conformation, its rotations by multiples of 90◦ , and their mirror images are considered equivalent and prevented from being generated more than once. For a generic conformation, the discrete rotations and reflections form an 8-fold and 48-fold symmetries in two and three dimensions, respectively. Exceptions are the cases of lower-dimensional conformations embedded in higher-dimensional spaces. In two dimensions, a straight chain is the one-dimensional conformation, invariant with respect to reflection perpendicular to the chain, so the discrete rotations and reflections form a 4-fold symmetry. Similarly, in three dimensions, only 6-fold and 24-fold symmetries exist for the linear and planar conformations, since they are invariant under transformation perpendicular to the underlying plane and straight line. Therefore, the number of conformations with discrete rotations and reflections considered distinct in D dimensions, Ω ( D ) ( K ), can be easily obtained from the reduced number of conforma˜ ( D ) ( K ) where symmetrically related conformations are tions ω counted only once and the lower-dimensional conformations are not counted:
Ω (1) ( K ) = 2ω˜ (1) ( K ) = 2δ K ,0 , Ω (2) ( K ) = 8ω˜ (2) ( K ) + 4ω˜ (1) ( K ), Ω (3) ( K ) = 48ω˜ (3) ( K ) + 24ω˜ (2) ( K ) + 6ω˜ (1) ( K ).
(7)
On the other hand, the reduced numbers of conformations ω( D ) ( K ) where only symmetries are eliminated, are expressed in terms of ω˜ ( D ) ( K ) as
ω(1) ( K ) = ω˜ (1) ( K ) = δ K ,0 , ω(2) ( K ) = ω˜ (2) ( K ) + ω˜ (1) ( K ), ω(3) ( K ) = ω˜ (3) ( K ) + ω˜ (2) ( K ) + ω˜ (1) ( K ).
(8)
From Eqs. (7) and (8), we see that Ω ( D ) ( K ) are expressed in terms of ω( D ) ( K ) as:
Ω (2) ( K ) = 8ω(2) ( K ) − 4δ K ,0 , Ω (3) ( K ) = 48ω(3) ( K ) − 24ω(2) ( K ) − 18δ K ,0 .
(9)
It is to be noted that the enumeration in two dimensions must be performed before enumerating those in three dimensions. Although the current algorithm may be used for both homopolymer and heteropolymer in any dimension, as a simple example of the application, we calculate the exact partition function for a homopolymer on a two-dimensional square lattice, for chain lengths up to 36. By analyzing the behavior of the specific heat, we could estimate the temperature of polymer collapse transition.
Fig. 1. Sample conformations for N = 20 on (a) 5 × 3 rectangle and (b) 4 × 4 rectangles. Circles are monomers of a lattice polymer and the arrow indicates the direction of the chain.
2. The method The crucial ingredients in the current method are (1) classifying conformations according to the boxes they span, and enumerating only those for the given box at a time by pruning partial conformations incompatible with the box, and (2) preventing symmetrically related conformations from being generated more than once. The arguments are almost the same for both two and three dimensions, but more detailed illustration will be given for two dimensions which is easier to visualize. 2.1. The classification of the conformations according to the spanning boxes For each conformation, we construct a rectangular box enclosing it, whose sides are touched. The conformations can then be classified according to the shapes of such boxes, since the box is uniquely determined for each conformation. The shape of a box can be described by the width w and height h in two dimensions, and the depth d is added for three dimensions. We use the convention that these numbers are measured in the unit of the lattice spacing, so the number of lattice sites spanned by the box is ( w + 1) · (h + 1) · (d + 1). For simplicity of the discussion, we keep d regardless of the dimensions, which is 0 for two dimensions. As an illustration, conformations with box sizes 5 × 3 and 4 × 4 in two dimensions are depicted in Fig. 1. There is an intrinsic direction in the polymer chain, and a conformation for N monomers can be considered as a self-avoiding walk of N − 1 steps, starting from the first monomer. Since the area or volume of a box should be large enough to accommodate a conformation, w, h, and d should satisfy the lower bound ( w + 1) · (h + 1) · (d + 1) N for a chain with N monomers. Also, since the perimeter of the box should be small enough so that all sides touch the conformation, they should also satisfy the upper bound w + h + d N − 1. Due to discrete symmetries, it is enough to consider only the boxes with w h d. Also, the conformations for boxes with w, h, and d that saturate the upper bound, w + h + d = N − 1, do not have to be enumerated explicitly, since they can be obtained from a simple analytic formula. Considered as self-avoiding walks, these are the conformations where the steps are taken in a fixed direction along each axis, without turning back, making no intra-chain contact at all. Since there are D possible directions for each step in D dimensions, the total number of such conformations for all possible boxes is simply D N −1 / D ! when rotational and reflectional symmetries are eliminated. Therefore, the values of w, h, and d that have to be included in the explicit enumeration are integers bounded by the following inequalities:
w h d,
( w + 1) × (h + 1) × (d + 1) N ,
J.H. Lee et al. / Computer Physics Communications 182 (2011) 1027–1033
1029
side of the box has already been touched by the walk generated so far. If there is a boundary that has not been touched as yet, whose distance from the current position is l, then the next step in the opposite direction to this boundary is forbidden unless there are sufficient number of remaining monomers N − n. Assuming the untouched boundary is at x = 0 and the current position is at x = l and the next step is in the positive x direction, at least 3 monomers are needed to make a U -turn and get back to x = l, and l monomers are needed to reach the boundary x = 0, leading to the inequality
l + 3 N − n,
(11)
which should hold for any step in the opposite direction from the untouched boundary, whose distance from the current position is l. Similarly, the next step in the direction orthogonal to the untouched boundary is forbidden unless Fig. 2. The values of the box width w and height h for which the explicit computations are performed in two dimensions, are the points with integer coordinates inside the shaded area. The dashed line and the intersection point denoted by the white circle is not included (see text).
w + h + d < N − 1,
(10)
where again d is set to 0 in two dimensions. The region of w and h where explicit enumeration is performed is shown in Fig. 2 for the two-dimensional homopolymer along with the boundaries. Only the conformations for a given box are enumerated at a time, and parallel computation is performed by distributing the boxes to the computational nodes. Since the number of boxes N box is generally larger than the number of computational nodes N CPU , the simplest method of distribution would be to assign the same number of boxes to each node. However, this method turns out not to be so efficient since certain nodes finish jobs earlier and become free while others keep enumerating, due to the fact that the number of conformations and the computation time vary widely among the boxes. Therefore, the most efficient way of job distribution is to make enumeration for each box a separate task that can be taken up by any free node. Since a computational node that finishes the enumeration takes over a job in the queue, there is no idle time for any of the nodes. The total number of boxes for each chain length must be precalculated in order for this efficient distribution, which can be performed in a practically negligible amount of time. Absolutely no communication is needed between the nodes during the enumeration, and it is only after all the computations are finished that the results from all the nodes are added to obtain Ω( K ). The current algorithm can be used in a single CPU as well, by requiring it to enumerate conformations for all possible boxes. 2.2. Self-avoiding walk and pruning The conformations are enumerated by generating self-avoiding walks. This is most easily achieved by recursively calling a subroutine that makes one step into a given direction [27]. The number of sites n occupied by the current partial conformation is kept as a global variable, which is equivalent to the number of lattice sites visited by the walk so far. From the given position, the next step is made for each of the neighboring lattice sites not occupied by a monomer. For each step of the walk, the current lattice site is marked as occupied, and the contribution of the current monomer is added to the number of contacts K . When n reaches N, the contribution of the final monomer is added to K and ω( K ) is incremented by one. In order to ensure that the computation time is spent only for enumerating the conformations spanning a given box, any partial conformation incompatible with the current box is pruned out at an early stage. This is done by keeping the record of whether each
l + 1 N − n.
(12)
2.3. Elimination of discrete symmetries The speed of enumeration is increased by generating symmetrically related conformations only once. Since the discrete symmetries of rotation and reflection are 8-fold and 48-fold in two and three dimensions respectively, the enumeration time is reduced by nearly the same factor by calculating the reduced number of conformations ω( K ) instead of the full number Ω( K ). For a rectangular box where w, h, and d are all different, 90◦ rotational symmetry is removed by considering only the box with w > h > d. In order to remove the remaining 4-(8-)fold symmetry in two (three) dimensions, we divide the rectangular box into 4 (8) equivalent quadrants (octants) containing each corner of the box, and consider only the chain that starts inside one quadrant (octant), given by:
1x 1 y 1z
w 2 h 2 d 2
+ 1, + 1, + 1,
(13)
where x, y, and z are integer coordinates for the lattice sites. The quadrant described by Eq. (13) in the case of two-dimensions is shown as gray area in Fig. 3(a). Since symmetries are not completely eliminated for conformations starting at the boundaries, where any of the conditions, Eq. (13), is satisfied as an equality, additional constraints are imposed, so that the first step along the axis corresponding to an equality is in the positive direction. For example, when w is an even number and if the starting position of the chain is at x = w + 1, we require that the first step along the 2 x-axis should be positive. Examples in two dimensions are shown in Figs. 3(b) and (c). When any two of the three numbers w, h, and d are equal, for example w = h, there remains a reflection symmetry with respect to plane x = y, which is eliminated by imposing an additional constraint that among the steps parallel to the x– y plane, the first one must be along the x direction. Similarly, when h = d we break the symmetry by requiring that among the steps parallel to the y–z plane, the first step must be along the y axis. Again the twodimensional example is given in Fig. 3(d). 3. Result The method developed in the current work can be applied to either heteropolymer or homopolymer in any dimension, but as
1030
J.H. Lee et al. / Computer Physics Communications 182 (2011) 1027–1033
Fig. 4. The CPU time in log scales, plotted as a function of the chain length N.
Fig. 3. (a) Because of the symmetries, only chains starting from the sites in a shaded area at the lower left corner are considered. (b) In the special case of chains starting at the boundary line y = h2 + 1, an additional constraint is imposed so that the first vertical step is in the upper direction. A similar constraint is imposed for a chain that starts at the boundaries x = w + 1 so that the first horizontal step is 2 in the right direction. (c) For a chain starting at the center point with x = w +1 2 and y = h2 + 1 the two constraints for the horizontal and vertical boundary are imposed simultaneously. (d) For a square box, the additional reflectional symmetry with respect to the line y = x is eliminated by requiring that the first step is in the horizontal direction.
a simple example of the application, we study the homopolymer in the two-dimensional square lattice. Since a monomer cannot make a contact with itself, as well as the nearest and next-nearest neighbors along the chain, the upper limit of the K summation in Eq. (5), denoted as K max , satisfies the upper bound
K max
N ( N − 5)nmax 2
+ 3nmax ,
(14)
where nmax is the maximum value of n(a, b). In the absence of an additional information, we may take this value as the size of the array to store the values of ω( K ), but for the special case of the homopolymer in two dimensions, we have the exact formula for K max [28]:
K max =
N − 2m
for m2 < N m(m + 1),
N − 2m − 1 for m(m + 1) < N (m + 1)2 ,
(15)
where m is a positive integer. We calculated the number of states ω( K ) for N 36. The same quantities for N 28 have been calculated in earlier works [1, 28,29]. Our calculation reproduce these results in the appropriate ranges. The new results for 29 N 36 are presented in Tables 1 and 2. The CPU time using Intel Xeon CPUs (2.8 GHz) is plotted in logarithmic scale as the function of N in Fig. 4, for 15 N 30 where time data are available. As expected, the CPU time grows exponentially as N increases:
t A λN where values of A = 1.64(2) × 10−8 and
(16)
λ = 2.43(2) are obtained by taking the log of Eq. (16) and performing the least square fit. The total number of conformations as well as the computational
Fig. 5. The computational speed as the function of the number of computational nodes. The computational speed is defined as the inverse computational time, normalized so that its saturated value is 1.00.
times of many enumeration algorithms are known to grow exponentially as μ N where μ = 2.638 is the connective constant for the self-avoiding walks [30], so the computational time of the current algorithm grows at somewhat slower rate than this. Although algorithms for enumerating the total number of conformations have been developed [31,32] whose computation time grows at rates slower than the current one, it must be noted that the current method not only calculates the total number but also the number of conformations for each energy value, leading the calculation of the exact partition function at arbitrary temperature. By the efficient distribution of the enumeration tasks among the computational nodes, the computational speed scales linearly with the number of computational nodes until the saturation occurs. It is obvious that the number of nodes used, N CPU , cannot exceed the number of boxes, but the saturation occurs at a smaller value of N CPU because the enumeration time varies widely among the boxes. A few nodes enumerating the box with large number of conformations tend to keep computing even after most of the nodes have completed computations, causing the deviation from the linear scaling of computation speed with N CPU . By recording the computation times for each boxes and assuming the most efficient distribution of tasks between the nodes, the computation time could be calculated as a function of N CPU . The speed of computation, the inverse of the computation time, is plotted in Fig. 5 for various values of N, where the saturated value of the speed is
J.H. Lee et al. / Computer Physics Communications 182 (2011) 1027–1033
Table 1 The number of conformations
1031
ω( K ) on a square lattice as a function of the chain length 29 N 32 and the number of contacts K .
K
N 29
30
31
32
0 1 2 3 4 5 6 7 8 9 10
7 689 321 701 23 540 565 448 40 085 909 835 49 071 555 164 48 771 398 860 41 585 979 484 31 508 871 807 21 617 211 324 13 642 191 086 7 980 014 626 4 362 872 816
17 982 126 658 56 977 682 194 100 142 920 787 126 359 874 347 129 152 420 800 113 114 869 570 87 958 369 563 61 936 948 230 40 119 932 593 24 122 755 170 13 562 820 674
42 108 189 098 137 862 646 874 249 700 259 569 324 279 253 784 340 420 363 856 305 828 397 226 243 684 809 928 175 770 392 578 116 592 999 110 71 817 661 842 41 372 702 687
98 421 806 691 332 762 640 146 620 847 470 396 829 487 165 382 894 055 572 891 823 666 234 004 672 408 321 619 496 787 988 274 337 522 862 616 213 018 321 049 125 886 832 996
11 12 13 14 15 16 17 18 19 20 21
2 226 147 024 1 065 063 681 475 157 642 194 929 001 72 870 960 24 595 083 6 751 332 899 613 16 294
7 152 132 929 3 542 639 525 1 646 914 139 716 011 778 286 636 733 104 686 477 34 676 719 9 090 306 1 005 977 13 498
22 391 023 650 11 397 385 748 5 456 762 684 2 455 124 926 1 024 918 738 393 687 071 136 943 328 41 715 633 8 866 818 636 771
69 957 624 306 36 690 896 460 18 158 394 435 8 476 869 526 3 722 404 274 1 519 486 734 571 834 936 194 513 054 57 891 860 11 290 845 656 376
293 922 322 781
784 924 528 667
2 092 744 741 919
5 584 227 078 870
Total
Table 2 The number of conformations K
ω( K ) on a square lattice as a function of the chain length 33 N 36 and the number of contacts K .
N 33
34
35
36
0 1 2 3 4 5 6 7 8 9 10
230 322 480 773 802 996 241 232 1 541 179 904 025 2 115 681 496 986 2 338 726 472 743 2 206 962 182 754 1 843 564 131 938 1 393 031 891 232 967 612 822 630 624 333 988 838 377 300 221 611
538 091 763 166 1 933 501 499 531 3 815 982 548 374 5 380 293 120 526 6 097 828 689 993 5 892 600 481 193 5 035 936 926 127 3 891 460 627 050 2 763 594 584 708 1 823 442 056 984 1 127 227 716 216
1 258 493 243 324 4 654 740 470 620 9 435 546 145 403 13 648 570 547 310 15 844 205 741 060 15 663 662 724 418 13 681 123 644 389 10 798 327 608 646 7 829 412 575 160 5 273 396 514 658 3 327 749 067 600
2 938 908 879 305 11 183 769 131 112 23 276 263 902 178 34 530 182 956 163 41 046 002 582 789 41 502 969 876 897 37 041 494 009 397 29 859 153 057 072 22 103 175 375 035 15 198 342 307 484 9 793 121 298 664
11 12 13 14 15 16 17 18 19 20
214 525 075 976 115 237 903 606 58 512 766 632 28 078 596 777 12 713 385 376 5 394 346 351 2 118 111 650 763 529 938 244 420 464 64 896 504
656 411 900 406 361 505 461 087 188 687 694 809 93 399 109 108 43 768 480 489 19 397 612 212 8 050 408 136 3 106 194 291 1 095 275 398 342 819 455
1 978 790 499 320 1 113 409 518 803 594 317 169 744 301 280 956 584 144 908 527 014 66 030 540 012 28 387 608 698 11 380 453 744 4 222 218 392 1 417 505 104
5 948 956 055 099 3 422 967 752 173 1 870 659 345 753 972 915 151 671 481 649 031 145 226 685 149 424 101 251 448 207 42 658 656 267 16 800 266 331 6 127 509 709
21 22 23 24 25
9 564 594 306 498
87 997 218 11 551 406 265 502
412 844 504 89 824 129 8 277 188 105 265
2 004 417 664 573 845 730 118 501 239 9 156 136 57 337
14 879 374 739 128
39 675 824 783 385
105 659 884 331 089
281 566 759 719 981
Total
normalized to one. We see that the linear scaling holds for up to (max) N CPU = N CPU which increases with N. As an example of the application of our method, we calculate the specific heat per monomer,
C ( T , N )/ 2 N =
1 ∂E
2 N ∂ T
=
β 2 ∂ 2 ln Z 2 N ∂β 2
2
k k 2 (ln z)2 k k Ω(k) z k kΩ(k) z = − (17) p p N p Ω( p ) z p Ω( p ) z
which is plotted in Fig. 6 as a function of z for several values of N. The finite N approximation of the transition point, zc ( N ), is obtained from the condition ∂∂Cz = 0. We observe a peak around z 2, which becomes sharper as N increases. The point of the collapse transition is known to follow the finite-size scaling
zc ( N ) − zc (∞) ∼ N −φ ,
(18)
where φ is the crossover exponent whose exact value is believed to be 3/7 [15]. We apply the Bulirsch–Stoer extrapolation [33–35]
1032
J.H. Lee et al. / Computer Physics Communications 182 (2011) 1027–1033
Fig. 6. The specific heat for N = 20, 28, and 36 from bottom to top.
the fact the computation time varies wildly depending on boxes. However, considering the fact that N CPU cannot be made arbitrarily large in practice, the saturation effect can be neglected in many situations, particularly when long chains are studied, since (max) the saturation limit N CPU grows with the chain length N (see Section 3). As can be seen from Section 3 (see Fig. 5), the partition function of the two-dimensional polymer chain of length 29 can be enumerated with up to 30 CPUs without saturation of the linear scaling, and one can employ more CPUs for studying chains of longer lengths. Since linear scaling becomes better as the chain length increases, our method is a powerful tool for studying long polymer chains with limited computational resources. An idea of classifying conformations of two-dimensional homopolymers according to spanning boxes, similar to ours in certain aspects, has been introduced for the calculation of the partition function of a polymer on the square lattice at infinite temperature using transfer matrix formalism [32]. At least for such a calculation the transfer matrix was claimed to be superior to the direct counting, and it would be interesting to see whether it can be generalized for calculating the partition function at arbitrary temperatures in two dimensions, without introducing much additional computational costs. The current algorithm is more general in that not only the partition function at arbitrary temperature can be calculated, but heteropolymers and arbitrary dimensions can be treated in a straightforward manner. The explicit applications of the algorithm to these cases are left for future works. Acknowledgements This work was supported by Mid-career Researcher Program through NRF grant funded by the MEST (No. 2010-0000220).
Fig. 7. The finite value approximation of the transition point zc and its extrapolated value at N = ∞.
to Eq. (18) and then obtain zc (∞) = 2.07(7), equivalent to T c / = 1.37(7), where the data for even N with 20 N 36 were used. zc ( N ) is displayed in Fig. 7 as the functions of 1/ N, along with the extrapolated value zc (∞). The current result is in reasonable agreement with those from the earlier works. 4. Discussion We developed an efficient parallel algorithm for calculating the exact partition function of a lattice polymer. An efficient parallelization of the calculation was achieved by classifying the conformations according to the shape of the box spanned by a conformation. Only the conformations corresponding to a given box were enumerated at a time, pruning partial conformations incompatible with the box at an early stage. The calculation time was further reduced by preventing the conformations related by symmetries from being generated more than once. The parallel efficiency could be maximized by requiring that any node that finishes the task of enumeration for a box takes over a new task of enumeration for another box whose conformations have not been enumerated by any of the nodes. As an illustration of applications, we studied the collapse transition of lattice homopolymers in square lattices, by calculating the specific heat. The exact partition function can also be used for calculating the partition function zeros in the complex temperature plane, which is a more sensitive indicator of the phase transition than the specific heat [36]. As mentioned in the previous section, the linear scaling of the computation speed with the number of CPUs N CPU breaks down well before N CPU reaches the total number of boxes, due to
References [1] H.S. Chan, K.A. Dill, Annu. Rev. Biophys. Biophys. Chem. 20 (1991) 447. [2] P.J. Flory, J. Chem. Phys. 17 (1949) 303. [3] P.J. Flory, Principles of Polymer Chemistry, Cornell University Press, Ithaca, 1967. [4] P.-G. de Gennes, J. Physique Lett. 36 (1975) 55. [5] P.-G. de Gennes, J. Physique Lett. 39 (1978) 299. [6] P.-G. de Gennes, Scaling Concepts in Polymer Physics, Cornell University Press, Ithaca, 1979. [7] M.J. Stephen, Phys. Lett. A 53 (1975) 363. [8] A. Baumgärtner, J. Physique 43 (1982) 1407. [9] T. Ishinabe, J. Chem. Phys. 77 (1982) 3171; T. Ishinabe, J. Chem. Phys. 80 (1984) 1318; T. Ishinabe, J. Phys. A 18 (1985) 3181. [10] A.L. Kholodenko, K.F. Freed, J. Phys. A 17 (1984) L191; A.L. Kholodenko, K.F. Freed, J. Chem. Phys. 80 (1984) 900. [11] T.M. Birshtein, S.V. Buldyrev, A.M. Elyashevitch, Polymer 26 (1985) 1814. [12] B. Derrida, H. Saleur, J. Phys. A 18 (1985) L1075. [13] V. Privman, J. Phys. A 19 (1986) 3287. [14] H. Saleur, J. Stat. Phys. 45 (1986) 419. [15] B. Duplantier, H. Saleur, Phys. Rev. Lett. 59 (1987) 539. [16] F. Seno, A.L. Stella, J. Phys. France 49 (1988) 739. [17] P.H. Poole, A. Coniglio, N. Jan, H.E. Stanley, Phys. Rev. B 39 (1989) 495. [18] H. Meirovitch, H.A. Lim, Phys. Rev. Lett. 62 (1989) 2640; H. Meirovitch, H.A. Lim, J. Chem. Phys. 91 (1989) 2544. [19] I. Chang, H. Meirovitch, Phys. Rev. E 48 (1993) 3656. [20] P. Grassberger, R. Hegger, J. Phys. I France 5 (1995) 597. [21] G.T. Barkema, U. Bastolla, P. Grassberger, J. Stat. Phys. 90 (1998) 1311. [22] S.L. Narasimhan, P.S.R. Krishna, K.P.N. Murthy, M. Ramanadham, Phys. Rev. E 65 (2001) 010801(R). [23] C.-N. Chen, C.-Y. Lin, Physica A 350 (2005) 45. [24] J. Zhou, Z.-C. Ou-Yang, H. Zhou, J. Chem. Phys. 128 (2008) 124905. [25] A.G. Cunha-Netto, R. Dickman, A.A. Caparica, Comput. Phys. Comm. 180 (2009) 583. [26] M. Gaudreault, J. Viñals, Phys. Rev. E 80 (2009) 021916. [27] P. Grassberger, J. Phys. A 26 (1993) 1023. [28] H.S. Chan, K.A. Dill, Macromolecules 22 (1989) 4559. [29] J. Lee, J. Korean Phys. Soc. 44 (2004) 617.
J.H. Lee et al. / Computer Physics Communications 182 (2011) 1027–1033
[30] [31] [32] [33]
A.J. Guttmann, A.R. Conway, Ann. Comb. 5 (2001) 319. I.G. Enting, J. Phys. A 13 (1980) 3713. I. Jensen, J. Phys. A 37 (2004) 5503. R. Bulirsch, J. Stoer, Numer. Math. 6 (1964) 413.
1033
[34] W.H. Press, S.A. Teukolsky, W.T. Vetterling, B.P. Flannery, Numerical Recipes in C, 2nd edition, Cambridge University Press, Cambridge, 1992, p. 111. [35] J.L. Monroe, Phys. Rev. E 65 (2002) 066116. [36] J.H. Lee, S.-Y. Kim, J. Lee, J. Chem. Phys. 133 (2010) 114106.