# Modifiers

Modifiers are the basic building blocks for creating a data pipeline in OVITO. Like tools in a toolbox, each modifier implements a very specific, well-defined type of operation or computation, and typically you will need to combine several modifiers to accomplish more complex tasks.

List of modifiers available in OVITO:

Analysis
Atomic strain | Calculates local strain tensors based on the relative motion of neighboring particles.
Bond analysis pro | Computes bond angle and bond length distributions.
Cluster analysis | Decomposes a particle system into clusters of particles.
Coordination analysis | Determines the number of neighbors of each particle and computes the radial distribution function for the system.
Dislocation analysis (DXA) | Identifies dislocation defects in a crystal.
Displacement vectors | Calculates the displacements of particles based on an initial and a deformed configuration.
Elastic strain calculation | Calculates the atomic-level elastic strain tensors in crystalline systems.
Grain segmentation | Determines the grain structure in a polycrystalline microstructure.
Histogram | Computes the histogram of a property.
Scatter plot | Generates a scatter plot of two properties.
Spatial binning pro | Aggregates a particle property over a one-, two- or three-dimensional bin grid.
Spatial correlation function | Calculates the spatial cross-correlation function between two particle properties.
Time averaging pro | Computes the average of some time-dependent input quantity over the entire trajectory.
Time series pro | Plots the value of a global attribute as function of simulation time.
Voronoi analysis | Computes the coordination number, atomic volume, and Voronoi index of particles from their Voronoi polyhedra.
Wigner-Seitz defect analysis | Identifies point defects (vacancies and interstitials) in a crystal lattice.

Coloring
Ambient occlusion | Performs an ambient occlusion calculation to shade particles.
Assign color | Assigns a color to all selected elements.
Color by type pro | Colors particles or bonds according to a typed (discrete) property.
Color coding | Colors particles or bonds based on the value of a scalar (continuous) property.

Modification
Affine transformation | Applies an affine transformation to the system.
Combine datasets | Merges the particles and bonds from two separate input files into one dataset.
Compute property | Assigns property values to particles or bonds according to a user-defined formula.
Delete selected | Removes the selected elements from the visualization.
Freeze property | Freezes the values of a dynamic particle property at a given animation time to make them available at other times.
Load trajectory | Loads time-dependent atomic positions from a separate trajectory file.
Python script pro | Lets you write your own modifier function in Python.
Replicate | Duplicates particles and other data elements to visualize periodic images of the system.
Slice | Cuts the structure along an infinite plane.
Smooth trajectory | Computes time-averaged particle positions using a sliding window or generates intermediate sub-frames using linear interpolation.
Unwrap trajectories | Computes unwrapped particle coordinates in order to generate continuous trajectories at periodic cell boundaries.
Wrap at periodic boundaries | Folds particles located outside of the periodic simulation box back into the box.

Selection
Clear selection | Resets the selection state of all elements.
Expand selection | Selects particles that are neighbors of already selected particles.
Expression selection | Selects particles and other elements based on a user-defined criterion.
Manual selection | Lets you select individual particles or bonds with the mouse.
Invert selection | Inverts the selection state of each element.
Select type | Selects all elements of a particular type, e.g. all atoms of a chemical species.

Structure identification
Ackland-Jones analysis | Identifies common crystal structures by an analysis of the bond-angle distribution.
Centrosymmetry parameter | Calculates the centrosymmetry parameter for every particle.
Chill+ | Identifies hexagonal ice, cubic ice, hydrate and other arrangements of water molecules.
Common neighbor analysis | Performs the common neighbor analysis (CNA) to determine local crystal structures.
Identify diamond structure | Identifies atoms that are arranged in a cubic or hexagonal diamond lattice.
Polyhedral template matching | Identifies common crystal structures using the PTM method and computes local crystal orientations.
VoroTop analysis | Identifies local structure of particles using the topology of their Voronoi polyhedra.

Visualization
Construct surface mesh | Constructs a triangle mesh representing the surface of a solid.
Create bonds | Creates bonds between particles.
Create isosurface | Generates an isosurface from a scalar field.
Coordination polyhedra | Shows coordination polyhedra.
Generate trajectory lines | Generates trajectory lines from the time-dependent particle positions.
Interactive molecular dynamics (IMD) | Visualize live atomic trajectories from a running MD simulation as they are being calculated.

Python-based modifiers
Calculate local entropy pro | Computes local pair entropy fingerprints of particles
Shrink-wrap simulation box pro | Resets the simulation cell to tightly fit all particles