<?xml version="1.0" encoding="utf-8"?>
<section version="5.0"
         xsi:schemaLocation="http://docbook.org/ns/docbook http://docbook.org/xml/5.0/xsd/docbook.xsd"
         xml:id="particles.modifiers" xmlns="http://docbook.org/ns/docbook"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:xs="http://www.w3.org/2001/XMLSchema"
         xmlns:xlink="http://www.w3.org/1999/xlink"
         xmlns:xi="http://www.w3.org/2001/XInclude"
         xmlns:ns="http://docbook.org/ns/docbook">
  <title>Modifiers</title>

  <para>
  
  Modifiers are the basic building blocks that can be used in OVITO's <link
  linkend="usage.modification_pipeline">modification pipeline</link>. The following table
  lists the available modifier types. 
  
  <informaltable>
        <tgroup cols="2">
          <colspec colname='name'/>
          <colspec colname='descr'/>
          <thead>
            <row>
              <entry>Modifier name</entry>
              <entry>Description</entry>
            </row>
          </thead>

          <tbody>
          
		<!-- ANALYSIS -->          
            <row>
              <entry namest="name" nameend="descr" align="center" role="subth">Analysis</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.atomic_strain">Atomic strain</link></entry>
              <entry>Calculates the atomic-level strain tensors based on an initial reference and a deformed configuration. </entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.bin_and_reduce">Bin and reduce</link></entry>
              <entry>Agregates a particle property over a one- or two-dimensional bin grid.</entry>
            </row>          
            <row>
              <entry><link linkend="particles.modifiers.bond_angle_analysis">Bond-angle analysis</link></entry>
              <entry>Performs the bond-angle analysis of Ackland and Jones to determine the local crystal structure.</entry>
            </row>          
            <row>
              <entry><link linkend="particles.modifiers.construct_surface_mesh">Construct surface mesh</link></entry>
              <entry>Constructs a polyhedral mesh representing the surface of an atomistic solid.</entry>
            </row>          
            <row>
              <entry><link linkend="particles.modifiers.dislocation_analysis">Dislocation analysis (DXA)</link></entry>
              <entry>Detects dislocation lines in a crystal.</entry>
            </row>          
            <row>
              <entry><link linkend="particles.modifiers.displacement_vectors">Displacement vectors</link></entry>
              <entry>Calculates the displacements of particles based on an initial and a deformed configuration.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.centrosymmetry">Centrosymmetry parameter</link></entry>
              <entry>Calculates the centrosymmetry parameter for every particle.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.cluster_analysis">Cluster analysis</link></entry>
              <entry>Decomposes a particle system into clusters of particles.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.common_neighbor_analysis">Common neighbor analysis</link></entry>
              <entry>Performs the common neighbor analysis (CNA) to determine the local crystal structure.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.coordination_analysis">Coordination analysis</link></entry>
              <entry>Determines the number of near neighbors of each particle and computes the radial distribution function.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.elastic_strain">Elastic strain calculation</link></entry>
              <entry>Calculates the atomic-level elastic strain tensors in crystalline systems.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.histogram">Histogram</link></entry>
              <entry>Computes the histogram of a particle property.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.identify_diamond_structure">Identify diamond structure</link></entry>
              <entry>Finds atoms that are arranged in a cubic or hexagonal diamond lattice.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.polyhedral_template_matching">Polyhedral Template Matching</link></entry>
              <entry>Identifies the local crystal structure using the PTM method.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.scatter_plot">Scatter plot</link></entry>
              <entry>Generates a scatter plot of two particle properties.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.voronoi_analysis">Voronoi analysis</link></entry>
              <entry>Computes the coordination number, atomic volume, and Voronoi index of particles from their Voronoi polyhedra.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.wigner_seitz_analysis">Wigner-Seitz defect analysis</link></entry>
              <entry>Identifies point defects (vacancies and interstitials) in a crystal lattice.</entry>
            </row>

		<!-- COLORING -->
            <row>
              <entry namest="name" nameend="descr" align="center" role="subth">Coloring</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.ambient_occlusion">Ambient occlusion</link></entry>
              <entry>Performs an ambient occlusion calculation to shade particles.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.assign_color">Assign color</link></entry>
              <entry>Assigns a color to all selected particles.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.color_coding">Color coding</link></entry>
              <entry>Colors particles or bonds based on a property.</entry>
            </row>

		<!-- MODIFICATION -->
            <row>
              <entry namest="name" nameend="descr" align="center" role="subth">Modification</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.affine_transformation">Affine transformation</link></entry>
              <entry>Applies an affine transformation to particle coordinates.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.create_bonds">Create bonds</link></entry>
              <entry>Creates bonds between particles.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.combine_particle_sets">Combine particle sets</link></entry>
              <entry>Merges the particles from two separate files into one dataset.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.compute_bond_lengths">Compute bond lengths</link></entry>
              <entry>Computes the length of each bond in the system.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.compute_property">Compute property</link></entry>
              <entry>Computes a new property for each particle based a user-defined formula.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.delete_selected_particles">Delete selected particles</link></entry>
              <entry>Deletes all selected particles.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.freeze_property">Freeze property</link></entry>
              <entry>Takes a snapshot of the current state of a particle property and preserves it over time.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.load_trajectory">Load trajectory</link></entry>
              <entry>Loads time-dependent atomic positions from a separate trajectory file.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.python_script">Python script</link></entry>
              <entry>Allows you to write your own modifier type in Python..</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.show_periodic_images">Show periodic images</link></entry>
              <entry>Duplicates particles to display the periodic images of particles.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.slice">Slice</link></entry>
              <entry>Cuts out a slice or a cross-section from the structure.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.wrap_at_periodic_boundaries">Wrap at periodic boundaries</link></entry>
              <entry>Maps particles outside of the simulation box back into the box.</entry>
            </row>

		<!-- SELECTION -->
            <row>
              <entry namest="name" nameend="descr" align="center" role="subth">Selection</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.clear_selection">Clear selection</link></entry>
              <entry>Resets the selection state of all particles.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.expand_selection">Expand selection</link></entry>
              <entry>Selects particles that are neighbors of already selected particles.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.manual_selection">Manual selection</link></entry>
              <entry>Allows to select particles with the mouse.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.invert_selection">Invert selection</link></entry>
              <entry>Inverts the selection state of each particle.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.expression_select">Expression select</link></entry>
              <entry>Selects particles based on a user-defined criterion.</entry>
            </row>
            <row>
              <entry><link linkend="particles.modifiers.select_particle_type">Select particle type</link></entry>
              <entry>Selects particles of one or more types.</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
   </para>

  <xi:include href="particles/affine_transformation.docbook"/>

  <xi:include href="particles/ambient_occlusion.docbook"/>

  <xi:include href="particles/assign_color.docbook"/>

  <xi:include href="particles/atomic_strain.docbook"/>

  <xi:include href="particles/bin_and_reduce.docbook"/>
  
  <xi:include href="particles/bond_angle_analysis.docbook"/>

  <xi:include href="particles/centrosymmetry.docbook"/>

  <xi:include href="particles/clear_selection.docbook"/>

  <xi:include href="particles/cluster_analysis.docbook"/>
  
  <xi:include href="particles/color_coding.docbook"/>

  <xi:include href="particles/combine_particle_sets.docbook"/>

  <xi:include href="particles/common_neighbor_analysis.docbook"/>

  <xi:include href="particles/compute_bond_lengths.docbook"/>

  <xi:include href="particles/compute_property.docbook"/>

  <xi:include href="particles/construct_surface_mesh.docbook"/>

  <xi:include href="particles/coordination_analysis.docbook"/>

  <xi:include href="particles/create_bonds.docbook"/>

  <xi:include href="particles/delete_selected_particles.docbook"/>

  <xi:include href="particles/dislocation_analysis.docbook"/>

  <xi:include href="particles/displacement_vectors.docbook"/>

  <xi:include href="particles/elastic_strain.docbook"/>

  <xi:include href="particles/expand_selection.docbook"/>

  <xi:include href="particles/expression_select.docbook"/>

  <xi:include href="particles/freeze_property.docbook"/>

  <xi:include href="particles/histogram.docbook"/>
  
  <xi:include href="particles/identify_diamond.docbook"/>

  <xi:include href="particles/invert_selection.docbook"/>

  <xi:include href="particles/load_trajectory.docbook"/>

  <xi:include href="particles/manual_selection.docbook"/>

  <xi:include href="particles/polyhedral_template_matching.docbook"/>

  <xi:include href="particles/python_script.docbook"/>

  <xi:include href="particles/scatter_plot.docbook"/>

  <xi:include href="particles/select_particle_type.docbook"/>

  <xi:include href="particles/show_periodic_images.docbook"/>

  <xi:include href="particles/slice.docbook"/>

  <xi:include href="particles/voronoi_analysis.docbook"/>

  <xi:include href="particles/wigner_seitz_analysis.docbook"/>

  <xi:include href="particles/wrap_at_periodic_boundaries.docbook"/>
  
</section>
