Name

particleset — A set of particles with/without a unitcell.

Description

The particleset element contains a unitcell and a number of particle attributes attrib.

Processing expectations

Create a set of particles and initialize the attributes of the particle set. When unitcell does not exist, the action depends on the application. For typical ohmms applications, one of two things can happen:

  1. use the unitcell of the last particleset element.

  2. assign a huge unitcell with periodic boundary conditions.

Children

The following elements occur in simulation: unitcell, group, attrib, atom

Attributes

name

Optional, the name of the particle set.

size

Optional, the number of particles in this set. Default is 0.

datatype

Reserved, the datatype of a particle set.

src

Optional, an external source for a set of particles.

srctype

Optional, the type of an external source.

role

Reserved.

Implementation details

An instance of particleset creates a particle set or append new particles to the target particle set. The procedures in ohmms applications are:

  1. Check the //particeset/@size, //particleset/group/@size and the number of //particle/atom's to determine the number of new particles.

  2. Check //particleset/attrib/@size for consistency.

  3. Process unitcell.

  4. Add the particles grouped in a group.

  5. Add the particles whose attributes are provided by attrib's.

  6. Add the particles atom-by-atom with input atom's.

  7. If unitcell/parameter/@name="uc_grid" is found, exand the supercell by the grid (carry over from previous implementations).

Although the rules for atom are flexible, we limit the content of atom to the position of a particle. For instance, atom cannot be used to set the velocity of a particle.

The list of attribs meaningful to particleset ohmms and related applications. Any particleset has to have <attrb name="position"/>. Usually, users do not need to add other attributes. ohmms applications add particle attributes as needed and dump them for restarts.

nameconditionclassrole
position 0 | 1posArraySet the positions of a particle set.
ionidNAintArray | stringArraySet the species types of a particle set.
idNAintArraySet the ids of a particle set.
vNAposArraySet the velocity of a particle set.
fNAposArraySet the force of a particle set.

Examples

This example shows how to create a particle set for 2-atom-based crystalline silicon.

  <particleset name="BulkSi" size="2">
     <unitcell>
        <parameter name="scale" condition="AA">5.432 </parameter>
        <parameter name="lattice">  
           0.0 0.5 0.5 
           0.5 0.0 0.5
           0.5 0.5 0.0
        </parameter>
        <parameter name="bconds"> p p p </parameter>
     </unitcell>
     <attrib name="ionid" datatype="stringArray">
        Si Si
     </attrib>
     <attrib name="position" datatype="posArray" condition="1">
        0.0 0.0 0.0
        0.25 0.25 0.25
     </attrib>
  </particleset>