{'fraction_non_alphanumeric': 0.025319136063887714, 'fraction_numerical': 0.009014459434932542, 'mean_word_length': 5.204767267267267, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Simulated nanoparticle assembly using protoparticles (SNAP)

Many functional properties of particle system rely on collective behaviour and the type of superstructures formed when thousands of particles come together. Self-assembly, agglomeration and aggregation depend sensitively on the size and shape of particles present, as well as the size distribution and the mixtures of shapes within a given sample, which makes simulation of these superstructures and their properties challenging. Here we present a new, flexible, software package for the simulations of ordered and disorder aggregates of faceted polyhedral particle from the nanoscale to the micron-scale, which is capable of including size distributions and mixtures of multiple particle shapes defined by the User, subject to additional User-defined interactions. Following relaxation using molecular dynamics a number of characterisation tools are provided, including interfacial probabilities and distribution functions. The software is applicable to a range of problems from nanoparticle assembly to additive manufacturing.

bulk atoms become unnecessary and can be eliminated to reduce the computational cost. Hundreds of nanoparticles containing thousands of atoms can be replaced with thousands of nanoparticles containing hundreds of atoms. This exchange can be further optimised when we recognise that many surface atoms behave similarly (particularly when they occupy a common {hkl} plane) and replace surface atoms with regions of the surface that are uniquely characterised by common surface properties. This type of coarse-graining simplification shares similarities with coarse-grained molecular dynamics (MD) [12][13][14][15][16] used to represent biomolecules with a reduced number of degrees of freedom [17][18][19][20]; as well as finite element methods [21][22][23], discrete element methods [24,25] and other methods used to represent anisotropic granular material [26][27][28][29][30][31][32][33]. This means that thousands of nanoparticles containing hundreds of atoms can be replaced by tens of thousands of nanoparticles containing tens of artificial entities that encapsulate all of the essential properties and interactions relevant at the scale of the simulation.
In this paper, we present a new software package for the simulated nanoparticle assembly with protoparticles (SNAP), which has been implemented for cpu (serial, OpenMP and MPI) and gpu (serial and MPI) infrastructures. This program is available at the CSIRO Data Access Portal [1].This mesoscale programme is based on the economies outlined above and replaces groups of surface atoms with like-properties with a sparse mesh that retains the properties of surfaces calculated externally using electronic structure methods (or similar). SNAP is capable of modelling a mixture of any user-defined shapes, at size ranging from nanometres to microns, parameterised by the user to describe any type of behaviour that can be defined by interaction wells. Unlike other codes SNAP can perform MD on large systems of complex geometries with multipolar surface features (not discussed in detail herein), including polydispersed distributions (of both size and shape, simultaneously), at a fraction of the computational cost of classical MD simulations. As we will show in the following section using different types of regular polyhedrons, these particles are simple to define based on an arbitrary Wulff-like model, and the superstructure can be characterised using a series of methods analysing the local (interfacial) and global (ordering) of the aggregate as a whole.

Methodology
To begin, the SNAP package uses a naming convention whereby a nanoparticle (or a micro-particle, if desired) is described by a unique set of 'protoparticles', which are artificial entities describing a region of the surface, and occupying a surface mesh that adapts to the size and shape of the nanoparticle as a whole. Examples of three regular convex polyhedra (the Platonic solid cube and octahedron, and the Catalan solid rhombic dodecahedron) are shown in figure 1. Protoparticles are not atoms and have no physical meaning, but can be considered as a statistical average of a collection of atoms with the same properties (akin to the development of prototypes in clustering analysis). The properties of a given protoparticle may be different to a neighbouring protoparticle if, for example, they reside on different types of surface facets; or similar if they reside on the same facet. The exact properties of each protoparticle will be unique as the statistical weighting will depend on the local protoparticle density on the surface mesh, which can be tuned by the User. A greater protoparticle density makes for smoother interactions, but increases the computational cost.
The SNAP package is divided into three programmes which represent the various stages of preparing, running and analysing a simulation: The Generator, which builds User-defined nanoparticle shapes, surface meshes of protoparticles and the initial configuration of nanoparticles for the simulation, also includes the potential parameter scaling that establishes the properties of individual protoparticles; the Simulator, which takes in the initial starting configuration and potential parameters and runs a MD simulation; and the Analyser, which takes the outputs of the simulation and performs some basic statistical analysis.
Force field interactions Two types of force fields, occurring between protoparticles, are employed to model nanoparticle interactions. The first is used to hold a nanoparticle together using a Harmonic potential while the interaction between nanoparticles occurs via Morse potential.
The protoparticles making up a nanoparticle are held together by a simple harmonic potential V H given by where r ij is the distance between i and j, D ij is a fixed separation between protoparticles i and j on the same nanoparticle and A H is the stiffness of the connection between the two protoparticles. D ij remains fixed throughout the simulation and ensures that the nanoparticle retains its starting shape.
Interactions between pairs of protoparticles each located on a separate nanoparticles is via a truncated Morse potential V M , such that where D e , A and R e are related to the potential well depth, well width, well minima position and r ij is the point separation distance. At longer separations as the Morse potential approach zero V M is smoothly truncated for computational efficiency beginning at a separation of R i and approaching zero at R f . The Morse parameters can be obtained by fitting to external calculated data using any computational method, including electronic structure methods, or hypothesised for testing. The modelling of defective facets or functionalised facets is also possible since these would affect the facet-facet energetic and can be included in the fitting of the Morse parameters. Additionally, extra facets can be included to approximate more significant geometrical defects.
While not employed in this work, SNAP also includes a purely repulsive inverse power potential which can be used to approximate contact potentials when made sufficiently steep.
Generator and initial structure creation A SNAP simulation requires an initial nanoparticle configuration and input potential parameters, the former requiring the User to define a nanoparticle (size and shape) and generate a surface mesh to host the protoparticles. Since each nanoparticle will have a variable density of protoparticles on the surface, the Morse parameters need to be adjusted to ensure that the Morse interactions are independent of this density. Additionally, following the generation of the protoparticle mesh, the values of initial protoparticle separations within the same nanoparticle D ij are calculated for the Harmonic potential. This is performed in the SNAP Generator module.
A polyhedral nanoparticle is generated by firstly defining its facets using a collection of normal vectors defining each of the nanoparticle's facet planes, akin to the Wulff construction (which is a special, low energy case). The surface (limited to positive curvature) enclosed by the intersection of these facet planes is calculated and replaced by a mesh of equidistant protoparticles at a density that prohibits nanoparticle overlap (0.2 protoparticles/Å 2 used in the following demonstrations, but this value can be set by the User). The mass of the nanoparticle is equally distributed over the protoparticles and thus, the subsequent simulation represents an approximation in that its moment of inertia has differences to a realistic mass distribution. Once the protoparticle meshes are generated for each nanoparticle shape, they are duplicated into a simulation cell to produce a required nanoparticle density. Random initial rotations, random initial switching of nanoparticle types (where more than one shape or size are combined) and an initial high temperature MD equilibration then randomizes the initial starting configuration for the pending simulation.
To determine the interactions previous calculations of a potential energy per area binding curves E r ij ( ) between the unique pair combinations of facets can be used, input directly from the User. In this case, i is an index over the unique facets of the first nanoparticle, j over the second nanoparticle and r is the separation distance between facets on these nanoparticles. These binding curves are then scaled by the User-defined nanoparticle facet areas (which determine the overall particle size) to obtain the interactions between where the area used is the minimal overlap of the facet pair. The weighting of the equidistant protoparticles representing the facets are then defined based on this overlap so that the total interaction energy is preserved. Each protoparticle interacts via the Morse potential, so Morse parameters U ij are fitted using a Monte Carlo routine prior to the aggregation simulation, as ij ij e ( ) are the protoparticle-protoparticle Morse parameters for the interaction between protoparticles on facet i and fact j, and where k are the total number of protoparticles on facet i and l are the total number of protoparticles on facet j. These parameters are adjusted so that the sum of the protoparticleprotoparticle interactions between two facets mimics the required facet-facet binding curves. In this introductory work, the parameters were set to D ij =0.05 eV, which represents an attractive well potential between all the facets. Additionally, the value of A H in the harmonic potentials used to hold the protoparticles in the nanoparticle configuration was set to 20 N, but this value can be adjusted by the User.
Simulator and system evolution In the following demonstration, an initial configuration of 6000 nanoparticles is input into the SNAP Simulator module and is then quenched from a liquid-like state to a solid aggregate. The module is parallelized in a hybrid of CUDA/MPI code for rapid calculations on a GPU or CPU high-performance supercomputer, so that much larger numbers of nanoparticles can be handled, depending on the hardware available. The Simulator uses MD with a velocity Verlet integration algorithm (2 fs time step used in this work) with simple velocity rescaling. A definition of a realistic temperature in SNAP is difficult due to the coarse-grained nature of the simulation and lack of internal bonding. We therefore define a pseudo-temperature T in two different ways based on the average kinetic energy of all the protoparticles in the system or the average kinetic energy of the centre of mass of all the nanoparticles as where E is the total kinetic energy, k B is Boltzmann's constant and P is the total number of protoparticles or nanoparticles in the system depending on which pseudo-temperature definition is used. Both definitions approach each other's value after a sufficient equilibration time.

Analyser and post simulations analysis
During the MD simulation output of information such as energy, orientation and position of nanoparticles are collected, at a frequency determined by the User. These outputs form the input for the Analyser module to undertake some post simulation analysis. While a number of structural and statistical analysis tools could be applied to these outputs, we focus here on the characterisation methods included in the Analyser module of SNAP. The inter-particle packing of each nanoparticle is investigated using first nearest neighbour coordination distribution, and decomposition of this coordination based upon nanoparticle sizes and shapes in polydispersed simulations. A cut-off distance of 30 Åwas chosen here for the cubic systems and 35 Å for the rest which corresponds to the minimum between the first and second peaks in the radial distribution. The radial distribution function and angular distribution (using nanoparticles within the above mentioned cutoff distances) are also calculated to quantify the longer range order of the aggregate.
To investigate the alignment between two nanoparticles, the probabilities of facet interactions are calculated. For each protoparticle participating in a facet, the closest protoparticle on a neighbouring nanoparticle within less than 2 Å is recorded in a histogram bin (this distance is consistent with the Morse potential). Since all the protoparticles are equidistant within a given facet, and are associated with a particular type of facet, this procedure gives a measure of the interfacial probabilities. In the present demonstration, since all facets have the same simplistic protoparticle-protoparticle interactions, we have tested this by considering the alignment between the different nanoparticle sizes within three polydispersed simulations of the different shapes, and one polydispersed simulation mixing three different shapes at 27 Å in diameter. Even though the protoparticle interaction parameters are all equal, the facet sizes still vary (for each size and shape) potentially leading to complex packing. It is informative to mention that in more realistic scenarios different types of (hkl) facets could have their own unique interaction and these facet probabilities contain an enormous amount of detail on the collective behaviour of the aggregate under such conditions.

Case study
To demonstrate the application of SNAP we have considering the self-assembly or aggregation of two Platonic solids and one Catalan solid. The cube, octahedron and rhombic dodecahedron are enclosed exclusively by {100}, {111} and {110} facets, respectively, which make them simple cases where the interactions across the surface of a given nanoparticle are consistent. These polyhedral shapes, plus others, can be readily synthesized experimentally [34,35].
The distribution of protoparticles on the surface of these shapes are shown in figure 1. The interaction between all the possible pairs of protoparticles is attractive via the earlier described Morse potential parameters. It is important to point out that these Morse parameters can be obtained via the fitting of potential energy binding curves obtained from higher level calculations of the interaction between two atomistic nanoparticles. In such cases, if the surfaces are passivated with specific functional groups during the parameterisation of these energy curves, then the aggregation will proceed as if the nanoparticles where accordingly functionalised. This is where the key surface chemistry is captured.
In order to demonstrate some features of SNAP seven simulations were performed using a combination of these three shapes, as described in table 1, numbered Sim {1...7}. The aim of these simulations is to model the impact of shape, distributions of size and mixtures of shapes, on the aggregation or self-assembly of these hypothetical nanoparticles. Sim 1, Sim 2 and Sim 3 are monodispersed cubes, octahedra and rhombic dodecahedra (respectively), using a single shape and a single nanoparticle diameter of 27 Å. Sim 4, Sim 5 and Sim 6 are polydispersed cubes, octahedra and rhombic dodecahedra (respectively), using a single shape but an equal distribution of three nanoparticle sizes (22 Å, 27 Å and 32 Å); while Sim 7 contains an equal mixture of shapes at a single nanoparticle diameter of 27 Å. A spherical approximation is used to define the nanoparticle diameter such that diameter of a given shape is equivalent to a sphere of the same volume. This means that the edge lengths and apparent sizes vary; a 32 Å cube actually has an edge length of 25.8 Å and a volume of 17 174 Å 3 , which is the volume of a 32 Å diameter sphere. Since all the shapes at a particular diameter have the same volume, they also have the same mass. As mentioned above, in the following demonstrations we have simulated nanoparticles using the density of diamond, so that the masses of the 22 Å, 27 Å and 32 Å nanoparticles used are 11 867amu, 21 944amu and 36 537amu, respectively. These sizes have been chosen to match the observed size distribution of diamond nanoparticles, but any group of sizes could be chosen.
Throughout the following demonstration, following a 10 ns equilibration at the starting temperature, a quench rate of 200 K ns −1 is used to quench the system from a pseudo-temperature of 10 000 K to zero over 25 million steps with a time step of 2 fs for a total simulation time of 60 ns. The evolution of each simulation is shown in figure 2, where we can see the gradual convergence as the polyhedra move and rotate to pack more efficiently and lower the potential energy as a function of time. The final configuration of each aggregate is shown in figures 3, 5 and 6, rendered using PovRay (a standard output from SNAP).  Table 1. Details of the simulations (Sim #) demonstrating the Simulated Nanoparticle Assembly with Protoparticles (SNAP) package, using distributions and mixtures of Platonic solids. Listed are the nanoparticle shapes, the nanoparticle diameters (D, in Å), the number of protoparticles (PP) to describing each size/shape, the number of nanoparticles in each simulation, and the number of protoparticles in the surface mesh model for each nanoparticle shape and size. All simulations include a total of 6000 nanoparticles in a simulation supercell of 2.0×10 5 Å 3 , giving a density of 2.0×10 19  particularly in figures 3(a), (b), where the close packing is more efficient. The pore size distribution is not an output from the SNAP Analyser, but can be analysed with PorosityPlus [36].
The structure within the aggregates can be locally characterised using the inter-particle coordination and more globally using the nanoparticle-nanoparticle radial distribution function (see figure 4) using the SNAP Analyser. Histograms for the nanoparticle coordination for Sim 1, Sim 2 and Sim 3 are shown in figure 4(a). In each case perfect close packing corresponds to 6, 8 and 12 neighbours, respectively, and the distributions around these numbers characterise the departure from perfect packing due to pores, grain boundaries and disordered regions in the aggregate. This is calculated by summing the number of interacting protoparticles which easily accounts for interfacial mismatches (offsets and rotations), partial interfaces or free surfaces. Figure 4(b) shows the radial distribution function, g(r), of aggregate which consists of a series of peaks at intervals approximately the same as the facet-facet particle diameter (noting that the actual facet-facet diameter of each varies for each shape in order for them to be isovolumetric, as mentioned above). The greater the degree of long-range order, the greater the magnitude of the higher-order peaks. The presence of the third peak is known to be an indicator of a crystalline superlattice, and the disappearance of the third peak is an indicator of amorphisation [37].
Similarly figure 4(c) provides the angular distributions functions, g(θ), which consists of a series of peaks at intervals corresponding to the inter-facet angles for each shape; 90°for the cubes in Sim 1, 90°for the octahedra in Sim 2, and 60°or 120°for the rhombic dodecahedra in Sim 3. Secondary peaks (at, for example, 45°or 70°) are indicators of disorder. In this case we can see that the aggregated octahedra in Sim 2 are much more disordered than the rhombic dodecahedra in Sim 3 or the cubes in Sim 1. Both the g(r) and the g(θ) are smoothed for better visualisation, but in general, the greater the number of defects in the superlattice, the broader the peaks.

Polydispersed aggregates
In addition to the study of User-defined polyhedral shapes and sizes, SNAP is also capable of including a range of sizes (of any shape) to study polydispersed distributions more consistent with experimental observations. SNAP imposes a limit of 10 different nanoparticle sizes and shapes in the same simulation at this time. The ratio of different nanoparticles is User-defined, and can be anything from an even mixture of similar nanoparticles (as described below) or one large substrate amongst a collection of small nanoparticles; any combination a User wishes to define.
Shown in figure 5 are the results for Sim 4, which contains cubes with a narrow distribution of sizes, as indicated in table 1. The corresponding results for Sim 5 containing a distribution of octahedra, and Sim 6 containing a distribution of rhombic dodecahedra, are included in the supporting information for comparison. In figures 5(a) and (b) (and their counterparts in the Supporting Information available online at stacks.iop.org/ JPMATER/3/026001/mmedia) colour has been used to identify the three different sizes included in these examples; dark for 32 Å, bright for 27 Å (the same as in figure 3) and light for 22 Å. In each case SNAP outputs the nanoparticle coordination histograms, segmented by each type, along with the average for the entire simulation; and the segmented type-specific g(r) and g(θ), and these are provided in the Supporting Information for Sim 4, Sim 5 and Sim 6 for those interested in comparing to Sim 1, Sim 2 and Sim 3. In addition to the nanoparticle coordination, g(r) and g(θ), the SNAP Analyser also calculates the interfacial probabilities, within a User-defined cut-off. Figure 5(c) shows the probabilities of different nanoparticles in the system packing side-by-side as a heatmap. We can see in this example that the larger the particle the higher the probability it will be packed amongst other nanoparticles; the larger nanoparticles pack together first, forming grains that are surrounded by layers of successively smaller nanoparticles. The smaller nanoparticles have the lowest interfacial probability (even with other small nanoparticles) indicating they line the inside of pores. This is consistent with visual inspection of figures 5(a) and (b). Figure 5(d) shows the impact of the user-defined cut-off, compared to a perfectly packed system (Theory) where all nanoparticles are, in this case, 6-fold coordinated. The exact method for determining the theoretically expected value, (along with the corresponding heatmaps and histograms for Sim 5 and Sim 6) is discussed in the next section, but the important point is that the interfacial probabilities are robust against large variations in this User-defined hyper-parameter.

Mixtures
Finally, another advantage of SNAP is the ability to include mixtures of User-defined shapes. Figure 6 show the results of Sim 7, with an equal mixture of cubes, octahedra and rhombic dodecahedra, at 27 Å in size. We can see from visual inspection of the renderings in figures 6(a) and (b) that these shapes tend to segregate, even though they were thoroughly mixed using a random number generator by the SNAP Generator. It should also be pointed out when viewing these renderings that all the particles are isovolumetric, even though they appear to be different. The apparent size is related to the anisotropy of the shape; more spherical shapes with a lower surfaceto-volume ratio (such as the rhombic dodecahedra) appear smaller, more polyhedral shapes with a higher surface-to-volume ratio (such as octahedra) appear larger.
Each of the standard outputs from the SNAP Analyser is provided along side the renderings for Sim 7, including the inter-particle coordinations numbers (figure 6(c)), g(r) (figure 6(d)), the interfacial probabilities (figure 6(e)), and g(θ) (figure 6(f)) for the purposes of comparison with results in figures 3 and 5; highlighting the resolution of the Analyser in discerning subtle differences. Note that when comparing figure 6(c) with figure 3(a) it is important to remember that in figure 3(a) the results are for three separate simulations of different shapes (as this size) and in figure 6(c) the results are for three different shapes in a single simulation.
While the SNAP simulations presented here were demonstrative in nature with an attractive Morse parameters set whose values were not obtained from any higher level theory, some comparison to experiments is available. In particular, comparisons to scanning electron microscopy (SEM) studies are interesting. For cubes of Sim 1 and 4, the resulting aggregates show a cubic packing which is very similar to the experimental superlattices reported for iron-platinum [38] and gold nanocubes [39]. These experimental systems exhibit polydispersity, porosity and domains of cubic packing with differing orientations as observed in the SNAP simulations. Similarly, experimentally synthesized rhombic dodecahedra superlattice experimentally show a face-centred packing [40], which is similar to the packing environments found in Sim 3 and 6.
Octahedra packing in Sim 2 and 5, however, differs from SEM studies. Gold superlattices of octahedra show a complex competition between numerous lattice types [40], none of which result in pairs of octahedra with directly aligned facets as found in our SNAP results. Monte Carlo simulations of hard octahedra [40] results in the densest packing known as the Minkowski lattice which also doesn't contain the facet facing orientations observed in our simulations. This discrepancy can, however, be explained by the attractive facet-facet potential employed in this work. For cubes and rhombic dodecahedra, this results in the correct packing, since both lattice types aligned the nanoparticle's facets to the facets of its nearest neighbours. However for octahedra, this artificially forces facet-facet alignment resulting in a packing phase that isn't found in hard octahedra simulations nor experimentally synthesized octahedra which can behave as quasi-hard particles [41]. Naturally, the choice of potential parameters is an input in SNAP and as such, the demonstration systems presented here can be made more realistic with the appropriate Morse potential parameter set.

Discussion
The Simulator reads the output from the generator, and the analyser reads the output from the Simulator. The number and type of outputs from the Analyser depends on the types of analysis undertaken by the User, but includes the output of the centre-of-mass of the nanoparticles and their orientation, which is converted into roll, pitch and yaw information for input into PovRay for high quality rendering. The output from SNAP is provided as column based lists suitable for inspection in spreadsheets or analysis in data frames, and particle-based information in simple cartesian XYZ formats for visualization and rendering; including optional PovRay include files. The XYZ configuration files can be used as input into any molecular visualisation package, or any software primed to accept atomic-style coordinations [42]. While protoparticles are not atoms, standard molecular visualisation packages read them as such and can colour protoparticles by type. The centre-of-mass output can use used to quickly visualise entire aggregates using molecular visualisation software (coloured by nanoparticle Figure 6. Examples of the final output from the SNAP Simulator for (a), (b) the mixed Sim 7 containing cubes (red), octahedra (blue) and rhombic dodecahedra (green), along output from the SNAP Analyser for (c) the inter-particle coordinations numbers, (d) the radial distribution function, (e) the interfacial probabilities presented as a heatmap, and (f) the angular distribution function. The interfacial probability cut-off histograms is provided in the supporting information. type) at a coarse-grained level. For quick and easy visualisation we recommend open visualization tool [43], but have also had considerable success with visual molecular dynamics [44].
Directly comparing the output from SNAP with experimental results can be challenging, but is possible with the right experimental characterization, particularly from microscopy [45]. The radial distribution functions can be used to determine structure factors and can be compared to light scattering experiments, but the advantage of SNAP is that is can capture all of the complexity of more realistic aggregates and provide information that is not accessible via alternative characterisation techniques, such as order parameters [46]. In such instances, we recommend comparing the results to a theoretically expected value, as we have done here for the interfacial probabilities, which are calculated as follows.
Given protoparticle types are associated with different facets, and within a specific facet type the only variable is their surface area, the probability of randomly picking a protoparticle of type i (equivalent to picking a unit area of some facet i remembering that protoparticles have the same surface density) is given by n i /N, where n i is the total number of protoparticle of type i in the system and N is the total number of protoparticles in the system. Assuming the events to be independent, the probability of randomly picking two protoparticles of type i and j, is given by = n N n N n n N X i j i j 2 . For Sim 1, Sim 2 and Sim 3 described above, since there is only one type of protoparticle (due to one equally sized facet on the same sized polyhedra), the probability is unity. For Sim 4, Sim 5 and Sim 6 where there are three types of protoparticles (associated with the three facet sizes), the probabilities differ significantly due to the facet area combinations with small-small facets being least probable. For Sim 7, which has three similar-sized particles but of different polyhedra, the facet probabilities are similar because the number of protoparticles per facet is similar.
Users may define any alternative analysis method and theoretically expected result for any property related to the global pattern of the nanoparticles are a whole (using the centre-of-mass output), or local interactions between particles (using the protoparticle outputs).
Currently SNAP can run on platforms ranging from desktop CPUs to larger-scale parallel CPU and GPU high-performance machines. On desktop machines and single CPUs in clusters, OpenMP programming has been implemented and can significantly improve performance by accessing multiple cores. Across multiple nodes, and MPI version is available to scale performance. However, SNAP benefits most from running on GPU architecture, and so the packing includes a CUDA version, running on a single node (of interconnected GPUs). While the SNAP Simulator has also been implemented for multiple GPU nodes, we note to User that the MPI communication scaling behaviour in this version is currently limited.

Conclusions
Simulating nanoparticle assembly using protoparticles is a flexible, software package for the simulations of ordered and disorder aggregates of faceted particle from the nano-to the micron-scale, capable of including size distributions and mixtures of multiple particle shapes defined by the User, subject to additional User-defined interactions. After defining a range of polyhedra, akin to a Wulff construction, SNAP automatically generates a mesh of protoparticles representee of collections of atoms at the surface (omitting the bulk atoms) to provide a computationally efficient representation of a nano-or microparticle at actual size. Combined with User input potential energy parameters (that can include the effect of solvents or different surface chemistry) this allows for fast MD simulations of User-defined distribution and mixtures of faceted particles to see how they assemble or aggregate at different temperatures.
SNAP features a range of analysis tools characterising the global and local ordering (and disordering) in the superstructures formed during aggregation. This includes distribution functions, coordinations statistics and inter-particle or interfacial probabilities, but standard outputs from SNAP can also be used as input into other tools for quantifying crystallinity [46] and porosity [36]. The software is applicable to a range of problems from nanoparticle assembly to additive manufacturing, where samples are particles are typically not spherical and samples are not monodispersed.