particleset — A set of particles with/without a unitcell.
The particleset element contains a unitcell and a number of particle attributes attrib.
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:
use the unitcell of the last particleset element.
assign a huge unitcell with periodic boundary conditions.
Optional, the name of the particle set.
Optional, the number of particles in this set. Default is 0.
Reserved, the datatype of a particle set.
Optional, an external source for a set of particles.
Optional, the type of an external source.
Reserved.
An instance of particleset creates a particle set or append new particles to the target particle set. The procedures in ohmms applications are:
Check the //particeset/@size, //particleset/group/@size and the number of //particle/atom's to determine the number of new particles.
Check //particleset/attrib/@size for consistency.
Process unitcell.
Add the particles grouped in a group.
Add the particles whose attributes are provided by attrib's.
Add the particles atom-by-atom with input atom's.
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.
| name | condition | class | role |
|---|---|---|---|
| position | 0 | 1 | posArray | Set the positions of a particle set. |
| ionid | NA | intArray | stringArray | Set the species types of a particle set. |
| id | NA | intArray | Set the ids of a particle set. |
| v | NA | posArray | Set the velocity of a particle set. |
| f | NA | posArray | Set the force of a particle set. |
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>