# The model.xyz input file

## Brief descriptions

• This file defines the simulation model, such as the initial conditions and boundary conditions.
• This file format will be used starting from GPUMD-v3.4.
• Before GPUMD-v3.4, the related file is xyz.in.

## File format

### Line 1

The first line should have one item only, which is the number of atoms in the model $N$.

### Line 2

• This line consists of a number of keyword=value pairs separated by spaces. Spaces before and after = are allowed. All the characters are case-insensitive. value can be a single item or a number of items enclosed by double quotes, such as keyword="value_1 value_2 value_3". Here, the different values are separated by spaces and spaces after the left " and before the right " are allowed. For example, one can write keyword=" value_1 value_2 value_3 ".
• Essentially any keyword is allowd, but we only read the following ones:
• (Optional) pbc="pbc_a pbc_b pbc_c", where pbc_a, pbc_b, and pbc_c can only be T or F, which means box is periodic or non-periodic (free, or open) in the $\boldsymbol{a}$, $\boldsymbol{b}$, and $\boldsymbol{c}$ directions. We use the minimum-image convention to account for the periodic boundary conditions for non-NEP potentials, but will consider sufficiently many periodic images for the NEP potentials. Therefore, one needs to make sure that the box size is large enough (the thickness in each direction is larger than twice of the potential cutoff) to incorporate enough neighbors for non-NEP potentials but does not need to care about this for NEP potentials. Default is pbc="T T T"
• (Mandatory) lattice="ax ay az bx by bz cx cy cz" gives the box vectors:

$$\boldsymbol{a} = a_x \boldsymbol{e}_x + a_y \boldsymbol{e}_y + a_z \boldsymbol{e}_z;$$ $$\boldsymbol{b} = b_x \boldsymbol{e}_x + b_y \boldsymbol{e}_y + b_z \boldsymbol{e}_z;$$ $$\boldsymbol{c} = c_x \boldsymbol{e}_x + c_y \boldsymbol{e}_y + c_z \boldsymbol{e}_z;$$

• properties=property_name:data_type:number_of_columns. We only read the following items:
• species:S:1 atom type (Mandatory)
• pos:R:3 position vector (Mandatory)
• mass:R:1 mass (Optional: default mass values will be used when this is missing)
• vel:R:3 velocity vector (Optional)
• group:I:number_of_grouping_methods grouping methods (Optional)

### Starting from line 3

• Each line will have the same number of items, which are determined by the property keyword in line 2. The meanings of the grouping methods will be illustrated by the example below.

## Units

• The mass should be given in units of the unified atomic mass unit (amu).
• The box lengths and atom coordinates should be given in units of angstrom.
• Velocities are in units of Angstrom/fs.

## An example

Assume we have the following model.xyz file:

10
pbc="T F F" lattice="4 0 0 0 1 0 0 0 1" properties=species:S:1:pos:R:3:group:I:3
C  0 0 0 0 0 0
Si 1 0 0 0 1 0
C  2 0 0 0 2 0
Si 3 0 0 0 3 0
C  4 0 0 0 4 0
Si 5 0 0 1 5 0
C  6 0 0 1 6 0
Si 7 0 0 1 7 0
C  8 0 0 1 8 0
Si 9 0 0 1 9 0


It means:

• There are 10 atoms.
• Use periodic boundary conditions in the $x$ direction and free boundary conditions in the other directions.
• The box lengths in the three directions are respectively 4 A, 1 A, and 1 A.
• There are 5 carbon atoms and 5 silicon atoms. Default masses will be used for the atoms.
• The 10 atoms are located along a line in the $x$ direction with equal spacing, from 0 A to 9 A.
• There are no velocity data in this file.
• There are 3 grouping methods defined in this file (see below).
• In grouping method 0, atom 0 to atom 4 have group label 0 (which means they are in group 0), and atom 5 to atom 9 have group label 1 (which means they are in group 1).
• In grouping method 1, atom $m$ ($0\leq m \leq 9$) has group label $m$. That is, each group consists of a single atom.
• In grouping method 2, all the atoms have group label 0. That is, all the atoms are in the same group.