Improvements of the Basic Monte Carlo Potts Model Algorithm |
The basic Monte Carlo Potts model algorithm shows some disadvantages that are inherent to the technique, for example unrealistic nucleation events and a grain growth exponent that is smaller than the expected value of n 0.5. Furthermore, the basic algorithm is very time consuming. Therefore, in the following some improvements are proposed of such a kind, which have recently also been suggested by [Yu and Esche 2003] and [Huang et al. 2006].
Improvements concerning the size of the lattice In early simulations (but also in some newer ones [Hui et al. 2003]) the size of the lattice was usually limited to about 100 × 100 × 100 lattice points. Therefore, those simulations were limited to small grains in order to keep the number of grains adequately for statistical investigations. An increase of the number of lattice points leads to more possible grains and a better statistics, but yields at the same time an increase in the simulation time! Improvements concerning the numbering of the lattice points If one considers a 2D lattice with 200×200 lattice points, there do exist two possibilities to enumerate the lattice points for selection. The first method assigns to each lattice point an index number. In the example the lattice points would be given a number between 1 and 40,000. One can use then the function rand() from the standard C library to generate random integer numbers between 0 and 40,000 by calculating 40000*rand()/32767. The problem with this term is that not all of the 40,001 numbers can be generated, since 32,768 numbers are mapped to 40,001 numbers. Therefore some of the 40,001 will be missing. The second method consists of producing pairs of random numbers, which are used as coordinates. In the considered example the lattice points will be given coordinates between (1, 1) and (200, 200). For the selection of a lattice point in 2D two random numbers have to be generated. With this method the problem of missing numbers will usually not occur in practice because one could simulate lattices up to a size of 32,767 × 32,767 in 2D and 32,767 × 32,767 × 32,767 in 3D. All in all the first method could only be used for very small lattices. Improvements concerning the nearest neighbours Because lattice effects - like lattice pinning - are strictly depending on the simulation algorithm and therefore highly non-physical, one has to eliminate them from the simulation. Holm et al. have shown in [Holm et al. 1991] that by increasing the defined number of neighbour lattice points the energetic anisotropy of the lattice decreases. Hence, not only the first nearest neighbours lattice points have been taken into the simulation but also the second nearest in the quadratic 2D lattice and the second and third nearest in the cubic 3D lattice. Improvements concerning the selection of the attempted lattice point In the first step a lattice point is chosen in a probabilistic way. However, most of the chosen lattice points will be inside a grain and not on a grain boundary, which means that the algorithm can be improved, because grain growth always means grain boundary migration, where atoms change their affiliation from one grain to a neighbouring grain. Therefore, a change of orientation of a lattice point can only occur if the chosen lattice point is on the boundary of a grain. In this case the simulation algorithm proceeds (with Step 2), otherwise the algorithm terminates this loop and continues with the selection of a new lattice point (with Step 1). Improvements concerning the selection of the new orientation In the second step a new orientation Qi is assigned on probation to the chosen lattice point, which differs from the old orientation Qj. In the basic algorithm this new orientation is chosen from all (Q-1) other orientations, which means that most reorientation attempts will fail or an unrealistic nucleation event happens due to the probability-jump-function. Therefore, the algorithm can be improved in such a way that only orientations of the neighbouring lattice points will be considered. This is a large and natural improvement. The reason for this can again be found in the grain boundary migration and the change of atoms from one grain to a neighbouring one. Improvements concerning the calculation of the energy The difference in energy dE between the new and the old state is calculated with the help of the Hamiltonian. Due to the fact, that from the whole lattice only one lattice point at a time is reoriented and the remaining points of the lattice do not change and therefore do not contribute a change in energy, the difference in energy dE can be calculated as dE = J ˇ SUM_over_nearestneighbours[Kronecker_delta(QkQi) - Kronecker_delta(QkQj)], where Qj is the old orientation and Qi the new orientation of the selected lattice point and Qk are the orientations of the nearest neighbours. |
[Yu and Esche (2003)] | Q. Yu and S.K. Esche. A Monte Carlo algorithm for single phase normal grain growth with improved accuracy and efficiency. Computational Materials Science, 27:259, 2003. |
[Huang et al. (2006)] | C. Ming Huang, C.L. Joanne, B.S.V. Patnaik, and R. Jayaganthan. Monte Carlo simulation of grain growth in polycrystalline materials. Applied Surface Science, 252:3997, 2006. |
[Hui et al. (2003)] | L. Hui, W. Guanghou, D. Feng, B. Xiufang, and F. Pederiva. Monte Carlo simulation of three-dimensional polycrystalline material. Materials Science and Engineering: A, 357:153, 2003. |
[Holm et al. (1991)] | E.A. Holm, J.A. Glazier, D. Srolovitz, and G.S. Grest. The effect of lattice anisotropy and temperature on grain growth in the two-dimensional Potts model. Physical Review A, 43:2662, 1991. |
[Zöllner (2006)] | D. Zöllner. Monte Carlo Potts Model Simulation and Statistical Mean-Field Theory of Normal Grain Growth. Shaker-Verlag, Aachen, 2006. |