Nanoparticle generator

This routine provides capability of generating nanoparticle(s) from provided RMC6F configuration file as input. This script has been embodied into the RMCProfile release package, so that one can launch the RMCProfile terminal and then execute

np_gen RMC6F_FILE_FULL_NAME

to run the generator.

Here following are the major features of this program,

  • Generate spherical particle(s) from RMC6F config.

  • Generate particles with facets, assuming cubic symmetry, or no symmetry.

  • Keep the surface terminated.

  • Generate randomly packed multiple particles in box.

Attention

We need to generate a huge RMC6f configuration (using, e.g. data2config), say, with the dimension of 50x50x50.

Attention

The program will ask a bunch of questions during execution, as detailed below.

  1. The generation scheme – ‘0’ for generating multiple particles (as close packing as possible), ‘1’ for generating a single nanoparticle.
    If ‘1’ is selected
    1. Particle shape – ‘0’ for sphere, ‘1’ for polygon.

      If ‘0’ is selected

      2.1. Particle radius

      If ‘1’ is selected

      2.1. Roughly estimated particle quasi-radius (of the polygon).

      2.2. Input file containing the facets list.

      Here follows is provided an example facet list file,

      Example facet list file

      Explanation for entries is provided below,

      Entry

      Description

      DISTANCE_MEAN_VAL

      Expected perpendicular distance from the
      center to each facet

      DISTANCE_VAR_VAL

      Variation of the aforementioned distance

      CUBIC_SYMMETRY

      By specifying cubic symmetry for the system,
      equivalent facets will be generated automatically

      FACETS

      The number of facets to be specified in the list.
      List of facets should be provided following this
      line, consecutively
    2. Location of the particle center. A list will be given here, we only need to refer to the list for input options.

    3. Estimated surface layer thickness in angstrom. This is for the purpose of searching for surface termination bonding later on. Usually, ‘3.0’ is a good estimation.

    4. Atom type to be fully coordinated. Usually, we may just want to guarantee metal atoms are fully coordinated and leave, e.g. oxygen dangling. Again, a list of options will be given here.

    5. Atom type we want to terminate the surface with, e.g. oxygen. Here, the utility can only terminate the surface with atoms already existing in the original configuration.

    6. Lower limit to check for surface bonding.

    7. Upper limit to check for surface bonding.

    If ‘0’ is selected
    1. Particle radius and its variation in angstrom.

    2. Minimum and maximum of the gap between particles.

    3. Estimated surface layer thickness.

    4. Atom type to be fully coordinated. Usually, we may just want to guarantee metal atoms are fully coordinated and leave, e.g. oxygen dangling. Again, a list of options will be given here.

    5. Atom type we want to terminate the surface with, e.g. oxygen. Here, the utility can only terminate the surface with atoms already existing in the original configuration.

    6. Lower limit to check for surface bonding.

    7. Upper limit to check for surface bonding.

Along with the output RMC6F file for the generated nanoparticle(s), there are several other output files, as described below,

Single particle generation:
np_single.out:

Output information about the generated single nanoparticle and the file content should be self-explanatory.

Multiple particles generation:
np_rpm.out:

Output information about the generated particles, where all relevant coordinates are given in fractional form.

np_rpm_cart.out:

Output information about the generated particles, where all relevant coordinates are given in Cartesian form.

np_rpm_par_belong.out:

Output information about to which particle a certain atom in the output RMC6F configuration belongs.

np_rpm_rot.out:

Output information about the rotation angles for each generated particle, as compared to their original orientation in the input RMC6F configuration.