Table of Contents | Particle properties | Up
Prev | Usage | Next

## Particle properties

### Definition

Particle properties are attributes (typically numerical information) associated with each particle. They play a central role in the data model of OVITO. Common examples for particle properties are position, chemical type or velocity. In OVITO's data model, all particles in a dataset uniformly possess the same set of properties (but their values may be different). In other words, it is not possible for only some particles to have a certain attribute while others do not. The set of properties associated with all particles can dynamically change though.

Note that this concept of uniform properties is very general and applies to other entity classes as well. For instance, in OVITO the interatomic bonds may be associated with bond properties, e.g. bond type or bond color. So keep in mind that, even though the following introduction primarily focuses on particle properties, it applies to other classes of properties in the same manner.

OVITO allows you to associate an arbitrary number of properties with the particles. Each property is identified by its unique name, for example `Position` or `Potential Energy`. OVITO has a built-in list of commonly-used property names including the mentioned two, but you are free to define properties with other names as needed. The `Position` property plays a special role though, because it is always present. Clearly, there cannot be any particles without a position. Other standard properties such as `Color`, `Radius` or `Selection` have a special meaning to the program as well, because their values affect how OVITO renders the particles. By assigning values to these properties, you control the visual appearance of particles.

In OVITO, per-particle property values can have different data types (real or integer) and dimensionality (e.g. scalar, vector, tensor), depending on the property at hand. The `Position` property, for instance, is a vector property with three components per particle, referred to as `Position.X`, `Position.Y` and `Position.Z` within OVITO's user interface.

### How are properties assigned?

An initial set of properties is automatically created by OVITO whenever you open a simulation data file. The values of standard properties such as `Position`, `Particle Type` and `Velocity` are typically initialized from the data in the loaded file. Some file formats such as LAMMPS dump and the extended XYZ format can store an arbitrary number of extra data columns with additional per-atom attributes. These attributes from the input file are automatically mapped to corresponding particle properties during import.

To find out which properties are currently associated with the particles, you can open OVITO's Data Inspector, which is shown in the screenshot. Alternatively, you can simply position the mouse cursor over a particle in the viewports, and OVITO will display the values of all its properties in the status bar.

OVITO provides a rich set of functions for modifying the assigned properties of particles. These so-called modifiers will be introduced in more detail in a following section of this manual. But to already give you an idea: The Assign color modifier function lets you assign a uniform color of your choice to all currently selected particles. It does that by setting the `Color` property of the particles to the given RGB value (if the `Color` property doesn't exist yet, it is automatically created). Which of the particles are currently selected is determined by the value of their `Selection` property (convention: 0=unselected, 1=selected).

Fittingly, OVITO provides a number of particle selection modifiers, which allow you to set the value of the `Selection` property. For example, the Select type modifier inspects the `Particle Type` property of each particle to decide whether or not to select the particle, allowing you to pick all atoms of a particular chemical type, for example.

Another typical modifier is the Coordination Analysis modifier. It computes the number of neighbors of each particle within a given cutoff range and stores the computation results in a new particle property named `Coordination`. Subsequently, you can refer to the values of this property, for example to select particles having a coordination number in a certain range or to color particles based on their coordination number (see Color Coding modifier).

Of course it is possible to export the particle property values to an output file. OVITO supports a variety of output formats for that (see the data export section of this manual). For instance, the XYZ format is a simple table format supporting an arbitrary set of output columns.

### Special particle properties

As mentioned above, certain particle properties play a special role in OVITO, because their values control the visual appearance of the particles as well as other aspects. The following table lists these properties and describes their function:

Particle property | Data type / Components | Description
--- | --- | ---
`Position` | Real (X, Y, Z) | The particle coordinates. For 2-dim. systems, Z will be 0.
`Color` | Real (R, G, B) | If present, this property controls the display color of particles. Red, green and blue components are in the range [0,1].
`Radius` | Real | If present, this property controls the display size of particles.
`Particle Type` | Integer | Stores the type identifier of each particle. This also determines the display size and color if the Radius or Color property are not present.
`Particle Identifier` | Integer | Stores the unique ID of each particle. This information will be used by some modifiers to track particles over time even if the storage order changes.
`Transparency` | Real | A value in the range [0,1] controlling the particle's transparency. If not present, particles are rendered fully opaque.
`Selection` | Integer | Stores the current selection state of particles (1 for selected particles; 0 otherwise).

### Special bond properties

Bond property | Data type / Components | Description
--- | --- | ---
`Topology` | Integer (A, B) | This bond property is always present and holds the indices of the two particles connected by a bond.
`Bond Type` | Integer | Stores the type identifier of each bond. The bond type determines the display color if the Color property is not present.
`Color` | Real (R, G, B) | If present, this property controls the display color of individual bonds. Red, green and blue components are in the range [0,1].
`Transparency` | Real | A value in the range [0,1] controlling the bonds's transparency. If not present, bonds are rendered fully opaque.
`Selection` | Integer | Stores the current selection state of bonds (1 for selected bonds; 0 otherwise).

Prev | Up | Next
Viewport windows | Table of Contents | Data pipeline