B. Functionality, constitution and flow charts of three basic processes of PMAP
1. Initialization Process
The initialization process is vital to any procedure; it is the one time overhead that prepares the tasks to be set into motion. The initialization process flow can be seen in Fig.
49. The first thing that PMAP does is to read the simulation input file. This file contains the ensemble controls for the entire simulation both equilibration and loading procedures.
This includes the duration of the time-step used in the integration of motion, the duration of the equilibration process, the temperature if it is to be controlled, and the pressure if that's to be controlled as well. It also specifies configuration output frequencies and the output frequency of general ensemble statistics. It may also have various loading styles for the loading procedure, such as monotonic and cyclic strain rate, electric field, and thermal ramping. Domains may be specified to be fixed with relation to the simulation box, thermostatted locally, or just monitored for the domain's stress. Lastly, but arguably the most important aspect, the atomic species and their inter-atomic potentials must be declared. Any arbitrary atom may be defined given a symbol, number, mass, radius, and
charge. Atoms may interact via analytical potential functions such as the Morse, Lennard- Jones, Buckingham, and Johnson potentials, or from potential tables (in the format used in DL_POLY). The EAM potential can also be used in one of two formats, the TABEAM format from DL_POLY or the more commonly used setfl format. For the calculation of coulomb potentials the Damped Shifted Coulomb potential algorithm is used, see Appendix A.2. From all of this information the simulation input file is the main control file for the entire simulation process.
Once the simulation process parameters are read from the simulation input file the GP model file is read. This file is typically named “Model.MD” and contains the number of total and real atoms and particles, the simulation boxsize followed by a long list of the atom and particle positions, scales and ID information. This is used as the initial structure or configuration of the material model. This is the next most important thing for a successful simulation. This model file is generated separately before simulation by using lattice programs such as Materials Studio127, GULP128, etc. In this work an in-house code was used to generate the crystal structure as well as higher Generalized Particle scales and their coupling domains, more about the model generation procedure please refer to Appendix C. If the simulation is reviving from a previous run the “Revive.MD” file will be read and will overwrite the “Model.MD” configuration including velocities and accelerations of each atom and particle.
After reading the simulation input and the GP model configuration this information is shared among the other compute nodes when running PMAP in parallel across several processors. Most of the details of the parallel process, which utilizes the Message Passing Interface (MPI),129 will be ignored in this chapter as it is not essential to understand the process flow. The potentials identified from the simulation input file are then used to create tabular arrays that are used during the dynamic processes. Using tabular interpolation for the potentials saves calculation time for the simulation.
Figure 49. Initialization process flow, where Nei List stands for Verlet Neighbor List, SI for Surface Images, ADuality for Auto-Duality, and ADD for Auto- Duality Domain.
After the potential tables are created Verlet neighbor lists126 are generated for each imaginary particle and those real particles in ADDs. The neighbors included in the lists are of adjacent scales not of the same scale. For example, an imaginary scale-1 particle, i, will have a list of scale-2 neighbors, J. The purpose of this kind of neighbor list is for the next process of creating the NLCs for imaginary atoms and particles. The NLCs link images to real particles hence the adjacent scale neighbor lists. Creating these Verlet neighbor lists is important since it considerably speeds the neighbor searching process for a given particle, even if the search process occurs only once for each imaginary particle. The NLC generation procedure collects a list of candidate real particles and sorts them according to distance; such that those real particles that are closest to the image will be included in the NLC and those that are farther away will not be included. The maximum number of real particles allowed in a NLC is twelve. This was decided based on the number of nearest neighbors for FCC and HCP crystal lattice structures. For an imaginary particle, I, the real atoms, j, in its NLC need not necessarily be the atoms that lump to form the imaginary particle, I. Rather, the NLC constituents, j, act as positional data points to ensure that the imaginary particle, I, follows the same deformation as the real atoms.
After the NLCs are generated all of the real atoms and particles are given new Verlet neighbor lists that contain atoms and particles of the same scale. So that an atom, i, will have atom neighbors, j. This is a more traditional use of Verlet neighbor lists for use when calculating interatomic forces for dynamic integration. But before the dynamic
integration of the equilibration process, there may still be more things to initialize. If surface images have been declared in the simulation input file then the domains identified to become surface images will be made into images and then linked to the same scale real particles of the model, see Section II.A.3 about the specifics of surface images. Lastly if the model has auto-duality domains (ADD) identified they are checked to make sure that the mass of the imaginary atoms is the same as the real particles in each ADD. If the masses are not consistent the boundary of the ADD is modified gradually until the masses are consistent.
At this point the initialization process is complete and the simulation will continue to the equilibration process.