Merge remote-tracking branch 'github/develop' into collected-small-changes

This commit is contained in:
Axel Kohlmeyer
2022-08-27 10:12:58 -04:00
168 changed files with 2978 additions and 2547 deletions

View File

@ -10,7 +10,7 @@ Syntax
angle_style style angle_style style
* style = *none* or *hybrid* or *charmm* or *class2* or *cosine* or *cosine/squared* or *harmonic* * style = *none* or *zero* or *hybrid* or *amoeba* or *charmm* or *class2* or *class2/p6* or *cosine* or *cosine/buck6d* or *cosine/delta* or *cosine/periodic* or *cosine/shift* or *cosine/shift/exp* or *cosine/squared* or *cross* or *dipole* or *fourier* or *fourier/simple* or *gaussian* or *harmonic* or *mm3* or *quartic* or *spica* or *table*
Examples Examples
"""""""" """"""""

View File

@ -8,7 +8,10 @@ Syntax
.. code-block:: LAMMPS .. code-block:: LAMMPS
angle_style zero *nocoeff* angle_style zero keyword
* zero or more keywords may be appended
* keyword = *nocoeff*
Examples Examples
"""""""" """"""""

View File

@ -6,7 +6,7 @@ balance command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
balance thresh style args ... keyword args ... balance thresh style args ... keyword args ...

View File

@ -10,7 +10,7 @@ Syntax
bond_style style args bond_style style args
* style = *none* or *hybrid* or *class2* or *fene* or *fene/expand* or *harmonic* or *morse* or *nonlinear* or *quartic* * style = *none* or *zero* or *hybrid* or *bpm/rotational* or *bpm/spring* or *class2* or *fene* or *fene/expand* or *fene/nm* or *gaussian* or *gromos* or *harmonic* or *harmonic/shift* or *harmonic/shift/cut* or *morse* or *nonlinear* or *oxdna/fene* or *oxdena2/fene* or *oxrna2/fene* or *quartic* or *special* or *table*
* args = none for any style except *hybrid* * args = none for any style except *hybrid*

View File

@ -8,7 +8,10 @@ Syntax
.. code-block:: LAMMPS .. code-block:: LAMMPS
bond_style zero [nocoeff] bond_style zero keyword
* zero or more keywords may be appended
* keyword = *nocoeff*
Examples Examples
"""""""" """"""""

View File

@ -6,7 +6,7 @@ boundary command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
boundary x y z boundary x y z

View File

@ -6,7 +6,7 @@ box command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
box keyword value ... box keyword value ...

View File

@ -6,18 +6,18 @@ clear command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
clear clear
Examples Examples
"""""""" """"""""
.. parsed-literal:: .. code-block:: LAMMPS
(commands for 1st simulation) # (commands for 1st simulation)
clear clear
(commands for 2nd simulation) # (commands for 2nd simulation)
Description Description
""""""""""" """""""""""

View File

@ -10,8 +10,8 @@ Syntax
comm_modify keyword value ... comm_modify keyword value ...
* zero or more keyword/value pairs may be appended * one or more keyword/value pairs may be appended
* keyword = *mode* or *cutoff* or *cutoff/multi* or *multi/reduce* or *group* or *vel* * keyword = *mode* or *cutoff* or *cutoff/multi* or *group* or *reduce/multi* or *vel*
.. parsed-literal:: .. parsed-literal::

View File

@ -6,7 +6,7 @@ compute command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID style args compute ID group-ID style args
@ -33,8 +33,8 @@ they are calculated from information about atoms on the current
timestep or iteration, though a compute may internally store some timestep or iteration, though a compute may internally store some
information about a previous state of the system. Defining a compute information about a previous state of the system. Defining a compute
does not perform a computation. Instead computes are invoked by other does not perform a computation. Instead computes are invoked by other
LAMMPS commands as needed, e.g. to calculate a temperature needed for LAMMPS commands as needed (e.g., to calculate a temperature needed for
a thermostat fix or to generate thermodynamic or dump file output. a thermostat fix or to generate thermodynamic or dump file output).
See the :doc:`Howto output <Howto_output>` page for a summary of See the :doc:`Howto output <Howto_output>` page for a summary of
various LAMMPS output options, many of which involve computes. various LAMMPS output options, many of which involve computes.
@ -45,15 +45,15 @@ underscores.
Computes calculate one of three styles of quantities: global, Computes calculate one of three styles of quantities: global,
per-atom, or local. A global quantity is one or more system-wide per-atom, or local. A global quantity is one or more system-wide
values, e.g. the temperature of the system. A per-atom quantity is values (e.g., the temperature of the system). A per-atom quantity is
one or more values per atom, e.g. the kinetic energy of each atom. one or more values per atom (e.g., the kinetic energy of each atom).
Per-atom values are set to 0.0 for atoms not in the specified compute Per-atom values are set to 0.0 for atoms not in the specified compute
group. Local quantities are calculated by each processor based on the group. Local quantities are calculated by each processor based on the
atoms it owns, but there may be zero or more per atom, e.g. a list of atoms it owns, but there may be zero or more per atom (e.g., a list of
bond distances. Computes that produce per-atom quantities have the bond distances). Computes that produce per-atom quantities have the
word "atom" in their style, e.g. *ke/atom*\ . Computes that produce word "atom" in their style (e.g., *ke/atom*\ ). Computes that produce
local quantities have the word "local" in their style, local quantities have the word "local" in their style
e.g. *bond/local*\ . Styles with neither "atom" or "local" in their (e.g., *bond/local*\ ). Styles with neither "atom" or "local" in their
style produce global quantities. style produce global quantities.
Note that a single compute can produce either global or per-atom or Note that a single compute can produce either global or per-atom or
@ -64,8 +64,8 @@ compute page will explain.
Global, per-atom, and local quantities each come in three kinds: a Global, per-atom, and local quantities each come in three kinds: a
single scalar value, a vector of values, or a 2d array of values. The single scalar value, a vector of values, or a 2d array of values. The
doc page for each compute describes the style and kind of values it doc page for each compute describes the style and kind of values it
produces, e.g. a per-atom vector. Some computes produce more than one produces (e.g., a per-atom vector). Some computes produce more than one
kind of a single style, e.g. a global scalar and a global vector. kind of a single style (e.g., a global scalar and a global vector).
When a compute quantity is accessed, as in many of the output commands When a compute quantity is accessed, as in many of the output commands
discussed below, it can be referenced via the following bracket discussed below, it can be referenced via the following bracket
@ -80,14 +80,14 @@ notation, where ID is the ID of the compute:
+-------------+--------------------------------------------+ +-------------+--------------------------------------------+
In other words, using one bracket reduces the dimension of the In other words, using one bracket reduces the dimension of the
quantity once (vector -> scalar, array -> vector). Using two brackets quantity once (vector :math:`\to` scalar, array :math:`\to` vector). Using two
reduces the dimension twice (array -> scalar). Thus a command that brackets reduces the dimension twice (array :math:`\to` scalar). Thus a
uses scalar compute values as input can also process elements of a command that uses scalar compute values as input can also process elements of a
vector or array. vector or array.
Note that commands and :doc:`variables <variable>` which use compute Note that commands and :doc:`variables <variable>` which use compute
quantities typically do not allow for all kinds, e.g. a command may quantities typically do not allow for all kinds (e.g., a command may
require a vector of values, not a scalar. This means there is no require a vector of values, not a scalar). This means there is no
ambiguity about referring to a compute quantity as c_ID even if it ambiguity about referring to a compute quantity as c_ID even if it
produces, for example, both a scalar and vector. The doc pages for produces, for example, both a scalar and vector. The doc pages for
various commands explain the details. various commands explain the details.
@ -111,14 +111,14 @@ ways:
The results of computes that calculate global quantities can be either The results of computes that calculate global quantities can be either
"intensive" or "extensive" values. Intensive means the value is "intensive" or "extensive" values. Intensive means the value is
independent of the number of atoms in the simulation, independent of the number of atoms in the simulation
e.g. temperature. Extensive means the value scales with the number of (e.g., temperature). Extensive means the value scales with the number of
atoms in the simulation, e.g. total rotational kinetic energy. atoms in the simulation (e.g., total rotational kinetic energy).
:doc:`Thermodynamic output <thermo_style>` will normalize extensive :doc:`Thermodynamic output <thermo_style>` will normalize extensive
values by the number of atoms in the system, depending on the values by the number of atoms in the system, depending on the
"thermo_modify norm" setting. It will not normalize intensive values. "thermo_modify norm" setting. It will not normalize intensive values.
If a compute value is accessed in another way, e.g. by a If a compute value is accessed in another way (e.g., by a
:doc:`variable <variable>`, you may want to know whether it is an :doc:`variable <variable>`), you may want to know whether it is an
intensive or extensive value. See the page for individual intensive or extensive value. See the page for individual
computes for further info. computes for further info.
@ -187,8 +187,8 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
* :doc:`cluster/atom <compute_cluster_atom>` - cluster ID for each atom * :doc:`cluster/atom <compute_cluster_atom>` - cluster ID for each atom
* :doc:`cna/atom <compute_cna_atom>` - common neighbor analysis (CNA) for each atom * :doc:`cna/atom <compute_cna_atom>` - common neighbor analysis (CNA) for each atom
* :doc:`cnp/atom <compute_cnp_atom>` - common neighborhood parameter (CNP) for each atom * :doc:`cnp/atom <compute_cnp_atom>` - common neighborhood parameter (CNP) for each atom
* :doc:`com <compute_com>` - center-of-mass of group of atoms * :doc:`com <compute_com>` - center of mass of group of atoms
* :doc:`com/chunk <compute_com_chunk>` - center-of-mass for each chunk * :doc:`com/chunk <compute_com_chunk>` - center of mass for each chunk
* :doc:`contact/atom <compute_contact_atom>` - contact count for each spherical particle * :doc:`contact/atom <compute_contact_atom>` - contact count for each spherical particle
* :doc:`coord/atom <compute_coord_atom>` - coordination number for each atom * :doc:`coord/atom <compute_coord_atom>` - coordination number for each atom
* :doc:`damage/atom <compute_damage_atom>` - Peridynamic damage for each atom * :doc:`damage/atom <compute_damage_atom>` - Peridynamic damage for each atom
@ -198,10 +198,10 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
* :doc:`dipole <compute_dipole>` - dipole vector and total dipole * :doc:`dipole <compute_dipole>` - dipole vector and total dipole
* :doc:`dipole/chunk <compute_dipole_chunk>` - dipole vector and total dipole for each chunk * :doc:`dipole/chunk <compute_dipole_chunk>` - dipole vector and total dipole for each chunk
* :doc:`displace/atom <compute_displace_atom>` - displacement of each atom * :doc:`displace/atom <compute_displace_atom>` - displacement of each atom
* :doc:`dpd <compute_dpd>` - * :doc:`dpd <compute_dpd>` - total values of internal conductive energy, internal mechanical energy, chemical energy, and harmonic average of internal temperature
* :doc:`dpd/atom <compute_dpd_atom>` - * :doc:`dpd/atom <compute_dpd_atom>` - per-particle values of internal conductive energy, internal mechanical energy, chemical energy, and internal temperature
* :doc:`edpd/temp/atom <compute_edpd_temp_atom>` - per-atom temperature for each eDPD particle in a group * :doc:`edpd/temp/atom <compute_edpd_temp_atom>` - per-atom temperature for each eDPD particle in a group
* :doc:`efield/atom <compute_efield_atom>` - * :doc:`efield/atom <compute_efield_atom>` - electric field at each atom
* :doc:`entropy/atom <compute_entropy_atom>` - pair entropy fingerprint of each atom * :doc:`entropy/atom <compute_entropy_atom>` - pair entropy fingerprint of each atom
* :doc:`erotate/asphere <compute_erotate_asphere>` - rotational energy of aspherical particles * :doc:`erotate/asphere <compute_erotate_asphere>` - rotational energy of aspherical particles
* :doc:`erotate/rigid <compute_erotate_rigid>` - rotational energy of rigid bodies * :doc:`erotate/rigid <compute_erotate_rigid>` - rotational energy of rigid bodies
@ -213,7 +213,7 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
* :doc:`fep/ta <compute_fep_ta>` - compute free energies for a test area perturbation * :doc:`fep/ta <compute_fep_ta>` - compute free energies for a test area perturbation
* :doc:`force/tally <compute_tally>` - force between two groups of atoms via the tally callback mechanism * :doc:`force/tally <compute_tally>` - force between two groups of atoms via the tally callback mechanism
* :doc:`fragment/atom <compute_cluster_atom>` - fragment ID for each atom * :doc:`fragment/atom <compute_cluster_atom>` - fragment ID for each atom
* :doc:`global/atom <compute_global_atom>` - * :doc:`global/atom <compute_global_atom>` - assign global values to each atom from arrays of global values
* :doc:`group/group <compute_group_group>` - energy/force between two groups of atoms * :doc:`group/group <compute_group_group>` - energy/force between two groups of atoms
* :doc:`gyration <compute_gyration>` - radius of gyration of group of atoms * :doc:`gyration <compute_gyration>` - radius of gyration of group of atoms
* :doc:`gyration/chunk <compute_gyration_chunk>` - radius of gyration for each chunk * :doc:`gyration/chunk <compute_gyration_chunk>` - radius of gyration for each chunk
@ -232,7 +232,7 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
* :doc:`ke/atom/eff <compute_ke_atom_eff>` - per-atom translational and radial kinetic energy in the electron force field model * :doc:`ke/atom/eff <compute_ke_atom_eff>` - per-atom translational and radial kinetic energy in the electron force field model
* :doc:`ke/eff <compute_ke_eff>` - kinetic energy of a group of nuclei and electrons in the electron force field model * :doc:`ke/eff <compute_ke_eff>` - kinetic energy of a group of nuclei and electrons in the electron force field model
* :doc:`ke/rigid <compute_ke_rigid>` - translational kinetic energy of rigid bodies * :doc:`ke/rigid <compute_ke_rigid>` - translational kinetic energy of rigid bodies
* :doc:`mliap <compute_mliap>` - gradients of energy and forces w.r.t. model parameters and related quantities for training machine learning interatomic potentials * :doc:`mliap <compute_mliap>` - gradients of energy and forces with respect to model parameters and related quantities for training machine learning interatomic potentials
* :doc:`momentum <compute_momentum>` - translational momentum * :doc:`momentum <compute_momentum>` - translational momentum
* :doc:`msd <compute_msd>` - mean-squared displacement of group of atoms * :doc:`msd <compute_msd>` - mean-squared displacement of group of atoms
* :doc:`msd/chunk <compute_msd_chunk>` - mean-squared displacement for each chunk * :doc:`msd/chunk <compute_msd_chunk>` - mean-squared displacement for each chunk
@ -254,35 +254,35 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
* :doc:`property/chunk <compute_property_chunk>` - extract various per-chunk attributes * :doc:`property/chunk <compute_property_chunk>` - extract various per-chunk attributes
* :doc:`property/local <compute_property_local>` - convert local attributes to localvectors/arrays * :doc:`property/local <compute_property_local>` - convert local attributes to localvectors/arrays
* :doc:`ptm/atom <compute_ptm_atom>` - determines the local lattice structure based on the Polyhedral Template Matching method * :doc:`ptm/atom <compute_ptm_atom>` - determines the local lattice structure based on the Polyhedral Template Matching method
* :doc:`rdf <compute_rdf>` - radial distribution function g(r) histogram of group of atoms * :doc:`rdf <compute_rdf>` - radial distribution function :math:`g(r)` histogram of group of atoms
* :doc:`reduce <compute_reduce>` - combine per-atom quantities into a single global value * :doc:`reduce <compute_reduce>` - combine per-atom quantities into a single global value
* :doc:`reduce/chunk <compute_reduce_chunk>` - reduce per-atom quantities within each chunk * :doc:`reduce/chunk <compute_reduce_chunk>` - reduce per-atom quantities within each chunk
* :doc:`reduce/region <compute_reduce>` - same as compute reduce, within a region * :doc:`reduce/region <compute_reduce>` - same as compute reduce, within a region
* :doc:`rigid/local <compute_rigid_local>` - extract rigid body attributes * :doc:`rigid/local <compute_rigid_local>` - extract rigid body attributes
* :doc:`saed <compute_saed>` - electron diffraction intensity on a mesh of reciprocal lattice nodes * :doc:`saed <compute_saed>` - electron diffraction intensity on a mesh of reciprocal lattice nodes
* :doc:`slice <compute_slice>` - extract values from global vector or array * :doc:`slice <compute_slice>` - extract values from global vector or array
* :doc:`smd/contact/radius <compute_smd_contact_radius>` - * :doc:`smd/contact/radius <compute_smd_contact_radius>` - contact radius for Smooth Mach Dynamics
* :doc:`smd/damage <compute_smd_damage>` - damage status of SPH particles in Smooth Mach Dynamics * :doc:`smd/damage <compute_smd_damage>` - damage status of SPH particles in Smooth Mach Dynamics
* :doc:`smd/hourglass/error <compute_smd_hourglass_error>` - * :doc:`smd/hourglass/error <compute_smd_hourglass_error>` - error associated with approximated relative separation in Smooth Mach Dynamics
* :doc:`smd/internal/energy <compute_smd_internal_energy>` - per-particle enthalpy in Smooth Mach Dynamics * :doc:`smd/internal/energy <compute_smd_internal_energy>` - per-particle enthalpy in Smooth Mach Dynamics
* :doc:`smd/plastic/strain <compute_smd_plastic_strain>` - equivalent plastic strain per particle in Smooth Mach Dynamics * :doc:`smd/plastic/strain <compute_smd_plastic_strain>` - equivalent plastic strain per particle in Smooth Mach Dynamics
* :doc:`smd/plastic/strain/rate <compute_smd_plastic_strain_rate>` - time rate of the equivalent plastic strain in Smooth Mach Dynamics * :doc:`smd/plastic/strain/rate <compute_smd_plastic_strain_rate>` - time rate of the equivalent plastic strain in Smooth Mach Dynamics
* :doc:`smd/rho <compute_smd_rho>` - per-particle mass density in Smooth Mach Dynamics * :doc:`smd/rho <compute_smd_rho>` - per-particle mass density in Smooth Mach Dynamics
* :doc:`smd/tlsph/defgrad <compute_smd_tlsph_defgrad>` - deformation gradient in Smooth Mach Dynamics * :doc:`smd/tlsph/defgrad <compute_smd_tlsph_defgrad>` - deformation gradient in Smooth Mach Dynamics
* :doc:`smd/tlsph/dt <compute_smd_tlsph_dt>` - CFL-stable time increment per particle in Smooth Mach Dynamics * :doc:`smd/tlsph/dt <compute_smd_tlsph_dt>` - CFL-stable time increment per particle in Smooth Mach Dynamics
* :doc:`smd/tlsph/num/neighs <compute_smd_tlsph_num_neighs>` - * :doc:`smd/tlsph/num/neighs <compute_smd_tlsph_num_neighs>` - number of particles inside the smoothing kernel radius for Smooth Mach Dynamics
* :doc:`smd/tlsph/shape <compute_smd_tlsph_shape>` - * :doc:`smd/tlsph/shape <compute_smd_tlsph_shape>` - current shape of the volume of a particle for Smooth Mach Dynamics
* :doc:`smd/tlsph/strain <compute_smd_tlsph_strain>` - * :doc:`smd/tlsph/strain <compute_smd_tlsph_strain>` - Green--Lagrange strain tensor for Smooth Mach Dynamics
* :doc:`smd/tlsph/strain/rate <compute_smd_tlsph_strain_rate>` - * :doc:`smd/tlsph/strain/rate <compute_smd_tlsph_strain_rate>` - rate of strain for Smooth Mach Dynamics
* :doc:`smd/tlsph/stress <compute_smd_tlsph_stress>` - per-particle Cauchy stress tensor for SPH particles * :doc:`smd/tlsph/stress <compute_smd_tlsph_stress>` - per-particle Cauchy stress tensor for SPH particles
* :doc:`smd/triangle/vertices <compute_smd_triangle_vertices>` - * :doc:`smd/triangle/vertices <compute_smd_triangle_vertices>` - coordinates of vertices corresponding to the triangle elements of a mesh for Smooth Mach Dynamics
* :doc:`smd/ulsph/effm <compute_smd_ulsph_effm>` - per-particle effective shear modulus * :doc:`smd/ulsph/effm <compute_smd_ulsph_effm>` - per-particle effective shear modulus
* :doc:`smd/ulsph/num/neighs <compute_smd_ulsph_num_neighs>` - * :doc:`smd/ulsph/num/neighs <compute_smd_ulsph_num_neighs>` - number of neighbor particles inside the smoothing kernel radius for Smooth Mach Dynamics
* :doc:`smd/ulsph/strain <compute_smd_ulsph_strain>` - * :doc:`smd/ulsph/strain <compute_smd_ulsph_strain>` - logarithmic strain tensor for Smooth Mach Dynamics
* :doc:`smd/ulsph/strain/rate <compute_smd_ulsph_strain_rate>` - * :doc:`smd/ulsph/strain/rate <compute_smd_ulsph_strain_rate>` - logarithmic strain rate for Smooth Mach Dynamics
* :doc:`smd/ulsph/stress <compute_smd_ulsph_stress>` - per-particle Cauchy stress tensor and von Mises equivalent stress in Smooth Mach Dynamics * :doc:`smd/ulsph/stress <compute_smd_ulsph_stress>` - per-particle Cauchy stress tensor and von Mises equivalent stress in Smooth Mach Dynamics
* :doc:`smd/vol <compute_smd_vol>` - per-particle volumes and their sum in Smooth Mach Dynamics * :doc:`smd/vol <compute_smd_vol>` - per-particle volumes and their sum in Smooth Mach Dynamics
* :doc:`snap <compute_sna_atom>` - gradients of SNAP energy and forces w.r.t. linear coefficients and related quantities for fitting SNAP potentials * :doc:`snap <compute_sna_atom>` - gradients of SNAP energy and forces with respect to linear coefficients and related quantities for fitting SNAP potentials
* :doc:`sna/atom <compute_sna_atom>` - bispectrum components for each atom * :doc:`sna/atom <compute_sna_atom>` - bispectrum components for each atom
* :doc:`sna/grid <compute_sna_atom>` - global array of bispectrum components on a regular grid * :doc:`sna/grid <compute_sna_atom>` - global array of bispectrum components on a regular grid
* :doc:`sna/grid/local <compute_sna_atom>` - local array of bispectrum components on a regular grid * :doc:`sna/grid/local <compute_sna_atom>` - local array of bispectrum components on a regular grid
@ -308,7 +308,7 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
* :doc:`temp/cs <compute_temp_cs>` - temperature based on the center-of-mass velocity of atom pairs that are bonded to each other * :doc:`temp/cs <compute_temp_cs>` - temperature based on the center-of-mass velocity of atom pairs that are bonded to each other
* :doc:`temp/deform <compute_temp_deform>` - temperature excluding box deformation velocity * :doc:`temp/deform <compute_temp_deform>` - temperature excluding box deformation velocity
* :doc:`temp/deform/eff <compute_temp_deform_eff>` - temperature excluding box deformation velocity in the electron force field model * :doc:`temp/deform/eff <compute_temp_deform_eff>` - temperature excluding box deformation velocity in the electron force field model
* :doc:`temp/drude <compute_temp_drude>` - temperature of Core-Drude pairs * :doc:`temp/drude <compute_temp_drude>` - temperature of Core--Drude pairs
* :doc:`temp/eff <compute_temp_eff>` - temperature of a group of nuclei and electrons in the electron force field model * :doc:`temp/eff <compute_temp_eff>` - temperature of a group of nuclei and electrons in the electron force field model
* :doc:`temp/partial <compute_temp_partial>` - temperature excluding one or more dimensions of velocity * :doc:`temp/partial <compute_temp_partial>` - temperature excluding one or more dimensions of velocity
* :doc:`temp/profile <compute_temp_profile>` - temperature excluding a binned velocity profile * :doc:`temp/profile <compute_temp_profile>` - temperature excluding a binned velocity profile
@ -324,7 +324,7 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
* :doc:`vcm/chunk <compute_vcm_chunk>` - velocity of center-of-mass for each chunk * :doc:`vcm/chunk <compute_vcm_chunk>` - velocity of center-of-mass for each chunk
* :doc:`viscosity/cos <compute_viscosity_cos>` - velocity profile under cosine-shaped acceleration * :doc:`viscosity/cos <compute_viscosity_cos>` - velocity profile under cosine-shaped acceleration
* :doc:`voronoi/atom <compute_voronoi_atom>` - Voronoi volume and neighbors for each atom * :doc:`voronoi/atom <compute_voronoi_atom>` - Voronoi volume and neighbors for each atom
* :doc:`xrd <compute_xrd>` - x-ray diffraction intensity on a mesh of reciprocal lattice nodes * :doc:`xrd <compute_xrd>` - X-ray diffraction intensity on a mesh of reciprocal lattice nodes
Restrictions Restrictions
"""""""""""" """"""""""""
@ -333,7 +333,9 @@ Restrictions
Related commands Related commands
"""""""""""""""" """"""""""""""""
:doc:`uncompute <uncompute>`, :doc:`compute_modify <compute_modify>`, :doc:`fix ave/atom <fix_ave_atom>`, :doc:`fix ave/time <fix_ave_time>`, :doc:`fix ave/histo <fix_ave_histo>` :doc:`uncompute <uncompute>`, :doc:`compute_modify <compute_modify>`,
:doc:`fix ave/atom <fix_ave_atom>`, :doc:`fix ave/time <fix_ave_time>`,
:doc:`fix ave/histo <fix_ave_histo>`
Default Default
""""""" """""""

View File

@ -6,7 +6,7 @@ compute ackland/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID ackland/atom keyword/value compute ID group-ID ackland/atom keyword/value
@ -17,7 +17,7 @@ Syntax
.. parsed-literal:: .. parsed-literal::
*legacy* yes/no = use (\ *yes*\ ) or do not use (\ *no*\ ) legacy ackland algorithm implementation *legacy* args = *yes* or *no* = use (\ *yes*\ ) or do not use (\ *no*\ ) legacy Ackland algorithm implementation
Examples Examples
"""""""" """"""""

View File

@ -6,7 +6,7 @@ compute adf command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID adf Nbin itype1 jtype1 ktype1 Rjinner1 Rjouter1 Rkinner1 Rkouter1 ... compute ID group-ID adf Nbin itype1 jtype1 ktype1 Rjinner1 Rjouter1 Rkinner1 Rkouter1 ...
@ -16,10 +16,10 @@ Syntax
* itypeN = central atom type for Nth ADF histogram (see asterisk form below) * itypeN = central atom type for Nth ADF histogram (see asterisk form below)
* jtypeN = J atom type for Nth ADF histogram (see asterisk form below) * jtypeN = J atom type for Nth ADF histogram (see asterisk form below)
* ktypeN = K atom type for Nth ADF histogram (see asterisk form below) * ktypeN = K atom type for Nth ADF histogram (see asterisk form below)
* RjinnerN = inner radius of J atom shell for Nth ADF histogram (distance units) * RjinnerN = inner radius of J atom shell for Nth ADF histogram (distance units)
* RjouterN = outer radius of J atom shell for Nth ADF histogram (distance units) * RjouterN = outer radius of J atom shell for Nth ADF histogram (distance units)
* RkinnerN = inner radius of K atom shell for Nth ADF histogram (distance units) * RkinnerN = inner radius of K atom shell for Nth ADF histogram (distance units)
* RkouterN = outer radius of K atom shell for Nth ADF histogram (distance units) * RkouterN = outer radius of K atom shell for Nth ADF histogram (distance units)
* zero or one keyword/value pairs may be appended * zero or one keyword/value pairs may be appended
* keyword = *ordinate* * keyword = *ordinate*
@ -177,8 +177,8 @@ Output info
""""""""""" """""""""""
This compute calculates a global array with the number of rows = This compute calculates a global array with the number of rows =
*Nbins*, and the number of columns = 1 + 2\*Ntriples, where Ntriples is the *Nbins* and the number of columns = :math:`1 + 2 \times` *Ntriples*, where *Ntriples*
number of I,J,K triples specified. The first column has the bin is the number of I,J,K triples specified. The first column has the bin
coordinate (angle-related ordinate at midpoint of bin). Each subsequent column has coordinate (angle-related ordinate at midpoint of bin). Each subsequent column has
the two ADF values for a specific set of (\ *itypeN*,\ *jtypeN*,\ *ktypeN*\ ) the two ADF values for a specific set of (\ *itypeN*,\ *jtypeN*,\ *ktypeN*\ )
interactions, as described above. These values can be used interactions, as described above. These values can be used
@ -192,10 +192,10 @@ The first column of array values is the angle-related ordinate, either
the angle in degrees or radians, or the cosine of the angle. Each the angle in degrees or radians, or the cosine of the angle. Each
subsequent pair of columns gives the first and second kinds of ADF subsequent pair of columns gives the first and second kinds of ADF
for a specific set of (\ *itypeN*,\ *jtypeN*,\ *ktypeN*\ ). The values for a specific set of (\ *itypeN*,\ *jtypeN*,\ *ktypeN*\ ). The values
in the first ADF column are normalized numbers >= 0.0, in the first ADF column are normalized numbers :math:`\ge 0.0`,
whose integral w.r.t. the ordinate is 1, whose integral w.r.t. the ordinate is 1,
i.e. the first ADF is a normalized probability distribution. i.e. the first ADF is a normalized probability distribution.
The values in the second ADF column are also numbers >= 0.0. The values in the second ADF column are also numbers :math:`\ge 0.0`.
They are the cumulative density distribution of angles per atom. They are the cumulative density distribution of angles per atom.
By definition, this ADF is monotonically increasing from zero to By definition, this ADF is monotonically increasing from zero to
a maximum value equal to the average total number of a maximum value equal to the average total number of

View File

@ -6,7 +6,7 @@ compute angle command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID angle compute ID group-ID angle
@ -35,12 +35,12 @@ the hybrid sub-styles.
Output info Output info
""""""""""" """""""""""
This compute calculates a global vector of length N where N is the number of This compute calculates a global vector of length *N*, where *N* is the number
sub_styles defined by the :doc:`angle_style hybrid <angle_style>` command, of sub_styles defined by the :doc:`angle_style hybrid <angle_style>` command,
which can be accessed by indices 1-N. These values can be used by any command which can be accessed by indices 1 through *N*. These values can be used by
that uses global scalar or vector values from a compute as input. See the any command that uses global scalar or vector values from a compute as input.
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS
options. output options.
The vector values are "extensive" and will be in energy The vector values are "extensive" and will be in energy
:doc:`units <units>`. :doc:`units <units>`.

View File

@ -6,7 +6,7 @@ compute angle/local command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID angle/local value1 value2 ... keyword args ... compute ID group-ID angle/local value1 value2 ... keyword args ...
@ -47,7 +47,7 @@ interactions. The number of datums generated, aggregated across all
processors, equals the number of angles in the system, modified by the processors, equals the number of angles in the system, modified by the
group parameter as explained below. group parameter as explained below.
The value *theta* is the angle for the 3 atoms in the interaction. The value *theta* is the angle for the three atoms in the interaction.
The value *eng* is the interaction energy for the angle. The value *eng* is the interaction energy for the angle.
@ -65,8 +65,8 @@ Note that the value of theta for each angle which stored in the
internal variable is in radians, not degrees. internal variable is in radians, not degrees.
As an example, these commands can be added to the bench/in.rhodo As an example, these commands can be added to the bench/in.rhodo
script to compute the cosine and cosine\^2 of every angle in the system script to compute the cosine and cosine-squared of every angle in the
and output the statistics in various ways: system and output the statistics in various ways:
.. code-block:: LAMMPS .. code-block:: LAMMPS
@ -83,19 +83,20 @@ and output the statistics in various ways:
fix 10 all ave/histo 10 10 100 -1 1 20 c_2[3] mode vector file tmp.histo fix 10 all ave/histo 10 10 100 -1 1 20 c_2[3] mode vector file tmp.histo
The :doc:`dump local <dump>` command will output the energy, angle, The :doc:`dump local <dump>` command will output the potential energy
cosine(angle), cosine\^2(angle) for every angle in the system. The (:math:`\phi`), the angle (:math:`\theta`), :math:`\cos(\theta`), and
:doc:`thermo_style <thermo_style>` command will print the average of :math:`\cos^2(\theta)` for every angle :math:`\theta` in the system.
those quantities via the :doc:`compute reduce <compute_reduce>` command The :doc:`thermo_style <thermo_style>` command will print the
with thermo output. And the :doc:`fix ave/histo <fix_ave_histo>` average of those quantities via the :doc:`compute reduce <compute_reduce>`
command will histogram the cosine(angle) values and write them to a command with thermo output. And the :doc:`fix ave/histo <fix_ave_histo>`
command will histogram the :math:`\cos(\theta)` values and write them to a
file. file.
---------- ----------
The local data stored by this command is generated by looping over all The local data stored by this command is generated by looping over all
the atoms owned on a processor and their angles. An angle will only the atoms owned on a processor and their angles. An angle will only
be included if all 3 atoms in the angle are in the specified compute be included if all three atoms in the angle are in the specified compute
group. Any angles that have been broken (see the group. Any angles that have been broken (see the
:doc:`angle_style <angle_style>` command) by setting their angle type to :doc:`angle_style <angle_style>` command) by setting their angle type to
0 are not included. Angles that have been turned off (see the :doc:`fix shake <fix_shake>` or :doc:`delete_bonds <delete_bonds>` commands) by 0 are not included. Angles that have been turned off (see the :doc:`fix shake <fix_shake>` or :doc:`delete_bonds <delete_bonds>` commands) by

View File

@ -6,7 +6,7 @@ compute angmom/chunk command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID angmom/chunk chunkID compute ID group-ID angmom/chunk chunkID
@ -72,13 +72,13 @@ Output info
""""""""""" """""""""""
This compute calculates a global array where the number of rows = the This compute calculates a global array where the number of rows = the
number of chunks *Nchunk* as calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>` command. The number of columns = number of chunks *Nchunk* as calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>` command. The number of columns = 3 for the three
3 for the 3 xyz components of the angular momentum for each chunk. (*x*, *y*, *z*) components of the angular momentum for each chunk.
These values can be accessed by any command that uses global array These values can be accessed by any command that uses global array
values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The array values are "intensive". The array values will be in The array values are "intensive." The array values will be in
mass-velocity-distance :doc:`units <units>`. mass-velocity-distance :doc:`units <units>`.
Restrictions Restrictions

View File

@ -9,7 +9,7 @@ Accelerator Variants: *ave/sphere/atom/kk*
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID ave/sphere/atom keyword values ... compute ID group-ID ave/sphere/atom keyword values ...
@ -37,13 +37,13 @@ Description
Define a computation that calculates the local mass density and Define a computation that calculates the local mass density and
temperature for each atom based on its neighbors inside a spherical temperature for each atom based on its neighbors inside a spherical
cutoff. If an atom has M neighbors, then its local mass density is cutoff. If an atom has :math:`M` neighbors, then its local mass density is
calculated as the sum of its mass and its M neighbor masses, divided calculated as the sum of its mass and its :math:`M` neighbor masses, divided
by the volume of the cutoff sphere (or circle in 2d). The local by the volume of the cutoff sphere (or circle in 2d). The local
temperature of the atom is calculated as the temperature of the temperature of the atom is calculated as the temperature of the
collection of M+1 atoms, after subtracting the center-of-mass velocity collection of :math:`M+1` atoms, after subtracting the center-of-mass velocity
of the M+1 atoms from each of the M+1 atom's velocities. This is of the :math:`M+1` atoms from each of the :math:`M+1` atom's velocities. This
effectively the thermal velocity of the neighborhood of the central is effectively the thermal velocity of the neighborhood of the central
atom, similar to :doc:`compute temp/com <compute_temp_com>`. atom, similar to :doc:`compute temp/com <compute_temp_com>`.
The optional keyword *cutoff* defines the distance cutoff used when The optional keyword *cutoff* defines the distance cutoff used when

View File

@ -6,7 +6,7 @@ compute basal/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID basal/atom compute ID group-ID basal/atom
@ -47,12 +47,12 @@ in examples/PACKAGES/basal.
Output info Output info
""""""""""" """""""""""
This compute calculates a per-atom array with 3 columns, which can be This compute calculates a per-atom array with three columns, which can be
accessed by indices 1-3 by any command that uses per-atom values from accessed by indices 1--3 by any command that uses per-atom values from
a compute as input. See the :doc:`Howto output <Howto_output>` doc page a compute as input. See the :doc:`Howto output <Howto_output>` doc page
for an overview of LAMMPS output options. for an overview of LAMMPS output options.
The per-atom vector values are unitless since the 3 columns represent The per-atom vector values are unitless since the three columns represent
components of a unit vector. components of a unit vector.
Restrictions Restrictions

View File

@ -6,7 +6,7 @@ compute body/local command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID body/local input1 input2 ... compute ID group-ID body/local input1 input2 ...
@ -33,7 +33,7 @@ Description
""""""""""" """""""""""
Define a computation that calculates properties of individual body Define a computation that calculates properties of individual body
sub-particles. The number of datums generated, aggregated across all sub-particles. The number of data generated, aggregated across all
processors, equals the number of body sub-particles plus the number of processors, equals the number of body sub-particles plus the number of
non-body particles in the system, modified by the group parameter as non-body particles in the system, modified by the group parameter as
explained below. See the :doc:`Howto body <Howto_body>` page for explained below. See the :doc:`Howto body <Howto_body>` page for
@ -41,8 +41,8 @@ more details on using body particles.
The local data stored by this command is generated by looping over all The local data stored by this command is generated by looping over all
the atoms. An atom will only be included if it is in the group. If the atoms. An atom will only be included if it is in the group. If
the atom is a body particle, then its N sub-particles will be looped the atom is a body particle, then its :math:`N` sub-particles will be looped
over, and it will contribute N datums to the count of datums. If it over, and it will contribute :math:`N` data to the count of data. If it
is not a body particle, it will contribute 1 datum. is not a body particle, it will contribute 1 datum.
For both body particles and non-body particles, the *id* keyword For both body particles and non-body particles, the *id* keyword
@ -64,8 +64,8 @@ by the :doc:`atom_style body <atom_style>`, determines how many fields
exist and what they are. See the :doc:`Howto_body <Howto_body>` doc exist and what they are. See the :doc:`Howto_body <Howto_body>` doc
page for details of the different styles. page for details of the different styles.
Here is an example of how to output body information using the :doc:`dump local <dump>` command with this compute. If fields 1,2,3 for the Here is an example of how to output body information using the :doc:`dump local <dump>` command with this compute. If fields 1, 2, and 3 for the
body sub-particles are x,y,z coordinates, then the dump file will be body sub-particles are (*x*, *y*, *z*) coordinates, then the dump file will be
formatted similar to the output of a :doc:`dump atom or custom <dump>` formatted similar to the output of a :doc:`dump atom or custom <dump>`
command. command.
@ -79,7 +79,7 @@ Output info
This compute calculates a local vector or local array depending on the This compute calculates a local vector or local array depending on the
number of keywords. The length of the vector or number of rows in the number of keywords. The length of the vector or number of rows in the
array is the number of datums as described above. If a single keyword array is the number of data as described above. If a single keyword
is specified, a local vector is produced. If two or more keywords are is specified, a local vector is produced. If two or more keywords are
specified, a local array is produced where the number of columns = the specified, a local array is produced where the number of columns = the
number of keywords. The vector or array can be accessed by any number of keywords. The vector or array can be accessed by any

View File

@ -6,7 +6,7 @@ compute bond command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID bond compute ID group-ID bond
@ -35,10 +35,13 @@ or more of the hybrid sub-styles.
Output info Output info
""""""""""" """""""""""
This compute calculates a global vector of length N where N is the This compute calculates a global vector of length :math:`N`, where :math:`N`
number of sub_styles defined by the :doc:`bond_style hybrid <bond_style>` command, which can be accessed by indices 1-N. is the number of sub_styles defined by the
:doc:`bond_style hybrid <bond_style>` command,
which can be accessed by indices 1 through :math:`N`.
These values can be used by any command that uses global scalar or These values can be used by any command that uses global scalar or
vector values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output vector values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The vector values are "extensive" and will be in energy The vector values are "extensive" and will be in energy

View File

@ -6,7 +6,7 @@ compute bond/local command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID bond/local value1 value2 ... keyword args ... compute ID group-ID bond/local value1 value2 ... keyword args ...
@ -35,8 +35,8 @@ Syntax
.. parsed-literal:: .. parsed-literal::
*set* args = dist name *set* args = *dist* name
dist = only currently allowed arg *dist* = only currently allowed arg
name = name of variable to set with distance (dist) name = name of variable to set with distance (dist)
Examples Examples
@ -49,7 +49,7 @@ Examples
compute 1 all bond/local dist fx fy fz compute 1 all bond/local dist fx fy fz
compute 1 all angle/local dist v_distsq set dist d compute 1 all bond/local dist v_distsq set dist d
Description Description
""""""""""" """""""""""
@ -82,32 +82,34 @@ relative to the center of mass (COM) velocity of the 2 atoms in the
bond. bond.
The value *engvib* is the vibrational kinetic energy of the two atoms The value *engvib* is the vibrational kinetic energy of the two atoms
in the bond, which is simply 1/2 m1 v1\^2 + 1/2 m2 v2\^2, where v1 and in the bond, which is simply :math:`\frac12 m_1 v_1^2 + \frac12 m_2 v_2^2,`
v2 are the magnitude of the velocity of the 2 atoms along the bond where :math:`v_1` and :math:`v_2` are the magnitude of the velocity of the two
direction, after the COM velocity has been subtracted from each. atoms along the bond direction, after the COM velocity has been subtracted from
The value *engrot* is the rotational kinetic energy of the two atoms
in the bond, which is simply 1/2 m1 v1\^2 + 1/2 m2 v2\^2, where v1 and
v2 are the magnitude of the velocity of the 2 atoms perpendicular to
the bond direction, after the COM velocity has been subtracted from
each. each.
The value *engtrans* is the translational kinetic energy associated The value *engrot* is the rotational kinetic energy of the two atoms
with the motion of the COM of the system itself, namely 1/2 (m1+m2) in the bond, which is simply :math:`\frac12 m_1 v_1^2 + \frac12 m_2 v_2^2,`
Vcm\^2 where Vcm = magnitude of the velocity of the COM. where :math:`v_1` and :math:`v_2` are the magnitude of the velocity of the two
atoms perpendicular to the bond direction, after the COM velocity has been
subtracted from each.
Note that these 3 kinetic energy terms are simply a partitioning of The value *engtrans* is the translational kinetic energy associated
the summed kinetic energy of the 2 atoms themselves. I.e. total KE = with the motion of the COM of the system itself, namely :math:`\frac12(m_1+m_2)
1/2 m1 v1\^2 + 1/2 m2 v2\^2 = engvib + engrot + engtrans, where v1,v2 V_{\mathrm{cm}}^2`, where `Vcm` = magnitude of the velocity of the COM.
are the magnitude of the velocities of the 2 atoms, without any
adjustment for the COM velocity. Note that these three kinetic energy terms are simply a partitioning of
the summed kinetic energy of the two atoms themselves. That is, the total
kinetic energy is
:math:`\frac12 m_1 v_1^2 + \frac12 m_2 v_2^2` = engvib + engrot + engtrans,
where :math:`v_1` and :math:`v_2` are the magnitude of the velocities of the
two atoms, without any adjustment for the COM velocity.
The value *omega* is the magnitude of the angular velocity of the The value *omega* is the magnitude of the angular velocity of the
two atoms around their COM position. two atoms around their COM position.
The value *velvib* is the magnitude of the relative velocity of the The value *velvib* is the magnitude of the relative velocity of the
two atoms in the bond towards each other. A negative value means the two atoms in the bond towards each other. A negative value means the
2 atoms are moving toward each other; a positive value means they are two atoms are moving toward each other; a positive value means they are
moving apart. moving apart.
The value *v_name* can be used together with the *set* keyword to The value *v_name* can be used together with the *set* keyword to
@ -121,7 +123,7 @@ directly. The *set* keyword is used to identify the name of this
other variable associated with theta. other variable associated with theta.
As an example, these commands can be added to the bench/in.rhodo As an example, these commands can be added to the bench/in.rhodo
script to compute the distance\^2 of every bond in the system and script to compute the length\ :math:`^2` of every bond in the system and
output the statistics in various ways: output the statistics in various ways:
.. code-block:: LAMMPS .. code-block:: LAMMPS
@ -138,12 +140,12 @@ output the statistics in various ways:
fix 10 all ave/histo 10 10 100 0 6 20 c_2[3] mode vector file tmp.histo fix 10 all ave/histo 10 10 100 0 6 20 c_2[3] mode vector file tmp.histo
The :doc:`dump local <dump>` command will output the energy, distance, The :doc:`dump local <dump>` command will output the energy, length,
distance\^2 for every bond in the system. The and length\ :math:`^2` for every bond in the system. The
:doc:`thermo_style <thermo_style>` command will print the average of :doc:`thermo_style <thermo_style>` command will print the average of
those quantities via the :doc:`compute reduce <compute_reduce>` command those quantities via the :doc:`compute reduce <compute_reduce>` command
with thermo output. And the :doc:`fix ave/histo <fix_ave_histo>` with thermo output, and the :doc:`fix ave/histo <fix_ave_histo>`
command will histogram the distance\^2 values and write them to a file. command will histogram the length\ :math:`^2` values and write them to a file.
---------- ----------

View File

@ -6,20 +6,26 @@ compute born/matrix command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID born/matrix keyword value ... compute ID group-ID born/matrix keyword value ...
* ID, group-ID are documented in :doc:`compute <compute>` command * ID, group-ID are documented in :doc:`compute <compute>` command
* born/matrix = style name of this compute command * born/matrix = style name of this compute command
* zero or more keyword/value pairs may be appended * zero or more keywords or keyword/value pairs may be appended
.. parsed-literal:: .. parsed-literal::
keyword = *numdiff* keyword = *numdiff* or *pair* or *bond* or *angle* or *dihedral* or *improper*
*numdiff* values = delta virial-ID *numdiff* values = delta virial-ID
delta = magnitude of strain (dimensionless) delta = magnitude of strain (dimensionless)
virial-ID = ID of pressure compute for virial (string) virial-ID = ID of pressure compute for virial (string)
(*numdiff* cannot be used with any other keyword)
*pair* = compute pair-wise contributions
*bond* = compute bonding contributions
*angle* = compute angle contributions
*dihedral* = compute dihedral contributions
*improper* = compute improper contributions
Examples Examples
"""""""" """"""""
@ -36,8 +42,8 @@ Description
.. versionadded:: 4May2022 .. versionadded:: 4May2022
Define a compute that calculates Define a compute that calculates
:math:`\frac{\partial{}^2U}{\partial\varepsilon_{i}\partial\varepsilon_{j}}` the :math:`\frac{\partial{}^2U}{\partial\varepsilon_{i}\partial\varepsilon_{j}},` the
second derivatives of the potential energy :math:`U` w.r.t. strain second derivatives of the potential energy :math:`U` with respect to the strain
tensor :math:`\varepsilon` elements. These values are related to: tensor :math:`\varepsilon` elements. These values are related to:
.. math:: .. math::
@ -69,14 +75,14 @@ whose 21 independent elements are output in this order:
.. math:: .. math::
\begin{matrix} \begin{bmatrix}
C_{1} & C_{7} & C_{8} & C_{9} & C_{10} & C_{11} \\ C_{1} & C_{7} & C_{8} & C_{9} & C_{10} & C_{11} \\
C_{7} & C_{2} & C_{12} & C_{13} & C_{14} & C_{15} \\ C_{7} & C_{2} & C_{12} & C_{13} & C_{14} & C_{15} \\
\vdots & C_{12} & C_{3} & C_{16} & C_{17} & C_{18} \\ \vdots & C_{12} & C_{3} & C_{16} & C_{17} & C_{18} \\
\vdots & C_{13} & C_{16} & C_{4} & C_{19} & C_{20} \\ \vdots & C_{13} & C_{16} & C_{4} & C_{19} & C_{20} \\
\vdots & \vdots & \vdots & C_{19} & C_{5} & C_{21} \\ \vdots & \vdots & \vdots & C_{19} & C_{5} & C_{21} \\
\vdots & \vdots & \vdots & \vdots & C_{21} & C_{6} \vdots & \vdots & \vdots & \vdots & C_{21} & C_{6}
\end{matrix} \end{bmatrix}
in this matrix the indices of :math:`C_{k}` value are the corresponding element in this matrix the indices of :math:`C_{k}` value are the corresponding element
:math:`k` in the global vector output by this compute. Each term comes from the sum :math:`k` in the global vector output by this compute. Each term comes from the sum
@ -169,14 +175,14 @@ requiring that it use the virial keyword e.g.
**Output info:** **Output info:**
This compute calculates a global vector with 21 values that are This compute calculates a global vector with 21 values that are
the second derivatives of the potential energy w.r.t. strain. the second derivatives of the potential energy with respect to strain.
The values are in energy units. The values are in energy units.
The values are ordered as explained above. These values can be used The values are ordered as explained above. These values can be used
by any command that uses global values from a compute as input. See by any command that uses global values from a compute as input. See
the :doc:`Howto output <Howto_output>` doc page for an overview of the :doc:`Howto output <Howto_output>` doc page for an overview of
LAMMPS output options. LAMMPS output options.
The array values calculated by this compute are all "extensive". The array values calculated by this compute are all "extensive."
Restrictions Restrictions
"""""""""""" """"""""""""
@ -188,7 +194,7 @@ the :doc:`Build package <Build_package>` page for more info.
The Born term can be decomposed as a product of two terms. The first one is a The Born term can be decomposed as a product of two terms. The first one is a
general term which depends on the configuration. The second one is specific to general term which depends on the configuration. The second one is specific to
every interaction composing your force field (non-bonded, bonds, angle...). every interaction composing your force field (non-bonded, bonds, angle, ...).
Currently not all LAMMPS interaction styles implement the *born_matrix* method Currently not all LAMMPS interaction styles implement the *born_matrix* method
giving first and second order derivatives and LAMMPS will exit with an error if giving first and second order derivatives and LAMMPS will exit with an error if
this compute is used with such interactions unless the *numdiff* option is this compute is used with such interactions unless the *numdiff* option is

View File

@ -6,17 +6,17 @@ compute centro/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID centro/atom lattice keyword value ... compute ID group-ID centro/atom lattice keyword value ...
* ID, group-ID are documented in :doc:`compute <compute>` command * ID, group-ID are documented in :doc:`compute <compute>` command
centro/atom = style name of this compute command * centro/atom = style name of this compute command
lattice = *fcc* or *bcc* or N = # of neighbors per atom to include * lattice = *fcc* or *bcc* or N = # of neighbors per atom to include
* zero or more keyword/value pairs may be appended * zero or more keyword/value pairs may be appended
* keyword = *axes* * keyword = *axes*
.. parsed-literal:: .. parsed-literal::
*axes* value = *no* or *yes* *axes* value = *no* or *yes*
*no* = do not calculate 3 symmetry axes *no* = do not calculate 3 symmetry axes
@ -83,12 +83,13 @@ atoms with smallest contributions to the centrosymmetry parameter,
i.e. the two most symmetric pairs of atoms. The third vector is i.e. the two most symmetric pairs of atoms. The third vector is
normal to the first two by the right-hand rule. All three vectors are normal to the first two by the right-hand rule. All three vectors are
normalized to unit length. For FCC crystals, the first two vectors normalized to unit length. For FCC crystals, the first two vectors
will lie along a <110> direction, while the third vector will lie will lie along a :math:`\langle110\rangle` direction, while the third vector
along either a <100> or <111> direction. For HCP crystals, the first will lie along either a :math:`\langle100\rangle` or :math:`\langle111\rangle`
two vectors will lie along <1000> directions, while the third vector direction. For HCP crystals, the first two vectors will lie along
will lie along <0001>. This provides a simple way to measure local :math:`\langle1000\rangle` directions, while the third vector
orientation in HCP structures. In general, the *axes* keyword can be will lie along :math:`\langle0001\rangle`. This provides a simple way to
used to estimate the orientation of symmetry axes in the neighborhood measure local orientation in HCP structures. In general, the *axes* keyword
can be used to estimate the orientation of symmetry axes in the neighborhood
of any atom. of any atom.
Only atoms within the cutoff of the pairwise neighbor list are Only atoms within the cutoff of the pairwise neighbor list are
@ -96,7 +97,7 @@ considered as possible neighbors. Atoms not in the compute group are
included in the :math:`N` neighbors used in this calculation. included in the :math:`N` neighbors used in this calculation.
The neighbor list needed to compute this quantity is constructed each The neighbor list needed to compute this quantity is constructed each
time the calculation is performed (e.g. each time a snapshot of atoms time the calculation is performed (e.g., each time a snapshot of atoms
is dumped). Thus it can be inefficient to compute/dump this quantity is dumped). Thus it can be inefficient to compute/dump this quantity
too frequently or to have multiple compute/dump commands, each with a too frequently or to have multiple compute/dump commands, each with a
*centro/atom* style. *centro/atom* style.
@ -111,11 +112,11 @@ options.
If the *axes* keyword setting is *yes*, then a per-atom array is If the *axes* keyword setting is *yes*, then a per-atom array is
calculated. The first column is the centrosymmetry parameter. The calculated. The first column is the centrosymmetry parameter. The
next three columns are the x, y, and z components of the first next three columns are the *x*, *y*, and *z* components of the first
symmetry axis, followed by the second, and third symmetry axes in symmetry axis, followed by the second, and third symmetry axes in
columns 5-7 and 8-10. columns 5--7 and 8--10.
The centrosymmetry values are unitless values >= 0.0. Their magnitude The centrosymmetry values are unitless values :math:`\ge 0.0`. Their magnitude
depends on the lattice style due to the number of contributing neighbor depends on the lattice style due to the number of contributing neighbor
pairs in the summation in the formula above. And it depends on the pairs in the summation in the formula above. And it depends on the
local defects surrounding the central atom, as described above. For local defects surrounding the central atom, as described above. For

View File

@ -6,7 +6,7 @@ compute chunk/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID chunk/atom style args keyword values ... compute ID group-ID chunk/atom style args keyword values ...
@ -150,14 +150,14 @@ The *binning* styles perform a spatial binning of atoms, and assign an
atom the chunk ID corresponding to the bin number it is in. *Nchunk* atom the chunk ID corresponding to the bin number it is in. *Nchunk*
is set to the number of bins, which can change if the simulation box is set to the number of bins, which can change if the simulation box
size changes. This also depends on the setting of the *units* size changes. This also depends on the setting of the *units*
keyword; e.g. for *reduced* units the number of chunks may not change keyword (e.g., for *reduced* units the number of chunks may not change
even if the box size does. even if the box size does).
The *bin/1d*, *bin/2d*, and *bin/3d* styles define bins as 1d layers The *bin/1d*, *bin/2d*, and *bin/3d* styles define bins as 1d layers
(slabs), 2d pencils, or 3d boxes. The *dim*, *origin*, and *delta* (slabs), 2d pencils, or 3d boxes. The *dim*, *origin*, and *delta*
settings are specified 1, 2, or 3 times. For 2d or 3d bins, there is settings are specified 1, 2, or 3 times. For 2d or 3d bins, there is
no restriction on specifying dim = x before dim = y or z, or dim = y no restriction on specifying dim = *x* before dim = *y* or *z*, or dim = *y*
before dim = z. Bins in a particular *dim* have a bin size in that before dim = *z*. Bins in a particular *dim* have a bin size in that
dimension given by *delta*\ . In each dimension, bins are defined dimension given by *delta*\ . In each dimension, bins are defined
relative to a specified *origin*, which may be the lower/upper edge of relative to a specified *origin*, which may be the lower/upper edge of
the simulation box (in that dimension), or its center point, or a the simulation box (in that dimension), or its center point, or a
@ -170,10 +170,11 @@ boxes aligned with the xyz coordinate axes. For triclinic
(non-orthogonal) simulation boxes, the bin faces are parallel to the (non-orthogonal) simulation boxes, the bin faces are parallel to the
tilted faces of the simulation box. See the :doc:`Howto triclinic <Howto_triclinic>` page for a discussion of the tilted faces of the simulation box. See the :doc:`Howto triclinic <Howto_triclinic>` page for a discussion of the
geometry of triclinic boxes in LAMMPS. As described there, a tilted geometry of triclinic boxes in LAMMPS. As described there, a tilted
simulation box has edge vectors a,b,c. In that nomenclature, bins in simulation box has edge vectors :math:`\vec a`, :math:`\vec b`, and
the x dimension have faces with normals in the "b" cross "c" :math:`\vec c`. In that nomenclature, bins in
direction. Bins in y have faces normal to the "a" cross "c" the *x* dimension have faces with normals in the :math:`\vec b \times \vec c`
direction. And bins in z have faces normal to the "a" cross "b" direction, bins in *y* have faces normal to the :math:`\vec a \times \vec c`
direction, and bins in *z* have faces normal to the :math:`\vec a \times \vec b`
direction. Note that in order to define the size and position of direction. Note that in order to define the size and position of
these bins in an unambiguous fashion, the *units* option must be set these bins in an unambiguous fashion, the *units* option must be set
to *reduced* when using a triclinic simulation box, as noted below. to *reduced* when using a triclinic simulation box, as noted below.
@ -181,46 +182,46 @@ to *reduced* when using a triclinic simulation box, as noted below.
The meaning of *origin* and *delta* for triclinic boxes is as follows. The meaning of *origin* and *delta* for triclinic boxes is as follows.
Consider a triclinic box with bins that are 1d layers or slabs in the Consider a triclinic box with bins that are 1d layers or slabs in the
x dimension. No matter how the box is tilted, an *origin* of 0.0 x dimension. No matter how the box is tilted, an *origin* of 0.0
means start layers at the lower "b" cross "c" plane of the simulation means start layers at the lower :math:`\vec b \times \vec c` plane of the
box and an *origin* of 1.0 means to start layers at the upper "b" simulation box and an *origin* of 1.0 means to start layers at the upper
cross "c" face of the box. A *delta* value of 0.1 in *reduced* units :math:`\vec b \times \vec c` face of the box. A *delta* value of 0.1 in
means there will be 10 layers from 0.0 to 1.0, regardless of the *reduced* units means there will be 10 layers from 0.0 to 1.0, regardless of
current size or shape of the simulation box. the current size or shape of the simulation box.
The *bin/sphere* style defines a set of spherical shell bins around The *bin/sphere* style defines a set of spherical shell bins around
the origin (\ *xorig*,\ *yorig*,\ *zorig*\ ), using *nsbin* bins with radii the origin (\ *xorig*,\ *yorig*,\ *zorig*\ ), using *nsbin* bins with radii
equally spaced between *srmin* and *srmax*\ . This is effectively a 1d equally spaced between *srmin* and *srmax*\ . This is effectively a 1d
vector of bins. For example, if *srmin* = 1.0 and *srmax* = 10.0 and vector of bins. For example, if *srmin* = 1.0 and *srmax* = 10.0 and
*nsbin* = 9, then the first bin spans 1.0 < r < 2.0, and the last bin *nsbin* = 9, then the first bin spans :math:`1.0 < r < 2.0`, and the last bin
spans 9.0 < r 10.0. The geometry of the bins is the same whether the spans :math:`9.0 < r < 10.0`. The geometry of the bins is the same whether the
simulation box is orthogonal or triclinic; i.e. the spherical shells simulation box is orthogonal or triclinic (i.e., the spherical shells
are not tilted or scaled differently in different dimensions to are not tilted or scaled differently in different dimensions to
transform them into ellipsoidal shells. transform them into ellipsoidal shells).
The *bin/cylinder* style defines bins for a cylinder oriented along The *bin/cylinder* style defines bins for a cylinder oriented along
the axis *dim* with the axis coordinates in the other two radial the axis *dim* with the axis coordinates in the other two radial
dimensions at (\ *c1*,\ *c2*\ ). For dim = x, c1/c2 = y/z; for dim = y, dimensions at (\ *c1*,\ *c2*\ ). For dim = *x*, :math:`c_1/c_2 = y/z`;
c1/c2 = x/z; for dim = z, c1/c2 = x/y. This is effectively a 2d array for dim = *y*, :math:`c_1/c_2 = x/z`; for dim = *z*,
of bins. The first dimension is along the cylinder axis, the second :math:`c_1/c_2 = x/y`. This is effectively a 2d array of bins. The first
dimension is radially outward from the cylinder axis. The bin size dimension is along the cylinder axis, the second dimension is radially outward
and positions along the cylinder axis are specified by the *origin* from the cylinder axis. The bin size and positions along the cylinder axis are
and *delta* values, the same as for the *bin/1d*, *bin/2d*, and specified by the *origin* and *delta* values, the same as for the *bin/1d*,
*bin/3d* styles. There are *ncbin* concentric circle bins in the *bin/2d*, and *bin/3d* styles. There are *ncbin* concentric circle bins in the
radial direction from the cylinder axis with radii equally spaced radial direction from the cylinder axis with radii equally spaced
between *crmin* and *crmax*\ . For example, if *crmin* = 1.0 and between *crmin* and *crmax*\ . For example, if *crmin* = 1.0 and
*crmax* = 10.0 and *ncbin* = 9, then the first bin spans 1.0 < r < *crmax* = 10.0 and *ncbin* = 9, then the first bin spans :math:`1.0 < r < 2.0`
2.0, and the last bin spans 9.0 < r 10.0. The geometry of the bins in and the last bin spans :math:`9.0 < r < 10.0`. The geometry of the bins in
the radial dimensions is the same whether the simulation box is the radial dimensions is the same whether the simulation box is
orthogonal or triclinic; i.e. the concentric circles are not tilted or orthogonal or triclinic (i.e., the concentric circles are not tilted or
scaled differently in the two different dimensions to transform them scaled differently in the two different dimensions to transform them
into ellipses. into ellipses).
The created bins (and hence the chunk IDs) are numbered consecutively The created bins (and hence the chunk IDs) are numbered consecutively
from 1 to the number of bins = *Nchunk*\ . For *bin2d* and *bin3d*, the from 1 to the number of bins = *Nchunk*\ . For *bin2d* and *bin3d*, the
numbering varies most rapidly in the first dimension (which could be numbering varies most rapidly in the first dimension (which could be
x, y, or z), next rapidly in the second dimension, and most slowly in the *x*, *y*, or *z*), next rapidly in the second dimension, and most slowly in the
third dimension. For *bin/sphere*, the bin with smallest radii is chunk third dimension. For *bin/sphere*, the bin with smallest radii is chunk
1 and the bni with largest radii is chunk Nchunk = *ncbin*\ . For 1 and the bin with largest radii is chunk Nchunk = *ncbin*\ . For
*bin/cylinder*, the numbering varies most rapidly in the dimension *bin/cylinder*, the numbering varies most rapidly in the dimension
along the cylinder axis and most slowly in the radial direction. along the cylinder axis and most slowly in the radial direction.
@ -236,8 +237,8 @@ assigned to the atom.
---------- ----------
The *type* style uses the atom type as the chunk ID. *Nchunk* is set The *type* style uses the atom type as the chunk ID. *Nchunk* is set
to the number of atom types defined for the simulation, e.g. via the to the number of atom types defined for the simulation (e.g., via the
:doc:`create_box <create_box>` or :doc:`read_data <read_data>` commands. :doc:`create_box <create_box>` or :doc:`read_data <read_data>` commands).
---------- ----------
@ -264,8 +265,8 @@ on a quantity calculated and stored by a compute, fix, or variable.
In each case, it must be a per-atom quantity. In each case the In each case, it must be a per-atom quantity. In each case the
referenced floating point values are converted to an integer chunk ID referenced floating point values are converted to an integer chunk ID
as follows. The floating point value is truncated (rounded down) to as follows. The floating point value is truncated (rounded down) to
an integer value. If the integer value is <= 0, then a chunk ID of 0 an integer value. If the integer value is :math:`\le 0`, then a chunk ID of 0
is assigned to the atom. If the integer value is > 0, it becomes the is assigned to the atom. If the integer value is :math:`> 0`, it becomes the
chunk ID to the atom. *Nchunk* is set to the largest chunk ID. Note chunk ID to the atom. *Nchunk* is set to the largest chunk ID. Note
that this excludes atoms which are not in the specified group or that this excludes atoms which are not in the specified group or
optional region. optional region.
@ -362,7 +363,7 @@ If *limit* is set to *Nc* = 0, then no limit is imposed on *Nchunk*,
though the *compress* keyword can still be used to reduce *Nchunk*, as though the *compress* keyword can still be used to reduce *Nchunk*, as
described below. described below.
If *Nc* > 0, then the effect of the *limit* keyword depends on whether If *Nc* :math:`>` 0, then the effect of the *limit* keyword depends on whether
the *compress* keyword is also used with a setting of *yes*, and the *compress* keyword is also used with a setting of *yes*, and
whether the *compress* keyword is specified before the *limit* keyword whether the *compress* keyword is specified before the *limit* keyword
or after. or after.
@ -374,7 +375,7 @@ First, here is what occurs if *compress yes* is not set. If *limit*
is set to *Nc max*, then *Nchunk* is reset to the smaller of *Nchunk* is set to *Nc max*, then *Nchunk* is reset to the smaller of *Nchunk*
and *Nc*\ . If *limit* is set to *Nc exact*, then *Nchunk* is reset to and *Nc*\ . If *limit* is set to *Nc exact*, then *Nchunk* is reset to
*Nc*, whether the original *Nchunk* was larger or smaller than *Nc*\ . *Nc*, whether the original *Nchunk* was larger or smaller than *Nc*\ .
If *Nchunk* shrank due to the *limit* setting, then atom chunk IDs > If *Nchunk* shrank due to the *limit* setting, then atom chunk IDs :math:`>`
*Nchunk* will be reset to 0 or *Nchunk*, depending on the setting of *Nchunk* will be reset to 0 or *Nchunk*, depending on the setting of
the *discard* keyword. If *Nchunk* grew, there will simply be some the *discard* keyword. If *Nchunk* grew, there will simply be some
chunks with no atoms assigned to them. chunks with no atoms assigned to them.
@ -384,22 +385,22 @@ If *compress yes* is set, and the *compress* keyword comes before the
described below, which resets *Nchunk*\ . The *limit* keyword is then described below, which resets *Nchunk*\ . The *limit* keyword is then
applied to the new *Nchunk* value, exactly as described in the applied to the new *Nchunk* value, exactly as described in the
preceding paragraph. Note that in this case, all atoms will end up preceding paragraph. Note that in this case, all atoms will end up
with chunk IDs <= *Nc*, but their original values (e.g. molecule ID or with chunk IDs :math:`\le` *Nc*, but their original values (e.g., molecule ID
compute/fix/variable) may have been > *Nc*, because of the compression or compute/fix/variable) may have been :math:`>` *Nc*, because of the
operation. compression operation.
If *compress yes* is set, and the *compress* keyword comes after the If *compress yes* is set, and the *compress* keyword comes after the
*limit* keyword, then the *limit* value of *Nc* is applied first to *limit* keyword, then the *limit* value of *Nc* is applied first to
the uncompressed value of *Nchunk*, but only if *Nc* < *Nchunk* the uncompressed value of *Nchunk*, but only if *Nc* :math:`<` *Nchunk*
(whether *Nc max* or *Nc exact* is used). This effectively means all (whether *Nc max* or *Nc exact* is used). This effectively means all
atoms with chunk IDs > *Nc* have their chunk IDs reset to 0 or *Nc*, atoms with chunk IDs :math:`>` *Nc* have their chunk IDs reset to 0 or *Nc*,
depending on the setting of the *discard* keyword. The compression depending on the setting of the *discard* keyword. The compression
operation is then performed, which may shrink *Nchunk* further. If operation is then performed, which may shrink *Nchunk* further. If
the new *Nchunk* < *Nc* and *limit* = *Nc exact* is specified, then the new *Nchunk* :math:`<` *Nc* and *limit* = *Nc exact* is specified, then
*Nchunk* is reset to *Nc*, which results in extra chunks with no atoms *Nchunk* is reset to *Nc*, which results in extra chunks with no atoms
assigned to them. Note that in this case, all atoms will end up with assigned to them. Note that in this case, all atoms will end up with
chunk IDs <= *Nc*, and their original values (e.g. molecule ID or chunk IDs :math:`\le` *Nc*, and their original values (e.g., molecule ID or
compute/fix/variable value) will also have been <= *Nc*\ . compute/fix/variable value) will also have been :math:`\le` *Nc*\ .
---------- ----------
@ -601,7 +602,8 @@ be used. For non-orthogonal (triclinic) simulation boxes, only the
*reduced* option may be used. *reduced* option may be used.
A *box* value selects standard distance units as defined by the A *box* value selects standard distance units as defined by the
:doc:`units <units>` command, e.g. Angstroms for units = real or metal. :doc:`units <units>` command (e.g., :math:`\mathrm{\mathring A}`
for units = *real* or *metal*).
A *lattice* value means the distance units are in lattice spacings. A *lattice* value means the distance units are in lattice spacings.
The :doc:`lattice <lattice>` command must have been previously used to The :doc:`lattice <lattice>` command must have been previously used to
define the lattice spacing. A *reduced* value means normalized define the lattice spacing. A *reduced* value means normalized
@ -615,8 +617,8 @@ scaled by the lattice spacing or reduced value of the *x* dimension.
Note that for the *bin/cylinder* style, the radii *crmin* and *crmax* Note that for the *bin/cylinder* style, the radii *crmin* and *crmax*
are scaled by the lattice spacing or reduced value of the first are scaled by the lattice spacing or reduced value of the first
dimension perpendicular to the cylinder axis. E.g. y for an x-axis dimension perpendicular to the cylinder axis (e.g., *y* for an *x*-axis
cylinder, x for a y-axis cylinder, and x for a z-axis cylinder. cylinder, *x* for a *y*-axis cylinder, and *x* for a *z*-axis cylinder).
---------- ----------

View File

@ -6,7 +6,7 @@ compute chunk/spread/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID chunk/spread/atom chunkID input1 input2 ... compute ID group-ID chunk/spread/atom chunkID input1 input2 ...
@ -18,10 +18,10 @@ Syntax
.. parsed-literal:: .. parsed-literal::
c_ID = global vector calculated by a compute with ID c_ID = global vector calculated by a compute with ID
c_ID[I] = Ith column of global array calculated by a compute with ID, I can include wildcard (see below) c_ID[I] = Ith column of global array calculated by a compute with ID, I can include wildcard (see below)
f_ID = global vector calculated by a fix with ID f_ID = global vector calculated by a fix with ID
f_ID[I] = Ith column of global array calculated by a fix with ID, I can include wildcard (see below) f_ID[I] = Ith column of global array calculated by a fix with ID, I can include wildcard (see below)
Examples Examples
"""""""" """"""""

View File

@ -14,7 +14,7 @@ compute aggregate/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID cluster/atom cutoff compute ID group-ID cluster/atom cutoff
compute ID group-ID fragment/atom keyword value ... compute ID group-ID fragment/atom keyword value ...
@ -69,9 +69,9 @@ fragments or not, based on the *yes* or *no* setting. If the setting
is *no* (the default), their fragment IDs are set to 0. is *no* (the default), their fragment IDs are set to 0.
An aggregate is defined by combining the rules for clusters and An aggregate is defined by combining the rules for clusters and
fragments, i.e. a set of atoms, where each of it is within the cutoff fragments (i.e., a set of atoms, where each of them is within the cutoff
distance from one or more atoms within a fragment that is part of distance from one or more atoms within a fragment that is part of
the same cluster. This measure can be used to track molecular assemblies the same cluster). This measure can be used to track molecular assemblies
like micelles. like micelles.
For computes *cluster/atom* and *aggregate/atom* a neighbor list For computes *cluster/atom* and *aggregate/atom* a neighbor list
@ -92,9 +92,9 @@ style computes.
does not apply when using long-range coulomb (\ *coul/long*, *coul/msm*, does not apply when using long-range coulomb (\ *coul/long*, *coul/msm*,
*coul/wolf* or similar. One way to get around this would be to set *coul/wolf* or similar. One way to get around this would be to set
special_bond scaling factors to very tiny numbers that are not exactly special_bond scaling factors to very tiny numbers that are not exactly
zero (e.g. 1.0e-50). Another workaround is to write a dump file, and zero (e.g., :math:`1.0 \times 10^{-50}`). Another workaround is to write a
use the :doc:`rerun <rerun>` command to compute the clusters for dump file and use the :doc:`rerun <rerun>` command to compute the clusters
snapshots in the dump file. The rerun script can use a for snapshots in the dump file. The rerun script can use a
:doc:`special_bonds <special_bonds>` command that includes all pairs in :doc:`special_bonds <special_bonds>` command that includes all pairs in
the neighbor list. the neighbor list.
@ -114,7 +114,7 @@ any command that uses per-atom values from a compute as input. See
the :doc:`Howto output <Howto_output>` page for an overview of the :doc:`Howto output <Howto_output>` page for an overview of
LAMMPS output options. LAMMPS output options.
The per-atom vector values will be an ID > 0, as explained above. The per-atom vector values will be an ID :math:`> 0`, as explained above.
Restrictions Restrictions
"""""""""""" """"""""""""
@ -129,5 +129,5 @@ Related commands
Default Default
""""""" """""""
The default for fragment/atom is single no. The default for fragment/atom is single=no.

View File

@ -6,7 +6,7 @@ compute cna/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID cna/atom cutoff compute ID group-ID cna/atom cutoff
@ -44,20 +44,22 @@ performed on mono-component systems.
The CNA calculation can be sensitive to the specified cutoff value. The CNA calculation can be sensitive to the specified cutoff value.
You should insure the appropriate nearest neighbors of an atom are You should insure the appropriate nearest neighbors of an atom are
found within the cutoff distance for the presumed crystal structure. found within the cutoff distance for the presumed crystal structure
E.g. 12 nearest neighbor for perfect FCC and HCP crystals, 14 nearest (e.g., 12 nearest neighbor for perfect FCC and HCP crystals, 14 nearest
neighbors for perfect BCC crystals. These formulas can be used to neighbors for perfect BCC crystals). These formulas can be used to
obtain a good cutoff distance: obtain a good cutoff distance:
.. math:: .. math::
r_{c}^{fcc} = & \frac{1}{2} \left(\frac{\sqrt{2}}{2} + 1\right) \mathrm{a} \simeq 0.8536 \:\mathrm{a} \\ r_{c}^{\mathrm{fcc}} = & \frac{1}{2} \left(\frac{\sqrt{2}}{2} + 1\right) a
r_{c}^{bcc} = & \frac{1}{2}(\sqrt{2} + 1) \mathrm{a} \simeq 1.207 \:\mathrm{a} \\ \approx 0.8536 a \\
r_{c}^{hcp} = & \frac{1}{2}\left(1+\sqrt{\frac{4+2x^{2}}{3}}\right) \mathrm{a} r_{c}^{\mathrm{bcc}} = & \frac{1}{2}(\sqrt{2} + 1) a
\approx 1.207 a \\
r_{c}^{\mathrm{hcp}} = & \frac{1}{2}\left(1+\sqrt{\frac{4+2x^{2}}{3}}\right) a
where a is the lattice constant for the crystal structure concerned where :math:`a` is the lattice constant for the crystal structure concerned
and in the HCP case, x = (c/a) / 1.633, where 1.633 is the ideal c/a and in the HCP case, :math:`x = (c/a) / 1.633`, where 1.633 is the ideal
for HCP crystals. :math:`c/a` for HCP crystals.
Also note that since the CNA calculation in LAMMPS uses the neighbors Also note that since the CNA calculation in LAMMPS uses the neighbors
of an owned atom to find the nearest neighbors of a ghost atom, the of an owned atom to find the nearest neighbors of a ghost atom, the

View File

@ -6,7 +6,7 @@ compute cnp/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID cnp/atom cutoff compute ID group-ID cnp/atom cutoff
@ -28,7 +28,7 @@ Define a computation that calculates the Common Neighborhood
Parameter (CNP) for each atom in the group. In solid-state systems Parameter (CNP) for each atom in the group. In solid-state systems
the CNP is a useful measure of the local crystal structure the CNP is a useful measure of the local crystal structure
around an atom and can be used to characterize whether the around an atom and can be used to characterize whether the
atom is part of a perfect lattice, a local defect (e.g. a dislocation atom is part of a perfect lattice, a local defect (e.g., a dislocation
or stacking fault), or at a surface. or stacking fault), or at a surface.
The value of the CNP parameter will be 0.0 for atoms not in the The value of the CNP parameter will be 0.0 for atoms not in the
@ -40,7 +40,7 @@ This parameter is computed using the following formula from
.. math:: .. math::
Q_{i} = \frac{1}{n_i}\sum_{j = 1}^{n_i} \left | \sum_{k = 1}^{n_{ij}} \vec{R}_{ik} + \vec{R}_{jk} \right | ^{2} Q_{i} = \frac{1}{n_i}\sum_{j = 1}^{n_i} \left\lVert \sum_{k = 1}^{n_{ij}} \vec{R}_{ik} + \vec{R}_{jk} \right\rVert^{2}
where the index *j* goes over the :math:`n_i` nearest neighbors of atom where the index *j* goes over the :math:`n_i` nearest neighbors of atom
*i*, and the index *k* goes over the :math:`n_{ij}` common nearest neighbors *i*, and the index *k* goes over the :math:`n_{ij}` common nearest neighbors
@ -58,13 +58,15 @@ obtain a good cutoff distance:
.. math:: .. math::
r_{c}^{fcc} = & \frac{1}{2} \left(\frac{\sqrt{2}}{2} + 1\right) \mathrm{a} \simeq 0.8536 \:\mathrm{a} \\ r_{c}^{\mathrm{fcc}} = & \frac{1}{2} \left(\frac{\sqrt{2}}{2} + 1\right) a
r_{c}^{bcc} = & \frac{1}{2}(\sqrt{2} + 1) \mathrm{a} \simeq 1.207 \:\mathrm{a} \\ \approx 0.8536 a \\
r_{c}^{hcp} = & \frac{1}{2}\left(1+\sqrt{\frac{4+2x^{2}}{3}}\right) \mathrm{a} r_{c}^{\mathrm{bcc}} = & \frac{1}{2}(\sqrt{2} + 1) a
\approx 1.207 a \\
r_{c}^{\mathrm{hcp}} = & \frac{1}{2}\left(1+\sqrt{\frac{4+2x^{2}}{3}}\right) a
where a is the lattice constant for the crystal structure concerned where :math:`a` is the lattice constant for the crystal structure concerned
and in the HCP case, x = (c/a) / 1.633, where 1.633 is the ideal c/a and in the HCP case, :math:`x = (c/a) / 1.633`, where 1.633 is the ideal
for HCP crystals. :math:`c/a` for HCP crystals.
Also note that since the CNP calculation in LAMMPS uses the neighbors Also note that since the CNP calculation in LAMMPS uses the neighbors
of an owned atom to find the nearest neighbors of a ghost atom, the of an owned atom to find the nearest neighbors of a ghost atom, the
@ -81,7 +83,7 @@ cutoff is the argument used with the compute cnp/atom command. LAMMPS
will issue a warning if this is not the case. will issue a warning if this is not the case.
The neighbor list needed to compute this quantity is constructed each The neighbor list needed to compute this quantity is constructed each
time the calculation is performed (e.g. each time a snapshot of atoms time the calculation is performed (e.g., each time a snapshot of atoms
is dumped). Thus it can be inefficient to compute/dump this quantity is dumped). Thus it can be inefficient to compute/dump this quantity
too frequently or to have multiple compute/dump commands, each with a too frequently or to have multiple compute/dump commands, each with a
*cnp/atom* style. *cnp/atom* style.
@ -103,9 +105,9 @@ values:
BCC lattice = 0.0 BCC lattice = 0.0
HCP lattice = 4.4 HCP lattice = 4.4
FCC (111) surface ~ 13.0 FCC (111) surface = 13.0
FCC (100) surface ~ 26.5 FCC (100) surface = 26.5
FCC dislocation core ~ 11 FCC dislocation core = 11
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -6,7 +6,7 @@ compute com command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID com compute ID group-ID com
@ -28,7 +28,7 @@ of atoms, including all effects due to atoms passing through periodic
boundaries. boundaries.
A vector of three quantities is calculated by this compute, which A vector of three quantities is calculated by this compute, which
are the x,y,z coordinates of the center of mass. are the :math:`(x,y,z)` coordinates of the center of mass.
.. note:: .. note::
@ -38,17 +38,18 @@ are the x,y,z coordinates of the center of mass.
"unwrapped" coordinates. See the Atoms section of the "unwrapped" coordinates. See the Atoms section of the
:doc:`read_data <read_data>` command for a discussion of image flags and :doc:`read_data <read_data>` command for a discussion of image flags and
how they are set for each atom. You can reset the image flags how they are set for each atom. You can reset the image flags
(e.g. to 0) before invoking this compute by using the :doc:`set image <set>` command. (e.g., to 0) before invoking this compute by using the
:doc:`set image <set>` command.
Output info Output info
""""""""""" """""""""""
This compute calculates a global vector of length 3, which can be This compute calculates a global vector of length 3, which can be
accessed by indices 1-3 by any command that uses global vector values accessed by indices 1--3 by any command that uses global vector values
from a compute as input. See the :doc:`Howto output <Howto_output>` doc from a compute as input. See the :doc:`Howto output <Howto_output>` doc
page for an overview of LAMMPS output options. page for an overview of LAMMPS output options.
The vector values are "intensive". The vector values will be in The vector values are "intensive." The vector values will be in
distance :doc:`units <units>`. distance :doc:`units <units>`.
Restrictions Restrictions

View File

@ -6,7 +6,7 @@ compute com/chunk command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID com/chunk chunkID compute ID group-ID com/chunk chunkID
@ -34,7 +34,7 @@ molecule or atoms in a spatial bin. See the :doc:`compute chunk/atom <compute_c
doc pages for details of how chunks can be defined and examples of how doc pages for details of how chunks can be defined and examples of how
they can be used to measure properties of a system. they can be used to measure properties of a system.
This compute calculates the x,y,z coordinates of the center-of-mass This compute calculates the :math:`(x,y,z)` coordinates of the center of mass
for each chunk, which includes all effects due to atoms passing through for each chunk, which includes all effects due to atoms passing through
periodic boundaries. periodic boundaries.
@ -54,7 +54,8 @@ non-zero chunk IDs.
for a discussion of "unwrapped" coordinates. See the Atoms section of for a discussion of "unwrapped" coordinates. See the Atoms section of
the :doc:`read_data <read_data>` command for a discussion of image flags the :doc:`read_data <read_data>` command for a discussion of image flags
and how they are set for each atom. You can reset the image flags and how they are set for each atom. You can reset the image flags
(e.g. to 0) before invoking this compute by using the :doc:`set image <set>` command. (e.g., to 0) before invoking this compute by using the
:doc:`set image <set>` command.
The simplest way to output the results of the compute com/chunk The simplest way to output the results of the compute com/chunk
calculation to a file is to use the :doc:`fix ave/time <fix_ave_time>` calculation to a file is to use the :doc:`fix ave/time <fix_ave_time>`
@ -70,13 +71,13 @@ Output info
""""""""""" """""""""""
This compute calculates a global array where the number of rows = the This compute calculates a global array where the number of rows = the
number of chunks *Nchunk* as calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>` command. The number of columns = number of chunks *Nchunk* as calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>` command. The number of columns is
3 for the x,y,z center-of-mass coordinates of each chunk. These 3 for the :math:`(x,y,z)` center-of-mass coordinates of each chunk. These
values can be accessed by any command that uses global array values values can be accessed by any command that uses global array values
from a compute as input. See the :doc:`Howto output <Howto_output>` doc from a compute as input. See the :doc:`Howto output <Howto_output>` doc
page for an overview of LAMMPS output options. page for an overview of LAMMPS output options.
The array values are "intensive". The array values will be in The array values are "intensive." The array values will be in
distance :doc:`units <units>`. distance :doc:`units <units>`.
Restrictions Restrictions

View File

@ -6,7 +6,7 @@ compute contact/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID contact/atom group2-ID compute ID group-ID contact/atom group2-ID
@ -44,11 +44,11 @@ accessed by any command that uses per-atom values from a compute as
input. See the :doc:`Howto output <Howto_output>` page for an input. See the :doc:`Howto output <Howto_output>` page for an
overview of LAMMPS output options. overview of LAMMPS output options.
The per-atom vector values will be a number >= 0.0, as explained The per-atom vector values will be a number :math:`\ge 0.0`, as explained
above. above.
The optional *group2-ID* argument allows to specify from which group atoms The optional *group2-ID* argument allows to specify from which group atoms
contribute to the coordination number. Default setting is group 'all'. contribute to the coordination number. Default setting is group 'all.'
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -9,23 +9,23 @@ Accelerator Variants: *coord/atom/kk*
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID coord/atom cstyle args ... compute ID group-ID coord/atom style args ...
* ID, group-ID are documented in :doc:`compute <compute>` command * ID, group-ID are documented in :doc:`compute <compute>` command
* coord/atom = style name of this compute command * coord/atom = style name of this compute command
* cstyle = *cutoff* or *orientorder* * style = *cutoff* or *orientorder*
.. parsed-literal:: .. parsed-literal::
*cutoff* args = cutoff [group group2-ID] typeN *cutoff* args = cutoff [*group* group2-ID] typeN
cutoff = distance within which to count coordination neighbors (distance units) cutoff = distance within which to count coordination neighbors (distance units)
group *group2-ID* = select group-ID to restrict which atoms to consider for coordination number (optional) *group* group2-ID = select group-ID to restrict which atoms to consider for coordination number (optional)
typeN = atom type for Nth coordination count (see asterisk form below) typeN = atom type for Nth coordination count (see asterisk form below)
*orientorder* args = orientorderID threshold *orientorder* args = orientorderID threshold
orientorderID = ID of an orientorder/atom compute orientorderID = ID of an orientorder/atom compute
threshold = minimum value of the product of two "connected" atoms threshold = minimum value of the product of two "connected" atoms
Examples Examples
"""""""" """"""""
@ -54,7 +54,7 @@ neighboring atoms, unless selected by type, type range, or group option,
are included in the coordination number tally. are included in the coordination number tally.
The optional *group* keyword allows to specify from which group atoms The optional *group* keyword allows to specify from which group atoms
contribute to the coordination number. Default setting is group 'all'. contribute to the coordination number. Default setting is group 'all.'
The *typeN* keywords allow specification of which atom types The *typeN* keywords allow specification of which atom types
contribute to each coordination number. One coordination number is contribute to each coordination number. One coordination number is
@ -65,15 +65,15 @@ includes atoms of all types (same as the "\*" format, see below).
The *typeN* keywords can be specified in one of two ways. An explicit The *typeN* keywords can be specified in one of two ways. An explicit
numeric value can be used, as in the second example above. Or a numeric value can be used, as in the second example above. Or a
wild-card asterisk can be used to specify a range of atom types. This wild-card asterisk can be used to specify a range of atom types. This
takes the form "\*" or "\*n" or "n\*" or "m\*n". If N = the number of takes the form "\*" or "\*n" or "m\*" or "m\*n". If :math:`N` is the number of
atom types, then an asterisk with no numeric values means all types atom types, then an asterisk with no numeric values means all types
from 1 to N. A leading asterisk means all types from 1 to n from 1 to :math:`N`. A leading asterisk means all types from 1 to n
(inclusive). A trailing asterisk means all types from n to N (inclusive). A trailing asterisk means all types from m to :math:`N`
(inclusive). A middle asterisk means all types from m to n (inclusive). A middle asterisk means all types from m to n
(inclusive). (inclusive).
The *orientorder* cstyle calculates the number of "connected" neighbor The *orientorder* cstyle calculates the number of "connected" neighbor
atoms J around each central atom I. For this *cstyle*, connected is atoms *j* around each central atom *i*\ . For this *cstyle*, connected is
defined by the orientational order parameter calculated by the defined by the orientational order parameter calculated by the
:doc:`compute orientorder/atom <compute_orientorder_atom>` command. :doc:`compute orientorder/atom <compute_orientorder_atom>` command.
This *cstyle* thus allows one to apply the ten Wolde's criterion to This *cstyle* thus allows one to apply the ten Wolde's criterion to
@ -84,16 +84,16 @@ The ID of the previously specified :doc:`compute orientorder/atom <compute_orien
calculate components of the *Ybar_lm* vector for each atoms, as calculate components of the *Ybar_lm* vector for each atoms, as
described in its documentation. Note that orientorder/atom compute described in its documentation. Note that orientorder/atom compute
defines its own criteria for identifying neighboring atoms. If the defines its own criteria for identifying neighboring atoms. If the
scalar product (*Ybar_lm(i)*,*Ybar_lm(j)*), calculated by the scalar product (*Ybar_lm(i)*, *Ybar_lm(j)*), calculated by the
orientorder/atom compute is larger than the specified *threshold*, orientorder/atom compute is larger than the specified *threshold*,
then I and J are connected, and the coordination value of I is then *i* and *j* are connected, and the coordination value of *i* is
incremented by one. incremented by one.
For all *cstyle* settings, all coordination values will be 0.0 for For all *cstyle* settings, all coordination values will be 0.0 for
atoms not in the specified compute group. atoms not in the specified compute group.
The neighbor list needed to compute this quantity is constructed each The neighbor list needed to compute this quantity is constructed each
time the calculation is performed (i.e. each time a snapshot of atoms time the calculation is performed (i.e., each time a snapshot of atoms
is dumped). Thus it can be inefficient to compute/dump this quantity is dumped). Thus it can be inefficient to compute/dump this quantity
too frequently. too frequently.
@ -127,7 +127,7 @@ For *cstyle* cutoff, this compute can calculate a per-atom vector or
array. If single *type1* keyword is specified (or if none are array. If single *type1* keyword is specified (or if none are
specified), this compute calculates a per-atom vector. If multiple specified), this compute calculates a per-atom vector. If multiple
*typeN* keywords are specified, this compute calculates a per-atom *typeN* keywords are specified, this compute calculates a per-atom
array, with N columns. array, with :math:`N` columns.
For *cstyle* orientorder, this compute calculates a per-atom vector. For *cstyle* orientorder, this compute calculates a per-atom vector.
@ -135,7 +135,7 @@ These values can be accessed by any command that uses per-atom values
from a compute as input. See the :doc:`Howto output <Howto_output>` doc from a compute as input. See the :doc:`Howto output <Howto_output>` doc
page for an overview of LAMMPS output options. page for an overview of LAMMPS output options.
The per-atom vector or array values will be a number >= 0.0, as The per-atom vector or array values will be a number :math:`\ge 0.0`, as
explained above. explained above.
Restrictions Restrictions

View File

@ -6,7 +6,7 @@ compute damage/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID damage/atom compute ID group-ID damage/atom
@ -48,7 +48,7 @@ any command that uses per-atom values from a compute as input. See
the :doc:`Howto output <Howto_output>` page for an overview of the :doc:`Howto output <Howto_output>` page for an overview of
LAMMPS output options. LAMMPS output options.
The per-atom vector values are unitless numbers (damage) >= 0.0. The per-atom vector values are unitless numbers (damage) :math:`\ge 0.0`.
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -6,7 +6,7 @@ compute dihedral command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID dihedral compute ID group-ID dihedral
@ -34,10 +34,12 @@ total energy contributed by one or more of the hybrid sub-styles.
Output info Output info
""""""""""" """""""""""
This compute calculates a global vector of length N where N is the This compute calculates a global vector of length :math:`N`, where :math:`N`
number of sub_styles defined by the :doc:`dihedral_style hybrid <dihedral_style>` command. which can be accessed by indices is the number of sub_styles defined by the
1-N. These values can be used by any command that uses global scalar :doc:`dihedral_style hybrid <dihedral_style>` command, which can be accessed by
or vector values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output the indices 1 through :math:`N`. These values can be used by any command that
uses global scalar or vector values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The vector values are "extensive" and will be in energy The vector values are "extensive" and will be in energy

View File

@ -6,7 +6,7 @@ compute dihedral/local command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID dihedral/local value1 value2 ... keyword args ... compute ID group-ID dihedral/local value1 value2 ... keyword args ...
@ -35,7 +35,6 @@ Examples
.. code-block:: LAMMPS .. code-block:: LAMMPS
compute 1 all dihedral/local phi compute 1 all dihedral/local phi
compute 1 all dihedral/local phi v_cos set phi p compute 1 all dihedral/local phi v_cos set phi p
Description Description
@ -46,25 +45,26 @@ interactions. The number of datums generated, aggregated across all
processors, equals the number of dihedral angles in the system, modified processors, equals the number of dihedral angles in the system, modified
by the group parameter as explained below. by the group parameter as explained below.
The value *phi* is the dihedral angle, as defined in the diagram on The value *phi* (:math:`\phi`) is the dihedral angle, as defined in the diagram
the :doc:`dihedral_style <dihedral_style>` doc page. on the :doc:`dihedral_style <dihedral_style>` doc page.
The value *v_name* can be used together with the *set* keyword to The value *v_name* can be used together with the *set* keyword to compute a
compute a user-specified function of the dihedral angle phi. The user-specified function of the dihedral angle :math:`\phi`. The *name*
*name* specified for the *v_name* value is the name of an :doc:`equal-style variable <variable>` which should evaluate a formula based on a specified for the *v_name* value is the name of an
variable which will store the angle phi. This other variable must :doc:`equal-style variable <variable>` which should evaluate a formula based on
a variable which will store the angle :math:`\phi`. This other variable must
be an :doc:`internal-style variable <variable>` defined in the input be an :doc:`internal-style variable <variable>` defined in the input
script; its initial numeric value can be anything. It must be an script; its initial numeric value can be anything. It must be an
internal-style variable, because this command resets its value internal-style variable, because this command resets its value
directly. The *set* keyword is used to identify the name of this directly. The *set* keyword is used to identify the name of this
other variable associated with phi. other variable associated with :math:`\phi`.
Note that the value of phi for each angle which stored in the internal Note that the value of :math:`\phi` for each angle which stored in the internal
variable is in radians, not degrees. variable is in radians, not degrees.
As an example, these commands can be added to the bench/in.rhodo As an example, these commands can be added to the bench/in.rhodo
script to compute the cosine and cosine\^2 of every dihedral angle in script to compute the :math:`\cos\phi` and :math:`\cos^2\phi` of every dihedral
the system and output the statistics in various ways: angle in the system and output the statistics in various ways:
.. code-block:: LAMMPS .. code-block:: LAMMPS
@ -81,19 +81,18 @@ the system and output the statistics in various ways:
fix 10 all ave/histo 10 10 100 -1 1 20 c_2[2] mode vector file tmp.histo fix 10 all ave/histo 10 10 100 -1 1 20 c_2[2] mode vector file tmp.histo
The :doc:`dump local <dump>` command will output the angle, The :doc:`dump local <dump>` command will output the angle (:math:`\phi`),
cosine(angle), cosine\^2(angle) for every dihedral in the system. The :math:`\cos(\phi)`, and :math:`\cos^2(\phi)` for every dihedral in the system.
:doc:`thermo_style <thermo_style>` command will print the average of The :doc:`thermo_style <thermo_style>` command will print the average of
those quantities via the :doc:`compute reduce <compute_reduce>` command those quantities via the :doc:`compute reduce <compute_reduce>` command
with thermo output. And the :doc:`fix ave/histo <fix_ave_histo>` with thermo output. And the :doc:`fix ave/histo <fix_ave_histo>`
command will histogram the cosine(angle) values and write them to a command will histogram the cosine(angle) values and write them to a file.
file.
---------- ----------
The local data stored by this command is generated by looping over all The local data stored by this command is generated by looping over all
the atoms owned on a processor and their dihedrals. A dihedral will the atoms owned on a processor and their dihedrals. A dihedral will
only be included if all 4 atoms in the dihedral are in the specified only be included if all four atoms in the dihedral are in the specified
compute group. compute group.
Note that as atoms migrate from processor to processor, there will be Note that as atoms migrate from processor to processor, there will be
@ -101,7 +100,8 @@ no consistent ordering of the entries within the local vector or array
from one timestep to the next. The only consistency that is from one timestep to the next. The only consistency that is
guaranteed is that the ordering on a particular timestep will be the guaranteed is that the ordering on a particular timestep will be the
same for local vectors or arrays generated by other compute commands. same for local vectors or arrays generated by other compute commands.
For example, dihedral output from the :doc:`compute property/local <compute_property_local>` command can be combined For example, dihedral output from the
:doc:`compute property/local <compute_property_local>` command can be combined
with data from this command and output by the :doc:`dump local <dump>` with data from this command and output by the :doc:`dump local <dump>`
command in a consistent way. command in a consistent way.
@ -120,9 +120,10 @@ This compute calculates a local vector or local array depending on the
number of values. The length of the vector or number of rows in the number of values. The length of the vector or number of rows in the
array is the number of dihedrals. If a single value is specified, a array is the number of dihedrals. If a single value is specified, a
local vector is produced. If two or more values are specified, a local vector is produced. If two or more values are specified, a
local array is produced where the number of columns = the number of local array is produced where the number of columns is equal to the number of
values. The vector or array can be accessed by any command that uses values. The vector or array can be accessed by any command that uses
local values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output local values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The output for *phi* will be in degrees. The output for *phi* will be in degrees.

View File

@ -6,12 +6,12 @@ compute dilatation/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID dilatation/atom compute ID group-ID dilatation/atom
* ID, group-ID are documented in compute command * ID, group-ID are documented in compute command
* dilation/atom = style name of this compute command * dilatation/atom = style name of this compute command
Examples Examples
"""""""" """"""""
@ -30,13 +30,13 @@ for an overview of LAMMPS commands for Peridynamics modeling.
For small deformation, dilatation of is the measure of the volumetric For small deformation, dilatation of is the measure of the volumetric
strain. strain.
The dilatation "theta" for each peridynamic particle I is calculated The dilatation :math:`\theta` for each peridynamic particle :math:`i` is
as a sum over its neighbors with unbroken bonds, where the calculated as a sum over its neighbors with unbroken bonds, where the
contribution of the IJ pair is a function of the change in bond length contribution of the :math:`ij` pair is a function of the change in bond length
(versus the initial length in the reference state), the volume (versus the initial length in the reference state), the volume
fraction of the particles and an influence function. See the fraction of the particles and an influence function. See the
`PDLAMMPS user guide <http://www.sandia.gov/~mlparks/papers/PDLAMMPS.pdf>`_ for a formal `PDLAMMPS user guide <http://www.sandia.gov/~mlparks/papers/PDLAMMPS.pdf>`_ for
definition of dilatation. a formal definition of dilatation.
This command can only be used with a subset of the Peridynamic :doc:`pair styles <pair_peri>`: peri/lps, peri/ves and peri/eps. This command can only be used with a subset of the Peridynamic :doc:`pair styles <pair_peri>`: peri/lps, peri/ves and peri/eps.
@ -51,13 +51,14 @@ any command that uses per-atom values from a compute as input. See
the :doc:`Howto output <Howto_output>` page for an overview of the :doc:`Howto output <Howto_output>` page for an overview of
LAMMPS output options. LAMMPS output options.
The per-atom vector values are unitless numbers (theta) >= 0.0. The per-atom vector values are unitless numbers :math:`(\theta \ge 0.0)`.
Restrictions Restrictions
"""""""""""" """"""""""""
This compute is part of the PERI package. It is only enabled if This compute is part of the PERI package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info. LAMMPS was built with that package. See the
:doc:`Build package <Build_package>` page for more info.
Related commands Related commands
"""""""""""""""" """"""""""""""""

View File

@ -6,13 +6,13 @@ compute dipole command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID dipole charge-correction compute ID group-ID dipole arg
* ID, group-ID are documented in :doc:`compute <compute>` command * ID, group-ID are documented in :doc:`compute <compute>` command
* dipole = style name of this compute command * dipole = style name of this compute command
* charge-correction = *mass* or *geometry*, use COM or geometric center for charged chunk correction (optional) * arg = *mass* or *geometry* = use COM or geometric center for charged chunk correction (optional)
Examples Examples
"""""""" """"""""
@ -43,7 +43,7 @@ and per-atom dipole moments, if present, contribute to the computed dipole.
:doc:`dump custom <dump>` command for a discussion of "unwrapped" :doc:`dump custom <dump>` command for a discussion of "unwrapped"
coordinates. See the Atoms section of the :doc:`read_data coordinates. See the Atoms section of the :doc:`read_data
<read_data>` command for a discussion of image flags and how they are <read_data>` command for a discussion of image flags and how they are
set for each atom. You can reset the image flags (e.g. to 0) before set for each atom. You can reset the image flags (e.g., to 0) before
invoking this compute by using the :doc:`set image <set>` command. invoking this compute by using the :doc:`set image <set>` command.
Output info Output info
@ -54,8 +54,9 @@ the computed dipole moment and a global vector of length 3 with the
dipole vector. See the :doc:`Howto output <Howto_output>` page for dipole vector. See the :doc:`Howto output <Howto_output>` page for
an overview of LAMMPS output options. an overview of LAMMPS output options.
The computed values are "intensive". The array values will be in The computed values are "intensive." The array values will be in
dipole units, i.e. charge units times distance :doc:`units <units>`. dipole units (i.e., charge :doc:`units <units>` times distance
:doc:`units <units>`).
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -6,14 +6,14 @@ compute dipole/chunk command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID dipole/chunk chunkID charge-correction compute ID group-ID dipole/chunk chunkID arg
* ID, group-ID are documented in :doc:`compute <compute>` command * ID, group-ID are documented in :doc:`compute <compute>` command
* dipole/chunk = style name of this compute command * dipole/chunk = style name of this compute command
* chunkID = ID of :doc:`compute chunk/atom <compute_chunk_atom>` command * chunkID = ID of :doc:`compute chunk/atom <compute_chunk_atom>` command
* charge-correction = *mass* or *geometry*, use COM or geometric center for charged chunk correction (optional) * arg = *mass* or *geometry* = use COM or geometric center for charged chunk correction (optional)
Examples Examples
"""""""" """"""""
@ -38,8 +38,8 @@ or atoms in a spatial bin. See the :doc:`compute chunk/atom
details of how chunks can be defined and examples of how they can be details of how chunks can be defined and examples of how they can be
used to measure properties of a system. used to measure properties of a system.
This compute calculates the x,y,z coordinates of the dipole vector and This compute calculates the :math:`(x,y,z)` coordinates of the dipole vector
the total dipole moment for each chunk, which includes all effects due and the total dipole moment for each chunk, which includes all effects due
to atoms passing through periodic boundaries. For chunks with a net to atoms passing through periodic boundaries. For chunks with a net
charge the resulting dipole is made position independent by subtracting charge the resulting dipole is made position independent by subtracting
the position vector of the center of mass or geometric center times the the position vector of the center of mass or geometric center times the
@ -62,7 +62,7 @@ chunk IDs.
"unwrapped" coordinates. See the Atoms section of the "unwrapped" coordinates. See the Atoms section of the
:doc:`read_data <read_data>` command for a discussion of image flags :doc:`read_data <read_data>` command for a discussion of image flags
and how they are set for each atom. You can reset the image flags and how they are set for each atom. You can reset the image flags
(e.g. to 0) before invoking this compute by using the :doc:`set image (e.g., to 0) before invoking this compute by using the :doc:`set image
<set>` command. <set>` command.
The simplest way to output the results of the compute com/chunk The simplest way to output the results of the compute com/chunk
@ -80,14 +80,15 @@ Output info
This compute calculates a global array where the number of rows = the This compute calculates a global array where the number of rows = the
number of chunks *Nchunk* as calculated by the specified :doc:`compute number of chunks *Nchunk* as calculated by the specified :doc:`compute
chunk/atom <compute_chunk_atom>` command. The number of columns = 4 for chunk/atom <compute_chunk_atom>` command. The number of columns is 4 for
the x,y,z dipole vector components and the total dipole of each the :math:`(x,y,z)` dipole vector components and the total dipole of each
chunk. These values can be accessed by any command that uses global chunk. These values can be accessed by any command that uses global
array values from a compute as input. See the :doc:`Howto output array values from a compute as input. See the :doc:`Howto output
<Howto_output>` page for an overview of LAMMPS output options. <Howto_output>` page for an overview of LAMMPS output options.
The array values are "intensive". The array values will be in The array values are "intensive." The array values will be in
dipole units, i.e. charge units times distance :doc:`units <units>`. dipole units (i.e., charge :doc:`units <units>` times distance
:doc:`units <units>`).
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -6,7 +6,7 @@ compute displace/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID displace/atom compute ID group-ID displace/atom
@ -35,9 +35,9 @@ atom in the group from its original (reference) coordinates, including
all effects due to atoms passing through periodic boundaries. all effects due to atoms passing through periodic boundaries.
A vector of four quantities per atom is calculated by this compute. A vector of four quantities per atom is calculated by this compute.
The first 3 elements of the vector are the dx,dy,dz displacements. The first three elements of the vector are the :math:`(dx,dy,dz)`
The fourth component is the total displacement, i.e. sqrt(dx\*dx + dy\*dy + displacements. The fourth component is the total displacement
dz\*dz). (i.e., :math:`\sqrt{dx^2 + dy^2 + dz^2}`).
The displacement of an atom is from its original position at the time The displacement of an atom is from its original position at the time
the compute command was issued. The value of the displacement will be the compute command was issued. The value of the displacement will be
@ -50,7 +50,7 @@ the compute command was issued. The value of the displacement will be
<dump>` command for a discussion of "unwrapped" coordinates. See <dump>` command for a discussion of "unwrapped" coordinates. See
the Atoms section of the :doc:`read_data <read_data>` command for a the Atoms section of the :doc:`read_data <read_data>` command for a
discussion of image flags and how they are set for each atom. You discussion of image flags and how they are set for each atom. You
can reset the image flags (e.g. to 0) before invoking this compute can reset the image flags (e.g., to 0) before invoking this compute
by using the :doc:`set image <set>` command. by using the :doc:`set image <set>` command.
.. note:: .. note::
@ -60,7 +60,7 @@ the compute command was issued. The value of the displacement will be
you should use the same ID for this compute, as in the original run. you should use the same ID for this compute, as in the original run.
This is so that the fix this compute creates to store per-atom This is so that the fix this compute creates to store per-atom
quantities will also have the same ID, and thus be initialized quantities will also have the same ID, and thus be initialized
correctly with time=0 atom coordinates from the restart file. correctly with time = 0 atom coordinates from the restart file.
---------- ----------
@ -95,14 +95,15 @@ something like the following commands:
refresh c_dsp delay 100 refresh c_dsp delay 100
The :doc:`dump_modify thresh <dump_modify>` command will only output The :doc:`dump_modify thresh <dump_modify>` command will only output
atoms that have displaced more than 0.6 Angstroms on each snapshot atoms that have displaced more than :math:`0.6~\mathrm{\mathring A}` on each
(assuming metal units). The dump_modify *refresh* option triggers a snapshot (assuming metal units). The dump_modify *refresh* option triggers a
call to this compute at the end of every dump. call to this compute at the end of every dump.
The *refresh* argument for this compute is the ID of an :doc:`atom-style variable <variable>` which calculates a Boolean value (0 or 1) The *refresh* argument for this compute is the ID of an
:doc:`atom-style variable <variable>` which calculates a Boolean value (0 or 1)
based on the same criterion used by dump_modify thresh. This compute based on the same criterion used by dump_modify thresh. This compute
evaluates the atom-style variable. For each atom that returns 1 evaluates the atom-style variable. For each atom that returns 1 (true),
(true), the original (reference) coordinates of the atom (stored by the original (reference) coordinates of the atom (stored by
this compute) are updated. this compute) are updated.
The effect of these commands is that a particular atom will only be The effect of these commands is that a particular atom will only be
@ -125,8 +126,8 @@ would be empty.
Output info Output info
""""""""""" """""""""""
This compute calculates a per-atom array with 4 columns, which can be This compute calculates a per-atom array with four columns, which can be
accessed by indices 1-4 by any command that uses per-atom values from accessed by indices 1--4 by any command that uses per-atom values from
a compute as input. See the :doc:`Howto output <Howto_output>` doc page a compute as input. See the :doc:`Howto output <Howto_output>` doc page
for an overview of LAMMPS output options. for an overview of LAMMPS output options.

View File

@ -6,7 +6,7 @@ compute dpd command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID dpd compute ID group-ID dpd
@ -24,9 +24,9 @@ Description
""""""""""" """""""""""
Define a computation that accumulates the total internal conductive Define a computation that accumulates the total internal conductive
energy (:math:`U^{cond}`), the total internal mechanical energy energy (:math:`U^{\text{cond}}`), the total internal mechanical energy
(:math:`U^{mech}`), the total chemical energy (:math:`U^{chem}`) (:math:`U^{\text{mech}}`), the total chemical energy (:math:`U^\text{chem}`)
and the *harmonic* average of the internal temperature (:math:`\theta_{avg}`) and the *harmonic* average of the internal temperature (:math:`\theta_\text{avg}`)
for the entire system of particles. See the for the entire system of particles. See the
:doc:`compute dpd/atom <compute_dpd_atom>` command if you want :doc:`compute dpd/atom <compute_dpd_atom>` command if you want
per-particle internal energies and internal temperatures. per-particle internal energies and internal temperatures.
@ -36,22 +36,24 @@ relations:
.. math:: .. math::
U^{cond} = & \displaystyle\sum_{i=1}^{N} u_{i}^{cond} \\ U^\text{cond} = & \sum_{i=1}^{N} u_{i}^\text{cond} \\
U^{mech} = & \displaystyle\sum_{i=1}^{N} u_{i}^{mech} \\ U^\text{mech} = & \sum_{i=1}^{N} u_{i}^\text{mech} \\
U^{chem} = & \displaystyle\sum_{i=1}^{N} u_{i}^{chem} \\ U^\text{chem} = & \sum_{i=1}^{N} u_{i}^\text{chem} \\
U = & \displaystyle\sum_{i=1}^{N} (u_{i}^{cond} + u_{i}^{mech} + u_{i}^{chem}) \\ U = & \sum_{i=1}^{N} (u_{i}^\text{cond}
\theta_{avg} = & (\frac{1}{N}\displaystyle\sum_{i=1}^{N} \frac{1}{\theta_{i}})^{-1} \\ + u_{i}^\text{mech} + u_{i}^\text{chem}) \\
\theta_{avg} = & \biggl(\frac{1}{N}\sum_{i=1}^{N}
\frac{1}{\theta_{i}}\biggr)^{-1} \\
where :math:`N` is the number of particles in the system where :math:`N` is the number of particles in the system.
---------- ----------
Output info Output info
""""""""""" """""""""""
This compute calculates a global vector of length 5 (:math:`U^{cond}`, This compute calculates a global vector of length 5 (:math:`U^\text{cond}`,
:math:`U^{mech}`, :math:`U^{chem}`, :math:`\theta_{avg}`, :math:`N`), :math:`U^\text{mech}`, :math:`U^\text{chem}`, :math:`\theta_\text{avg}`,
which can be accessed by indices 1-5. :math:`N`), which can be accessed by indices 1 through 5.
See the :doc:`Howto output <Howto_output>` page for an overview of See the :doc:`Howto output <Howto_output>` page for an overview of
LAMMPS output options. LAMMPS output options.
@ -61,7 +63,8 @@ Restrictions
"""""""""""" """"""""""""
This command is part of the DPD-REACT package. It is only enabled if This command is part of the DPD-REACT package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info. LAMMPS was built with that package.
See the :doc:`Build package <Build_package>` page for more info.
This command also requires use of the :doc:`atom_style dpd <atom_style>` This command also requires use of the :doc:`atom_style dpd <atom_style>`
command. command.

View File

@ -6,7 +6,7 @@ compute dpd/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID dpd/atom compute ID group-ID dpd/atom
@ -23,29 +23,28 @@ Examples
Description Description
""""""""""" """""""""""
Define a computation that accesses the per-particle internal Define a computation that accesses the per-particle internal conductive energy
conductive energy (:math:`u^{cond}`), internal mechanical (:math:`u^\text{cond}`), internal mechanical energy (:math:`u^\text{mech}`),
energy (:math:`u^{mech}`), internal chemical energy (:math:`u^{chem}`) internal chemical energy (:math:`u^\text{chem}`) and internal temperatures
and internal temperatures (:math:`\theta`) for each particle in a group. (:math:`\theta`) for each particle in a group.
See the :doc:`compute dpd <compute_dpd>` command if you want the total See the :doc:`compute dpd <compute_dpd>` command if you want the total
internal conductive energy, the total internal mechanical energy, the internal conductive energy, the total internal mechanical energy, the
total chemical energy and total chemical energy and average internal temperature of the entire system or
average internal temperature of the entire system or group of dpd group of dpd particles.
particles.
Output info Output info
""""""""""" """""""""""
This compute calculates a per-particle array with 4 columns (:math:`u^{cond}`, This compute calculates a per-particle array with four columns
:math:`u^{mech}`, :math:`u^{chem}`, :math:`\theta`), which can be accessed (:math:`u^\text{cond}`, :math:`u^\text{mech}`, :math:`u^\text{chem}`,
by indices 1-4 by any :math:`\theta`), which can be accessed by indices 1--4 by any
command that uses per-particle values from a compute as input. See command that uses per-particle values from a compute as input. See
the :doc:`Howto output <Howto_output>` page for an overview of the :doc:`Howto output <Howto_output>` page for an overview of
LAMMPS output options. LAMMPS output options.
The per-particle array values will be in energy (:math:`u^{cond}`, The per-particle array values will be in energy (:math:`u^\text{cond}`,
:math:`u^{mech}`, :math:`u^{chem}`) :math:`u^\text{mech}`, :math:`u^\text{chem}`)
and temperature (:math:`theta`) :doc:`units <units>`. and temperature (:math:`\theta`) :doc:`units <units>`.
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -6,7 +6,7 @@ compute edpd/temp/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID edpd/temp/atom compute ID group-ID edpd/temp/atom

View File

@ -6,12 +6,19 @@ compute efield/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID efield/atom compute ID group-ID efield/atom keyword val
* ID, group-ID are documented in :doc:`compute <compute>` command * ID, group-ID are documented in :doc:`compute <compute>` command
* efield/atom = style name of this compute command * efield/atom = style name of this compute command
* zero or more keyword/value pairs may be appended
* keyword = *pair* or *kspace*
.. parsed-literal::
*pair* args = *yes* or *no*
*kspace* args = *yes* or *no*
Examples Examples
"""""""" """"""""
@ -23,10 +30,10 @@ Examples
Used in input scripts: Used in input scripts:
.. parsed-literal:: .. parsed-literal::
examples/PACKAGES/dielectric/in.confined examples/PACKAGES/dielectric/in.confined
examples/PACKAGES/dielectric/in.nopbc examples/PACKAGES/dielectric/in.nopbc
Description Description
""""""""""" """""""""""

View File

@ -6,24 +6,23 @@ compute entropy/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID entropy/atom sigma cutoff keyword value ... compute ID group-ID entropy/atom sigma cutoff keyword value ...
* ID, group-ID are documented in :doc:`compute <compute>` command * ID, group-ID are documented in :doc:`compute <compute>` command
* entropy/atom = style name of this compute command * entropy/atom = style name of this compute command
* sigma = width of gaussians used in the g(r) smoothing * sigma = width of Gaussians used in the :math:`g(r)` smoothing
* cutoff = cutoff for the g(r) calculation * cutoff = cutoff for the :math:`g(r)` calculation
* one or more keyword/value pairs may be appended * one or more keyword/value pairs may be appended
.. parsed-literal:: .. parsed-literal::
keyword = *avg* or *local* keyword = *avg* or *local*
*avg* values = *yes* or *no* cutoff2 *avg* args = neigh cutoff2
*yes* = average the pair entropy over neighbors neigh value = *yes* or *no* = whether to average the pair entropy over neighbors
*no* = do not average the pair entropy over neighbors
cutoff2 = cutoff for the averaging over neighbors cutoff2 = cutoff for the averaging over neighbors
*local* values = *yes* or *no* = use the local density around each atom to normalize the g(r) *local* arg = *yes* or *no* = use the local density around each atom to normalize the g(r)
Examples Examples
"""""""" """"""""
@ -53,31 +52,32 @@ This parameter for atom i is computed using the following formula from
s_S^i=-2\pi\rho k_B \int\limits_0^{r_m} \left [ g(r) \ln g(r) - g(r) + 1 \right ] r^2 dr s_S^i=-2\pi\rho k_B \int\limits_0^{r_m} \left [ g(r) \ln g(r) - g(r) + 1 \right ] r^2 dr
where r is a distance, g(r) is the radial distribution function of atom where :math:`r` is a distance, :math:`g(r)` is the radial distribution function
i and rho is the density of the system. The g(r) computed for each of atom :math:`i`, and :math:`\rho` is the density of the system.
atom i can be noisy and therefore it is smoothed using: The :math:`g(r)` computed for each atom :math:`i` can be noisy and therefore it
is smoothed using
.. math:: .. math::
g_m^i(r) = \frac{1}{4 \pi \rho r^2} \sum\limits_{j} \frac{1}{\sqrt{2 \pi \sigma^2}} e^{-(r-r_{ij})^2/(2\sigma^2)} g_m^i(r) = \frac{1}{4 \pi \rho r^2} \sum\limits_{j} \frac{1}{\sqrt{2 \pi \sigma^2}} e^{-(r-r_{ij})^2/(2\sigma^2)}
where the sum in j goes through the neighbors of atom i, and :math:`\sigma` where the sum over :math:`j` goes through the neighbors of atom :math:`i` and
is a parameter to control the smoothing. :math:`\sigma` is a parameter to control the smoothing.
The input parameters are *sigma* the smoothing parameter :math:`\sigma`, The input parameters are *sigma* the smoothing parameter :math:`\sigma`,
and the *cutoff* for the calculation of g(r). and the *cutoff* for the calculation of :math:`g(r)`.
If the keyword *avg* has the setting *yes*, then this compute also If the keyword *avg* has the setting *yes*, then this compute also
averages the parameter over the neighbors of atom i according to: averages the parameter over the neighbors of atom :math:`i` according to
.. math:: .. math::
\left< s_S^i \right> = \frac{\sum_j s_S^j + s_S^i}{N + 1} \left< s_S^i \right> = \frac{\sum_j s_S^j + s_S^i}{N + 1},
where the sum j goes over the neighbors of atom i and N is the number where the sum over :math:`j` goes over the neighbors of atom :math:`i` and
of neighbors. This procedure provides a sharper distinction between :math:`N` is the number of neighbors. This procedure provides a sharper
order and disorder environments. In this case the input parameter distinction between order and disorder environments. In this case the input
*cutoff2* is the cutoff for the averaging over the neighbors and parameter *cutoff2* is the cutoff for the averaging over the neighbors and
must also be specified. must also be specified.
If the *avg yes* option is used, the effective cutoff of the neighbor If the *avg yes* option is used, the effective cutoff of the neighbor
@ -90,14 +90,14 @@ to increase the skin of the neighbor list with:
See :doc:`neighbor <neighbor>` for details. See :doc:`neighbor <neighbor>` for details.
If the *local yes* option is used, the g(r) is normalized by the If the *local yes* option is used, the :math:`g(r)` is normalized by the
local density around each atom, that is to say the density around each local density around each atom, that is to say the density around each
atom is the number of neighbors within the neighbor list cutoff divided atom is the number of neighbors within the neighbor list cutoff divided
by the corresponding volume. This option can be useful when dealing with by the corresponding volume. This option can be useful when dealing with
inhomogeneous systems such as those that have surfaces. inhomogeneous systems such as those that have surfaces.
Here are typical input parameters for fcc aluminum (lattice Here are typical input parameters for fcc aluminum (lattice
constant 4.05 Angstroms), constant :math:`4.05~\mathrm{\mathring A}`),
.. parsed-literal:: .. parsed-literal::
@ -114,7 +114,8 @@ Output info
By default, this compute calculates the pair entropy value for each By default, this compute calculates the pair entropy value for each
atom as a per-atom vector, which can be accessed by any command that atom as a per-atom vector, which can be accessed by any command that
uses per-atom values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output uses per-atom values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The pair entropy values have units of the Boltzmann constant. They are The pair entropy values have units of the Boltzmann constant. They are

View File

@ -6,7 +6,7 @@ compute erotate/asphere command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID erotate/asphere compute ID group-ID erotate/asphere
@ -30,9 +30,9 @@ ellipsoids, or line segments, or triangles. See the
for descriptions of these options. for descriptions of these options.
For all 3 types of particles, the rotational kinetic energy is For all 3 types of particles, the rotational kinetic energy is
computed as 1/2 I w\^2, where I is the inertia tensor for the computed as :math:`\frac12 I \omega^2`, where :math:`I` is the inertia tensor
aspherical particle and w is its angular velocity, which is computed for the aspherical particle and :math:`\omega` is its angular velocity, which
from its angular momentum if needed. is computed from its angular momentum if needed.
.. note:: .. note::
@ -48,7 +48,7 @@ used by any command that uses a global scalar value from a compute as
input. See the :doc:`Howto output <Howto_output>` page for an input. See the :doc:`Howto output <Howto_output>` page for an
overview of LAMMPS output options. overview of LAMMPS output options.
The scalar value calculated by this compute is "extensive". The The scalar value calculated by this compute is "extensive." The
scalar value will be in energy :doc:`units <units>`. scalar value will be in energy :doc:`units <units>`.
Restrictions Restrictions
@ -65,7 +65,7 @@ This compute requires that triangular particles atoms store a size and
shape and quaternion orientation and angular momentum as defined by shape and quaternion orientation and angular momentum as defined by
the :doc:`atom_style tri <atom_style>` command. the :doc:`atom_style tri <atom_style>` command.
All particles in the group must be finite-size. They cannot be point All particles in the group must be of finite size. They cannot be point
particles. particles.
Related commands Related commands

View File

@ -6,7 +6,7 @@ compute erotate/rigid command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID erotate/rigid fix-ID compute ID group-ID erotate/rigid fix-ID
@ -25,18 +25,20 @@ Description
""""""""""" """""""""""
Define a computation that calculates the rotational kinetic energy of Define a computation that calculates the rotational kinetic energy of
a collection of rigid bodies, as defined by one of the :doc:`fix rigid <fix_rigid>` command variants. a collection of rigid bodies, as defined by one of the
:doc:`fix rigid <fix_rigid>` command variants.
The rotational energy of each rigid body is computed as 1/2 I Wbody\^2, The rotational energy of each rigid body is computed as
where I is the inertia tensor for the rigid body, and Wbody is its :math:`\frac12 I \omega_\text{body}^2`,
angular velocity vector. Both I and Wbody are in the frame of where :math:`I` is the inertia tensor for the rigid body and
reference of the rigid body, i.e. I is diagonalized. :math:`\omega_\text{body}` is its angular velocity vector.
Both :math:`I` and :math:`\omega_\text{body}` are in the frame of
reference of the rigid body (i.e., :math:`I` is diagonal).
The *fix-ID* should be the ID of one of the :doc:`fix rigid <fix_rigid>` The *fix-ID* should be the ID of one of the :doc:`fix rigid <fix_rigid>`
commands which defines the rigid bodies. The group specified in the commands which defines the rigid bodies. The group specified in the
compute command is ignored. The rotational energy of all the rigid compute command is ignored. The rotational energy of all the rigid
bodies defined by the fix rigid command in included in the bodies defined by the fix rigid command in included in the calculation.
calculation.
Output info Output info
""""""""""" """""""""""
@ -46,14 +48,15 @@ of all the rigid bodies). This value can be used by any command that
uses a global scalar value from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output uses a global scalar value from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The scalar value calculated by this compute is "extensive". The The scalar value calculated by this compute is "extensive." The
scalar value will be in energy :doc:`units <units>`. scalar value will be in energy :doc:`units <units>`.
Restrictions Restrictions
"""""""""""" """"""""""""
This compute is part of the RIGID package. It is only enabled if This compute is part of the RIGID package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info. LAMMPS was built with that package. See the
:doc:`Build package <Build_package>` page for more info.
Related commands Related commands
"""""""""""""""" """"""""""""""""

View File

@ -6,7 +6,7 @@ compute erotate/sphere command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID erotate/sphere compute ID group-ID erotate/sphere
@ -26,8 +26,9 @@ Description
Define a computation that calculates the rotational kinetic energy of Define a computation that calculates the rotational kinetic energy of
a group of spherical particles. a group of spherical particles.
The rotational energy is computed as 1/2 I w\^2, where I is the moment The rotational energy is computed as :math:`\frac12 I \omega^2`,
of inertia for a sphere and w is the particle's angular velocity. where :math:`I` is the moment of inertia for a sphere and :math:`\omega`
is the particle's angular velocity.
.. note:: .. note::
@ -43,7 +44,7 @@ used by any command that uses a global scalar value from a compute as
input. See the :doc:`Howto output <Howto_output>` page for an input. See the :doc:`Howto output <Howto_output>` page for an
overview of LAMMPS output options. overview of LAMMPS output options.
The scalar value calculated by this compute is "extensive". The The scalar value calculated by this compute is "extensive." The
scalar value will be in energy :doc:`units <units>`. scalar value will be in energy :doc:`units <units>`.
Restrictions Restrictions

View File

@ -6,7 +6,7 @@ compute erotate/sphere/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID erotate/sphere/atom compute ID group-ID erotate/sphere/atom
@ -26,8 +26,9 @@ Description
Define a computation that calculates the rotational kinetic energy for Define a computation that calculates the rotational kinetic energy for
each particle in a group. each particle in a group.
The rotational energy is computed as 1/2 I w\^2, where I is the moment The rotational energy is computed as :math:`\frac12 I \omega^2`, where
of inertia for a sphere and w is the particle's angular velocity. :math:`I` is the moment of inertia for a sphere and :math:`\omega` is the
particle's angular velocity.
.. note:: .. note::
@ -36,8 +37,7 @@ of inertia for a sphere and w is the particle's angular velocity.
as in 3d. as in 3d.
The value of the rotational kinetic energy will be 0.0 for atoms not The value of the rotational kinetic energy will be 0.0 for atoms not
in the specified compute group or for point particles with a radius = in the specified compute group or for point particles with a radius of 0.0.
0.0.
Output info Output info
""""""""""" """""""""""

View File

@ -6,7 +6,7 @@ compute event/displace command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID event/displace threshold compute ID group-ID event/displace threshold
@ -27,10 +27,9 @@ Description
Define a computation that flags an "event" if any particle in the Define a computation that flags an "event" if any particle in the
group has moved a distance greater than the specified threshold group has moved a distance greater than the specified threshold
distance when compared to a previously stored reference state distance when compared to a previously stored reference state
(i.e. the previous event). This compute is typically used in (i.e., the previous event). This compute is typically used in
conjunction with the :doc:`prd <prd>` and :doc:`tad <tad>` commands, conjunction with the :doc:`prd <prd>` and :doc:`tad <tad>` commands,
to detect if a transition to detect if a transition to a new minimum energy basin has occurred.
to a new minimum energy basin has occurred.
This value calculated by the compute is equal to 0 if no particle has This value calculated by the compute is equal to 0 if no particle has
moved far enough, and equal to 1 if one or more particles have moved moved far enough, and equal to 1 if one or more particles have moved
@ -51,7 +50,7 @@ used by any command that uses a global scalar value from a compute as
input. See the :doc:`Howto output <Howto_output>` page for an input. See the :doc:`Howto output <Howto_output>` page for an
overview of LAMMPS output options. overview of LAMMPS output options.
The scalar value calculated by this compute is "intensive". The The scalar value calculated by this compute is "intensive." The
scalar value will be a 0 or 1 as explained above. scalar value will be a 0 or 1 as explained above.
Restrictions Restrictions

View File

@ -6,9 +6,9 @@ compute fabric command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID fabric cutoff attribute1 attribute2 ... keyword values ... compute ID group-ID fabric cutoff attribute ... keyword values ...
* ID, group-ID are documented in :doc:`compute <compute>` command * ID, group-ID are documented in :doc:`compute <compute>` command
* fabric = style name of this compute command * fabric = style name of this compute command
@ -20,6 +20,7 @@ Syntax
*radius* = cutoffs determined based on atom diameters (atom style sphere) *radius* = cutoffs determined based on atom diameters (atom style sphere)
* one or more attributes may be appended * one or more attributes may be appended
* attribute = *contact* or *branch* or *force/normal* or *force/tangential*
.. parsed-literal:: .. parsed-literal::
@ -63,7 +64,7 @@ tangential force tensor. The contact tensor is calculated as
.. math:: .. math::
C_{ab} = \frac{15}{2} (\phi_{ab} - \mathrm{tr}(\phi) \delta_{ab}) C_{ab} = \frac{15}{2} (\phi_{ab} - \mathrm{Tr}(\phi) \delta_{ab})
where :math:`a` and :math:`b` are the :math:`x`, :math:`y`, :math:`z` where :math:`a` and :math:`b` are the :math:`x`, :math:`y`, :math:`z`
directions, :math:`\delta_{ab}` is the Kronecker delta function, and directions, :math:`\delta_{ab}` is the Kronecker delta function, and
@ -75,13 +76,14 @@ the tensor :math:`\phi` is defined as
where :math:`n` loops over the :math:`N_p` pair interactions in the simulation, where :math:`n` loops over the :math:`N_p` pair interactions in the simulation,
:math:`r_{a}` is the :math:`a` component of the radial vector between the :math:`r_{a}` is the :math:`a` component of the radial vector between the
two pairwise interacting particles, and :math:`r` is the magnitude of the radial vector. two pairwise interacting particles, and :math:`r` is the magnitude of the
radial vector.
The branch tensor is calculated as The branch tensor is calculated as
.. math:: .. math::
B_{ab} = \frac{15}{6 \mathrm{tr}(D)} (D_{ab} - \mathrm{tr}(D) \delta_{ab}) B_{ab} = \frac{15}{6 \mathrm{Tr}(D)} (D_{ab} - \mathrm{Tr}(D) \delta_{ab})
where the tensor :math:`D` is defined as where the tensor :math:`D` is defined as
@ -91,14 +93,15 @@ where the tensor :math:`D` is defined as
\frac{1}{N_c (r^2 + C_{cd} r_c r_d)} \frac{1}{N_c (r^2 + C_{cd} r_c r_d)}
\frac{r_{a} r_{b}}{r} \frac{r_{a} r_{b}}{r}
where :math:`N_c` is the total number of contacts in the system and the subscripts where :math:`N_c` is the total number of contacts in the system and the
:math:`c` and :math:`d` indices are summed according to Einstein notation. subscripts :math:`c` and :math:`d` indices are summed according to Einstein
notation.
The normal force fabric tensor is calculated as The normal force fabric tensor is calculated as
.. math:: .. math::
F^n_{ab} = \frac{15}{6 \mathrm{tr}(N)} (N_{ab} - \mathrm{tr}(N) \delta_{ab}) F^n_{ab} = \frac{15}{6\, \mathrm{Tr}(N)} (N_{ab} - \mathrm{Tr}(N) \delta_{ab})
where the tensor :math:`N` is defined as where the tensor :math:`N` is defined as
@ -116,7 +119,7 @@ as
.. math:: .. math::
F^t_{ab} = \frac{15}{9 \mathrm{tr}(N)} (T_{ab} - \mathrm{tr}(T) \delta_{ab}) F^t_{ab} = \frac{15}{9\, \mathrm{Tr}(N)} (T_{ab} - \mathrm{Tr}(T) \delta_{ab})
where the tensor :math:`T` is defined as where the tensor :math:`T` is defined as
@ -133,21 +136,23 @@ Interactions between two atoms are only included in calculations if the atom typ
are in the two lists. Each list consists of a series of type are in the two lists. Each list consists of a series of type
ranges separated by commas. The range can be specified as a ranges separated by commas. The range can be specified as a
single numeric value, or a wildcard asterisk can be used to specify a range single numeric value, or a wildcard asterisk can be used to specify a range
of values. This takes the form "\*" or "\*n" or "n\*" or "m\*n". For of values. This takes the form "\*" or "\*n" or "m\*" or "m\*n". For
example, if M = the number of atom types, then an asterisk with no numeric example, if :math:`M` is the number of atom types, then an asterisk with no
values means all types from 1 to M. A leading asterisk means all types numeric values means all types from 1 to :math:`M`. A leading asterisk means
from 1 to n (inclusive). A trailing asterisk means all types from n to M all types from 1 to n (inclusive). A trailing asterisk means all types from
(inclusive). A middle asterisk means all types from m to n (inclusive). m to :math:`M` (inclusive). A middle asterisk means all types from m to n
Multiple *type/include* keywords may be added. (inclusive). Multiple *type/include* keywords may be added.
Output info Output info
""""""""""" """""""""""
This compute calculates a local vector of doubles and a scalar. The vector stores the This compute calculates a local vector of doubles and a scalar. The vector
unique components of the first requested tensor in the order xx, yy, zz, xy, xz, yz stores the unique components of the first requested tensor in the order
followed by the same components for all subsequent tensors. The length of the vector :math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`
is therefore six times the number of requested tensors. The scalar output is the followed by the same components for all subsequent tensors.
number of pairwise interactions included in the calculation of the fabric tensor. The length of the vector is therefore six times the number of requested
tensors. The scalar output is the number of pairwise interactions included in
the calculation of the fabric tensor.
Restrictions Restrictions
"""""""""""" """"""""""""
@ -164,7 +169,7 @@ following fixes which add rigid-body constraints: :doc:`fix shake
<fix_shake>`, :doc:`fix rattle <fix_shake>`, :doc:`fix rigid <fix_shake>`, :doc:`fix rattle <fix_shake>`, :doc:`fix rigid
<fix_rigid>`, :doc:`fix rigid/small <fix_rigid>`. It does not support <fix_rigid>`, :doc:`fix rigid/small <fix_rigid>`. It does not support
granular pair styles that extend beyond the contact of atomic radii granular pair styles that extend beyond the contact of atomic radii
(e.g. JKR and DMT). (e.g., JKR and DMT).
Related commands Related commands
"""""""""""""""" """"""""""""""""

View File

@ -6,7 +6,7 @@ compute fep command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID fep temp attribute args ... keyword value ... compute ID group-ID fep temp attribute args ... keyword value ...
@ -19,12 +19,12 @@ Syntax
.. parsed-literal:: .. parsed-literal::
*pair* args = pstyle pparam I J v_delta *pair* args = pstyle pparam I J v_delta
pstyle = pair style name, e.g. lj/cut pstyle = pair style name (e.g., *lj/cut*)
pparam = parameter to perturb pparam = parameter to perturb
I,J = type pair(s) to set parameter for I,J = type pair(s) to set parameter for
v_delta = variable with perturbation to apply (in the units of the parameter) v_delta = variable with perturbation to apply (in the units of the parameter)
*atom* args = aparam I v_delta *atom* args = aparam I v_delta
aparam = parameter to perturb aparam = *charge* = parameter to perturb
I = type to set parameter for I = type to set parameter for
v_delta = variable with perturbation to apply (in the units of the parameter) v_delta = variable with perturbation to apply (in the units of the parameter)
@ -37,8 +37,8 @@ Syntax
*no* = ignore tail correction to pair energies (usually small in fep) *no* = ignore tail correction to pair energies (usually small in fep)
*yes* = include tail correction to pair energies *yes* = include tail correction to pair energies
*volume* value = *no* or *yes* *volume* value = *no* or *yes*
*no* = ignore volume changes (e.g. in *NVE* or *NVT* trajectories) *no* = ignore volume changes (e.g., in *NVE* or *NVT* trajectories)
*yes* = include volume changes (e.g. in *NpT* trajectories) *yes* = include volume changes (e.g., in *NPT* trajectories)
Examples Examples
"""""""" """"""""
@ -84,7 +84,7 @@ It is possible but not necessary that the coupling parameter (or a
function thereof) appears as a multiplication factor of the potential function thereof) appears as a multiplication factor of the potential
energy. Therefore, this compute can apply perturbations to interaction energy. Therefore, this compute can apply perturbations to interaction
parameters that are not directly proportional to the potential energy parameters that are not directly proportional to the potential energy
(e.g. :math:`\sigma` in Lennard-Jones potentials). (e.g., :math:`\sigma` in Lennard-Jones potentials).
This command can be combined with :doc:`fix adapt <fix_adapt>` to This command can be combined with :doc:`fix adapt <fix_adapt>` to
perform multistage free-energy perturbation calculations along perform multistage free-energy perturbation calculations along
@ -92,9 +92,9 @@ stepwise alchemical transformations during a simulation run:
.. math:: .. math::
\Delta_0^1 A = \sum_{i=0}^{n-1} \Delta_{\lambda_i}^{\lambda_{i+1}} A = - kT \Delta_0^1 A = \sum_{i=0}^{n-1} \Delta_{\lambda_i}^{\lambda_{i+1}} A = - k_B T
\sum_{i=0}^{n-1} \ln \left< \exp \left( - \frac{U(\lambda_{i+1}) - \sum_{i=0}^{n-1} \ln \left< \exp \left( - \frac{U(\lambda_{i+1}) -
U(\lambda_i)}{kT} \right) \right>_{\lambda_i} U(\lambda_i)}{k_B T} \right) \right>_{\lambda_i}
This compute is suitable for the finite-difference thermodynamic This compute is suitable for the finite-difference thermodynamic
integration (FDTI) method :ref:`(Mezei) <Mezei>`, which is based on an integration (FDTI) method :ref:`(Mezei) <Mezei>`, which is based on an
@ -107,7 +107,8 @@ perturbation method using a very small :math:`\delta`:
A(\lambda)}{\partial\lambda} \right)_\lambda \mathrm{d}\lambda \approx A(\lambda)}{\partial\lambda} \right)_\lambda \mathrm{d}\lambda \approx
\sum_{i=0}^{n-1} w_i \frac{A(\lambda_{i} + \delta) - A(\lambda_i)}{\delta} \sum_{i=0}^{n-1} w_i \frac{A(\lambda_{i} + \delta) - A(\lambda_i)}{\delta}
where :math:`w_i` are weights of a numerical quadrature. The :doc:`fix adapt <fix_adapt>` command can be used to define the stages of where :math:`w_i` are weights of a numerical quadrature. The
:doc:`fix adapt <fix_adapt>` command can be used to define the stages of
:math:`\lambda` at which the derivative is calculated and averaged. :math:`\lambda` at which the derivative is calculated and averaged.
The compute fep calculates the exponential Boltzmann term and also the The compute fep calculates the exponential Boltzmann term and also the
@ -125,14 +126,14 @@ the derivative of the potential energy with respect to :math:`\lambda`:
Another technique to calculate free energy differences is the Another technique to calculate free energy differences is the
acceptance ratio method :ref:`(Bennet) <Bennet>`, which can be implemented acceptance ratio method :ref:`(Bennet) <Bennet>`, which can be implemented
by calculating the potential energy differences with :math:`\delta` = 1.0 on by calculating the potential energy differences with :math:`\delta = 1.0` on
both the forward and reverse routes: both the forward and reverse routes:
.. math:: .. math::
\left< \frac{1}{1 + \exp\left[\left(U_1 - U_0 - \Delta_0^1A \right) /kT \left< \frac{1}{1 + \exp\left[\left(U_1 - U_0 - \Delta_0^1A \right) /k_B T
\right]} \right>_0 = \left< \frac{1}{1 + \exp\left[\left(U_0 - U_1 + \right]} \right>_0 = \left< \frac{1}{1 + \exp\left[\left(U_0 - U_1 +
\Delta_0^1A \right) /kT \right]} \right>_1 \Delta_0^1A \right) /k_B T \right]} \right>_1
The value of the free energy difference is determined by numerical The value of the free energy difference is determined by numerical
root finding to establish the equality. root finding to establish the equality.
@ -226,17 +227,17 @@ the pair\_\*.cpp file associated with the potential.
Similar to the :doc:`pair_coeff <pair_coeff>` command, I and J can be Similar to the :doc:`pair_coeff <pair_coeff>` command, I and J can be
specified in one of two ways. Explicit numeric values can be used for specified in one of two ways. Explicit numeric values can be used for
each, as in the first example above. I <= J is required. LAMMPS sets each, as in the first example above. I :math:`\le` J is required. LAMMPS sets
the coefficients for the symmetric J,I interaction to the same the coefficients for the symmetric J,I interaction to the same
values. A wild-card asterisk can be used in place of or in conjunction values. A wild-card asterisk can be used in place of or in conjunction
with the I,J arguments to set the coefficients for multiple pairs of with the I,J arguments to set the coefficients for multiple pairs of
atom types. This takes the form "\*" or "\*n" or "n\*" or "m\*n". If N = atom types. This takes the form "\*" or "\*n" or "m\*" or "m\*n". If
the number of atom types, then an asterisk with no numeric values :math:`N` is the number of atom types, then an asterisk with no numeric values
means all types from 1 to N. A leading asterisk means all types from means all types from 1 to :math:`N`. A leading asterisk means all types from
1 to n (inclusive). A trailing asterisk means all types from n to N 1 to n (inclusive). A trailing asterisk means all types from m to N
(inclusive). A middle asterisk means all types from m to n (inclusive). A middle asterisk means all types from m to n
(inclusive). Note that only type pairs with I <= J are considered; if (inclusive). Note that only type pairs with I :math:`\le` J are considered; if
asterisks imply type pairs where J < I, they are ignored. asterisks imply type pairs where J :math:`<` I, they are ignored.
If :doc:`pair_style hybrid or hybrid/overlay <pair_hybrid>` is being If :doc:`pair_style hybrid or hybrid/overlay <pair_hybrid>` is being
used, then the *pstyle* will be a sub-style name. You must specify used, then the *pstyle* will be a sub-style name. You must specify
@ -275,8 +276,8 @@ trajectories during which the volume fluctuates or changes :ref:`(Allen and Tild
.. math:: .. math::
\Delta_0^1 A = - kT \sum_{i=0}^{n-1} \ln \frac{\left< V \exp \left( - \Delta_0^1 A = - k_B T \sum_{i=0}^{n-1} \ln \frac{\left< V \exp \left( -
\frac{U(\lambda_{i+1}) - U(\lambda_i)}{kT} \right) \frac{U(\lambda_{i+1}) - U(\lambda_i)}{k_B T} \right)
\right>_{\lambda_i}}{\left< V \right>_{\lambda_i}} \right>_{\lambda_i}}{\left< V \right>_{\lambda_i}}
---------- ----------
@ -286,8 +287,8 @@ Output info
This compute calculates a global vector of length 3 which contains the This compute calculates a global vector of length 3 which contains the
energy difference ( :math:`U_1-U_0` ) as c_ID[1], the energy difference ( :math:`U_1-U_0` ) as c_ID[1], the
Boltzmann factor :math:`\exp(-(U_1-U_0)/kT)`, or Boltzmann factor :math:`\exp(-(U_1-U_0)/k_B T)`, or
:math:`V \exp(-(U_1-U_0)/kT)`, as c_ID[2] and the :math:`V \exp(-(U_1-U_0)/k_B T)`, as c_ID[2] and the
volume of the simulation box :math:`V` as c_ID[3]. :math:`U_1` is the volume of the simulation box :math:`V` as c_ID[3]. :math:`U_1` is the
pair potential energy obtained with the perturbed parameters and pair potential energy obtained with the perturbed parameters and
:math:`U_0` is the pair potential energy obtained with the :math:`U_0` is the pair potential energy obtained with the
@ -298,7 +299,7 @@ These output results can be used by any command that uses a global
scalar or vector from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output scalar or vector from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. For example, the computed values can be averaged using :doc:`fix ave/time <fix_ave_time>`. options. For example, the computed values can be averaged using :doc:`fix ave/time <fix_ave_time>`.
The values calculated by this compute are "extensive". The values calculated by this compute are "extensive."
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -6,7 +6,7 @@ compute fep/ta command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID fep/ta temp plane scale_factor keyword value ... compute ID group-ID fep/ta temp plane scale_factor keyword value ...
@ -20,9 +20,9 @@ Syntax
.. parsed-literal:: .. parsed-literal::
*tail* value = *no* or *yes* *tail* value = *no* or *yes*
*no* = ignore tail correction to pair energies (usually small in fep) *no* = ignore tail correction to pair energies (usually small in fep)
*yes* = include tail correction to pair energies *yes* = include tail correction to pair energies
Examples Examples
"""""""" """"""""
@ -42,11 +42,12 @@ in a single simulation:
.. math:: .. math::
\gamma = \lim_{\Delta \mathcal{A} \to 0} \left( \frac{\Delta A_{0 \to 1 }}{\Delta \mathcal{A}}\right)_{N,V,T} \gamma = \lim_{\Delta \mathcal{A} \to 0} \left( \frac{\Delta A_{0 \to 1 }}{\Delta \mathcal{A}}\right)_{N,V,T}
= - \frac{kT}{\Delta \mathcal{A}} \ln \left< \exp(-(U_1 - U_0)/kT) \right>_0 = - \frac{k_B T}{\Delta \mathcal{A}} \ln \left\langle \exp\left(\frac{-(U_1 - U_0)}{k_B T}\right) \right\rangle_0
During the perturbation, both axes of *plane* are scaled by multiplying During the perturbation, both axes of *plane* are scaled by multiplying
:math:`\sqrt{scale\_factor}`, while the other axis divided by :math:`\sqrt{\mathrm{scale\_factor}}`, while the other axis divided by
*scale_factor* such that the overall volume of the system is maintained. :math:`\mathrm{scale\_factor}` such that the overall volume of the system is
maintained.
The *tail* keyword controls the calculation of the tail correction to The *tail* keyword controls the calculation of the tail correction to
"van der Waals" pair energies beyond the cutoff, if this has been "van der Waals" pair energies beyond the cutoff, if this has been
@ -60,8 +61,8 @@ Output info
""""""""""" """""""""""
This compute calculates a global vector of length 3 which contains the This compute calculates a global vector of length 3 which contains the
energy difference ( :math:`U_1-U_0` ) as c_ID[1], the Boltzmann factor energy difference :math:`(U_1-U_0)` as c_ID[1], the Boltzmann factor
:math:`\exp(-(U_1-U_0)/kT)`, as c_ID[2] and the change in the *plane* :math:`\exp\bigl(-(U_1-U_0)/k_B T\bigr)`, as c_ID[2] and the change in the *plane*
area :math:`\Delta \mathcal{A}` as c_ID[3]. :math:`U_1` is the potential area :math:`\Delta \mathcal{A}` as c_ID[3]. :math:`U_1` is the potential
energy of the perturbed state and :math:`U_0` is the potential energy of energy of the perturbed state and :math:`U_0` is the potential energy of
the reference state. The energies include kspace terms if these are the reference state. The energies include kspace terms if these are

View File

@ -6,7 +6,7 @@ compute global/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID style index input1 input2 ... compute ID group-ID style index input1 input2 ...
@ -55,18 +55,20 @@ reference a global vector or array from a :doc:`compute <compute>` or
:doc:`fix <fix>` or the evaluation of an vector-style :doc:`fix <fix>` or the evaluation of an vector-style
:doc:`variable <variable>`. Details are given below. :doc:`variable <variable>`. Details are given below.
The *index* value for an atom is used as a index I (from 1 to N) into The *index* value for an atom is used as an index :math:`I` (from 1 to
the vector associated with each of the input values. The Ith value :math:`N`, where :math:`N` is the number of atoms) into the vector
associated with each of the input values. The :math:`I`\ th value
from the input vector becomes one output value for that atom. If the from the input vector becomes one output value for that atom. If the
atom is not in the specified group, or the index I < 1 or I > M, where atom is not in the specified group, or the index :math:`I < 1` or
M is the actual length of the input vector, then an output value of :math:`I > M`, where :math:`M` is the actual length of the input vector,
0.0 is assigned to the atom. then an output value of 0.0 is assigned to the atom.
An example of how this command is useful, is in the context of An example of how this command is useful, is in the context of
"chunks" which are static or dynamic subsets of atoms. The :doc:`compute chunk/atom <compute_chunk_atom>` command assigns unique chunk IDs "chunks" which are static or dynamic subsets of atoms. The :doc:`compute chunk/atom <compute_chunk_atom>` command assigns unique chunk IDs
to each atom. It's output can be used as the *index* parameter for to each atom. Its output can be used as the *index* parameter for
this command. Various other computes with "chunk" in their style this command. Various other computes with "chunk" in their style
name, such as :doc:`compute com/chunk <compute_com_chunk>` or :doc:`compute msd/chunk <compute_msd_chunk>`, calculate properties for each name, such as :doc:`compute com/chunk <compute_com_chunk>` or
:doc:`compute msd/chunk <compute_msd_chunk>`, calculate properties for each
chunk. The output of these commands are global vectors or arrays, chunk. The output of these commands are global vectors or arrays,
with one or more values per chunk, and can be used as input values for with one or more values per chunk, and can be used as input values for
this command. This command will then assign the global chunk value to this command. This command will then assign the global chunk value to
@ -102,17 +104,18 @@ they work.
Note that for input values from a compute or fix, the bracketed index Note that for input values from a compute or fix, the bracketed index
I can be specified using a wildcard asterisk with the index to I can be specified using a wildcard asterisk with the index to
effectively specify multiple values. This takes the form "\*" or "\*n" effectively specify multiple values. This takes the form "\*" or "\*n"
or "n\*" or "m\*n". If N = the size of the vector (for *mode* = scalar) or "m\*" or "m\*n". If :math:`N` is the size of the vector
(for *mode* = scalar)
or the number of columns in the array (for *mode* = vector), then an or the number of columns in the array (for *mode* = vector), then an
asterisk with no numeric values means all indices from 1 to N. A asterisk with no numeric values means all indices from 1 to :math:`N`.
leading asterisk means all indices from 1 to n (inclusive). A A leading asterisk means all indices from 1 to n (inclusive). A
trailing asterisk means all indices from n to N (inclusive). A middle trailing asterisk means all indices from m to :math:`N` (inclusive).
asterisk means all indices from m to n (inclusive). A middle asterisk means all indices from m to n (inclusive).
Using a wildcard is the same as if the individual columns of the array Using a wildcard is the same as if the individual columns of the array
had been listed one by one. E.g. these 2 compute global/atom commands had been listed one by one. For example, the following two compute global/atom
are equivalent, since the :doc:`compute com/chunk <compute_com_chunk>` commands are equivalent, since the :doc:`compute com/chunk <compute_com_chunk>`
command creates a global array with 3 columns: command creates a global array with three columns:
.. code-block:: LAMMPS .. code-block:: LAMMPS
@ -124,14 +127,14 @@ command creates a global array with 3 columns:
---------- ----------
This section explains the *index* parameter. Note that it must This section explains the *index* parameter. Note that it must
reference per-atom values, as contrasted with the *input* values which reference per-atom values, as contrasted with the *input* values, which
must reference global values. must reference global values.
Note that all of these options generate floating point values. When Note that all of these options generate floating point values. When
they are used as an index into the specified input vectors, they they are used as an index into the specified input vectors, they
simple rounded down to convert the value to integer indices. The simple rounded down to convert the value to integer indices. The
final values should range from 1 to N (inclusive), since they are used final values should range from 1 to :math:`N` (inclusive), since they are used
to access values from N-length vectors. to access values from :math:`N`-length vectors.
If *index* begins with "c\_", a compute ID must follow which has been If *index* begins with "c\_", a compute ID must follow which has been
previously defined in the input script. The compute must generate previously defined in the input script. The compute must generate
@ -177,7 +180,8 @@ global vector or array. See the individual :doc:`compute <compute>` doc
page for details. If no bracketed integer is appended, the vector page for details. If no bracketed integer is appended, the vector
calculated by the compute is used. If a bracketed integer is calculated by the compute is used. If a bracketed integer is
appended, the Ith column of the array calculated by the compute is appended, the Ith column of the array calculated by the compute is
used. Users can also write code for their own compute styles and :doc:`add them to LAMMPS <Modify>`. See the discussion above for how used. Users can also write code for their own compute styles and
:doc:`add them to LAMMPS <Modify>`. See the discussion above for how
I can be specified with a wildcard asterisk to effectively specify I can be specified with a wildcard asterisk to effectively specify
multiple values. multiple values.

View File

@ -6,7 +6,7 @@ compute group/group command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID group/group group2-ID keyword value ... compute ID group-ID group/group group2-ID keyword value ...
@ -102,19 +102,20 @@ frequently.
If you have a bonded system, then the settings of If you have a bonded system, then the settings of
:doc:`special_bonds <special_bonds>` command can remove pairwise :doc:`special_bonds <special_bonds>` command can remove pairwise
interactions between atoms in the same bond, angle, or dihedral. This interactions between atoms in the same bond, angle, or dihedral. This is
is the default setting for the :doc:`special_bonds <special_bonds>` the default setting for the :doc:`special_bonds <special_bonds>` command,
command, and means those pairwise interactions do not appear in the and means those pairwise interactions do not appear in the neighbor list.
neighbor list. Because this compute uses a neighbor list, it also Because this compute uses a neighbor list, it also means those pairs will
means those pairs will not be included in the group/group interaction. not be included in the group/group interaction. This does not apply when
This does not apply when using long-range coulomb interactions using long-range Coulomb interactions
(\ *coul/long*, *coul/msm*, *coul/wolf* or similar. One way to get (\ *coul/long*, *coul/msm*, *coul/wolf* or similar). One way to get
around this would be to set special_bond scaling factors to very tiny around this would be to set *special_bond* scaling factors to very tiny
numbers that are not exactly zero (e.g. 1.0e-50). Another workaround numbers that are not exactly zero (e.g., :math:`1.0 \times 10^{-50}`).
is to write a dump file, and use the :doc:`rerun <rerun>` command to Another workaround would be to write a dump file and use the
compute the group/group interactions for snapshots in the dump file. :doc:`rerun <rerun>` command to compute the group/group interactions for
The rerun script can use a :doc:`special_bonds <special_bonds>` command snapshots in the dump file. The rerun script can use a
that includes all pairs in the neighbor list. :doc:`special_bonds <special_bonds>` command that includes all pairs in the
neighbor list.
If you desire a breakdown of the interactions into a pairwise and If you desire a breakdown of the interactions into a pairwise and
Kspace component, simply invoke the compute twice with the appropriate Kspace component, simply invoke the compute twice with the appropriate
@ -132,20 +133,21 @@ Output info
""""""""""" """""""""""
This compute calculates a global scalar (the energy) and a global This compute calculates a global scalar (the energy) and a global
vector of length 3 (force), which can be accessed by indices 1-3. vector of length 3 (force), which can be accessed by indices 1--3.
These values can be used by any command that uses global scalar or These values can be used by any command that uses global scalar or
vector values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output vector values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
Both the scalar and vector values calculated by this compute are Both the scalar and vector values calculated by this compute are
"extensive". The scalar value will be in energy :doc:`units <units>`. "extensive." The scalar value will be in energy :doc:`units <units>`.
The vector values will be in force :doc:`units <units>`. The vector values will be in force :doc:`units <units>`.
Restrictions Restrictions
"""""""""""" """"""""""""
Not all pair styles can be evaluated in a pairwise mode as required by Not all pair styles can be evaluated in a pairwise mode as required by
this compute. For example, 3-body and other many-body potentials, this compute. For example, three-body and other many-body potentials,
such as :doc:`Tersoff <pair_tersoff>` and such as :doc:`Tersoff <pair_tersoff>` and
:doc:`Stillinger-Weber <pair_sw>` cannot be used. :doc:`EAM <pair_eam>` :doc:`Stillinger-Weber <pair_sw>` cannot be used. :doc:`EAM <pair_eam>`
potentials will re-use previously computed embedding term contributions, potentials will re-use previously computed embedding term contributions,

View File

@ -6,7 +6,7 @@ compute gyration command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID gyration compute ID group-ID gyration
@ -23,51 +23,54 @@ Examples
Description Description
""""""""""" """""""""""
Define a computation that calculates the radius of gyration Rg of the Define a computation that calculates the radius of gyration :math:`R_g` of the
group of atoms, including all effects due to atoms passing through group of atoms, including all effects due to atoms passing through
periodic boundaries. periodic boundaries.
Rg is a measure of the size of the group of atoms, and is computed as :math:`R_g` is a measure of the size of the group of atoms, and is computed as
the square root of the Rg\^2 value in this formula the square root of the :math:`R_g^2` value in this formula
.. math:: .. math::
{R_g}^2 = \frac{1}{M} \sum_i m_i (r_i - r_{cm})^2 R_g^2 = \frac{1}{M} \sum_i m_i (r_i - r_{\text{cm}})^2
where :math:`M` is the total mass of the group, :math:`r_{cm}` is the where :math:`M` is the total mass of the group, :math:`r_{\text{cm}}` is the
center-of-mass position of the group, and the sum is over all atoms in center-of-mass position of the group, and the sum is over all atoms in
the group. the group.
A :math:`{R_g}^2` tensor, stored as a 6-element vector, is also calculated A :math:`R_g^2` tensor, stored as a 6-element vector, is also calculated
by this compute. The formula for the components of the tensor is the by this compute. The formula for the components of the tensor is the
same as the above formula, except that :math:`(r_i - r_{cm})^2` is replaced same as the above formula, except that :math:`(r_i - r_{\text{cm}})^2` is
by :math:`(r_{i,x} - r_{cm,x}) \cdot (r_{i,y} - r_{cm,y})` for the xy component, replaced by
and so on. The 6 components of the vector are ordered xx, yy, zz, xy, xz, yz. :math:`(r_{i,x} - r_{\text{cm},x}) \cdot (r_{i,y} - r_{\text{cm},y})` for the
Note that unlike the scalar :math:`R_g`, each of the 6 values of the tensor :math:`xy` component, and so on. The six components of the vector are ordered
:math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
Note that unlike the scalar :math:`R_g`, each of the six values of the tensor
is effectively a "squared" value, since the cross-terms may be negative is effectively a "squared" value, since the cross-terms may be negative
and taking a sqrt() would be invalid. and taking a square root would be invalid.
.. note:: .. note::
The coordinates of an atom contribute to :math:`R_g` in "unwrapped" form, The coordinates of an atom contribute to :math:`R_g` in "unwrapped" form,
by using the image flags associated with each atom. See the :doc:`dump custom <dump>` command for a discussion of "unwrapped" coordinates. by using the image flags associated with each atom. See the
:doc:`dump custom <dump>` command for a discussion of "unwrapped" coordinates.
See the Atoms section of the :doc:`read_data <read_data>` command for a See the Atoms section of the :doc:`read_data <read_data>` command for a
discussion of image flags and how they are set for each atom. You can discussion of image flags and how they are set for each atom. You can
reset the image flags (e.g. to 0) before invoking this compute by reset the image flags (e.g., to 0) before invoking this compute by
using the :doc:`set image <set>` command. using the :doc:`set image <set>` command.
Output info Output info
""""""""""" """""""""""
This compute calculates a global scalar (:math:`R_g`) and a global vector of This compute calculates a global scalar (:math:`R_g`) and a global vector of
length 6 (:math:`{R_g}^2` tensor), which can be accessed by indices 1-6. These length 6 (:math:`R_g^2` tensor), which can be accessed by indices 1--6. These
values can be used by any command that uses a global scalar value or values can be used by any command that uses a global scalar value or
vector values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output vector values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The scalar and vector values calculated by this compute are The scalar and vector values calculated by this compute are
"intensive". The scalar and vector values will be in distance and "intensive." The scalar and vector values will be in distance and
distance\^2 :doc:`units <units>` respectively. distance\ :math:`^2` :doc:`units <units>`, respectively.
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -6,7 +6,7 @@ compute gyration/chunk command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID gyration/chunk chunkID keyword value ... compute ID group-ID gyration/chunk chunkID keyword value ...
@ -31,28 +31,31 @@ Examples
Description Description
""""""""""" """""""""""
Define a computation that calculates the radius of gyration Rg for Define a computation that calculates the radius of gyration :math:`R_g` for
multiple chunks of atoms. multiple chunks of atoms.
In LAMMPS, chunks are collections of atoms defined by a :doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom In LAMMPS, chunks are collections of atoms defined by a
:doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom
to a single chunk (or no chunk). The ID for this command is specified to a single chunk (or no chunk). The ID for this command is specified
as chunkID. For example, a single chunk could be the atoms in a as chunkID. For example, a single chunk could be the atoms in a
molecule or atoms in a spatial bin. See the :doc:`compute chunk/atom <compute_chunk_atom>` and :doc:`Howto chunk <Howto_chunk>` molecule or atoms in a spatial bin.
See the :doc:`compute chunk/atom <compute_chunk_atom>` and
:doc:`Howto chunk <Howto_chunk>`
doc pages for details of how chunks can be defined and examples of how doc pages for details of how chunks can be defined and examples of how
they can be used to measure properties of a system. they can be used to measure properties of a system.
This compute calculates the radius of gyration Rg for each chunk, This compute calculates the radius of gyration :math:`R_g` for each chunk,
which includes all effects due to atoms passing through periodic which includes all effects due to atoms passing through periodic
boundaries. boundaries.
Rg is a measure of the size of a chunk, and is computed by this :math:`R_g` is a measure of the size of a chunk, and is computed by the
formula formula
.. math:: .. math::
{R_g}^2 = \frac{1}{M} \sum_i m_i (r_i - r_{cm})^2 R_g^2 = \frac{1}{M} \sum_i m_i (r_i - r_{\text{cm}})^2
where :math:`M` is the total mass of the chunk, :math:`r_{cm}` is where :math:`M` is the total mass of the chunk, :math:`r_{\text{cm}}` is
the center-of-mass position of the chunk, and the sum is over all atoms in the the center-of-mass position of the chunk, and the sum is over all atoms in the
chunk. chunk.
@ -64,13 +67,13 @@ thus also not contribute to this calculation. You can specify the
"all" group for this command if you simply want to include atoms with "all" group for this command if you simply want to include atoms with
non-zero chunk IDs. non-zero chunk IDs.
If the *tensor* keyword is specified, then the scalar Rg value is not If the *tensor* keyword is specified, then the scalar :math:`R_g` value is not
calculated, but an Rg tensor is instead calculated for each chunk. calculated, but an :math:`R_g` tensor is instead calculated for each chunk.
The formula for the components of the tensor is the same as the above The formula for the components of the tensor is the same as the above
formula, except that :math:`(r_i - r_{cm})^2` is replaced by formula, except that :math:`(r_i - r_{\text{cm}})^2` is replaced by
:math:`(r_{i,x} - r_{cm,x}) \cdot (r_{i,y} - r_{cm,y})` for the xy :math:`(r_{i,x} - r_{\text{cm},x}) \cdot (r_{i,y} - r_{\text{cm},y})` for the
component, and so on. The 6 components of the tensor are :math:`xy` component, and so on. The six components of the tensor are
ordered xx, yy, zz, xy, xz, yz. ordered :math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
.. note:: .. note::
@ -79,7 +82,7 @@ ordered xx, yy, zz, xy, xz, yz.
command for a discussion of "unwrapped" coordinates. command for a discussion of "unwrapped" coordinates.
See the Atoms section of the :doc:`read_data <read_data>` command for a See the Atoms section of the :doc:`read_data <read_data>` command for a
discussion of image flags and how they are set for each atom. You can discussion of image flags and how they are set for each atom. You can
reset the image flags (e.g. to 0) before invoking this compute by reset the image flags (e.g., to 0) before invoking this compute by
using the :doc:`set image <set>` command. using the :doc:`set image <set>` command.
The simplest way to output the results of the compute gyration/chunk The simplest way to output the results of the compute gyration/chunk
@ -98,8 +101,9 @@ Output info
This compute calculates a global vector if the *tensor* keyword is not This compute calculates a global vector if the *tensor* keyword is not
specified and a global array if it is. The length of the vector or specified and a global array if it is. The length of the vector or
number of rows in the array = the number of chunks *Nchunk* as number of rows in the array = the number of chunks *Nchunk* as
calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>` command. If the *tensor* keyword calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>`
is specified, the global array has 6 columns. The vector or array can command. If the *tensor* keyword is specified, the global array has six
columns. The vector or array can
be accessed by any command that uses global values from a compute as be accessed by any command that uses global values from a compute as
input. See the :doc:`Howto output <Howto_output>` page for an input. See the :doc:`Howto output <Howto_output>` page for an
overview of LAMMPS output options. overview of LAMMPS output options.

View File

@ -6,7 +6,7 @@ compute gyration/shape command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID gyration/shape compute-ID compute ID group-ID gyration/shape compute-ID
@ -28,30 +28,33 @@ Define a computation that calculates the eigenvalues of the gyration tensor of a
group of atoms and three shape parameters. The computation includes all effects group of atoms and three shape parameters. The computation includes all effects
due to atoms passing through periodic boundaries. due to atoms passing through periodic boundaries.
The three computed shape parameters are the asphericity, b, the acylindricity, c, The three computed shape parameters are the asphericity, :math:`b`,
and the relative shape anisotropy, k: the acylindricity, :math:`c`, and the relative shape anisotropy, :math:`k`,
viz.,
.. math:: .. math::
c = & l_z - 0.5(l_y+l_x) \\ b &= l_z - \frac12(l_y+l_x) \\
b = & l_y - l_x \\ c &= l_y - l_x \\
k = & \frac{3}{2} \frac{l_x^2+l_y^2+l_z^2}{(l_x+l_y+l_z)^2} - \frac{1}{2} k &= \frac{3}{2} \frac{l_x^2+l_y^2+l_z^2}{(l_x+l_y+l_z)^2} - \frac{1}{2}
where :math:`l_x` <= :math:`l_y` <= :math:`l_z` are the three eigenvalues of the gyration tensor. A general description where :math:`l_x \le l_y \le l_z` are the three eigenvalues of the gyration
of these parameters is provided in :ref:`(Mattice) <Mattice1>` while an application to polymer systems tensor. A general description of these parameters is provided in
:ref:`(Mattice) <Mattice1>` while an application to polymer systems
can be found in :ref:`(Theodorou) <Theodorou1>`. can be found in :ref:`(Theodorou) <Theodorou1>`.
The asphericity is always non-negative and zero only when the three principal The asphericity is always non-negative and zero only when the three principal
moments are equal. This zero condition is met when the distribution of particles moments are equal. This zero condition is met when the distribution of
is spherically symmetric (hence the name asphericity) but also whenever the particle particles is spherically symmetric (hence the name asphericity) but also
distribution is symmetric with respect to the three coordinate axes, e.g., whenever the particle distribution is symmetric with respect to the three
when the particles are distributed uniformly on a cube, tetrahedron or other Platonic coordinate axes (e.g., when the particles are distributed uniformly on a cube,
solid. The acylindricity is always non-negative and zero only when the two principal tetrahedron or other Platonic solid). The acylindricity is always non-negative
moments are equal. This zero condition is met when the distribution of particles is and zero only when the two principal moments are equal. This zero condition is
cylindrically symmetric (hence the name, acylindricity), but also whenever the particle met when the distribution of particles is cylindrically symmetric (hence the
distribution is symmetric with respect to the two coordinate axes, e.g., when the name, acylindricity), but also whenever the particle distribution is symmetric
particles are distributed uniformly on a regular prism. the relative shape anisotropy with respect to the two coordinate axes (e.g., when the
is bounded between zero (if all points are spherically symmetric) and one particles are distributed uniformly on a regular prism).
(if all points lie on a line). The relative shape anisotropy is bounded between zero (if all points are
spherically symmetric) and one (if all points lie on a line).
.. note:: .. note::
@ -60,22 +63,23 @@ is bounded between zero (if all points are spherically symmetric) and one
See the :doc:`dump custom <dump>` command for a discussion of "unwrapped" See the :doc:`dump custom <dump>` command for a discussion of "unwrapped"
coordinates. See the Atoms section of the :doc:`read_data <read_data>` coordinates. See the Atoms section of the :doc:`read_data <read_data>`
command for a discussion of image flags and how they are set for each command for a discussion of image flags and how they are set for each
atom. You can reset the image flags (e.g. to 0) before invoking this atom. You can reset the image flags (e.g., to 0) before invoking this
compute by using the :doc:`set image <set>` command. compute by using the :doc:`set image <set>` command.
Output info Output info
""""""""""" """""""""""
This compute calculates a global vector of This compute calculates a global vector of length 6, which can be accessed by
length 6, which can be accessed by indices 1-6. The first three values are the indices 1--6. The first three values are the eigenvalues of the gyration tensor
eigenvalues of the gyration tensor followed by the asphericity, the acylindricity followed by the asphericity, the acylindricity and the relative shape
and the relative shape anisotropy. The computed values can be used by any command anisotropy. The computed values can be used by any command that uses global
that uses global vector values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output vector values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The vector values calculated by this compute are The vector values calculated by this compute are
"intensive". The first five vector values will be in "intensive." The first five vector values will be in
distance\^2 :doc:`units <units>` while the sixth one is dimensionless. distance\ :math:`2` :doc:`units <units>` while the sixth one is dimensionless.
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -6,7 +6,7 @@ compute gyration/shape/chunk command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID gyration/shape/chunk compute-ID compute ID group-ID gyration/shape/chunk compute-ID
@ -28,28 +28,32 @@ Define a computation that calculates the eigenvalues of the gyration tensor and
three shape parameters of multiple chunks of atoms. The computation includes three shape parameters of multiple chunks of atoms. The computation includes
all effects due to atoms passing through periodic boundaries. all effects due to atoms passing through periodic boundaries.
The three computed shape parameters are the asphericity, b, the acylindricity, c, The three computed shape parameters are the asphericity, :math:`b`,
and the relative shape anisotropy, k: the acylindricity, :math:`c`, and the relative shape anisotropy, :math:`k`,
viz.,
.. math:: .. math::
c = & l_z - 0.5(l_y+l_x) \\ b &= l_z - \frac12(l_y+l_x) \\
b = & l_y - l_x \\ c &= l_y - l_x \\
k = & \frac{3}{2} \frac{l_x^2+l_y^2+l_z^2}{(l_x+l_y+l_z)^2} - \frac{1}{2} k &= \frac{3}{2} \frac{l_x^2+l_y^2+l_z^2}{(l_x+l_y+l_z)^2} - \frac{1}{2}
where :math:`l_x` <= :math:`l_y` <= :math:`l_z` are the three eigenvalues of the gyration tensor. A general description where :math:`l_x \le l_y \le l_z` are the three eigenvalues of the gyration
of these parameters is provided in :ref:`(Mattice) <Mattice2>` while an application to polymer systems tensor. A general description of these parameters is provided in
can be found in :ref:`(Theodorou) <Theodorou2>`. The asphericity is always non-negative and zero :ref:`(Mattice) <Mattice2>` while an application to polymer systems
only when the three principal moments are equal. This zero condition is met when the distribution can be found in :ref:`(Theodorou) <Theodorou2>`. The asphericity is always
of particles is spherically symmetric (hence the name asphericity) but also whenever the particle non-negative and zero only when the three principal moments are equal.
distribution is symmetric with respect to the three coordinate axes, e.g., This zero condition is met when the distribution of particles is spherically
when the particles are distributed uniformly on a cube, tetrahedron or other Platonic symmetric (hence the name asphericity) but also whenever the particle
solid. The acylindricity is always non-negative and zero only when the two principal distribution is symmetric with respect to the three coordinate axes (e.g.,
moments are equal. This zero condition is met when the distribution of particles is when the particles are distributed uniformly on a cube, tetrahedron, or other
cylindrically symmetric (hence the name, acylindricity), but also whenever the particle Platonic solid). The acylindricity is always non-negative and zero only when
distribution is symmetric with respect to the two coordinate axes, e.g., when the the two principal moments are equal. This zero condition is met when the
particles are distributed uniformly on a regular prism. the relative shape anisotropy distribution of particles is cylindrically symmetric (hence the name,
is bounded between zero (if all points are spherically symmetric) and one acylindricity), but also whenever the particle distribution is symmetric with
respect to the two coordinate axes (e.g., when the particles are distributed
uniformly on a regular prism). The relative shape anisotropy
is bounded between 0 (if all points are spherically symmetric) and 1
(if all points lie on a line). (if all points lie on a line).
The tensor keyword must be specified in the compute gyration/chunk command. The tensor keyword must be specified in the compute gyration/chunk command.
@ -61,22 +65,23 @@ The tensor keyword must be specified in the compute gyration/chunk command.
See the :doc:`dump custom <dump>` command for a discussion of "unwrapped" See the :doc:`dump custom <dump>` command for a discussion of "unwrapped"
coordinates. See the Atoms section of the :doc:`read_data <read_data>` coordinates. See the Atoms section of the :doc:`read_data <read_data>`
command for a discussion of image flags and how they are set for each command for a discussion of image flags and how they are set for each
atom. You can reset the image flags (e.g. to 0) before invoking this atom. You can reset the image flags (e.g., to 0) before invoking this
compute by using the :doc:`set image <set>` command. compute by using the :doc:`set image <set>` command.
Output info Output info
""""""""""" """""""""""
This compute calculates a global array with six columns, This compute calculates a global array with six columns,
which can be accessed by indices 1-6. The first three columns are the which can be accessed by indices 1--6. The first three columns are the
eigenvalues of the gyration tensor followed by the asphericity, the acylindricity eigenvalues of the gyration tensor followed by the asphericity, the
and the relative shape anisotropy. The computed values can be used by any command acylindricity and the relative shape anisotropy. The computed values can be
that uses global array values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output used by any command that uses global array values from a compute as input.
options. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS
output options.
The array calculated by this compute is The array calculated by this compute is
"intensive". The first five columns will be in "intensive." The first five columns will be in
distance\^2 :doc:`units <units>` while the sixth one is dimensionless. distance\ :math:`^2` :doc:`units <units>` while the sixth one is dimensionless.
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -6,7 +6,7 @@ compute heat/flux command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID heat/flux ke-ID pe-ID stress-ID compute ID group-ID heat/flux ke-ID pe-ID stress-ID
@ -28,13 +28,13 @@ Description
Define a computation that calculates the heat flux vector based on Define a computation that calculates the heat flux vector based on
contributions from atoms in the specified group. This can be used by contributions from atoms in the specified group. This can be used by
itself to measure the heat flux through a set of atoms (e.g. a region itself to measure the heat flux through a set of atoms (e.g., a region
between two thermostatted reservoirs held at different temperatures), between two thermostatted reservoirs held at different temperatures),
or to calculate a thermal conductivity using the equilibrium or to calculate a thermal conductivity using the equilibrium
Green-Kubo formalism. Green-Kubo formalism.
For other non-equilibrium ways to compute a thermal conductivity, see For other non-equilibrium ways to compute a thermal conductivity, see
the :doc:`Howto kappa <Howto_kappa>` doc page.. These include use of the :doc:`Howto kappa <Howto_kappa>` doc page. These include use of
the :doc:`fix thermal/conductivity <fix_thermal_conductivity>` command the :doc:`fix thermal/conductivity <fix_thermal_conductivity>` command
for the Muller-Plathe method. Or the :doc:`fix heat <fix_heat>` command for the Muller-Plathe method. Or the :doc:`fix heat <fix_heat>` command
which can add or subtract heat from groups of atoms. which can add or subtract heat from groups of atoms.
@ -52,12 +52,12 @@ third calculates per-atom stress (\ *stress-ID*\ ).
(or any group whose atoms are superset of the atoms in this compute's (or any group whose atoms are superset of the atoms in this compute's
group). LAMMPS does not check for this. group). LAMMPS does not check for this.
In case of two-body interactions, the heat flux is defined as: In case of two-body interactions, the heat flux :math:`\mathbf{J}` is defined as
.. math:: .. math::
\mathbf{J} &= \frac{1}{V} \left[ \sum_i e_i \mathbf{v}_i - \sum_{i} \mathbf{S}_{i} \mathbf{v}_i \right] \\ \mathbf{J} &= \frac{1}{V} \left[ \sum_i e_i \mathbf{v}_i - \sum_{i} \mathbf{S}_{i} \mathbf{v}_i \right] \\
&= \frac{1}{V} \left[ \sum_i e_i \mathbf{v}_i + \sum_{i<j} \left( \mathbf{F}_{ij} \cdot \mathbf{v}_j \right) \mathbf{r}_{ij} \right] \\ &= \frac{1}{V} \left[ \sum_i e_i \mathbf{v}_i + \sum_{i<j} \left( \mathbf{F}_{ij} \cdot \mathbf{v}_j \right) \mathbf{r}_{ij} \right] \\
&= \frac{1}{V} \left[ \sum_i e_i \mathbf{v}_i + \frac{1}{2} \sum_{i<j} \left( \mathbf{F}_{ij} \cdot \left(\mathbf{v}_i + \mathbf{v}_j \right) \right) \mathbf{r}_{ij} \right] &= \frac{1}{V} \left[ \sum_i e_i \mathbf{v}_i + \frac{1}{2} \sum_{i<j} \bigl( \mathbf{F}_{ij} \cdot \left(\mathbf{v}_i + \mathbf{v}_j \right) \bigr) \mathbf{r}_{ij} \right]
:math:`e_i` in the first term of the equation :math:`e_i` in the first term of the equation
is the per-atom energy (potential and kinetic). is the per-atom energy (potential and kinetic).
@ -68,12 +68,12 @@ See :doc:`compute stress/atom <compute_stress_atom>`
and :doc:`compute centroid/stress/atom <compute_stress_atom>` and :doc:`compute centroid/stress/atom <compute_stress_atom>`
for possible definitions of atomic stress :math:`\mathbf{S}_i` for possible definitions of atomic stress :math:`\mathbf{S}_i`
in the case of bonded and many-body interactions. in the case of bonded and many-body interactions.
The tensor multiplies :math:`\mathbf{v}_i` as a 3x3 matrix-vector multiply The tensor multiplies :math:`\mathbf{v}_i` by a :math:`3\times3` matrix
to yield a vector. to yield a vector.
Note that as discussed below, the 1/:math:`{V}` scaling factor in the Note that as discussed below, the :math:`1/V` scaling factor in the
equation for :math:`\mathbf{J}` is NOT included in the calculation performed by equation for :math:`\mathbf{J}` is **not** included in the calculation
these computes; you need to add it for a volume appropriate to the atoms performed by these computes; you need to add it for a volume appropriate to the
included in the calculation. atoms included in the calculation.
.. note:: .. note::
@ -103,7 +103,7 @@ included in the calculation.
contribution when computed via :doc:`compute stress/atom <compute_stress_atom>` contribution when computed via :doc:`compute stress/atom <compute_stress_atom>`
are highly unphysical and should not be used. are highly unphysical and should not be used.
The Green-Kubo formulas relate the ensemble average of the The Green--Kubo formulas relate the ensemble average of the
auto-correlation of the heat flux :math:`\mathbf{J}` auto-correlation of the heat flux :math:`\mathbf{J}`
to the thermal conductivity :math:`\kappa`: to the thermal conductivity :math:`\kappa`:
@ -112,17 +112,18 @@ to the thermal conductivity :math:`\kappa`:
---------- ----------
The heat flux can be output every so many timesteps (e.g. via the The heat flux can be output every so many timesteps (e.g., via the
:doc:`thermo_style custom <thermo_style>` command). Then as a :doc:`thermo_style custom <thermo_style>` command). Then as a
post-processing operation, an auto-correlation can be performed, its post-processing operation, an auto-correlation can be performed, its
integral estimated, and the Green-Kubo formula above evaluated. integral estimated, and the Green--Kubo formula above evaluated.
The :doc:`fix ave/correlate <fix_ave_correlate>` command can calculate The :doc:`fix ave/correlate <fix_ave_correlate>` command can calculate
the auto-correlation. The trap() function in the the auto-correlation. The trap() function in the
:doc:`variable <variable>` command can calculate the integral. :doc:`variable <variable>` command can calculate the integral.
An example LAMMPS input script for solid Ar is appended below. The An example LAMMPS input script for solid argon is appended below. The
result should be: average conductivity ~0.29 in W/mK. result should be an average conductivity
:math:`\approx 0.29~\mathrm{W/m \cdot K}`.
---------- ----------
@ -130,22 +131,22 @@ Output info
""""""""""" """""""""""
This compute calculates a global vector of length 6. This compute calculates a global vector of length 6.
The first 3 components are the :math:`x`, :math:`y`, :math:`z` The first three components are the :math:`x`, :math:`y`, and :math:`z`
components of the full heat flux vector, components of the full heat flux vector
i.e. (:math:`J_x`, :math:`J_y`, :math:`J_z`). (i.e., :math:`J_x`, :math:`J_y`, and :math:`J_z`).
The next 3 components are the :math:`x`, :math:`y`, :math:`z` components The next three components are the :math:`x`, :math:`y`, and :math:`z`
of just the convective portion of the flux, i.e. the components of just the convective portion of the flux (i.e., the
first term in the equation for :math:`\mathbf{J}`. first term in the equation for :math:`\mathbf{J}`).
Each component can be Each component can be accessed by indices 1--6. These values can be used by any
accessed by indices 1-6. These values can be used by any command that command that uses global vector values from a compute as input.
uses global vector values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output See the :doc:`Howto output <Howto_output>` documentation for an overview of
options. LAMMPS output options.
The vector values calculated by this compute are "extensive", meaning The vector values calculated by this compute are "extensive," meaning
they scale with the number of atoms in the simulation. They can be they scale with the number of atoms in the simulation. They can be
divided by the appropriate volume to get a flux, which would then be divided by the appropriate volume to get a flux, which would then be
an "intensive" value, meaning independent of the number of atoms in an "intensive" value, meaning independent of the number of atoms in
the simulation. Note that if the compute is "all", then the the simulation. Note that if the compute is "all," then the
appropriate volume to divide by is the simulation box volume. appropriate volume to divide by is the simulation box volume.
However, if a sub-group is used, it should be the volume containing However, if a sub-group is used, it should be the volume containing
those atoms. those atoms.
@ -172,6 +173,9 @@ none
---------- ----------
Example Input File
------------------
.. code-block:: LAMMPS .. code-block:: LAMMPS
# Sample LAMMPS input script for thermal conductivity of solid Ar # Sample LAMMPS input script for thermal conductivity of solid Ar

View File

@ -6,7 +6,7 @@ compute hexorder/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID hexorder/atom keyword values ... compute ID group-ID hexorder/atom keyword values ...
@ -102,7 +102,7 @@ Output info
This compute calculates a per-atom array with 2 columns, giving the This compute calculates a per-atom array with 2 columns, giving the
real and imaginary parts :math:`q_n`, a complex number restricted to the real and imaginary parts :math:`q_n`, a complex number restricted to the
unit disk of the complex plane i.e. :math:`Re(q_n)^2 + Im(q_n)^2 <= 1`. unit disk of the complex plane (i.e., :math:`\Re(q_n)^2 + \Im(q_n)^2 \le 1`).
These values can be accessed by any command that uses per-atom values These values can be accessed by any command that uses per-atom values
from a compute as input. See the :doc:`Howto output <Howto_output>` doc from a compute as input. See the :doc:`Howto output <Howto_output>` doc

View File

@ -6,20 +6,23 @@ compute hma command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID hma temp-ID keyword ... compute ID group-ID hma temp-ID keyword ...
* ID, group-ID are documented in :doc:`compute <compute>` command * ID, group-ID are documented in :doc:`compute <compute>` command
* hma = style name of this compute command * hma = style name of this compute command
* temp-ID = ID of fix that specifies the set temperature during canonical simulation * temp-ID = ID of fix that specifies the set temperature during canonical simulation
* keyword = *anharmonic* *u* *p Pharm* *cv* * one or more keywords or keyword/argument pairs must be appended
* keyword = *anharmonic* or *u* or *p* or *cv*
.. parsed-literal:: .. parsed-literal::
*anharmonic* = compute will return anharmonic property values *anharmonic* = compute will return anharmonic property values
*u* = compute will return potential energy *u* = compute will return potential energy
*p* = compute will return pressure. the following keyword must be the difference between the harmonic pressure and lattice pressure as described below *p* value = Pharm = compute will return pressure
Pharm = difference between the harmonic pressure and lattice pressure
as described below
*cv* = compute will return the heat capacity *cv* = compute will return the heat capacity
Examples Examples
@ -74,44 +77,48 @@ A detailed description of this method can be found in (:ref:`Moustafa <hma-Moust
.. math:: .. math::
\left< U\right>_{HMA} = \frac{d}{2} (N-1) k_B T + \left< U + \frac{1}{2} F\bullet\Delta r \right> \left< U\right>_\text{HMA} = \frac{d}{2} (N-1) k_B T + \left< U + \frac{1}{2} \vec F\cdot\Delta \vec r \right>
where :math:`N` is the number of atoms in the system, :math:`k_B` is Boltzmann's where :math:`N` is the number of atoms in the system, :math:`k_B` is Boltzmann's
constant, :math:`T` is the temperature, :math:`d` is the constant, :math:`T` is the temperature, :math:`d` is the dimensionality of the
dimensionality of the system (2 or 3 for 2d/3d), :math:`F\bullet\Delta r` is the sum of dot products of the system (2 or 3 for 2d/3d), :math:`\vec F\cdot\Delta\vec r` is the sum of dot
atomic force vectors and displacement (from lattice sites) vectors, and :math:`U` is the sum of products of the atomic force vectors and displacement (from lattice sites)
pair, bond, angle, dihedral, improper, kspace (long-range), and fix energies. vectors, and :math:`U` is the sum of pair, bond, angle, dihedral, improper,
kspace (long-range), and fix energies.
The pressure is computed by the formula: The pressure is computed by the formula:
.. math:: .. math::
\left< P\right>_{HMA} = \Delta \hat P + \left< P_{vir} + \frac{\beta \Delta \hat P - \rho}{d(N-1)} F\bullet\Delta r \right> \left< P\right>_{HMA} = \Delta \hat P + \left< P_\text{vir}
+ \frac{\beta \Delta \hat P - \rho}{d(N-1)} \vec F\cdot\Delta \vec r \right>
where :math:`\rho` is the number density of the system, :math:`\Delta \hat P` is the where :math:`\rho` is the number density of the system, :math:`\Delta \hat P`
difference between the harmonic and lattice pressure, :math:`P_{vir}` is is the difference between the harmonic and lattice pressure,
the virial pressure computed as the sum of pair, bond, angle, dihedral, :math:`P_\text{vir}` is the virial pressure computed as the sum of pair, bond,
improper, kspace (long-range), and fix contributions to the force on each angle, dihedral, improper, kspace (long-range), and fix contributions to the
atom, and :math:`k_B=1/k_B T`. Although the method will work for any value of :math:`\Delta \hat P` force on each atom, and :math:`k_B=1/k_B T`. Although the method will work for
any value of :math:`\Delta \hat P`
specified (use pressure :doc:`units <units>`), the precision of the resultant specified (use pressure :doc:`units <units>`), the precision of the resultant
pressure is sensitive to :math:`\Delta \hat P`; the precision tends to be pressure is sensitive to :math:`\Delta \hat P`; the precision tends to be
best when :math:`\Delta \hat P` is the actual the difference between the lattice best when :math:`\Delta \hat P` is the actual the difference between the
pressure and harmonic pressure. lattice pressure and harmonic pressure.
.. math:: .. math::
\left<C_V \right>_{HMA} = \frac{d}{2} (N-1) k_B + \frac{1}{k_B T^2} \left( \left< \left<C_V \right>_\text{HMA} = \frac{d}{2} (N-1) k_B
U_{HMA}^2 \right> - \left<U_{HMA}\right>^2 \right) + \frac{1}{4 T} + \frac{1}{k_B T^2} \left( \left<U_\text{HMA}^2 \right>
\left< F\bullet\Delta r + \Delta r \bullet \Phi \bullet \Delta r \right> - \left<U_\text{HMA}\right>^2 \right) + \frac{1}{4 T}
\left<\vec F\cdot\Delta\vec r + \Delta r \cdot\Phi\cdot \Delta\vec r\right>
where :math:`\Phi` is the Hessian matrix. The compute hma command where :math:`\Phi` is the Hessian matrix. The compute hma command
computes the full expression for :math:`C_V` except for the computes the full expression for :math:`C_V` except for the
:math:`\left<U_{HMA}^2\right>^2` in the variance term, which can be obtained by :math:`\left<U_\text{HMA}\right>^2` in the variance term, which can be obtained
passing the *u* keyword; you must add this extra contribution to the :math:`C_V` by passing the *u* keyword; you must add this extra contribution to the
value reported by this compute. The variance term can cause significant :math:`C_V` value reported by this compute. The variance term can cause
round-off error when computing :math:`C_V`. To address this, the *anharmonic* significant round-off error when computing :math:`C_V`. To address this, the
keyword can be passed and/or the output format can be specified with more *anharmonic* keyword can be passed and/or the output format can be specified
digits. with more digits.
.. code-block:: LAMMPS .. code-block:: LAMMPS
@ -124,8 +131,10 @@ When using this keyword, the compute must be first active (it must be included
via a :doc:`thermo_style custom <thermo_style>` command) while the atoms are via a :doc:`thermo_style custom <thermo_style>` command) while the atoms are
still at their lattice sites (before equilibration). still at their lattice sites (before equilibration).
The temp-ID specified with compute hma command should be same as the fix-ID of Nose-Hoover (:doc:`fix nvt <fix_nh>`) or The temp-ID specified with compute hma command should be same as the fix-ID of
Berendsen (:doc:`fix temp/berendsen <fix_temp_berendsen>`) thermostat used for the simulation. While using this command, Langevin thermostat the Nose--Hoover (:doc:`fix nvt <fix_nh>`) or
Berendsen (:doc:`fix temp/berendsen <fix_temp_berendsen>`) thermostat used for
the simulation. While using this command, the Langevin thermostat
(:doc:`fix langevin <fix_langevin>`) (:doc:`fix langevin <fix_langevin>`)
should be avoided as its extra forces interfere with the HMA implementation. should be avoided as its extra forces interfere with the HMA implementation.
@ -160,10 +169,10 @@ Output info
This compute calculates a global vector that includes the n properties This compute calculates a global vector that includes the n properties
requested as arguments to the command (the potential energy, pressure and/or heat requested as arguments to the command (the potential energy, pressure and/or heat
capacity). The elements of the vector can be accessed by indices 1-n by any capacity). The elements of the vector can be accessed by indices 1--n by any
command that uses global vector values as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output options. command that uses global vector values as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output options.
The vector values calculated by this compute are "extensive". The The vector values calculated by this compute are "extensive." The
scalar value will be in energy :doc:`units <units>`. scalar value will be in energy :doc:`units <units>`.
Restrictions Restrictions
@ -180,7 +189,7 @@ Related commands
:doc:`compute pe <compute_pe>`, :doc:`compute pressure <compute_pressure>` :doc:`compute pe <compute_pe>`, :doc:`compute pressure <compute_pressure>`
:doc:`dynamical matrix <dynamical_matrix>` provides a finite difference :doc:`dynamical matrix <dynamical_matrix>` provides a finite difference
formulation of the hessian provided by Pair's single_hessian, which is used by formulation of the Hessian provided by Pair's single_hessian, which is used by
this compute. this compute.
Default Default

View File

@ -6,7 +6,7 @@ compute improper command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID improper compute ID group-ID improper
@ -34,11 +34,13 @@ total energy contributed by one or more of the hybrid sub-styles.
Output info Output info
""""""""""" """""""""""
This compute calculates a global vector of length N where N is the This compute calculates a global vector of length :math:`N`, where :math:`N` is
number of sub_styles defined by the :doc:`improper_style hybrid <improper_style>` command. which can be accessed by indices the number of sub_styles defined by the
1-N. These values can be used by any command that uses global scalar :doc:`improper_style hybrid <improper_style>` command.
or vector values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output These styles can be accessed by the indices 1 through :math:`N`.
options. These values can be used by any command that uses global scalar or vector
values from a compute as input. See the :doc:`Howto output <Howto_output>`
page for an overview of LAMMPS output options.
The vector values are "extensive" and will be in energy The vector values are "extensive" and will be in energy
:doc:`units <units>`. :doc:`units <units>`.

View File

@ -6,7 +6,7 @@ compute improper/local command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID improper/local value1 value2 ... compute ID group-ID improper/local value1 value2 ...
@ -40,7 +40,7 @@ the individual improper styles listed on
The local data stored by this command is generated by looping over all The local data stored by this command is generated by looping over all
the atoms owned on a processor and their impropers. An improper will the atoms owned on a processor and their impropers. An improper will
only be included if all 4 atoms in the improper are in the specified only be included if all four atoms in the improper are in the specified
compute group. compute group.
Note that as atoms migrate from processor to processor, there will be Note that as atoms migrate from processor to processor, there will be
@ -69,7 +69,8 @@ array is the number of impropers. If a single keyword is specified, a
local vector is produced. If two or more keywords are specified, a local vector is produced. If two or more keywords are specified, a
local array is produced where the number of columns = the number of local array is produced where the number of columns = the number of
keywords. The vector or array can be accessed by any command that keywords. The vector or array can be accessed by any command that
uses local values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output uses local values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The output for *chi* will be in degrees. The output for *chi* will be in degrees.

View File

@ -6,7 +6,7 @@ compute inertia/chunk command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID inertia/chunk chunkID compute ID group-ID inertia/chunk chunkID
@ -27,16 +27,20 @@ Description
Define a computation that calculates the inertia tensor for multiple Define a computation that calculates the inertia tensor for multiple
chunks of atoms. chunks of atoms.
In LAMMPS, chunks are collections of atoms defined by a :doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom In LAMMPS, chunks are collections of atoms defined by a
:doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom
to a single chunk (or no chunk). The ID for this command is specified to a single chunk (or no chunk). The ID for this command is specified
as chunkID. For example, a single chunk could be the atoms in a as chunkID. For example, a single chunk could be the atoms in a
molecule or atoms in a spatial bin. See the :doc:`compute chunk/atom <compute_chunk_atom>` and :doc:`Howto chunk <Howto_chunk>` molecule or atoms in a spatial bin. See the
:doc:`compute chunk/atom <compute_chunk_atom>` and
:doc:`Howto chunk <Howto_chunk>`
doc pages for details of how chunks can be defined and examples of how doc pages for details of how chunks can be defined and examples of how
they can be used to measure properties of a system. they can be used to measure properties of a system.
This compute calculates the 6 components of the symmetric inertia This compute calculates the six components of the symmetric inertia
tensor for each chunk, ordered Ixx,Iyy,Izz,Ixy,Iyz,Ixz. The tensor for each chunk, ordered
calculation includes all effects due to atoms passing through periodic :math:`I_{xx},I_{yy},I_{zz},I_{xy},I_{yz},I_{xz}`.
The calculation includes all effects due to atoms passing through periodic
boundaries. boundaries.
Note that only atoms in the specified group contribute to the Note that only atoms in the specified group contribute to the
@ -55,7 +59,8 @@ non-zero chunk IDs.
of "unwrapped" coordinates. See the Atoms section of the of "unwrapped" coordinates. See the Atoms section of the
:doc:`read_data <read_data>` command for a discussion of image flags and :doc:`read_data <read_data>` command for a discussion of image flags and
how they are set for each atom. You can reset the image flags how they are set for each atom. You can reset the image flags
(e.g. to 0) before invoking this compute by using the :doc:`set image <set>` command. (e.g., to 0) before invoking this compute by using the
:doc:`set image <set>` command.
The simplest way to output the results of the compute inertia/chunk The simplest way to output the results of the compute inertia/chunk
calculation to a file is to use the :doc:`fix ave/time <fix_ave_time>` calculation to a file is to use the :doc:`fix ave/time <fix_ave_time>`
@ -71,14 +76,16 @@ Output info
""""""""""" """""""""""
This compute calculates a global array where the number of rows = the This compute calculates a global array where the number of rows = the
number of chunks *Nchunk* as calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>` command. The number of columns = number of chunks *Nchunk* as calculated by the specified
6 for the 6 components of the inertia tensor for each chunk, ordered :doc:`compute chunk/atom <compute_chunk_atom>` command.
as listed above. These values can be accessed by any command that The number of columns is 6, one for each of the 6 components of the inertia
uses global array values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output tensor for each chunk, ordered as listed above. These values can be accessed
by any command that uses global array values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The array values are "intensive". The array values will be in The array values are "intensive." The array values will be in
mass\*distance\^2 :doc:`units <units>`. mass\*distance\ :math:`^2` :doc:`units <units>`.
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -6,7 +6,7 @@ compute ke command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID ke compute ID group-ID ke
@ -27,7 +27,8 @@ Define a computation that calculates the translational kinetic energy
of a group of particles. of a group of particles.
The kinetic energy of each particle is computed as :math:`\frac{1}{2} m The kinetic energy of each particle is computed as :math:`\frac{1}{2} m
v^2`, where *m* and *v* are the mass and velocity of the particle. v^2`, where *m* and *v* are the mass and velocity of the particle,
respectively.
There is a subtle difference between the quantity calculated by this There is a subtle difference between the quantity calculated by this
compute and the kinetic energy calculated by the *ke* or *etotal* compute and the kinetic energy calculated by the *ke* or *etotal*
@ -38,10 +39,10 @@ formula above. For thermodynamic output, the *ke* keyword infers
kinetic energy from the temperature of the system with kinetic energy from the temperature of the system with
:math:`\frac{1}{2} k_B T` of energy for each degree of freedom. For the :math:`\frac{1}{2} k_B T` of energy for each degree of freedom. For the
default temperature computation via the :doc:`compute temp default temperature computation via the :doc:`compute temp
<compute_temp>` command, these are the same. But different computes <compute_temp>` command, these are the same.
that calculate temperature can subtract out different non-thermal However, different computes that calculate temperature can subtract out
components of velocity and/or include different degrees of freedom different non-thermal components of velocity and/or include different degrees
(translational, rotational, etc). of freedom (translational, rotational, etc.).
Output info Output info
""""""""""" """""""""""
@ -51,7 +52,7 @@ can be used by any command that uses a global scalar value from a
compute as input. See the :doc:`Howto output <Howto_output>` doc page compute as input. See the :doc:`Howto output <Howto_output>` doc page
for an overview of LAMMPS output options. for an overview of LAMMPS output options.
The scalar value calculated by this compute is "extensive". The The scalar value calculated by this compute is "extensive." The
scalar value will be in energy :doc:`units <units>`. scalar value will be in energy :doc:`units <units>`.
Restrictions Restrictions

View File

@ -6,7 +6,7 @@ compute ke/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID ke/atom compute ID group-ID ke/atom
@ -26,8 +26,8 @@ Description
Define a computation that calculates the per-atom translational Define a computation that calculates the per-atom translational
kinetic energy for each atom in a group. kinetic energy for each atom in a group.
The kinetic energy is simply 1/2 m v\^2, where m is the mass and v is The kinetic energy is simply :math:`\frac12 m v^2`, where :math:`m` is the mass
the velocity of each atom. and :math:`v` is the velocity of each atom.
The value of the kinetic energy will be 0.0 for atoms not in the The value of the kinetic energy will be 0.0 for atoms not in the
specified compute group. specified compute group.

View File

@ -6,7 +6,7 @@ compute ke/atom/eff command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID ke/atom/eff compute ID group-ID ke/atom/eff

View File

@ -6,7 +6,7 @@ compute ke/eff command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID ke/eff compute ID group-ID ke/eff
@ -29,9 +29,9 @@ group of eFF particles (nuclei and electrons), as modeled with the
The kinetic energy for each nucleus is computed as :math:`\frac{1}{2} m The kinetic energy for each nucleus is computed as :math:`\frac{1}{2} m
v^2` and the kinetic energy for each electron is computed as v^2` and the kinetic energy for each electron is computed as
:math:`\frac{1}{2}(m_e v^2 + \frac{3}{4} m_e s^2)`, where *m* :math:`\frac{1}{2}(m_e v^2 + \frac{3}{4} m_e s^2)`, where :math:`m`
corresponds to the nuclear mass, :math:`m_e` to the electron mass, *v* corresponds to the nuclear mass, :math:`m_e` to the electron mass, :math:`v`
to the translational velocity of each particle, and *s* to the radial to the translational velocity of each particle, and :math:`s` to the radial
velocity of the electron, respectively. velocity of the electron, respectively.
There is a subtle difference between the quantity calculated by this There is a subtle difference between the quantity calculated by this

View File

@ -6,7 +6,7 @@ compute ke/rigid command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID ke/rigid fix-ID compute ID group-ID ke/rigid fix-ID
@ -25,11 +25,13 @@ Description
""""""""""" """""""""""
Define a computation that calculates the translational kinetic energy Define a computation that calculates the translational kinetic energy
of a collection of rigid bodies, as defined by one of the :doc:`fix rigid <fix_rigid>` command variants. of a collection of rigid bodies, as defined by one of the
:doc:`fix rigid <fix_rigid>` command variants.
The kinetic energy of each rigid body is computed as 1/2 M Vcm\^2, The kinetic energy of each rigid body is computed as
where M is the total mass of the rigid body, and Vcm is its :math:`\frac12 M V_\text{cm}^2`,
center-of-mass velocity. where :math:`M` is the total mass of the rigid body, and :math:`V_\text{cm}`
is its center-of-mass velocity.
The *fix-ID* should be the ID of one of the :doc:`fix rigid <fix_rigid>` The *fix-ID* should be the ID of one of the :doc:`fix rigid <fix_rigid>`
commands which defines the rigid bodies. The group specified in the commands which defines the rigid bodies. The group specified in the
@ -42,10 +44,11 @@ Output info
This compute calculates a global scalar (the summed KE of all the This compute calculates a global scalar (the summed KE of all the
rigid bodies). This value can be used by any command that uses a rigid bodies). This value can be used by any command that uses a
global scalar value from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output global scalar value from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The scalar value calculated by this compute is "extensive". The The scalar value calculated by this compute is "extensive." The
scalar value will be in energy :doc:`units <units>`. scalar value will be in energy :doc:`units <units>`.
Restrictions Restrictions

View File

@ -6,30 +6,29 @@ compute mesont command
Syntax Syntax
"""""" """"""
.. code-block:: LAMMPS
.. parsed-literal:: compute ID group-ID mesont style
compute ID group-ID mesont mode
* ID, group-ID are documented in :doc:`compute <compute>` command * ID, group-ID are documented in :doc:`compute <compute>` command
* mesont = style name of the compute command * mesont = style name of the compute command
* mode = one of estretch, ebend, etube (see details below) * style = *estretch* or *ebend* or *etube*
Examples Examples
"""""""" """"""""
.. parsed-literal:: .. code-block:: LAMMPS
compute 1 all mesont estretch compute 1 all mesont estretch
Description Description
""""""""""" """""""""""
These computes define computations for the stretching (estretch), bending These computes define computations for the stretching (*estretch*), bending
(ebend), and intertube (etube) per-node (atom) and total energies. The (*ebend*), and intertube (*etube*) per-node (atom) and total energies. The
evaluated value is selected by a parameter passed to the compute: estretch, evaluated value is selected by the style parameter passed to the compute
ebend, etube. (*estretch*, *ebend*,or *etube*).
Output info Output info
""""""""""" """""""""""

View File

@ -36,10 +36,10 @@ Description
""""""""""" """""""""""
Compute style *mliap* provides a general interface to the gradient Compute style *mliap* provides a general interface to the gradient
of machine-learning interatomic potentials w.r.t. model parameters. of machine-learning interatomic potentials with respect to model parameters.
It is used primarily for calculating the gradient of energy, force, and It is used primarily for calculating the gradient of energy, force, and
stress components w.r.t. model parameters, which is useful when training stress components with respect to model parameters, which is useful when
:doc:`mliap pair_style <pair_mliap>` models to match target data. training :doc:`mliap pair_style <pair_mliap>` models to match target data.
It provides separate It provides separate
definitions of the interatomic potential functional form (*model*) definitions of the interatomic potential functional form (*model*)
and the geometric quantities that characterize the atomic positions and the geometric quantities that characterize the atomic positions
@ -58,8 +58,8 @@ The compute *mliap* command must be followed by two keywords
The *model* keyword is followed by the model style (*linear*, The *model* keyword is followed by the model style (*linear*,
*quadratic* or *mliappy*). The *mliappy* model is only available if *quadratic* or *mliappy*). The *mliappy* model is only available if
LAMMPS is built with the *mliappy* python module. There are LAMMPS is built with the *mliappy* Python module. There are
:ref:`specific installation instructions <mliap>` for that. :ref:`specific installation instructions <mliap>` for that module.
The *descriptor* keyword is followed by a descriptor style, and The *descriptor* keyword is followed by a descriptor style, and
additional arguments. The compute currently supports two descriptor additional arguments. The compute currently supports two descriptor
@ -79,13 +79,13 @@ described in detail there.
must match the value of *nelems* in the descriptor file. must match the value of *nelems* in the descriptor file.
Compute *mliap* calculates a global array containing gradient information. Compute *mliap* calculates a global array containing gradient information.
The number of columns in the array is :math:`nelems \times nparams + 1`. The number of columns in the array is *nelems* :math:`\times` *nparams* + 1.
The first row of the array contain the derivative of potential energy w.r.t. to The first row of the array contain the derivative of potential energy with
each parameter and each element. The last six rows respect to. to each parameter and each element. The last six rows
of the array contain the corresponding derivatives of the of the array contain the corresponding derivatives of the
virial stress tensor, listed in Voigt notation: *pxx*, *pyy*, *pzz*, virial stress tensor, listed in Voigt notation: *pxx*, *pyy*, *pzz*,
*pyz*, *pxz*, *pxy*. In between the energy and stress rows are *pyz*, *pxz*, and *pxy*. In between the energy and stress rows are
the 3\*\ *N* rows containing the derivatives of the force components. the :math:`3N` rows containing the derivatives of the force components.
See section below on output for a detailed description of how See section below on output for a detailed description of how
rows and columns are ordered. rows and columns are ordered.
@ -107,19 +107,19 @@ layout in the global array.
The optional keyword *gradgradflag* controls how the force The optional keyword *gradgradflag* controls how the force
gradient is calculated. A value of 1 requires that the model provide gradient is calculated. A value of 1 requires that the model provide
the matrix of double gradients of energy w.r.t. both parameters the matrix of double gradients of energy with respect to both parameters
and descriptors. For the linear and quadratic models this matrix is and descriptors. For the linear and quadratic models this matrix is
sparse and so is easily calculated and stored. For other models, this sparse and so is easily calculated and stored. For other models, this
matrix may be prohibitively expensive to calculate and store. matrix may be prohibitively expensive to calculate and store.
A value of 0 requires that the descriptor provide the derivative A value of 0 requires that the descriptor provide the derivative
of the descriptors w.r.t. the position of every neighbor atom. of the descriptors with respect to the position of every neighbor atom.
This is not optimal for linear and quadratic models, but may be This is not optimal for linear and quadratic models, but may be
a better choice for more complex models. a better choice for more complex models.
Atoms not in the group do not contribute to this compute. Atoms not in the group do not contribute to this compute.
Neighbor atoms not in the group do not contribute to this compute. Neighbor atoms not in the group do not contribute to this compute.
The neighbor list needed to compute this quantity is constructed each The neighbor list needed to compute this quantity is constructed each
time the calculation is performed (i.e. each time a snapshot of atoms time the calculation is performed (i.e., each time a snapshot of atoms
is dumped). Thus it can be inefficient to compute/dump this quantity is dumped). Thus it can be inefficient to compute/dump this quantity
too frequently. too frequently.
@ -144,17 +144,20 @@ too frequently.
Output info Output info
""""""""""" """""""""""
Compute *mliap* evaluates a global array. Compute *mliap* evaluates a global array. The columns are arranged into
The columns are arranged into
*nelems* blocks, listed in order of element *I*\ . Each block *nelems* blocks, listed in order of element *I*\ . Each block
contains one column for each of the *nparams* model parameters. contains one column for each of the *nparams* model parameters.
A final column contains the corresponding energy, force component A final column contains the corresponding energy, force component
on an atom, or virial stress component. The rows of the array appear on an atom, or virial stress component. The rows of the array appear
in the following order: in the following order:
* 1 row: Derivatives of potential energy w.r.t. each parameter of each element. * 1 row: Derivatives of potential energy with respect to each parameter of each element.
* 3\*\ *N* rows: Derivatives of force components. x, y, and z components of force on atom *i* appearing in consecutive rows. The atoms are sorted based on atom ID. * :math:`3N` rows: Derivatives of force components; the *x*, *y*, and *z*
* 6 rows: Derivatives of virial stress tensor w.r.t. each parameter of each element. The ordering of the rows follows Voigt notation: *pxx*, *pyy*, *pzz*, *pyz*, *pxz*, *pxy*. components of the force on atom *i* appear in consecutive rows. The atoms are
sorted based on atom ID.
* 6 rows: Derivatives of the virial stress tensor with respect to each
parameter of each element. The ordering of the rows follows Voigt notation:
*pxx*, *pyy*, *pzz*, *pyz*, *pxz*, *pxy*.
These values can be accessed by any command that uses a global array These values can be accessed by any command that uses a global array
from a compute as input. See the :doc:`Howto output <Howto_output>` doc from a compute as input. See the :doc:`Howto output <Howto_output>` doc

View File

@ -37,24 +37,27 @@ Description
Modify one or more parameters of a previously defined compute. Not Modify one or more parameters of a previously defined compute. Not
all compute styles support all parameters. all compute styles support all parameters.
The *extra/dof* or *extra* keyword refers to how many The *extra/dof* or *extra* keyword refers to how many degrees of freedom are
degrees-of-freedom are subtracted (typically from 3N) as a normalizing subtracted (typically from :math:`3N`) as a normalizing
factor in a temperature computation. Only computes that compute a factor in a temperature computation. Only computes that compute a
temperature use this option. The default is 2 or 3 for :doc:`2d or 3d systems <dimension>` which is a correction factor for an ensemble temperature use this option. The default is 2 or 3 for
of velocities with zero total linear momentum. For compute :doc:`2d or 3d systems <dimension>`, which is a correction factor for an
ensemble of velocities with zero total linear momentum. For compute
temp/partial, if one or more velocity components are excluded, the temp/partial, if one or more velocity components are excluded, the
value used for *extra* is scaled accordingly. You can use a negative value used for *extra* is scaled accordingly. You can use a negative
number for the *extra* parameter if you need to add number for the *extra* parameter if you need to add
degrees-of-freedom. See the :doc:`compute temp/asphere <compute_temp_asphere>` command for an example. degrees-of-freedom. See the :doc:`compute temp/asphere <compute_temp_asphere>` command for an example.
The *dynamic/dof* or *dynamic* keyword determines whether the number The *dynamic/dof* or *dynamic* keyword determines whether the number
of atoms N in the compute group and their associated degrees of of atoms :math:`N` in the compute group and their associated degrees of
freedom are re-computed each time a temperature is computed. Only freedom (DOF) are re-computed each time a temperature is computed. Only
compute styles that calculate a temperature use this option. By compute styles that calculate a temperature use this option. By
default, N and their DOF are assumed to be constant. If you are default, :math:`N` and their DOF are assumed to be constant. If you are
adding atoms or molecules to the system (see the :doc:`fix pour <fix_pour>`, :doc:`fix deposit <fix_deposit>`, and :doc:`fix gcmc <fix_gcmc>` commands) or expect atoms or molecules to be lost adding atoms or molecules to the system (see the :doc:`fix pour <fix_pour>`,
(e.g. due to exiting the simulation box or via :doc:`fix evaporate <fix_evaporate>`), then this option should be used to :doc:`fix deposit <fix_deposit>`, and :doc:`fix gcmc <fix_gcmc>` commands) or
insure the temperature is correctly normalized. expect atoms or molecules to be lost (e.g., due to exiting the simulation box
or via :doc:`fix evaporate <fix_evaporate>`), then this option should be used
to ensure the temperature is correctly normalized.
.. note:: .. note::
@ -75,4 +78,4 @@ Default
""""""" """""""
The option defaults are extra/dof = 2 or 3 for 2d or 3d systems and The option defaults are extra/dof = 2 or 3 for 2d or 3d systems and
dynamic/dof = no. dynamic/dof = *no*.

View File

@ -6,7 +6,7 @@ compute momentum command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID momentum compute ID group-ID momentum
@ -24,7 +24,8 @@ Description
""""""""""" """""""""""
Define a computation that calculates the translational momentum *p* Define a computation that calculates the translational momentum *p*
of a group of particles. It is computed as the sum :math:`\vec{p} = \sum_i m_i \cdot \vec{v}_i` of a group of particles. It is computed as the sum
:math:`\vec{p} = \sum_i m_i \cdot \vec{v}_i`
over all particles in the compute group, where *m* and *v* are over all particles in the compute group, where *m* and *v* are
the mass and velocity vector of the particle, respectively. the mass and velocity vector of the particle, respectively.
@ -36,7 +37,7 @@ length 3. This value can be used by any command that uses a global
vector value from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output vector value from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The vector value calculated by this compute is "extensive". The vector The vector value calculated by this compute is "extensive." The vector
value will be in mass\*velocity :doc:`units <units>`. value will be in mass\*velocity :doc:`units <units>`.
Restrictions Restrictions

View File

@ -6,7 +6,7 @@ compute msd command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID msd keyword values ... compute ID group-ID msd keyword values ...
@ -34,12 +34,13 @@ Description
Define a computation that calculates the mean-squared displacement Define a computation that calculates the mean-squared displacement
(MSD) of the group of atoms, including all effects due to atoms (MSD) of the group of atoms, including all effects due to atoms
passing through periodic boundaries. For computation of the non-Gaussian passing through periodic boundaries. For computation of the non-Gaussian
parameter of mean-squared displacement, see the :doc:`compute msd/nongauss <compute_msd_nongauss>` command. parameter of mean-squared displacement, see the
:doc:`compute msd/nongauss <compute_msd_nongauss>` command.
A vector of four quantities is calculated by this compute. The first 3 A vector of four quantities is calculated by this compute. The first three
elements of the vector are the squared dx,dy,dz displacements, summed elements of the vector are the squared *dx*, *dy*, and *dz* displacements,
and averaged over atoms in the group. The fourth element is the total summed and averaged over atoms in the group. The fourth element is the total
squared displacement, i.e. (dx\*dx + dy\*dy + dz\*dz), summed and squared displacement (i.e., :math:`dx^2 + dy^2 + dz^2`), summed and
averaged over atoms in the group. averaged over atoms in the group.
The slope of the mean-squared displacement (MSD) versus time is The slope of the mean-squared displacement (MSD) versus time is
@ -100,12 +101,12 @@ Output info
""""""""""" """""""""""
This compute calculates a global vector of length 4, which can be This compute calculates a global vector of length 4, which can be
accessed by indices 1-4 by any command that uses global vector values accessed by indices 1--4 by any command that uses global vector values
from a compute as input. See the :doc:`Howto output <Howto_output>` doc from a compute as input. See the :doc:`Howto output <Howto_output>` doc
page for an overview of LAMMPS output options. page for an overview of LAMMPS output options.
The vector values are "intensive". The vector values will be in The vector values are "intensive." The vector values will be in
distance\^2 :doc:`units <units>`. distance\ :math:`^2` :doc:`units <units>`.
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -6,7 +6,7 @@ compute msd/chunk command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID msd/chunk chunkID compute ID group-ID msd/chunk chunkID
@ -27,19 +27,21 @@ Description
Define a computation that calculates the mean-squared displacement Define a computation that calculates the mean-squared displacement
(MSD) for multiple chunks of atoms. (MSD) for multiple chunks of atoms.
In LAMMPS, chunks are collections of atoms defined by a :doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom In LAMMPS, chunks are collections of atoms defined by a
:doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom
to a single chunk (or no chunk). The ID for this command is specified to a single chunk (or no chunk). The ID for this command is specified
as chunkID. For example, a single chunk could be the atoms in a as chunkID. For example, a single chunk could be the atoms in a
molecule or atoms in a spatial bin. See the :doc:`compute chunk/atom <compute_chunk_atom>` and :doc:`Howto chunk <Howto_chunk>` molecule or atoms in a spatial bin. See the
:doc:`compute chunk/atom <compute_chunk_atom>` and
:doc:`Howto chunk <Howto_chunk>`
doc pages for details of how chunks can be defined and examples of how doc pages for details of how chunks can be defined and examples of how
they can be used to measure properties of a system. they can be used to measure properties of a system.
Four quantities are calculated by this compute for each chunk. The Four quantities are calculated by this compute for each chunk. The
first 3 quantities are the squared dx,dy,dz displacements of the first 3 quantities are the squared *dx*, *dy*, and *dz* displacements of the
center-of-mass. The fourth component is the total squared displacement, center-of-mass. The fourth component is the total squared displacement
i.e. (dx\*dx + dy\*dy + dz\*dz) of the center-of-mass. These (i.e., :math:`dx^2 + dy^2 + dz^2`) of the center-of-mass. These calculations
calculations include all effects due to atoms passing through periodic include all effects due to atoms passing through periodic boundaries.
boundaries.
Note that only atoms in the specified group contribute to the Note that only atoms in the specified group contribute to the
calculation. The :doc:`compute chunk/atom <compute_chunk_atom>` command calculation. The :doc:`compute chunk/atom <compute_chunk_atom>` command
@ -58,12 +60,14 @@ compute command was first invoked.
.. note:: .. note::
The number of chunks *Nchunk* calculated by the :doc:`compute chunk/atom <compute_chunk_atom>` command must remain constant each The number of chunks *Nchunk* calculated by the
time this compute is invoked, so that the displacement for each chunk :doc:`compute chunk/atom <compute_chunk_atom>` command must remain constant
each time this compute is invoked, so that the displacement for each chunk
from its original position can be computed consistently. If *Nchunk* from its original position can be computed consistently. If *Nchunk*
does not remain constant, an error will be generated. If needed, you does not remain constant, an error will be generated. If needed, you
can enforce a constant *Nchunk* by using the *nchunk once* or *ids can enforce a constant *Nchunk* by using the *nchunk once* or *ids once*
once* options when specifying the :doc:`compute chunk/atom <compute_chunk_atom>` command. options when specifying the :doc:`compute chunk/atom <compute_chunk_atom>`
command.
.. note:: .. note::
@ -84,7 +88,8 @@ compute command was first invoked.
"unwrapped" coordinates. See the Atoms section of the "unwrapped" coordinates. See the Atoms section of the
:doc:`read_data <read_data>` command for a discussion of image flags and :doc:`read_data <read_data>` command for a discussion of image flags and
how they are set for each atom. You can reset the image flags how they are set for each atom. You can reset the image flags
(e.g. to 0) before invoking this compute by using the :doc:`set image <set>` command. (e.g., to 0) before invoking this compute by using the
:doc:`set image <set>` command.
.. note:: .. note::
@ -109,14 +114,15 @@ Output info
""""""""""" """""""""""
This compute calculates a global array where the number of rows = the This compute calculates a global array where the number of rows = the
number of chunks *Nchunk* as calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>` command. The number of columns = number of chunks *Nchunk* as calculated by the specified
4 for dx,dy,dz and the total displacement. These values can be :doc:`compute chunk/atom <compute_chunk_atom>` command.
accessed by any command that uses global array values from a compute The number of columns = 4 for *dx*, *dy*, *dz*, and the total displacement.
as input. See the :doc:`Howto output <Howto_output>` page for an These values can be accessed by any command that uses global array values from
a compute as input. See the :doc:`Howto output <Howto_output>` page for an
overview of LAMMPS output options. overview of LAMMPS output options.
The array values are "intensive". The array values will be in The array values are "intensive." The array values will be in
distance\^2 :doc:`units <units>`. distance\ :math:`^2` :doc:`units <units>`.
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -6,7 +6,7 @@ compute msd/nongauss command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID msd/nongauss keyword values ... compute ID group-ID msd/nongauss keyword values ...
@ -35,21 +35,21 @@ Define a computation that calculates the mean-squared displacement
including all effects due to atoms passing through periodic boundaries. including all effects due to atoms passing through periodic boundaries.
A vector of three quantities is calculated by this compute. The first A vector of three quantities is calculated by this compute. The first
element of the vector is the total squared dx,dy,dz displacements element of the vector is the total squared displacement,
drsquared = (dx\*dx + dy\*dy + dz\*dz) of atoms, and the second is the :math:`dr^2 = dx^2 + dy^2 + dz^2`, of the atoms, and the second is the
fourth power of these displacements drfourth = (dx\*dx + dy\*dy + fourth power of these displacements, :math:`dr^4 = (dx^2 + dy^2 + dz^2)^2`,
dz\*dz)\*(dx\*dx + dy\*dy + dz\*dz), summed and averaged over atoms in the summed and averaged over atoms in the group. The third component is the
group. The third component is the nonGaussian diffusion parameter NGP = non-Gaussian diffusion parameter NGP,
3\*drfourth/(5\*drsquared\*drsquared), i.e.
.. math:: .. math::
NGP(t) = 3<(r(t)-r(0))^4>/(5<(r(t)-r(0))^2>^2) - 1 \text{NGP}(t) = \frac{3\left\langle(r(t)-r(0))^4\right\rangle}
{5\left\langle(r(t)-r(0))^2\right\rangle^2} - 1.
The NGP is a commonly used quantity in studies of dynamical The NGP is a commonly used quantity in studies of dynamical
heterogeneity. Its minimum theoretical value (-0.4) occurs when all heterogeneity. Its minimum theoretical value :math:`(-0.4)` occurs when all
atoms have the same displacement magnitude. NGP=0 for Brownian atoms have the same displacement magnitude. :math:`\text{NGP}=0` for Brownian
diffusion, while NGP > 0 when some mobile atoms move faster than diffusion, while :math:`\text{NGP} > 0` when some mobile atoms move faster than
others. others.
If the *com* option is set to *yes* then the effect of any drift in If the *com* option is set to *yes* then the effect of any drift in
@ -63,13 +63,13 @@ Output info
""""""""""" """""""""""
This compute calculates a global vector of length 3, which can be This compute calculates a global vector of length 3, which can be
accessed by indices 1-3 by any command that uses global vector values accessed by indices 1--3 by any command that uses global vector values
from a compute as input. See the :doc:`Howto output <Howto_output>` doc from a compute as input. See the :doc:`Howto output <Howto_output>` doc
page for an overview of LAMMPS output options. page for an overview of LAMMPS output options.
The vector values are "intensive". The first vector value will be in The vector values are "intensive." The first vector value will be in
distance\^2 :doc:`units <units>`, the second is in distance\^4 units, and distance\ :math:`^2` :doc:`units <units>`, the second is in
the third is dimensionless. distance\ :math:`^4` units, and the third is dimensionless.
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -6,7 +6,7 @@ compute nbond/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID nbond/atom compute ID group-ID nbond/atom

View File

@ -6,7 +6,7 @@ compute omega/chunk command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID omega/chunk chunkID compute ID group-ID omega/chunk chunkID
@ -27,18 +27,23 @@ Description
Define a computation that calculates the angular velocity (omega) of Define a computation that calculates the angular velocity (omega) of
multiple chunks of atoms. multiple chunks of atoms.
In LAMMPS, chunks are collections of atoms defined by a :doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom In LAMMPS, chunks are collections of atoms defined by a
:doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom
to a single chunk (or no chunk). The ID for this command is specified to a single chunk (or no chunk). The ID for this command is specified
as chunkID. For example, a single chunk could be the atoms in a as chunkID. For example, a single chunk could be the atoms in a
molecule or atoms in a spatial bin. See the :doc:`compute chunk/atom <compute_chunk_atom>` and :doc:`Howto chunk <Howto_chunk>` molecule or atoms in a spatial bin. See the
:doc:`compute chunk/atom <compute_chunk_atom>` and
:doc:`Howto chunk <Howto_chunk>`
doc pages for details of how chunks can be defined and examples of how doc pages for details of how chunks can be defined and examples of how
they can be used to measure properties of a system. they can be used to measure properties of a system.
This compute calculates the 3 components of the angular velocity This compute calculates the three components of the angular velocity
vector for each chunk, via the formula L = Iw where L is the angular vector for each chunk via the formula
momentum vector of the chunk, I is its moment of inertia tensor, and w :math:`\vec L = \mathrm{I}\cdot \vec\omega`, where :math:`\vec L` is the
is omega = angular velocity of the chunk. The calculation includes angular momentum vector of the chunk, :math:`\mathrm{I}` is its moment of
all effects due to atoms passing through periodic boundaries. inertia tensor, and :math:`\omega` is the angular velocity of the chunk.
The calculation includes all effects due to atoms passing through periodic
boundaries.
Note that only atoms in the specified group contribute to the Note that only atoms in the specified group contribute to the
calculation. The :doc:`compute chunk/atom <compute_chunk_atom>` command calculation. The :doc:`compute chunk/atom <compute_chunk_atom>` command
@ -56,7 +61,8 @@ non-zero chunk IDs.
of "unwrapped" coordinates. See the Atoms section of the of "unwrapped" coordinates. See the Atoms section of the
:doc:`read_data <read_data>` command for a discussion of image flags and :doc:`read_data <read_data>` command for a discussion of image flags and
how they are set for each atom. You can reset the image flags how they are set for each atom. You can reset the image flags
(e.g. to 0) before invoking this compute by using the :doc:`set image <set>` command. (e.g., to 0) before invoking this compute by using the
:doc:`set image <set>` command.
The simplest way to output the results of the compute omega/chunk The simplest way to output the results of the compute omega/chunk
calculation to a file is to use the :doc:`fix ave/time <fix_ave_time>` calculation to a file is to use the :doc:`fix ave/time <fix_ave_time>`
@ -71,14 +77,14 @@ command, for example:
Output info Output info
""""""""""" """""""""""
This compute calculates a global array where the number of rows = the This compute calculates a global array where the number of rows is the
number of chunks *Nchunk* as calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>` command. The number of columns = number of chunks *Nchunk* as calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>` command. The number of columns is 3 for the three
3 for the 3 xyz components of the angular velocity for each chunk. (*x*, *y*, *z*) components of the angular velocity for each chunk.
These values can be accessed by any command that uses global array These values can be accessed by any command that uses global array
values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output values from a compute as input. See the :doc:`Howto output <Howto_output>`
options. page for an overview of LAMMPS output options.
The array values are "intensive". The array values will be in The array values are "intensive." The array values will be in
velocity/distance :doc:`units <units>`. velocity/distance :doc:`units <units>`.
Restrictions Restrictions

View File

@ -9,7 +9,7 @@ Accelerator Variants: *orientorder/atom/kk*
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID orientorder/atom keyword values ... compute ID group-ID orientorder/atom keyword values ...
@ -42,30 +42,30 @@ Description
""""""""""" """""""""""
Define a computation that calculates a set of bond-orientational Define a computation that calculates a set of bond-orientational
order parameters :math:`Q_l` for each atom in a group. These order parameters order parameters :math:`Q_\ell` for each atom in a group. These order parameters
were introduced by :ref:`Steinhardt et al. <Steinhardt>` as a way to were introduced by :ref:`Steinhardt et al. <Steinhardt>` as a way to
characterize the local orientational order in atomic structures. characterize the local orientational order in atomic structures.
For each atom, :math:`Q_l` is a real number defined as follows: For each atom, :math:`Q_\ell` is a real number defined as follows:
.. math:: .. math::
\bar{Y}_{lm} = & \frac{1}{nnn}\sum_{j = 1}^{nnn} Y_{lm}( \theta( {\bf r}_{ij} ), \phi( {\bf r}_{ij} ) ) \\ \bar{Y}_{\ell m} = & \frac{1}{nnn}\sum_{j = 1}^{nnn} Y_{\ell m}\bigl( \theta( {\bf r}_{ij} ), \phi( {\bf r}_{ij} ) \bigr) \\
Q_l = & \sqrt{\frac{4 \pi}{2 l + 1} \sum_{m = -l}^{m = l} \bar{Y}_{lm} \bar{Y}^*_{lm}} Q_\ell = & \sqrt{\frac{4 \pi}{2 \ell + 1} \sum_{m = -\ell }^{m = \ell } \bar{Y}_{\ell m} \bar{Y}^*_{\ell m}}
The first equation defines the local order parameters as averages The first equation defines the local order parameters as averages
of the spherical harmonics :math:`Y_{lm}` for each neighbor. of the spherical harmonics :math:`Y_{\ell m}` for each neighbor.
These are complex number components of the 3D analog of the 2D order These are complex number components of the 3D analog of the 2D order
parameter :math:`q_n`, which is implemented as LAMMPS compute parameter :math:`q_n`, which is implemented as LAMMPS compute
:doc:`hexorder/atom <compute_hexorder_atom>`. :doc:`hexorder/atom <compute_hexorder_atom>`.
The summation is over the *nnn* nearest The summation is over the *nnn* nearest
neighbors of the central atom. neighbors of the central atom. The angles :math:`\theta` and :math:`\phi` are
The angles :math:`theta` and :math:`phi` are the standard spherical polar angles the standard spherical polar angles
defining the direction of the bond vector :math:`r_{ij}`. defining the direction of the bond vector :math:`r_{ij}`.
The phase and sign of :math:`Y_{lm}` follow the standard conventions, The phase and sign of :math:`Y_{\ell m}` follow the standard conventions,
so that :math:`{\rm sign}(Y_{ll}(0,0)) = (-1)^l`. so that :math:`\mathrm{sign}(Y_{\ell\ell}(0,0)) = (-1)^\ell`.
The second equation defines :math:`Q_l`, which is a The second equation defines :math:`Q_\ell`, which is a
rotationally invariant non-negative amplitude obtained by summing rotationally invariant non-negative amplitude obtained by summing
over all the components of degree *l*\ . over all the components of degree :math:`\ell`.
The optional keyword *cutoff* defines the distance cutoff The optional keyword *cutoff* defines the distance cutoff
used when searching for neighbors. The default value, also used when searching for neighbors. The default value, also
@ -73,7 +73,7 @@ the maximum allowable value, is the cutoff specified
by the pair style. by the pair style.
The optional keyword *nnn* defines the number of nearest The optional keyword *nnn* defines the number of nearest
neighbors used to calculate :math:`Q_l`. The default value is 12. neighbors used to calculate :math:`Q_\ell`. The default value is 12.
If the value is NULL, then all neighbors up to the If the value is NULL, then all neighbors up to the
specified distance cutoff are used. specified distance cutoff are used.
@ -84,32 +84,45 @@ degree of each order parameter. Because :math:`Q_2` and all odd-degree order
parameters are zero for atoms in cubic crystals (see parameters are zero for atoms in cubic crystals (see
:ref:`Steinhardt <Steinhardt>`), the default order parameters are :math:`Q_4`, :ref:`Steinhardt <Steinhardt>`), the default order parameters are :math:`Q_4`,
:math:`Q_6`, :math:`Q_8`, :math:`Q_{10}`, and :math:`Q_{12}`. For the FCC :math:`Q_6`, :math:`Q_8`, :math:`Q_{10}`, and :math:`Q_{12}`. For the FCC
crystal with *nnn* =12, :math:`Q_4 = \sqrt{\frac{7}{192}} = 0.19094...`. crystal with *nnn* =12,
.. math::
Q_4 = \sqrt{\frac{7}{192}} \approx 0.19094
The numerical values of all order The numerical values of all order
parameters up to :math:`Q_12` for a range of commonly encountered parameters up to :math:`Q_{12}` for a range of commonly encountered
high-symmetry structures are given in Table I of :ref:`Mickel et al. <Mickel>`, high-symmetry structures are given in Table I of :ref:`Mickel et al. <Mickel>`,
and these can be reproduced with this compute. and these can be reproduced with this compute.
The optional keyword *wl* will output the third-order invariants :math:`W_l` The optional keyword *wl* will output the third-order invariants :math:`W_\ell`
(see Eq. 1.4 in :ref:`Steinhardt <Steinhardt>`) for the same degrees as (see Eq. 1.4 in :ref:`Steinhardt <Steinhardt>`) for the same degrees as
for the :math:`Q_l` parameters. For the FCC crystal with *nnn* =12, for the :math:`Q_\ell` parameters. For the FCC crystal with *nnn* = 12,
:math:`W_4` = -sqrt(14/143).(49/4096)/Pi\^1.5 = -0.0006722136...
.. math::
W_4 = -\sqrt{\frac{14}{143}} \left(\frac{49}{4096}\right) \pi^{-3/2} \approx -0.0006722136
The optional keyword *wl/hat* will output the normalized third-order The optional keyword *wl/hat* will output the normalized third-order
invariants :math:`\hat{W}_l` (see Eq. 2.2 in :ref:`Steinhardt <Steinhardt>`) invariants :math:`\hat{W}_\ell` (see Eq. 2.2 in :ref:`Steinhardt <Steinhardt>`)
for the same degrees as for the :math:`Q_l` parameters. For the FCC crystal for the same degrees as for the :math:`Q_\ell` parameters. For the FCC crystal
with *nnn* =12, :math:`\hat{W}_4 = -\frac{7}{3} \sqrt{\frac{2}{429}} = -0.159317...` with *nnn* =12,
The numerical
values of :math:`\hat{W}_l` for a range of commonly encountered high-symmetry .. math::
structures are given in Table I of :ref:`Steinhardt <Steinhardt>`, and these
can be reproduced with this keyword. \hat{W}_4 = -\frac{7}{3} \sqrt{\frac{2}{429}} \approx -0.159317
The numerical values of :math:`\hat{W}_\ell` for a range of commonly
encountered high-symmetry structures are given in Table I of
:ref:`Steinhardt <Steinhardt>`, and these can be reproduced with this keyword.
The optional keyword *components* will output the components of the The optional keyword *components* will output the components of the
*normalized* complex vector :math:`\hat{Y}_{lm} = \bar{Y}_{lm}/|\bar{Y}_{lm}|` of degree *ldegree*\, *normalized* complex vector
which must be included in the list of order parameters to be computed. This option can be used :math:`\hat{Y}_{\ell m} = \bar{Y}_{\ell m}/|\bar{Y}_{\ell m}|`
in conjunction with :doc:`compute coord_atom <compute_coord_atom>` to of degree *ldegree*\, which must be included in the list of order parameters to
calculate the ten Wolde's criterion to identify crystal-like be computed. This option can be used in conjunction with
particles, as discussed in :ref:`ten Wolde <tenWolde2>`. :doc:`compute coord_atom <compute_coord_atom>` to calculate the ten Wolde's
criterion to identify crystal-like particles, as discussed in
:ref:`ten Wolde <tenWolde2>`.
The optional keyword *chunksize* is only applicable when using the The optional keyword *chunksize* is only applicable when using the
the KOKKOS package and is ignored otherwise. This keyword controls the KOKKOS package and is ignored otherwise. This keyword controls
@ -119,12 +132,12 @@ if there are 32768 atoms in the simulation and the *chunksize*
is set to 16384, the parameter calculation will be broken up is set to 16384, the parameter calculation will be broken up
into two passes. into two passes.
The value of :math:`Q_l` is set to zero for atoms not in the The value of :math:`Q_\ell` is set to zero for atoms not in the
specified compute group, as well as for atoms that have less than specified compute group, as well as for atoms that have less than
*nnn* neighbors within the distance cutoff, unless *nnn* is NULL. *nnn* neighbors within the distance cutoff, unless *nnn* is NULL.
The neighbor list needed to compute this quantity is constructed each The neighbor list needed to compute this quantity is constructed each
time the calculation is performed (i.e. each time a snapshot of atoms time the calculation is performed (i.e., each time a snapshot of atoms
is dumped). Thus it can be inefficient to compute/dump this quantity is dumped). Thus it can be inefficient to compute/dump this quantity
too frequently. too frequently.
@ -155,19 +168,21 @@ Output info
""""""""""" """""""""""
This compute calculates a per-atom array with *nlvalues* columns, This compute calculates a per-atom array with *nlvalues* columns,
giving the :math:`Q_l` values for each atom, which are real numbers on the giving the :math:`Q_\ell` values for each atom, which are real numbers in the
range :math:`0 <= Q_l <= 1`. range :math:`0 \le Q_\ell \le 1`.
If the keyword *wl* is set to yes, then the :math:`W_l` values for each If the keyword *wl* is set to yes, then the :math:`W_\ell` values for each
atom will be added to the output array, which are real numbers. atom will be added to the output array, which are real numbers.
If the keyword *wl/hat* is set to yes, then the :math:`\hat{W}_l` If the keyword *wl/hat* is set to yes, then the :math:`\hat{W}_\ell`
values for each atom will be added to the output array, which are real numbers. values for each atom will be added to the output array, which are real numbers.
If the keyword *components* is set, then the real and imaginary parts If the keyword *components* is set, then the real and imaginary parts
of each component of *normalized* :math:`\hat{Y}_{lm}` will be added to the of each component of *normalized* :math:`\hat{Y}_{\ell m}` will be added to the
output array in the following order: :math:`{\rm Re}(\hat{Y}_{-m}), {\rm Im}(\hat{Y}_{-m}), output array in the following order:
{\rm Re}(\hat{Y}_{-m+1}), {\rm Im}(\hat{Y}_{-m+1}), \dots , {\rm Re}(\hat{Y}_m), {\rm Im}(\hat{Y}_m)`. :math:`\Re(\hat{Y}_{-m}),` :math:`\Im(\hat{Y}_{-m}),`
:math:`\Re(\hat{Y}_{-m+1}),` :math:`\Im(\hat{Y}_{-m+1}), \dotsc,`
:math:`\Re(\hat{Y}_m),` :math:`\Im(\hat{Y}_m).`
In summary, the per-atom array will contain *nlvalues* columns, followed by In summary, the per-atom array will contain *nlvalues* columns, followed by
an additional *nlvalues* columns if *wl* is set to yes, followed by an additional *nlvalues* columns if *wl* is set to yes, followed by
@ -193,7 +208,7 @@ Default
""""""" """""""
The option defaults are *cutoff* = pair style cutoff, *nnn* = 12, The option defaults are *cutoff* = pair style cutoff, *nnn* = 12,
*degrees* = 5 4 6 8 10 12 i.e. :math:`Q_4`, :math:`Q_6`, :math:`Q_8`, :math:`Q_{10}`, and :math:`Q_{12}`, *degrees* = 5 4 6 8 10 12 (i.e., :math:`Q_4`, :math:`Q_6`, :math:`Q_8`, :math:`Q_{10}`, and :math:`Q_{12}`),
*wl* = no, *wl/hat* = no, *components* off, and *chunksize* = 16384 *wl* = no, *wl/hat* = no, *components* off, and *chunksize* = 16384
---------- ----------

View File

@ -6,7 +6,7 @@ compute pair command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID pair pstyle [nstyle] [evalue] compute ID group-ID pair pstyle [nstyle] [evalue]
@ -74,7 +74,7 @@ Output info
This compute calculates a global scalar which is *epair* or *evdwl* or This compute calculates a global scalar which is *epair* or *evdwl* or
*ecoul*\ . If the pair style supports it, it also calculates a global *ecoul*\ . If the pair style supports it, it also calculates a global
vector of length >= 1, as determined by the pair style. These values vector of length :math:`\ge` 1, as determined by the pair style. These values
can be used by any command that uses global scalar or vector values can be used by any command that uses global scalar or vector values
from a compute as input. See the :doc:`Howto output <Howto_output>` doc from a compute as input. See the :doc:`Howto output <Howto_output>` doc
page for an overview of LAMMPS output options. page for an overview of LAMMPS output options.

View File

@ -6,14 +6,14 @@ compute pair/local command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID pair/local value1 value2 ... keyword args ... compute ID group-ID pair/local value1 value2 ... keyword args ...
* ID, group-ID are documented in :doc:`compute <compute>` command * ID, group-ID are documented in :doc:`compute <compute>` command
* pair/local = style name of this compute command * pair/local = style name of this compute command
* one or more values may be appended * one or more values may be appended
* value = *dist* or *dx* or *dy* or *dz* or *eng* or *force* or *fx* or *fy* or *fz* or *pN* * value = *dist* or *dx* or *dy* or *dz* or *eng* or *force* or *fx* or *fy* or *fz* or *p1* or *p2* or ...
.. parsed-literal:: .. parsed-literal::
@ -22,7 +22,7 @@ Syntax
*eng* = pairwise energy *eng* = pairwise energy
*force* = pairwise force *force* = pairwise force
*fx*,\ *fy*,\ *fz* = components of pairwise force *fx*,\ *fy*,\ *fz* = components of pairwise force
*pN* = pair style specific quantities for allowed N values *p1*, *p2*, ... = pair style specific quantities for allowed N values
* zero or more keyword/arg pairs may be appended * zero or more keyword/arg pairs may be appended
* keyword = *cutoff* * keyword = *cutoff*
@ -57,7 +57,7 @@ force cutoff distance for that interaction, as defined by the
commands. commands.
The value *dist* is the distance between the pair of atoms. The value *dist* is the distance between the pair of atoms.
The values *dx*, *dy*, and *dz* are the xyz components of the The values *dx*, *dy*, and *dz* are the :math:`(x,y,z)` components of the
*distance* between the pair of atoms. This value is always the *distance* between the pair of atoms. This value is always the
distance from the atom of lower to the one with the higher id. distance from the atom of lower to the one with the higher id.
@ -65,21 +65,21 @@ The value *eng* is the interaction energy for the pair of atoms.
The value *force* is the force acting between the pair of atoms, which The value *force* is the force acting between the pair of atoms, which
is positive for a repulsive force and negative for an attractive is positive for a repulsive force and negative for an attractive
force. The values *fx*, *fy*, and *fz* are the xyz components of force. The values *fx*, *fy*, and *fz* are the :math:`(x,y,z)` components of
*force* on atom I. *force* on atom I.
A pair style may define additional pairwise quantities which can be A pair style may define additional pairwise quantities which can be
accessed as *p1* to *pN*, where N is defined by the pair style. Most accessed as *p1* to *pN*, where :math:`N` is defined by the pair style.
pair styles do not define any additional quantities, so N = 0. An Most pair styles do not define any additional quantities, so :math:`N = 0`.
example of ones that do are the :doc:`granular pair styles <pair_gran>` An example of ones that do are the :doc:`granular pair styles <pair_gran>`
which calculate the tangential force between two particles and return which calculate the tangential force between two particles and return
its components and magnitude acting on atom I for N = 1,2,3,4. See its components and magnitude acting on atom :math:`I` for
individual pair styles for details. :math:`N \in \{1,2,3,4\}`. See individual pair styles for details.
When using *pN* with pair style *hybrid*, the output will be the Nth When using *pN* with pair style *hybrid*, the output will be the Nth
quantity from the sub-style that computes the pairwise interaction quantity from the sub-style that computes the pairwise interaction
(based on atom types). If that sub-style does not define a *pN*, (based on atom types). If that sub-style does not define a *pN*,
the output will be 0.0. The maximum allowed N is the maximum number the output will be 0.0. The maximum allowed :math:`N` is the maximum number
of quantities provided by any sub-style. of quantities provided by any sub-style.
When using *pN* with pair style *hybrid/overlay* the quantities When using *pN* with pair style *hybrid/overlay* the quantities
@ -104,7 +104,9 @@ the pairwise cutoff defined by the :doc:`pair_style <pair_style>`
command for the types of the two atoms is used. For the *radius* command for the types of the two atoms is used. For the *radius*
setting, the sum of the radii of the two particles is used as a setting, the sum of the radii of the two particles is used as a
cutoff. For example, this is appropriate for granular particles which cutoff. For example, this is appropriate for granular particles which
only interact when they are overlapping, as computed by :doc:`granular pair styles <pair_gran>`. Note that if a granular model defines atom only interact when they are overlapping, as computed by
:doc:`granular pair styles <pair_gran>`.
Note that if a granular model defines atom
types such that all particles of a specific type are monodisperse types such that all particles of a specific type are monodisperse
(same diameter), then the two settings are effectively identical. (same diameter), then the two settings are effectively identical.
@ -113,7 +115,8 @@ no consistent ordering of the entries within the local vector or array
from one timestep to the next. The only consistency that is from one timestep to the next. The only consistency that is
guaranteed is that the ordering on a particular timestep will be the guaranteed is that the ordering on a particular timestep will be the
same for local vectors or arrays generated by other compute commands. same for local vectors or arrays generated by other compute commands.
For example, pair output from the :doc:`compute property/local <compute_property_local>` command can be combined For example, pair output from the
:doc:`compute property/local <compute_property_local>` command can be combined
with data from this command and output by the :doc:`dump local <dump>` with data from this command and output by the :doc:`dump local <dump>`
command in a consistent way. command in a consistent way.
@ -127,13 +130,13 @@ Here is an example of how to do this:
.. note:: .. note::
For pairs, if two atoms I,J are involved in 1-2, 1-3, 1-4 For pairs, if two atoms I,J are involved in 1--2, 1--3, and 1--4
interactions within the molecular topology, their pairwise interaction interactions within the molecular topology, their pairwise interaction
may be turned off, and thus they may not appear in the neighbor list, may be turned off, and thus they may not appear in the neighbor list,
and will not be part of the local data created by this command. More and will not be part of the local data created by this command. More
specifically, this will be true of I,J pairs with a weighting factor specifically, this will be true of I,J pairs with a weighting factor
of 0.0; pairs with a non-zero weighting factor are included. The of 0.0; pairs with a non-zero weighting factor are included. The
weighting factors for 1-2, 1-3, and 1-4 pairwise interactions are set weighting factors for 1--2, 1--3, and 1--4 pairwise interactions are set
by the :doc:`special_bonds <special_bonds>` command. An exception is if by the :doc:`special_bonds <special_bonds>` command. An exception is if
long-range Coulombics are being computed via the long-range Coulombics are being computed via the
:doc:`kspace_style <kspace_style>` command, then atom pairs with :doc:`kspace_style <kspace_style>` command, then atom pairs with

View File

@ -6,7 +6,7 @@ compute pe command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID pe keyword ... compute ID group-ID pe keyword ...
@ -27,19 +27,19 @@ Description
""""""""""" """""""""""
Define a computation that calculates the potential energy of the Define a computation that calculates the potential energy of the
entire system of atoms. The specified group must be "all". See the entire system of atoms. The specified group must be "all." See the
:doc:`compute pe/atom <compute_pe_atom>` command if you want per-atom :doc:`compute pe/atom <compute_pe_atom>` command if you want per-atom
energies. These per-atom values could be summed for a group of atoms energies. These per-atom values could be summed for a group of atoms
via the :doc:`compute reduce <compute_reduce>` command. via the :doc:`compute reduce <compute_reduce>` command.
The energy is calculated by the various pair, bond, etc potentials The energy is calculated by the various pair, bond, etc. potentials
defined for the simulation. If no extra keywords are listed, then the defined for the simulation. If no extra keywords are listed, then the
potential energy is the sum of pair, bond, angle, dihedral, improper, potential energy is the sum of pair, bond, angle, dihedral, improper,
kspace (long-range), and fix energy. I.e. it is as if all the :math:`k`-space (long-range), and fix energy (i.e., it is as though all the
keywords were listed. If any extra keywords are listed, then only keywords were listed). If any extra keywords are listed, then only
those components are summed to compute the potential energy. those components are summed to compute the potential energy.
The Kspace contribution requires 1 extra FFT each timestep the energy The :math:`k`-space contribution requires 1 extra FFT each timestep the energy
is calculated, if using the PPPM solver via the :doc:`kspace_style pppm <kspace_style>` command. Thus it can increase the cost of the is calculated, if using the PPPM solver via the :doc:`kspace_style pppm <kspace_style>` command. Thus it can increase the cost of the
PPPM calculation if it is needed on a large fraction of the simulation PPPM calculation if it is needed on a large fraction of the simulation
timesteps. timesteps.
@ -73,7 +73,7 @@ value can be used by any command that uses a global scalar value from
a compute as input. See the :doc:`Howto output <Howto_output>` doc page a compute as input. See the :doc:`Howto output <Howto_output>` doc page
for an overview of LAMMPS output options. for an overview of LAMMPS output options.
The scalar value calculated by this compute is "extensive". The The scalar value calculated by this compute is "extensive." The
scalar value will be in energy :doc:`units <units>`. scalar value will be in energy :doc:`units <units>`.
Restrictions Restrictions

View File

@ -6,7 +6,7 @@ compute pe/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID pe/atom keyword ... compute ID group-ID pe/atom keyword ...
@ -34,20 +34,20 @@ you want the potential energy of the entire system.
The per-atom energy is calculated by the various pair, bond, etc The per-atom energy is calculated by the various pair, bond, etc
potentials defined for the simulation. If no extra keywords are potentials defined for the simulation. If no extra keywords are
listed, then the potential energy is the sum of pair, bond, angle, listed, then the potential energy is the sum of pair, bond, angle,
dihedral,improper, kspace (long-range), and fix energy. I.e. it is as dihedral, improper, :math:`k`-space (long-range), and fix energy (i.e., it is as
if all the keywords were listed. If any extra keywords are listed, though all the keywords were listed). If any extra keywords are listed,
then only those components are summed to compute the potential energy. then only those components are summed to compute the potential energy.
Note that the energy of each atom is due to its interaction with all Note that the energy of each atom is due to its interaction with all
other atoms in the simulation, not just with other atoms in the group. other atoms in the simulation, not just with other atoms in the group.
For an energy contribution produced by a small set of atoms (e.g. 4 For an energy contribution produced by a small set of atoms (e.g., 4
atoms in a dihedral or 3 atoms in a Tersoff 3-body interaction), that atoms in a dihedral or 3 atoms in a Tersoff 3-body interaction), that
energy is assigned in equal portions to each atom in the set. energy is assigned in equal portions to each atom in the set (e.g., 1/4 of the
E.g. 1/4 of the dihedral energy to each of the 4 atoms. dihedral energy to each of the four atoms).
The :doc:`dihedral_style charmm <dihedral_charmm>` style calculates The :doc:`dihedral_style charmm <dihedral_charmm>` style calculates
pairwise interactions between 1-4 atoms. The energy contribution of pairwise interactions between 1--4 atoms. The energy contribution of
these terms is included in the pair energy, not the dihedral energy. these terms is included in the pair energy, not the dihedral energy.
The KSpace contribution is calculated using the method in The KSpace contribution is calculated using the method in
@ -81,8 +81,9 @@ in the last 2 columns of thermo output:
.. note:: .. note::
The per-atom energy does not include any Lennard-Jones tail The per-atom energy does not include any Lennard-Jones tail
corrections to the energy added by the :doc:`pair_modify tail yes <pair_modify>` command, since those are contributions to the corrections to the energy added by the
global system energy. :doc:`pair_modify tail yes <pair_modify>` command, since those are
contributions to the global system energy.
Output info Output info
""""""""""" """""""""""

View File

@ -6,7 +6,7 @@ compute plasticity/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID plasticity/atom compute ID group-ID plasticity/atom
@ -24,16 +24,19 @@ Description
""""""""""" """""""""""
Define a computation that calculates the per-atom plasticity for each Define a computation that calculates the per-atom plasticity for each
atom in a group. This is a quantity relevant for :doc:`Peridynamics models <pair_peri>`. See `this document <PDF/PDLammps_overview.pdf>`_ atom in a group. This is a quantity relevant for
:doc:`Peridynamics models <pair_peri>`.
See `this document <PDF/PDLammps_overview.pdf>`_
for an overview of LAMMPS commands for Peridynamics modeling. for an overview of LAMMPS commands for Peridynamics modeling.
The plasticity for a Peridynamic particle is the so-called consistency The plasticity for a Peridynamic particle is the so-called consistency
parameter (lambda). For elastic deformation lambda = 0, otherwise parameter (:math:`\lambda`). For elastic deformation, :math:`\lambda = 0`,
lambda > 0 for plastic deformation. For details, see otherwise :math:`\lambda > 0` for plastic deformation. For details, see
:ref:`(Mitchell) <Mitchell>` and the PDF doc included in the LAMMPS :ref:`(Mitchell) <Mitchell>` and the PDF doc included in the LAMMPS
distribution in `doc/PDF/PDLammps_EPS.pdf <PDF/PDLammps_EPS.pdf>`_. distribution in `doc/PDF/PDLammps_EPS.pdf <PDF/PDLammps_EPS.pdf>`_.
This command can be invoked for one of the Peridynamic :doc:`pair styles <pair_peri>`: peri/eps. This command can be invoked for one of the Peridynamic
:doc:`pair styles <pair_peri>`: peri/eps.
The plasticity value will be 0.0 for atoms not in the specified The plasticity value will be 0.0 for atoms not in the specified
compute group. compute group.
@ -46,7 +49,7 @@ any command that uses per-atom values from a compute as input. See
the :doc:`Howto output <Howto_output>` page for an overview of the :doc:`Howto output <Howto_output>` page for an overview of
LAMMPS output options. LAMMPS output options.
The per-atom vector values are unitless numbers (lambda) >= 0.0. The per-atom vector values are unitless numbers :math:`\lambda \ge 0.0`.
Restrictions Restrictions
"""""""""""" """"""""""""
@ -70,5 +73,5 @@ none
.. _Mitchell: .. _Mitchell:
**(Mitchell)** Mitchell, "A non-local, ordinary-state-based **(Mitchell)** Mitchell, "A non-local, ordinary-state-based
viscoelasticity model for peridynamics", Sandia National Lab Report, viscoelasticity model for peridynamics," Sandia National Lab Report,
8064:1-28 (2011). 8064:1-28 (2011).

View File

@ -6,7 +6,7 @@ compute pressure command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID pressure temp-ID keyword ... compute ID group-ID pressure temp-ID keyword ...
@ -29,7 +29,8 @@ Description
""""""""""" """""""""""
Define a computation that calculates the pressure of the entire system Define a computation that calculates the pressure of the entire system
of atoms. The specified group must be "all". See the :doc:`compute stress/atom <compute_stress_atom>` command if you want per-atom of atoms. The specified group must be "all." See the
:doc:`compute stress/atom <compute_stress_atom>` command if you want per-atom
pressure (stress). These per-atom values could be summed for a group pressure (stress). These per-atom values could be summed for a group
of atoms via the :doc:`compute reduce <compute_reduce>` command. of atoms via the :doc:`compute reduce <compute_reduce>` command.
@ -37,35 +38,37 @@ The pressure is computed by the formula
.. math:: .. math::
P = \frac{N k_B T}{V} + \frac{\sum_{i}^{N'} r_i \bullet f_i}{dV} P = \frac{N k_B T}{V} + \frac{1}{V d}\sum_{i=1}^{N'} \vec r_i \cdot \vec f_i
where *N* is the number of atoms in the system (see discussion of DOF where *N* is the number of atoms in the system (see discussion of DOF
below), :math:`k_B` is the Boltzmann constant, *T* is the temperature, d below), :math:`k_B` is the Boltzmann constant, :math:`T` is the
is the dimensionality of the system (2 or 3 for 2d/3d), and *V* is the temperature, *d* is the dimensionality of the system (2 for 2d, 3 for
system volume (or area in 2d). The second term is the virial, equal to 3d), and *V* is the system volume (or area in 2d). The second term is
-dU/dV, computed for all pairwise as well as 2-body, 3-body, 4-body, the virial, equal to :math:`-dU/dV`, computed for all pairwise as well
many-body, and long-range interactions, where :math:`r_i` and as 2-body, 3-body, 4-body, many-body, and long-range interactions, where
:math:`f_i` are the position and force vector of atom *i*, and the black :math:`\vec r_i` and :math:`\vec f_i` are the position and force vector
dot indicates a dot product. This is computed in parallel for each of atom *i*, and the dot indicates the dot product (scalar product).
sub-domain and then summed over all parallel processes. Thus N' This is computed in parallel for each sub-domain and then summed over
necessarily includes atoms from neighboring sub-domains (so-called ghost all parallel processes. Thus :math:`N'` necessarily includes atoms from
atoms) and the position and force vectors of ghost atoms are thus neighboring sub-domains (so-called ghost atoms) and the position and
included in the summation. Only when running in serial and without force vectors of ghost atoms are thus included in the summation. Only
periodic boundary conditions is N' = N = the number of atoms in the when running in serial and without periodic boundary conditions is
system. :doc:`Fixes <fix>` that impose constraints (e.g. the :doc:`fix :math:`N' = N` the number of atoms in the system. :doc:`Fixes <fix>`
shake <fix_shake>` command) may also contribute to the virial term. that impose constraints (e.g., the :doc:`fix shake <fix_shake>` command)
may also contribute to the virial term.
A symmetric pressure tensor, stored as a 6-element vector, is also A symmetric pressure tensor, stored as a 6-element vector, is also
calculated by this compute. The 6 components of the vector are calculated by this compute. The six components of the vector are
ordered xx, yy, zz, xy, xz, yz. The equation for the I,J components ordered :math:`xx,` :math:`yy,` :math:`zz,` :math:`xy,` :math:`xz,` :math:`yz.`
(where I and J = x,y,z) is similar to the above formula, except that The equation for the :math:`(I,J)` components (where :math:`I` and :math:`J`
the first term uses components of the kinetic energy tensor and the are :math:`x`, :math:`y`, or :math:`z`) is similar to the above formula,
except that the first term uses components of the kinetic energy tensor and the
second term uses components of the virial tensor: second term uses components of the virial tensor:
.. math:: .. math::
P_{IJ} = \frac{\sum_{k}^{N} m_k v_{k_I} v_{k_J}}{V} + P_{IJ} = \frac{1}{V}\sum_{k=1}^{N} m_k v_{k_I} v_{k_J} +
\frac{\sum_{k}^{N'} r_{k_I} f_{k_J}}{V} \frac{1}{V}\sum_{k=1}^{N'} r_{k_I} f_{k_J}.
If no extra keywords are listed, the entire equations above are If no extra keywords are listed, the entire equations above are
calculated. This includes a kinetic energy (temperature) term and the calculated. This includes a kinetic energy (temperature) term and the
@ -89,27 +92,30 @@ command. If the kinetic energy is not included in the pressure, than
the temperature compute is not used and can be specified as NULL. the temperature compute is not used and can be specified as NULL.
Normally the temperature compute used by compute pressure should Normally the temperature compute used by compute pressure should
calculate the temperature of all atoms for consistency with the virial calculate the temperature of all atoms for consistency with the virial
term, but any compute style that calculates temperature can be used, term, but any compute style that calculates temperature can be used
e.g. one that excludes frozen atoms or other degrees of freedom. (e.g., one that excludes frozen atoms or other degrees of freedom).
Note that if desired the specified temperature compute can be one that Note that if desired the specified temperature compute can be one that
subtracts off a bias to calculate a temperature using only the thermal subtracts off a bias to calculate a temperature using only the thermal
velocity of the atoms, e.g. by subtracting a background streaming velocity of the atoms (e.g., by subtracting a background streaming
velocity. See the doc pages for individual :doc:`compute commands <compute>` to determine which ones include a bias. velocity).
See the doc pages for individual :doc:`compute commands <compute>` to determine
which ones include a bias.
Also note that the N in the first formula above is really Also note that the :math:`N` in the first formula above is really
degrees-of-freedom divided by d = dimensionality, where the DOF value degrees-of-freedom divided by :math:`d` = dimensionality, where the DOF value
is calculated by the temperature compute. See the various :doc:`compute temperature <compute>` styles for details. is calculated by the temperature compute.
See the various :doc:`compute temperature <compute>` styles for details.
A compute of this style with the ID of "thermo_press" is created when A compute of this style with the ID of thermo_press is created when
LAMMPS starts up, as if this command were in the input script: LAMMPS starts up, as if this command were in the input script:
.. code-block:: LAMMPS .. code-block:: LAMMPS
compute thermo_press all pressure thermo_temp compute thermo_press all pressure thermo_temp
where "thermo_temp" is the ID of a similarly defined compute of style where thermo_temp is the ID of a similarly defined compute of style
"temp". See the "thermo_style" command for more details. "temp." See the :doc:`thermo_style <thermo_style>` command for more details.
---------- ----------
@ -122,15 +128,16 @@ Output info
This compute calculates a global scalar (the pressure) and a global This compute calculates a global scalar (the pressure) and a global
vector of length 6 (pressure tensor), which can be accessed by indices vector of length 6 (pressure tensor), which can be accessed by indices
1-6. These values can be used by any command that uses global scalar 1--6. These values can be used by any command that uses global scalar
or vector values from a compute as input. See the :doc:`Howto output or vector values from a compute as input. See the :doc:`Howto output
<Howto_output>` page for an overview of LAMMPS output options. <Howto_output>` page for an overview of LAMMPS output options.
The ordering of values in the symmetric pressure tensor is as follows: The ordering of values in the symmetric pressure tensor is as follows:
pxx, pyy, pzz, pxy, pxz, pyz. :math:`p_{xx},` :math:`p_{yy},` :math:`p_{zz},` :math:`p_{xy},`
:math:`p_{xz},` :math:`p_{yz}.`
The scalar and vector values calculated by this compute are The scalar and vector values calculated by this compute are
"intensive". The scalar and vector values will be in pressure "intensive." The scalar and vector values will be in pressure
:doc:`units <units>`. :doc:`units <units>`.
Restrictions Restrictions

View File

@ -6,7 +6,7 @@ compute pressure/uef command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID pressure/uef temp-ID keyword ... compute ID group-ID pressure/uef temp-ID keyword ...
@ -42,14 +42,14 @@ Restrictions
"""""""""""" """"""""""""
This fix is part of the UEF package. It is only enabled if LAMMPS This fix is part of the UEF package. It is only enabled if LAMMPS
was built with that package. See the :doc:`Build package <Build_package>` page for more info. was built with that package. See the :doc:`Build package <Build_package>` page
for more info.
This command can only be used when :doc:`fix nvt/uef <fix_nh_uef>` This command can only be used when :doc:`fix nvt/uef <fix_nh_uef>`
or :doc:`fix npt/uef <fix_nh_uef>` is active. or :doc:`fix npt/uef <fix_nh_uef>` is active.
The kinetic contribution to the pressure tensor The kinetic contribution to the pressure tensor
will be accurate only when will be accurate only when the compute specified by *temp-ID* is a
the compute specified by *temp-ID* is a
:doc:`compute temp/uef <compute_temp_uef>`. :doc:`compute temp/uef <compute_temp_uef>`.
Related commands Related commands

View File

@ -6,7 +6,7 @@ compute property/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID property/atom input1 input2 ... compute ID group-ID property/atom input1 input2 ...
@ -127,7 +127,7 @@ LAMMPS.
The values are stored in a per-atom vector or array as discussed The values are stored in a per-atom vector or array as discussed
below. Zeroes are stored for atoms not in the specified group or for below. Zeroes are stored for atoms not in the specified group or for
quantities that are not defined for a particular particle in the group quantities that are not defined for a particular particle in the group
(e.g. *shapex* if the particle is not an ellipsoid). (e.g., *shapex* if the particle is not an ellipsoid).
Attributes *i_name*, *d_name*, *i2_name*, *d2_name* refer to custom Attributes *i_name*, *d_name*, *i2_name*, *d2_name* refer to custom
per-atom integer and floating-point vectors or arrays that have been per-atom integer and floating-point vectors or arrays that have been
@ -135,7 +135,7 @@ added via the :doc:`fix property/atom <fix_property_atom>` command.
When that command is used specific names are given to each attribute When that command is used specific names are given to each attribute
which are the "name" portion of these attributes. For arrays *i2_name* which are the "name" portion of these attributes. For arrays *i2_name*
and *d2_name*, the column of the array must also be included following and *d2_name*, the column of the array must also be included following
the name in brackets: e.g. d2_xyz[2], i2_mySpin[3]. the name in brackets (e.g., d2_xyz[2] or i2_mySpin[3]).
The additional quantities only accessible via this command, and not The additional quantities only accessible via this command, and not
directly via the :doc:`dump custom <dump>` command, are as follows. directly via the :doc:`dump custom <dump>` command, are as follows.
@ -144,21 +144,21 @@ directly via the :doc:`dump custom <dump>` command, are as follows.
number of explicit bonds assigned to an atom. Note that if the number of explicit bonds assigned to an atom. Note that if the
:doc:`newton bond <newton>` command is set to *on*\ , which is the :doc:`newton bond <newton>` command is set to *on*\ , which is the
default, then every bond in the system is assigned to only one of the default, then every bond in the system is assigned to only one of the
two atoms in the bond. Thus a bond between atoms I,J may be tallied two atoms in the bond. Thus a bond between atoms :math:`I` and :math:`J` may
for either atom I or atom J. If :doc:`newton bond off <newton>` is be tallied for either atom :math:`I` or atom :math:`J`.
set, it will be tallied with both atom I and atom J. If :doc:`newton bond off <newton>` is set, it will be tallied with both atom
:math:`I` and atom :math:`J`.
*Shapex*, *shapey*, and *shapez* are defined for ellipsoidal particles The quantities *shapex*, *shapey*, and *shapez* are defined for ellipsoidal
and define the 3d shape of each particle. particles and define the 3d shape of each particle.
*Quatw*, *quati*, *quatj*, and *quatk* are defined for ellipsoidal The quantities *quatw*, *quati*, *quatj*, and *quatk* are defined for
particles and body particles and store the 4-vector quaternion ellipsoidal particles and body particles and store the 4-vector quaternion
representing the orientation of each particle. See the :doc:`set <set>` representing the orientation of each particle. See the :doc:`set <set>`
command for an explanation of the quaternion vector. command for an explanation of the quaternion vector.
*End1x*, *end1y*, *end1z*, *end2x*, *end2y*, *end2z*, are *End1x*, *end1y*, *end1z*, *end2x*, *end2y*, *end2z*, are defined for line
defined for line segment particles and define the end points of each segment particles and define the end points of each line segment.
line segment.
*Corner1x*, *corner1y*, *corner1z*, *corner2x*, *corner2y*, *Corner1x*, *corner1y*, *corner1z*, *corner2x*, *corner2y*,
*corner2z*, *corner3x*, *corner3y*, *corner3z*, are defined for *corner2z*, *corner3x*, *corner3y*, *corner3z*, are defined for
@ -179,12 +179,12 @@ per-atom values from a compute as input. See the :doc:`Howto output
<Howto_output>` page for an overview of LAMMPS output options. <Howto_output>` page for an overview of LAMMPS output options.
The vector or array values will be in whatever :doc:`units <units>` the The vector or array values will be in whatever :doc:`units <units>` the
corresponding attribute is in, e.g. velocity units for vx, charge corresponding attribute is in (e.g., velocity units for *vx*, charge
units for q, etc. units for *q*).
For the spin quantities, sp is in the units of the Bohr magneton, spx, For the spin quantities, *sp* is in the units of the Bohr magneton;
spy, and spz are unitless quantities, and fmx, fmy and fmz are given *spx*, *spy*, and *spz* are unitless quantities; and *fmx*, *fmy*, and *fmz*
in rad/THz. are given in rad/THz.
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -6,7 +6,7 @@ compute property/chunk command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID property/chunk chunkID input1 input2 ... compute ID group-ID property/chunk chunkID input1 input2 ...
@ -35,19 +35,24 @@ Description
Define a computation that stores the specified attributes of chunks of Define a computation that stores the specified attributes of chunks of
atoms. atoms.
In LAMMPS, chunks are collections of atoms defined by a :doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom In LAMMPS, chunks are collections of atoms defined by a
:doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom
to a single chunk (or no chunk). The ID for this command is specified to a single chunk (or no chunk). The ID for this command is specified
as chunkID. For example, a single chunk could be the atoms in a as chunkID. For example, a single chunk could be the atoms in a molecule or
molecule or atoms in a spatial bin. See the :doc:`compute chunk/atom <compute_chunk_atom>` and :doc:`Howto chunk <Howto_chunk>` atoms in a spatial bin. See the :doc:`compute chunk/atom <compute_chunk_atom>`
doc pages for details of how chunks can be defined and examples of how and :doc:`Howto chunk <Howto_chunk>` doc pages for details of how chunks can be
they can be used to measure properties of a system. defined and examples of how they can be used to measure properties of a system.
This compute calculates and stores the specified attributes of chunks This compute calculates and stores the specified attributes of chunks
as global data so they can be accessed by other :doc:`output commands <Howto_output>` and used in conjunction with other as global data so they can be accessed by other
commands that generate per-chunk data, such as :doc:`compute com/chunk <compute_com_chunk>` or :doc:`compute msd/chunk <compute_msd_chunk>`. :doc:`output commands <Howto_output>` and used in conjunction with other
commands that generate per-chunk data, such as
:doc:`compute com/chunk <compute_com_chunk>` or
:doc:`compute msd/chunk <compute_msd_chunk>`.
Note that only atoms in the specified group contribute to the Note that only atoms in the specified group contribute to the
calculation of the *count* attribute. The :doc:`compute chunk/atom <compute_chunk_atom>` command defines its own group; calculation of the *count* attribute. The
:doc:`compute chunk/atom <compute_chunk_atom>` command defines its own group;
atoms will have a chunk ID = 0 if they are not in that group, atoms will have a chunk ID = 0 if they are not in that group,
signifying they are not assigned to a chunk, and will thus also not signifying they are not assigned to a chunk, and will thus also not
contribute to this calculation. You can specify the "all" group for contribute to this calculation. You can specify the "all" group for
@ -59,7 +64,7 @@ The *count* attribute is the number of atoms in the chunk.
The *id* attribute stores the original chunk ID for each chunk. It The *id* attribute stores the original chunk ID for each chunk. It
can only be used if the *compress* keyword was set to *yes* for the can only be used if the *compress* keyword was set to *yes* for the
:doc:`compute chunk/atom <compute_chunk_atom>` command referenced by :doc:`compute chunk/atom <compute_chunk_atom>` command referenced by
chunkID. This means that the original chunk IDs (e.g. molecule IDs) chunkID. This means that the original chunk IDs (e.g., molecule IDs)
will have been compressed to remove chunk IDs with no atoms assigned will have been compressed to remove chunk IDs with no atoms assigned
to them. Thus a compressed chunk ID of 3 may correspond to an original to them. Thus a compressed chunk ID of 3 may correspond to an original
chunk ID (molecule ID in this case) of 415. The *id* attribute will chunk ID (molecule ID in this case) of 415. The *id* attribute will
@ -75,7 +80,7 @@ is the center point of the bin in the corresponding dimension. Style
Note that if the value of the *units* keyword used in the :doc:`compute chunk/atom command <compute_chunk_atom>` is *box* or *lattice*, the Note that if the value of the *units* keyword used in the :doc:`compute chunk/atom command <compute_chunk_atom>` is *box* or *lattice*, the
*coordN* attributes will be in distance :doc:`units <units>`. If the *coordN* attributes will be in distance :doc:`units <units>`. If the
value of the *units* keyword is *reduced*, the *coordN* attributes value of the *units* keyword is *reduced*, the *coordN* attributes
will be in unitless reduced units (0-1). will be in unitless reduced units (0--1).
The simplest way to output the results of the compute property/chunk The simplest way to output the results of the compute property/chunk
calculation to a file is to use the :doc:`fix ave/time <fix_ave_time>` calculation to a file is to use the :doc:`fix ave/time <fix_ave_time>`
@ -105,7 +110,7 @@ accessed by any command that uses global values from a compute as
input. See the :doc:`Howto output <Howto_output>` page for an input. See the :doc:`Howto output <Howto_output>` page for an
overview of LAMMPS output options. overview of LAMMPS output options.
The vector or array values are "intensive". The values will be The vector or array values are "intensive." The values will be
unitless or in the units discussed above. unitless or in the units discussed above.
Restrictions Restrictions

View File

@ -6,37 +6,65 @@ compute property/local command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID property/local attribute1 attribute2 ... keyword args ... compute ID group-ID property/local attribute1 attribute2 ... keyword args ...
* ID, group-ID are documented in :doc:`compute <compute>` command * ID, group-ID are documented in :doc:`compute <compute>` command
* property/local = style name of this compute command * property/local = style name of this compute command
* one or more attributes may be appended * one or more attributes of the same type (neighbor, pair, bond, angle,
dihedral, or improper) may be appended
.. parsed-literal:: .. parsed-literal::
possible attributes = natom1 natom2 ntype1 ntype2 possible attributes = natom1, natom2, ntype1, ntype2,
patom1 patom2 ptype1 ptype2 patom1, patom2, ptype1, ptype2,
batom1 batom2 btype batom1, batom2, btype,
aatom1 aatom2 aatom3 atype aatom1, aatom2, aatom3, atype,
datom1 datom2 datom3 datom4 dtype datom1, datom2, datom3, datom4, dtype,
iatom1 iatom2 iatom3 iatom4 itype iatom1, iatom2, iatom3, iatom4, itype
* Neighbor attributes
.. parsed-literal:: .. parsed-literal::
natom1, natom2 = IDs of 2 atoms in each pair (within neighbor cutoff) natom1, natom2 = store IDs of 2 atoms in each pair (within neighbor cutoff)
ntype1, ntype2 = type of 2 atoms in each pair (within neighbor cutoff) ntype1, ntype2 = store types of 2 atoms in each pair (within neighbor cutoff)
patom1, patom2 = IDs of 2 atoms in each pair (within force cutoff)
ptype1, ptype2 = type of 2 atoms in each pair (within force cutoff) * Pair attributes
batom1, batom2 = IDs of 2 atoms in each bond
btype = bond type of each bond .. parsed-literal::
aatom1, aatom2, aatom3 = IDs of 3 atoms in each angle
atype = angle type of each angle patom1, patom2 = store IDs of 2 atoms in each pair (within force cutoff)
datom1, datom2, datom3, datom4 = IDs of 4 atoms in each dihedral ptype1, ptype2 = store types of 2 atoms in each pair (within force cutoff)
dtype = dihedral type of each dihedral
iatom1, iatom2, iatom3, iatom4 = IDs of 4 atoms in each improper * Bond attributes
itype = improper type of each improper
.. parsed-literal::
batom1, batom2 = store IDs of 2 atoms in each bond
btype = store bond type of each bond
* Angle attributes
.. parsed-literal::
aatom1, aatom2, aatom3 = store IDs of 3 atoms in each angle
atype = store angle type of each angle
* Dihedral attributes
.. parsed-literal::
datom1, datom2, datom3, datom4 = store IDs of 4 atoms in each dihedral
dtype = store dihedral type of each dihedral
* Improper attributes
.. parsed-literal::
iatom1, iatom2, iatom3, iatom4 = store IDs of 4 atoms in each improper
itype = store improper type of each improper
* zero or more keyword/arg pairs may be appended * zero or more keyword/arg pairs may be appended
* keyword = *cutoff* * keyword = *cutoff*
@ -66,7 +94,7 @@ If multiple attributes are specified then they must all generate the
same amount of information, so that the resulting local array has the same amount of information, so that the resulting local array has the
same number of rows for each column. This means that only bond same number of rows for each column. This means that only bond
attributes can be specified together, or angle attributes, etc. Bond attributes can be specified together, or angle attributes, etc. Bond
and angle attributes can not be mixed in the same compute and angle attributes cannot be mixed in the same compute
property/local command. property/local command.
If the inputs are pair attributes, the local data is generated by If the inputs are pair attributes, the local data is generated by
@ -113,21 +141,21 @@ same for local vectors or arrays generated by other compute commands.
For example, output from the :doc:`compute bond/local <compute_bond_local>` command can be combined with bond For example, output from the :doc:`compute bond/local <compute_bond_local>` command can be combined with bond
atom indices from this command and output by the :doc:`dump local <dump>` command in a consistent way. atom indices from this command and output by the :doc:`dump local <dump>` command in a consistent way.
The *natom1* and *natom2*, or *patom1* and *patom2* attributes refer The *natom1* and *natom2* or *patom1* and *patom2* attributes refer
to the atom IDs of the 2 atoms in each pairwise interaction computed to the atom IDs of the 2 atoms in each pairwise interaction computed
by the :doc:`pair_style <pair_style>` command. The *ntype1* and by the :doc:`pair_style <pair_style>` command. The *ntype1* and
*ntype2*, or *ptype1* and *ptype2* attributes refer to the atom types *ntype2* or *ptype1* and *ptype2* attributes refer to the atom types
of the 2 atoms in each pairwise interaction. of the 2 atoms in each pairwise interaction.
.. note:: .. note::
For pairs, if two atoms I,J are involved in 1-2, 1-3, 1-4 For pairs, if two atoms :math:`I,J` are involved in 1--2, 1--3, 1--4
interactions within the molecular topology, their pairwise interaction interactions within the molecular topology, their pairwise interaction
may be turned off, and thus they may not appear in the neighbor list, may be turned off, and thus they may not appear in the neighbor list,
and will not be part of the local data created by this command. More and will not be part of the local data created by this command. More
specifically, this may be true of I,J pairs with a weighting factor of specifically, this may be true of :math:`I,J` pairs with a weighting factor
0.0; pairs with a non-zero weighting factor are included. The of 0.0; pairs with a non-zero weighting factor are included. The
weighting factors for 1-2, 1-3, and 1-4 pairwise interactions are set weighting factors for 1--2, 1--3, and 1--4 pairwise interactions are set
by the :doc:`special_bonds <special_bonds>` command. by the :doc:`special_bonds <special_bonds>` command.
The *batom1* and *batom2* attributes refer to the atom IDs of the 2 The *batom1* and *batom2* attributes refer to the atom IDs of the 2
@ -136,7 +164,7 @@ the type of the bond, from 1 to Nbtypes = # of bond types. The number
of bond types is defined in the data file read by the of bond types is defined in the data file read by the
:doc:`read_data <read_data>` command. :doc:`read_data <read_data>` command.
The attributes that start with "a", "d", "i", refer to similar values The attributes that start with "a," "d," and "i" refer to similar values
for :doc:`angles <angle_style>`, :doc:`dihedrals <dihedral_style>`, and for :doc:`angles <angle_style>`, :doc:`dihedrals <dihedral_style>`, and
:doc:`impropers <improper_style>`. :doc:`impropers <improper_style>`.
@ -149,7 +177,8 @@ the array is the number of bonds, angles, etc. If a single input is
specified, a local vector is produced. If two or more inputs are specified, a local vector is produced. If two or more inputs are
specified, a local array is produced where the number of columns = the specified, a local array is produced where the number of columns = the
number of inputs. The vector or array can be accessed by any command number of inputs. The vector or array can be accessed by any command
that uses local values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output that uses local values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The vector or array values will be integers that correspond to the The vector or array values will be integers that correspond to the

View File

@ -6,13 +6,13 @@ compute ptm/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID ptm/atom structures threshold group2-ID compute ID group-ID ptm/atom structures threshold group2-ID
* ID, group-ID are documented in :doc:`compute <compute>` command * ID, group-ID are documented in :doc:`compute <compute>` command
* ptm/atom = style name of this compute command * ptm/atom = style name of this compute command
* structures = structure types to search for * structures = *default* or *all* or any hyphen-separated combination of *fcc*, *hcp*, *bcc*, *ico*, *sc*, *dcub*, *dhex*, or *graphene* = structure types to search for
* threshold = lattice distortion threshold (RMSD) * threshold = lattice distortion threshold (RMSD)
* group2-ID determines which group is used for neighbor selection (optional, default "all") * group2-ID determines which group is used for neighbor selection (optional, default "all")
@ -43,9 +43,10 @@ Currently, there are seven lattice structures PTM recognizes:
* dhex (diamond hexagonal) = 7 * dhex (diamond hexagonal) = 7
* graphene = 8 * graphene = 8
The value of the PTM structure will be 0 for unknown types and -1 for atoms not in the specified The value of the PTM structure will be 0 for unknown types and :math:`-1` for
compute group. The choice of structures to search for can be specified using the "structures" atoms not in the specified compute group. The choice of structures to search
argument, which is a hyphen-separated list of structure keywords. for can be specified using the "structures" argument, which is a
hyphen-separated list of structure keywords.
Two convenient pre-set options are provided: Two convenient pre-set options are provided:
* default: fcc-hcp-bcc-ico * default: fcc-hcp-bcc-ico
@ -63,21 +64,25 @@ The deviation is calculated as:
.. math:: .. math::
\text{RMSD}(\mathbf{u}, \mathbf{v}) = \min_{s, \mathbf{Q}} \sqrt{\frac{1}{N} \sum\limits_{i=1}^{N} \text{RMSD}(\mathbf{u}, \mathbf{v})
{\left|\left| s[\vec{u_i} - \overline{\mathbf{u}}] - \mathbf{Q} \vec{v_i} \right|\right|}^2} = \min_{s, \mathbf{Q}} \sqrt{\frac{1}{N} \sum\limits_{i=1}^{N}
{\left\lVert s[\vec{u_i} - \mathbf{\bar{u}}]
- \mathbf{Q} \cdot \vec{v_i} \right\rVert}^2}
Here, u and v contain the coordinates of the local and ideal structures respectively, Here, :math:`\vec u` and :math:`\vec v` contain the coordinates of the local
s is a scale factor, and Q is a rotation. The best match is identified by the and ideal structures respectively, :math:`s` is a scale factor, and
lowest RMSD value, using the optimal scaling, rotation, and correspondence between the :math:`\mathbf Q` is a rotation. The best match is identified by the lowest
RMSD value, using the optimal scaling, rotation, and correspondence between the
points. points.
The 'threshold' keyword sets an upper limit on the maximum permitted deviation before The *threshold* keyword sets an upper limit on the maximum permitted deviation
a local structure is identified as disordered. Typical values are in the range 0.1-0.15, before a local structure is identified as disordered. Typical values are in
but larger values may be desirable at higher temperatures. the range 0.1--0.15, but larger values may be desirable at higher temperatures.
A value of 0 is equivalent to infinity and can be used if no threshold is desired. A value of 0 is equivalent to infinity and can be used if no threshold is
desired.
The neighbor list needed to compute this quantity is constructed each The neighbor list needed to compute this quantity is constructed each
time the calculation is performed (e.g. each time a snapshot of atoms time the calculation is performed (e.g., each time a snapshot of atoms
is dumped). Thus it can be inefficient to compute/dump this quantity is dumped). Thus it can be inefficient to compute/dump this quantity
too frequently or to have multiple compute/dump commands, each with a too frequently or to have multiple compute/dump commands, each with a
*ptm/atom* style. By default the compute processes **all** neighbors *ptm/atom* style. By default the compute processes **all** neighbors
@ -102,11 +107,12 @@ Results are stored in the per-atom array in the following order:
* qy * qy
* qz * qz
The type is a number from -1 to 8. The rmsd is a positive real number. The type is a number from :math:`-1` to 8. The rmsd is a positive real number.
The interatomic distance is computed from the scale factor in the RMSD equation. The interatomic distance is computed from the scale factor in the RMSD equation.
The (qw,qx,qy,qz) parameters represent the orientation of the local structure The :math:`(qw,qx,qy,qz)` parameters represent the orientation of the local
in quaternion form. The reference coordinates for each template (from which the structure in quaternion form. The reference coordinates for each template
orientation is determined) can be found in the *ptm_constants.h* file in the PTM source directory. (from which the orientation is determined) can be found in the
*ptm_constants.h* file in the PTM source directory.
For atoms that are not within the compute group-ID, all values are set to zero. For atoms that are not within the compute group-ID, all values are set to zero.
Restrictions Restrictions

View File

@ -6,7 +6,7 @@ compute rdf command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID rdf Nbin itype1 jtype1 itype2 jtype2 ... keyword/value ... compute ID group-ID rdf Nbin itype1 jtype1 itype2 jtype2 ... keyword/value ...
@ -38,7 +38,7 @@ Description
""""""""""" """""""""""
Define a computation that calculates the radial distribution function Define a computation that calculates the radial distribution function
(RDF), also called g(r), and the coordination number for a group of (RDF), also called :math:`g(r)`, and the coordination number for a group of
particles. Both are calculated in histogram form by binning pairwise particles. Both are calculated in histogram form by binning pairwise
distances into *Nbin* bins from 0.0 to the maximum force cutoff distances into *Nbin* bins from 0.0 to the maximum force cutoff
defined by the :doc:`pair_style <pair_style>` command or the cutoff defined by the :doc:`pair_style <pair_style>` command or the cutoff
@ -58,27 +58,27 @@ shell of distances in 3d and a thin ring of distances in 2d.
using long-range coulomb interactions (\ *coul/long*, *coul/msm*, using long-range coulomb interactions (\ *coul/long*, *coul/msm*,
*coul/wolf* or similar. One way to get around this would be to set *coul/wolf* or similar. One way to get around this would be to set
special_bond scaling factors to very tiny numbers that are not exactly special_bond scaling factors to very tiny numbers that are not exactly
zero (e.g. 1.0e-50). Another workaround is to write a dump file, and zero (e.g., :math:`1.0 \times 10^{-50}`). Another workaround is to write a
use the :doc:`rerun <rerun>` command to compute the RDF for snapshots in dump file, and use the :doc:`rerun <rerun>` command to compute the RDF for
the dump file. The rerun script can use a snapshots in the dump file. The rerun script can use a
:doc:`special_bonds <special_bonds>` command that includes all pairs in :doc:`special_bonds <special_bonds>` command that includes all pairs in
the neighbor list. the neighbor list.
By default the RDF is computed out to the maximum force cutoff defined By default the RDF is computed out to the maximum force cutoff defined
by the :doc:`pair_style <pair_style>` command. If the *cutoff* keyword by the :doc:`pair_style <pair_style>` command. If the *cutoff* keyword
is used, then the RDF is computed accurately out to the *Rcut* > 0.0 is used, then the RDF is computed accurately out to the *Rcut* :math:`> 0.0`
distance specified. distance specified.
.. note:: .. note::
Normally, you should only use the *cutoff* keyword if no pair Normally, you should only use the *cutoff* keyword if no pair
style is defined, e.g. the :doc:`rerun <rerun>` command is being used to style is defined (e.g., the :doc:`rerun <rerun>` command is being used to
post-process a dump file of snapshots. Or if you really want the RDF post-process a dump file of snapshots) or if you really want the RDF
for distances beyond the pair_style force cutoff and cannot easily for distances beyond the pair_style force cutoff and cannot easily
post-process a dump file to calculate it. This is because using the post-process a dump file to calculate it. This is because using the
*cutoff* keyword incurs extra computation and possibly communication, *cutoff* keyword incurs extra computation and possibly communication,
which may slow down your simulation. If you specify a *Rcut* <= force which may slow down your simulation. If you specify *Rcut* :math:`\le`
cutoff, you will force an additional neighbor list to be built at force cutoff, you will force an additional neighbor list to be built at
every timestep this command is invoked (or every reneighboring every timestep this command is invoked (or every reneighboring
timestep, whichever is less frequent), which is inefficient. LAMMPS timestep, whichever is less frequent), which is inefficient. LAMMPS
will warn you if this is the case. If you specify a *Rcut* > force will warn you if this is the case. If you specify a *Rcut* > force
@ -92,56 +92,56 @@ distance specified.
The *itypeN* and *jtypeN* arguments are optional. These arguments The *itypeN* and *jtypeN* arguments are optional. These arguments
must come in pairs. If no pairs are listed, then a single histogram must come in pairs. If no pairs are listed, then a single histogram
is computed for g(r) between all atom types. If one or more pairs are is computed for :math:`g(r)` between all atom types. If one or more pairs are
listed, then a separate histogram is generated for each listed, then a separate histogram is generated for each
*itype*,\ *jtype* pair. *itype*,\ *jtype* pair.
The *itypeN* and *jtypeN* settings can be specified in one of two The *itypeN* and *jtypeN* settings can be specified in one of two
ways. An explicit numeric value can be used, as in the fourth example ways. An explicit numeric value can be used, as in the fourth example
above. Or a wild-card asterisk can be used to specify a range of atom above. Or a wild-card asterisk can be used to specify a range of atom
types. This takes the form "\*" or "\*n" or "n\*" or "m\*n". If N = the types. This takes the form "\*" or "\*n" or "m\*" or "m\*n". If
number of atom types, then an asterisk with no numeric values means :math:`N` is the number of atom types, then an asterisk with no numeric values
all types from 1 to N. A leading asterisk means all types from 1 to n means all types from 1 to :math:`N`. A leading asterisk means all types from 1
(inclusive). A trailing asterisk means all types from n to N to n (inclusive). A trailing asterisk means all types from m to :math:`N`
(inclusive). A middle asterisk means all types from m to n (inclusive). A middle asterisk means all types from m to n (inclusive).
(inclusive).
If both *itypeN* and *jtypeN* are single values, as in the fourth example If both *itypeN* and *jtypeN* are single values, as in the fourth example
above, this means that a g(r) is computed where atoms of type *itypeN* above, this means that a :math:`g(r)` is computed where atoms of type *itypeN*
are the central atom, and atoms of type *jtypeN* are the distribution are the central atom, and atoms of type *jtypeN* are the distribution
atom. If either *itypeN* and *jtypeN* represent a range of values via atom. If either *itypeN* and *jtypeN* represent a range of values via
the wild-card asterisk, as in the fifth example above, this means that a the wild-card asterisk, as in the fifth example above, this means that a
g(r) is computed where atoms of any of the range of types represented :math:`g(r)` is computed where atoms of any of the range of types represented
by *itypeN* are the central atom, and atoms of any of the range of by *itypeN* are the central atom, and atoms of any of the range of
types represented by *jtypeN* are the distribution atom. types represented by *jtypeN* are the distribution atom.
Pairwise distances are generated by looping over a pairwise neighbor Pairwise distances are generated by looping over a pairwise neighbor
list, just as they would be in a :doc:`pair_style <pair_style>` list, just as they would be in a :doc:`pair_style <pair_style>`
computation. The distance between two atoms I and J is included in a computation. The distance between two atoms :math:`I` and :math:`J` is
specific histogram if the following criteria are met: included in a specific histogram if the following criteria are met:
* atoms I,J are both in the specified compute group * atoms :math:`I` and :math:`J` are both in the specified compute group
* the distance between atoms I,J is less than the maximum force cutoff * the distance between atoms :math:`I` and :math:`J` is less than the maximum
* the type of the I atom matches itypeN (one or a range of types) force cutoff
* the type of the J atom matches jtypeN (one or a range of types) * the type of the :math:`I` atom matches *itypeN* (one or a range of types)
* the type of the :math:`J` atom matches *jtypeN* (one or a range of types)
It is OK if a particular pairwise distance is included in more than It is OK if a particular pairwise distance is included in more than
one individual histogram, due to the way the *itypeN* and *jtypeN* one individual histogram, due to the way the *itypeN* and *jtypeN*
arguments are specified. arguments are specified.
The g(r) value for a bin is calculated from the histogram count by The :math:`g(r)` value for a bin is calculated from the histogram count by
scaling it by the idealized number of how many counts there would be scaling it by the idealized number of how many counts there would be
if atoms of type *jtypeN* were uniformly distributed. Thus it if atoms of type *jtypeN* were uniformly distributed. Thus it
involves the count of *itypeN* atoms, the count of *jtypeN* atoms, the involves the count of *itypeN* atoms, the count of *jtypeN* atoms, the
volume of the entire simulation box, and the volume of the bin's thin volume of the entire simulation box, and the volume of the bin's thin
shell in 3d (or the area of the bin's thin ring in 2d). shell in 3d (or the area of the bin's thin ring in 2d).
A coordination number coord(r) is also calculated, which is the number A coordination number :math:`\mathrm{coord}(r)` is also calculated, which is
of atoms of type *jtypeN* within the current bin or closer, averaged the number of atoms of type *jtypeN* within the current bin or closer, averaged
over atoms of type *itypeN*\ . This is calculated as the area- or over atoms of type *itypeN*\ . This is calculated as the area- or
volume-weighted sum of g(r) values over all bins up to and including volume-weighted sum of :math:`g(r)` values over all bins up to and including
the current bin, multiplied by the global average volume density of the current bin, multiplied by the global average volume density of
atoms of type jtypeN. atoms of type *jtypeN*.
The simplest way to output the results of the compute rdf calculation The simplest way to output the results of the compute rdf calculation
to a file is to use the :doc:`fix ave/time <fix_ave_time>` command, for to a file is to use the :doc:`fix ave/time <fix_ave_time>` command, for
@ -155,41 +155,43 @@ example:
Output info Output info
""""""""""" """""""""""
This compute calculates a global array with the number of rows = This compute calculates a global array in which the number of rows is
*Nbins*, and the number of columns = 1 + 2\*Npairs, where Npairs is the *Nbins* and the number of columns is :math:`1 + 2N_\text{pairs}`, where
number of I,J pairings specified. The first column has the bin :math:`N_\text{pairs}` is the number of :math:`I,J` pairings specified.
coordinate (center of the bin), Each successive set of 2 columns has The first column has the bin coordinate (center of the bin), and each
the g(r) and coord(r) values for a specific set of *itypeN* versus successive set of two columns has the :math:`g(r)` and :math:`\text{coord}(r)`
*jtypeN* interactions, as described above. These values can be used values for a specific set of *itypeN* versus *jtypeN* interactions,
as described above. These values can be used
by any command that uses a global values from a compute as input. See by any command that uses a global values from a compute as input. See
the :doc:`Howto output <Howto_output>` page for an overview of the :doc:`Howto output <Howto_output>` page for an overview of
LAMMPS output options. LAMMPS output options.
The array values calculated by this compute are all "intensive". The array values calculated by this compute are all "intensive."
The first column of array values will be in distance The first column of array values will be in distance
:doc:`units <units>`. The g(r) columns of array values are normalized :doc:`units <units>`. The :math:`g(r)` columns of array values are normalized
numbers >= 0.0. The coordination number columns of array values are numbers :math:`\ge 0.0`. The coordination number columns of array values are
also numbers >= 0.0. also numbers :math:`\ge 0.0`.
Restrictions Restrictions
"""""""""""" """"""""""""
The RDF is not computed for distances longer than the force cutoff, The RDF is not computed for distances longer than the force cutoff,
since processors (in parallel) don't know about atom coordinates for since processors (in parallel) do not know about atom coordinates for
atoms further away than that distance. If you want an RDF for larger atoms further away than that distance. If you want an RDF for larger
distances, you can use the :doc:`rerun <rerun>` command to post-process distances, you can use the :doc:`rerun <rerun>` command to post-process
a dump file and set the cutoff for the potential to be longer in the a dump file and set the cutoff for the potential to be longer in the
rerun script. Note that in the rerun context, the force cutoff is rerun script. Note that in the rerun context, the force cutoff is
arbitrary, since you are not running dynamics and thus are not changing arbitrary, since you are not running dynamics and thus are not changing
your model. The definition of g(r) used by LAMMPS is only appropriate your model. The definition of :math:`g(r)` used by LAMMPS is only appropriate
for characterizing atoms that are uniformly distributed throughout the for characterizing atoms that are uniformly distributed throughout the
simulation cell. In such cases, the coordination number is still simulation cell. In such cases, the coordination number is still
correct and meaningful. As an example, if a large simulation cell correct and meaningful. As an example, if a large simulation cell
contains only one atom of type *itypeN* and one of *jtypeN*, then g(r) contains only one atom of type *itypeN* and one of *jtypeN*, then :math:`g(r)`
will register an arbitrarily large spike at whatever distance they will register an arbitrarily large spike at whatever distance they
happen to be at, and zero everywhere else. Coord(r) will show a step happen to be at, and zero everywhere else.
change from zero to one at the location of the spike in g(r). The function :math:`\text{coord}(r)` will show a step
change from zero to one at the location of the spike in :math:`g(r)`.
.. note:: .. note::
@ -198,7 +200,7 @@ change from zero to one at the location of the spike in g(r).
parameters need to be re-computed in every step and include collective parameters need to be re-computed in every step and include collective
communication operations. This will reduce performance and limit communication operations. This will reduce performance and limit
parallel efficiency and scaling. For systems, where only the type parallel efficiency and scaling. For systems, where only the type
of atoms changes (e.g. when using :doc:`fix atom/swap <fix_atom_swap>`), of atoms changes (e.g., when using :doc:`fix atom/swap <fix_atom_swap>`),
you need to explicitly request the dynamic normalization updates you need to explicitly request the dynamic normalization updates
via :doc:`compute_modify dynamic yes <compute_modify>` via :doc:`compute_modify dynamic yes <compute_modify>`

View File

@ -10,7 +10,7 @@ compute reduce/region command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID style arg mode input1 input2 ... keyword args ... compute ID group-ID style arg mode input1 input2 ... keyword args ...
@ -25,11 +25,11 @@ Syntax
* mode = *sum* or *min* or *max* or *ave* or *sumsq* or *avesq* or *sumabs* or *aveabs* * mode = *sum* or *min* or *max* or *ave* or *sumsq* or *avesq* or *sumabs* or *aveabs*
* one or more inputs can be listed * one or more inputs can be listed
* input = x, y, z, vx, vy, vz, fx, fy, fz, c_ID, c_ID[N], f_ID, f_ID[N], v_name * input = *x* or *y* or *z* or *vx* or *vy* or *vz* or *fx* or *fy* or *fz* or c_ID or c_ID[N] or f_ID or f_ID[N] or v_name
.. parsed-literal:: .. parsed-literal::
x,y,z,vx,vy,vz,fx,fy,fz = atom attribute (position, velocity, force component) *x*,\ *y*,\ *z*,\ *vx*,\ *vy*,\ *vz*,\ *fx*,\ *fy*,\ *fz* = atom attribute (position, velocity, force component)
c_ID = per-atom or local vector calculated by a compute with ID c_ID = per-atom or local vector calculated by a compute with ID
c_ID[I] = Ith column of per-atom or local array calculated by a compute with ID, I can include wildcard (see below) c_ID[I] = Ith column of per-atom or local array calculated by a compute with ID, I can include wildcard (see below)
f_ID = per-atom or local vector calculated by a fix with ID f_ID = per-atom or local vector calculated by a fix with ID
@ -76,10 +76,10 @@ then divides by the number of values in the vector. The *sumsq*
option sums the square of the values in the vector into a global option sums the square of the values in the vector into a global
total. The *avesq* setting does the same as *sumsq*, then divides the total. The *avesq* setting does the same as *sumsq*, then divides the
sum of squares by the number of values. The last two options can be sum of squares by the number of values. The last two options can be
useful for calculating the variance of some quantity, e.g. variance = useful for calculating the variance of some quantity (e.g., variance =
sumsq - ave\^2. The *sumabs* option sums the absolute values in the sumsq :math:`-` ave\ :math:`^2`). The *sumabs* option sums the absolute
vector into a global total. The *aveabs* setting does the same as values in the vector into a global total. The *aveabs* setting does the same
*sumabs*, then divides the sum of absolute values by the number of as *sumabs*, then divides the sum of absolute values by the number of
values. values.
Each listed input is operated on independently. For per-atom inputs, Each listed input is operated on independently. For per-atom inputs,
@ -97,20 +97,21 @@ component) or can be the result of a :doc:`compute <compute>` or
:doc:`fix <fix>` or the evaluation of an atom-style :doc:`fix <fix>` or the evaluation of an atom-style
:doc:`variable <variable>`. :doc:`variable <variable>`.
Note that for values from a compute or fix, the bracketed index I can Note that for values from a compute or fix, the bracketed index :math:`I` can
be specified using a wildcard asterisk with the index to effectively be specified using a wildcard asterisk with the index to effectively
specify multiple values. This takes the form "\*" or "\*n" or "n\*" or specify multiple values. This takes the form "\*" or "\*n" or "m\*" or
"m\*n". If N = the size of the vector (for *mode* = scalar) or the "m\*n". If :math:`N` is the size of the vector (for *mode* = scalar) or the
number of columns in the array (for *mode* = vector), then an asterisk number of columns in the array (for *mode* = vector), then an asterisk
with no numeric values means all indices from 1 to N. A leading with no numeric values means all indices from 1 to :math:`N`. A leading
asterisk means all indices from 1 to n (inclusive). A trailing asterisk means all indices from 1 to n (inclusive). A trailing
asterisk means all indices from n to N (inclusive). A middle asterisk asterisk means all indices from m to :math:`N` (inclusive). A middle asterisk
means all indices from m to n (inclusive). means all indices from m to n (inclusive).
Using a wildcard is the same as if the individual columns of the array Using a wildcard is the same as if the individual columns of the array
had been listed one by one. E.g. these 2 compute reduce commands are had been listed one by one. For example, the following two compute reduce
equivalent, since the :doc:`compute stress/atom <compute_stress_atom>` commands are equivalent, since the
command creates a per-atom array with 6 columns: :doc:`compute stress/atom <compute_stress_atom>` command creates a per-atom
array with six columns:
.. code-block:: LAMMPS .. code-block:: LAMMPS
@ -121,12 +122,13 @@ command creates a per-atom array with 6 columns:
---------- ----------
The atom attribute values (x,y,z,vx,vy,vz,fx,fy,fz) are The atom attribute values (*x*, *y*, *z*, *vx*, *vy*, *vz*, *fx*, *fy*, and
self-explanatory. Note that other atom attributes can be used as *fz*) are self-explanatory. Note that other atom attributes can be used as
inputs to this fix by using the :doc:`compute property/atom <compute_property_atom>` command and then specifying inputs to this fix by using the
:doc:`compute property/atom <compute_property_atom>` command and then specifying
an input value from that compute. an input value from that compute.
If a value begins with "c\_", a compute ID must follow which has been If a value begins with "c\_," a compute ID must follow which has been
previously defined in the input script. Computes can generate previously defined in the input script. Computes can generate
per-atom or local quantities. See the individual per-atom or local quantities. See the individual
:doc:`compute <compute>` page for details. If no bracketed integer :doc:`compute <compute>` page for details. If no bracketed integer
@ -134,10 +136,10 @@ is appended, the vector calculated by the compute is used. If a
bracketed integer is appended, the Ith column of the array calculated bracketed integer is appended, the Ith column of the array calculated
by the compute is used. Users can also write code for their own by the compute is used. Users can also write code for their own
compute styles and :doc:`add them to LAMMPS <Modify>`. See the compute styles and :doc:`add them to LAMMPS <Modify>`. See the
discussion above for how I can be specified with a wildcard asterisk discussion above for how :math:`I` can be specified with a wildcard asterisk
to effectively specify multiple values. to effectively specify multiple values.
If a value begins with "f\_", a fix ID must follow which has been If a value begins with "f\_," a fix ID must follow which has been
previously defined in the input script. Fixes can generate per-atom previously defined in the input script. Fixes can generate per-atom
or local quantities. See the individual :doc:`fix <fix>` page for or local quantities. See the individual :doc:`fix <fix>` page for
details. Note that some fixes only produce their values on certain details. Note that some fixes only produce their values on certain
@ -145,27 +147,27 @@ timesteps, which must be compatible with when compute reduce
references the values, else an error results. If no bracketed integer references the values, else an error results. If no bracketed integer
is appended, the vector calculated by the fix is used. If a bracketed is appended, the vector calculated by the fix is used. If a bracketed
integer is appended, the Ith column of the array calculated by the fix integer is appended, the Ith column of the array calculated by the fix
is used. Users can also write code for their own fix style and :doc:`add them to LAMMPS <Modify>`. See the discussion above for how I can is used. Users can also write code for their own fix style and
be specified with a wildcard asterisk to effectively specify multiple :doc:`add them to LAMMPS <Modify>`. See the discussion above for how
values. :math:`I` can be specified with a wildcard asterisk to effectively specify
multiple values.
If a value begins with "v\_", a variable name must follow which has If a value begins with "v\_," a variable name must follow which has
been previously defined in the input script. It must be an been previously defined in the input script. It must be an
:doc:`atom-style variable <variable>`. Atom-style variables can :doc:`atom-style variable <variable>`. Atom-style variables can
reference thermodynamic keywords and various per-atom attributes, or reference thermodynamic keywords and various per-atom attributes, or
invoke other computes, fixes, or variables when they are evaluated, so invoke other computes, fixes, or variables when they are evaluated, so
this is a very general means of generating per-atom quantities to this is a very general means of generating per-atom quantities to reduce.
reduce.
---------- ----------
If the *replace* keyword is used, two indices *vec1* and *vec2* are If the *replace* keyword is used, two indices *vec1* and *vec2* are
specified, where each index ranges from 1 to the # of input values. specified, where each index ranges from 1 to the number of input values.
The replace keyword can only be used if the *mode* is *min* or *max*\ . The replace keyword can only be used if the *mode* is *min* or *max*\ .
It works as follows. A min/max is computed as usual on the *vec2* It works as follows. A min/max is computed as usual on the *vec2*
input vector. The index N of that value within *vec2* is also stored. input vector. The index :math:`N` of that value within *vec2* is also stored.
Then, instead of performing a min/max on the *vec1* input vector, the Then, instead of performing a min/max on the *vec1* input vector, the
stored index is used to select the Nth element of the *vec1* vector. stored index is used to select the :math:`N`\ th element of the *vec1* vector.
Thus, for example, if you wish to use this compute to find the bond Thus, for example, if you wish to use this compute to find the bond
with maximum stretch, you can do it as follows: with maximum stretch, you can do it as follows:
@ -178,8 +180,10 @@ with maximum stretch, you can do it as follows:
thermo_style custom step temp c_3[1] c_3[2] c_3[3] thermo_style custom step temp c_3[1] c_3[2] c_3[3]
The first two input values in the compute reduce command are vectors The first two input values in the compute reduce command are vectors
with the IDs of the 2 atoms in each bond, using the :doc:`compute property/local <compute_property_local>` command. The last input with the IDs of the 2 atoms in each bond, using the
value is bond distance, using the :doc:`compute bond/local <compute_bond_local>` command. Instead of taking the :doc:`compute property/local <compute_property_local>` command. The last input
value is bond distance, using the
:doc:`compute bond/local <compute_bond_local>` command. Instead of taking the
max of the two atom ID vectors, which does not yield useful max of the two atom ID vectors, which does not yield useful
information in this context, the *replace* keywords will extract the information in this context, the *replace* keywords will extract the
atom IDs for the two atoms in the bond of maximum stretch. These atom atom IDs for the two atoms in the bond of maximum stretch. These atom
@ -192,10 +196,13 @@ value. If multiple inputs are specified, this compute produces a
global vector of values, the length of which is equal to the number of global vector of values, the length of which is equal to the number of
inputs specified. inputs specified.
As discussed below, for the *sum*, *sumabs* and *sumsq* modes, the value(s) As discussed below, for the *sum*, *sumabs*, and *sumsq* modes, the value(s)
produced by this compute are all "extensive", meaning their value produced by this compute are all "extensive," meaning their value
scales linearly with the number of atoms involved. If normalized scales linearly with the number of atoms involved. If normalized
values are desired, this compute can be accessed by the :doc:`thermo_style custom <thermo_style>` command with :doc:`thermo_modify norm yes <thermo_modify>` set as an option. Or it can be accessed by a values are desired, this compute can be accessed by the
:doc:`thermo_style custom <thermo_style>` command with
:doc:`thermo_modify norm yes <thermo_modify>` set as an option.
Or it can be accessed by a
:doc:`variable <variable>` that divides by the appropriate atom count. :doc:`variable <variable>` that divides by the appropriate atom count.
---------- ----------
@ -203,17 +210,17 @@ values are desired, this compute can be accessed by the :doc:`thermo_style custo
Output info Output info
""""""""""" """""""""""
This compute calculates a global scalar if a single input value is This compute calculates a global scalar if a single input value is specified
specified or a global vector of length N where N is the number of or a global vector of length :math:`N`, where :math:`N` is the number of
inputs, and which can be accessed by indices 1 to N. These values can inputs, and which can be accessed by indices 1 to :math:`N`. These values can
be used by any command that uses global scalar or vector values from a be used by any command that uses global scalar or vector values from a
compute as input. See the :doc:`Howto output <Howto_output>` doc page compute as input. See the :doc:`Howto output <Howto_output>` doc page
for an overview of LAMMPS output options. for an overview of LAMMPS output options.
All the scalar or vector values calculated by this compute are All the scalar or vector values calculated by this compute are
"intensive", except when the *sum*, *sumabs* or *sumsq* modes are used on "intensive," except when the *sum*, *sumabs*, or *sumsq* modes are used on
per-atom or local vectors, in which case the calculated values are per-atom or local vectors, in which case the calculated values are
"extensive". "extensive."
The scalar or vector values will be in whatever :doc:`units <units>` the The scalar or vector values will be in whatever :doc:`units <units>` the
quantities being reduced are in. quantities being reduced are in.

View File

@ -61,7 +61,7 @@ per-atom values for each chunk.
Note that only atoms in the specified group contribute to the Note that only atoms in the specified group contribute to the
reduction operation. If the *chunkID* compute returns a 0 for the reduction operation. If the *chunkID* compute returns a 0 for the
chunk ID of an atom (i.e. the atom is not in a chunk defined by the chunk ID of an atom (i.e., the atom is not in a chunk defined by the
:doc:`compute chunk/atom <compute_chunk_atom>` command), that atom will :doc:`compute chunk/atom <compute_chunk_atom>` command), that atom will
also not contribute to the reduction operation. An input that is a also not contribute to the reduction operation. An input that is a
compute or fix may define its own group which affects the quantities compute or fix may define its own group which affects the quantities
@ -74,17 +74,18 @@ of an atom-style :doc:`variable <variable>`.
Note that for values from a compute or fix, the bracketed index I can Note that for values from a compute or fix, the bracketed index I can
be specified using a wildcard asterisk with the index to effectively be specified using a wildcard asterisk with the index to effectively
specify multiple values. This takes the form "\*" or "\*n" or "n\*" or specify multiple values. This takes the form "\*" or "\*n" or "m\*" or
"m\*n". If N = the size of the vector (for *mode* = scalar) or the "m\*n". If :math:`N` is the size of the vector (for *mode* = scalar) or the
number of columns in the array (for *mode* = vector), then an asterisk number of columns in the array (for *mode* = vector), then an asterisk
with no numeric values means all indices from 1 to N. A leading with no numeric values means all indices from 1 to :math:`N`. A leading
asterisk means all indices from 1 to n (inclusive). A trailing asterisk means all indices from 1 to n (inclusive). A trailing
asterisk means all indices from n to N (inclusive). A middle asterisk asterisk means all indices from n to :math:`N` (inclusive). A middle asterisk
means all indices from m to n (inclusive). means all indices from m to n (inclusive).
Using a wildcard is the same as if the individual columns of the array Using a wildcard is the same as if the individual columns of the array
had been listed one by one. E.g. these 2 compute reduce/chunk had been listed one by one. For example, the following two compute reduce/chunk
commands are equivalent, since the :doc:`compute property/chunk <compute_property_chunk>` command creates a per-atom commands are equivalent, since the
:doc:`compute property/chunk <compute_property_chunk>` command creates a per-atom
array with 3 columns: array with 3 columns:
.. code-block:: LAMMPS .. code-block:: LAMMPS
@ -101,13 +102,13 @@ The commands below can be added to the examples/in.micelle script.
Imagine a collection of polymer chains or small molecules with Imagine a collection of polymer chains or small molecules with
hydrophobic end groups. All the hydrophobic (HP) atoms are assigned hydrophobic end groups. All the hydrophobic (HP) atoms are assigned
to a group called "phobic". to a group called "phobic."
These commands will assign a unique cluster ID to all HP atoms within These commands will assign a unique cluster ID to all HP atoms within
a specified distance of each other. A cluster will contain all HP a specified distance of each other. A cluster will contain all HP
atoms in a single molecule, but also the HP atoms in nearby molecules, atoms in a single molecule, but also the HP atoms in nearby molecules
e.g. molecules that have clumped to form a micelle due to the (e.g., molecules that have clumped to form a micelle due to the
attraction induced by the hydrophobicity. The output of the attraction induced by the hydrophobicity). The output of the
chunk/reduce command will be a cluster ID per chunk (molecule). chunk/reduce command will be a cluster ID per chunk (molecule).
Molecules with the same cluster ID are in the same micelle. Molecules with the same cluster ID are in the same micelle.
@ -136,7 +137,7 @@ atoms of that atom's molecule belong to.
The result from compute chunk/spread/atom can be used to define a new The result from compute chunk/spread/atom can be used to define a new
set of chunks, where all the atoms in all the molecules in the same set of chunks, where all the atoms in all the molecules in the same
micelle are assigned to the same chunk, i.e. one chunk per micelle. micelle are assigned to the same chunk (i.e., one chunk per micelle).
.. code-block:: LAMMPS .. code-block:: LAMMPS
@ -144,9 +145,8 @@ micelle are assigned to the same chunk, i.e. one chunk per micelle.
Further analysis on a per-micelle basis can now be performed using any Further analysis on a per-micelle basis can now be performed using any
of the per-chunk computes listed on the :doc:`Howto chunk <Howto_chunk>` of the per-chunk computes listed on the :doc:`Howto chunk <Howto_chunk>`
doc page. E.g. count the number of atoms in each micelle, calculate doc page (e.g., count the number of atoms in each micelle, calculate
its center or mass, shape (moments of inertia), radius of gyration, its center or mass, shape/moments of inertia, and radius of gyration).
etc.
.. code-block:: LAMMPS .. code-block:: LAMMPS
@ -155,7 +155,7 @@ etc.
Each snapshot in the tmp.micelle file will have one line per micelle Each snapshot in the tmp.micelle file will have one line per micelle
with its count of atoms, plus a first line for a chunk with all the with its count of atoms, plus a first line for a chunk with all the
solvent atoms. By the time 50000 steps have elapsed there are a solvent atoms. By the time 50000 steps have elapsed, there are a
handful of large micelles. handful of large micelles.
---------- ----------

View File

@ -108,7 +108,8 @@ The *mass* attribute is the total mass of the rigid body.
There are two options for outputting the coordinates of the center of There are two options for outputting the coordinates of the center of
mass (COM) of the body. The *x*, *y*, *z* attributes write the COM mass (COM) of the body. The *x*, *y*, *z* attributes write the COM
"unscaled", in the appropriate distance :doc:`units <units>` (Angstroms, "unscaled", in the appropriate distance :doc:`units <units>`
(:math:`\mathrm{\mathring A}`,
sigma, etc). Use *xu*, *yu*, *zu* if you want the COM "unwrapped" by sigma, etc). Use *xu*, *yu*, *zu* if you want the COM "unwrapped" by
the image flags for each body. Unwrapped means that if the body the image flags for each body. Unwrapped means that if the body
COM has passed through a periodic boundary one or more times, the value COM has passed through a periodic boundary one or more times, the value

View File

@ -86,19 +86,20 @@ will defined using the *c* values for the spacing along each reciprocal
lattice axis. Note that manual mapping of the reciprocal space mesh is lattice axis. Note that manual mapping of the reciprocal space mesh is
good for comparing diffraction results from multiple simulations; however good for comparing diffraction results from multiple simulations; however
it can reduce the likelihood that Bragg reflections will be satisfied it can reduce the likelihood that Bragg reflections will be satisfied
unless small spacing parameters <0.05 Angstrom\^(-1) are implemented. unless small spacing parameters (:math:`<0.05~\mathrm{\mathring A}^-1`)
Meshes with manual spacing do not require a periodic boundary. are implemented. Meshes with manual spacing do not require a periodic
boundary.
The limits of the reciprocal lattice mesh are determined by the use of The limits of the reciprocal lattice mesh are determined by the use of
the *Kmax*, *Zone*, and *dR_Ewald* parameters. The rectilinear mesh the *Kmax*, *Zone*, and *dR_Ewald* parameters. The rectilinear mesh
created about the origin of reciprocal space is terminated at the created about the origin of reciprocal space is terminated at the
boundary of a sphere of radius *Kmax* centered at the origin. If boundary of a sphere of radius *Kmax* centered at the origin. If
*Zone* parameters z1=z2=z3=0 are used, diffraction intensities are *Zone* parameters *z1* = *z2* = *z3* = 0 are used, diffraction intensities are
computed throughout the entire spherical volume - note this can computed throughout the entire spherical volume - note this can
greatly increase the cost of computation. Otherwise, *Zone* greatly increase the cost of computation. Otherwise, *Zone*
parameters will denote the z1=h, z2=k, and z3=l (in a global since) parameters will denote the :math:`z1=h`, :math:`z2=k`, and :math:`z3=\ell`
zone axis of an intersecting Ewald sphere. Diffraction intensities (in a global sense) zone axis of an intersecting Ewald sphere. Diffraction
will only be computed at the intersection of the reciprocal lattice intensities will only be computed at the intersection of the reciprocal lattice
mesh and a *dR_Ewald* thick surface of the Ewald sphere. See the mesh and a *dR_Ewald* thick surface of the Ewald sphere. See the
example 3D intensity data and the intersection of a [010] zone axis example 3D intensity data and the intersection of a [010] zone axis
in the below image. in the below image.

View File

@ -10,7 +10,7 @@ compute centroid/stress/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID style temp-ID keyword ... compute ID group-ID style temp-ID keyword ...

View File

@ -10,7 +10,7 @@ compute stress/mop/profile command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID style dir args keywords ... compute ID group-ID style dir args keywords ...
@ -28,6 +28,9 @@ Syntax
origin = *lower* or *center* or *upper* or coordinate value (distance units) is the position of the first plane origin = *lower* or *center* or *upper* or coordinate value (distance units) is the position of the first plane
delta = value (distance units) is the distance between planes delta = value (distance units) is the distance between planes
Examples
""""""""
.. code-block:: LAMMPS .. code-block:: LAMMPS
compute 1 all stress/mop x lower total compute 1 all stress/mop x lower total
@ -49,7 +52,7 @@ components are computed in directions *dir*,\ *x*\ ; *dir*,\ *y*\ ; and
*dir*,\ *z*\ ; where *dir* is the direction normal to the plane, while *dir*,\ *z*\ ; where *dir* is the direction normal to the plane, while
in compute *stress/mop/profile* the profile of the stress is computed. in compute *stress/mop/profile* the profile of the stress is computed.
Contrary to methods based on histograms of atomic stress (i.e. using Contrary to methods based on histograms of atomic stress (i.e., using
:doc:`compute stress/atom <compute_stress_atom>`), the method of planes is :doc:`compute stress/atom <compute_stress_atom>`), the method of planes is
compatible with mechanical balance in heterogeneous systems and at compatible with mechanical balance in heterogeneous systems and at
interfaces :ref:`(Todd) <mop-todd>`. interfaces :ref:`(Todd) <mop-todd>`.
@ -57,9 +60,9 @@ interfaces :ref:`(Todd) <mop-todd>`.
The stress tensor is the sum of a kinetic term and a configurational The stress tensor is the sum of a kinetic term and a configurational
term, which are given respectively by Eq. (21) and Eq. (16) in term, which are given respectively by Eq. (21) and Eq. (16) in
:ref:`(Todd) <mop-todd>`. For the kinetic part, the algorithm considers that :ref:`(Todd) <mop-todd>`. For the kinetic part, the algorithm considers that
atoms have crossed the plane if their positions at times t-dt and t are atoms have crossed the plane if their positions at times :math:`t-\Delta t`
one on either side of the plane, and uses the velocity at time t-dt/2 and :math:`t` are one on either side of the plane, and uses the velocity at
given by the velocity-Verlet algorithm. time :math:`t-\Delta t/2` given by the velocity Verlet algorithm.
Between one and three keywords can be used to indicate which Between one and three keywords can be used to indicate which
contributions to the stress must be computed: kinetic stress (kin), contributions to the stress must be computed: kinetic stress (kin),
@ -74,11 +77,9 @@ command, since those are contributions to the global system pressure.
NOTE 3: The local stress profile generated by compute *stress/mop/profile* NOTE 3: The local stress profile generated by compute *stress/mop/profile*
is similar to that obtained by compute is similar to that obtained by compute
:doc:`stress/cartesian <compute_stress_profile>`. :doc:`stress/cartesian <compute_stress_profile>`.
A key difference A key difference is that compute *stress/mop/profile* considers particles
is that compute *stress/mop/profile* considers particles crossing a set of planes, while compute *stress/cartesian* computes averages
crossing a set of planes, for a set of small volumes. More information
while compute *stress/cartesian* computes averages for a set of
small volumes. More information
on the similarities and differences can be found in on the similarities and differences can be found in
:ref:`(Ikeshoji)<Ikeshoji2>`. :ref:`(Ikeshoji)<Ikeshoji2>`.

View File

@ -15,7 +15,7 @@ compute stress/spherical command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID style args compute ID group-ID style args
@ -26,8 +26,9 @@ Syntax
.. parsed-literal:: .. parsed-literal::
*stress/cartesian* args = dim bin_width *stress/cartesian* args = dim bin_width
dim = x, y, or z. One or two dim/bin_width pairs may be appended dim = *x* or *y* or *z*
bin_width = width of the bin bin_width = width of the bin
one or two dim/bin_width pairs may be appended
*stress/cylinder* args = zlo zh Rmax bin_width keyword *stress/cylinder* args = zlo zh Rmax bin_width keyword
zlo = minimum z-boundary for cylinder zlo = minimum z-boundary for cylinder
zhi = maximum z-boundary for cylinder zhi = maximum z-boundary for cylinder
@ -63,7 +64,7 @@ gives the total stress tensor :math:`P = P^k+P^v`. These computes can
for example be used to calculate the diagonal components of the local for example be used to calculate the diagonal components of the local
stress tensor of interfaces with flat, cylindrical, or spherical stress tensor of interfaces with flat, cylindrical, or spherical
symmetry. These computes obeys momentum balance through fluid symmetry. These computes obeys momentum balance through fluid
interfaces. They use the Irving-Kirkwood contour, which is the straight interfaces. They use the Irving--Kirkwood contour, which is the straight
line between particle pairs. line between particle pairs.
The *stress/cartesian* computes the stress profile along one or two The *stress/cartesian* computes the stress profile along one or two
@ -83,27 +84,28 @@ center of the local volume in the first and second dimensions, number
density, :math:`P^k_{xx}`, :math:`P^k_{yy}`, :math:`P^k_{zz}`, density, :math:`P^k_{xx}`, :math:`P^k_{yy}`, :math:`P^k_{zz}`,
:math:`P^v_{xx}`, :math:`P^v_{yy}`, and :math:`P^v_{zz}`. There are 8 :math:`P^v_{xx}`, :math:`P^v_{yy}`, and :math:`P^v_{zz}`. There are 8
columns when one dimension is specified and 9 columns when two columns when one dimension is specified and 9 columns when two
dimensions are specified. The number of bins/rows are dimensions are specified. The number of bins (rows) is
(L1/bin_width1)*(L2/bin_width2), L1 and L2 are the sizes of the :math:`(L_1/b_1)(L_2/b_2)`, where :math:`L_1` and :math:`L_2` are the lengths
simulation box in the specified dimensions, and bin_width1 and of the simulation box in the specified dimensions and :math:`b_1` and
bin_width2 are the specified bin widths. When only one dimension is :math:`b_2` are the specified bin widths. When only one dimension is
specified the number of bins/rows are L1/bin_width. specified, the number of bins (rows) is :math:`L_1/b_1`.
The default output columns for *stress/cylinder* are the radius to the The default output columns for *stress/cylinder* are the radius to the
center of the cylindrical shell, number density, :math:`P^k_{rr}`, center of the cylindrical shell, number density, :math:`P^k_{rr}`,
:math:`P^k_{\phi\phi}`, :math:`P^k_{zz}`, :math:`P^v_{rr}`, :math:`P^k_{\phi\phi}`, :math:`P^k_{zz}`, :math:`P^v_{rr}`,
:math:`P^v_{\phi\phi}`, and :math:`P^v_{zz}`. When the keyword *ke* is :math:`P^v_{\phi\phi}`, and :math:`P^v_{zz}`. When the keyword *ke* is
set to no, the kinetic contributions are not calculated, and set to *no*, the kinetic contributions are not calculated, and
consequently there are only 5 columns the radius to the center of the consequently there are only 5 columns: the position of the center of the
cylindrical shell, number density, :math:`P^v_{rr}`, cylindrical shell, the number density, :math:`P^v_{rr}`,
:math:`P^v_{\phi\phi}`, :math:`P^v_{zz}`. The number of bins/rows are :math:`P^v_{\phi\phi}`, and :math:`P^v_{zz}`. The number of bins (rows) is
Rmax/bin_width. :math:`R_\text{max}/b`, where :math:`b` is the specified bin width.
The output columns for *stress/spherical* are the radius to the center The output columns for *stress/spherical* are the position of the center
of the spherical shell, number density, :math:`P^k_{rr}`, of the spherical shell, the number density, :math:`P^k_{rr}`,
:math:`P^k_{\theta\theta}`, :math:`P^k_{\phi\phi}`, :math:`P^v_{rr}`, :math:`P^k_{\theta\theta}`, :math:`P^k_{\phi\phi}`, :math:`P^v_{rr}`,
:math:`P^v_{\theta\theta}`, and :math:`P^v_{\phi\phi}`. There are 8 :math:`P^v_{\theta\theta}`, and :math:`P^v_{\phi\phi}`. There are 8
columns and the number of bins/rows are Rmax/bin_width. columns and the number of bins (rows) is :math:`R_\text{max}/b`, where
:math:`b` is the specified bin width.
This array can be output with :doc:`fix ave/time <fix_ave_time>`, This array can be output with :doc:`fix ave/time <fix_ave_time>`,
@ -112,12 +114,13 @@ This array can be output with :doc:`fix ave/time <fix_ave_time>`,
compute p all stress/cartesian x 0.1 compute p all stress/cartesian x 0.1
fix 2 all ave/time 100 1 100 c_p[*] file dump_p.out mode vector fix 2 all ave/time 100 1 100 c_p[*] file dump_p.out mode vector
The values calculated by this compute are "intensive". The stress The values calculated by this compute are "intensive." The stress
values will be in pressure :doc:`units <units>`. The number density values will be in pressure :doc:`units <units>`. The number density
values are in inverse volume :doc:`units <units>`. values are in inverse volume :doc:`units <units>`.
NOTE 1: The local stress does not include any Lennard-Jones tail NOTE 1: The local stress does not include any Lennard-Jones tail
corrections to the stress added by the :doc:`pair_modify tail yes <pair_modify>` corrections to the stress added by the
:doc:`pair_modify tail yes <pair_modify>`
command, since those are contributions to the global system pressure. command, since those are contributions to the global system pressure.
NOTE 2: The local stress profiles generated by these computes are NOTE 2: The local stress profiles generated by these computes are
@ -134,11 +137,11 @@ Restrictions
"""""""""""" """"""""""""
These computes calculate the stress tensor contributions for pair These computes calculate the stress tensor contributions for pair
styles only (i.e. no bond, angle, dihedral, etc. contributions, and in styles only (i.e., no bond, angle, dihedral, etc. contributions, and in
the presence of bonded interactions, the result will be incorrect due to the presence of bonded interactions, the result will be incorrect due to
exclusions for special bonds) and requires pairwise force calculations exclusions for special bonds) and requires pairwise force calculations
not available for most many-body pair styles. K-space calculations are not available for most many-body pair styles.
also excluded. Note that :math:`k`-space calculations are also excluded.
These computes are part of the EXTRA-COMPUTE package. They are only These computes are part of the EXTRA-COMPUTE package. They are only
enabled if LAMMPS was built with that package. See the :doc:`Build enabled if LAMMPS was built with that package. See the :doc:`Build

View File

@ -26,7 +26,7 @@ compute stress/tally command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID style group2-ID compute ID group-ID style group2-ID
@ -57,8 +57,8 @@ accumulated directly during the non-bonded force computation. The
computes *force/tally*, *pe/tally*, *stress/tally*, and computes *force/tally*, *pe/tally*, *stress/tally*, and
*heat/flux/tally* are primarily provided as example how to program *heat/flux/tally* are primarily provided as example how to program
additional, more sophisticated computes using the tally callback additional, more sophisticated computes using the tally callback
mechanism. Compute *pe/mol/tally* is one such style, that can mechanism. Compute *pe/mol/tally* is one such style, that can---through using
- through using this mechanism - separately tally intermolecular this mechanism---separately tally intermolecular
and intramolecular energies. Something that would otherwise be and intramolecular energies. Something that would otherwise be
impossible without integrating this as a core functionality into impossible without integrating this as a core functionality into
the base classes of LAMMPS. the base classes of LAMMPS.
@ -92,7 +92,7 @@ Although, the *heat/flux/virial/tally* compute
does not include the convective term, does not include the convective term,
it can be used to obtain the total heat flux over control surfaces, it can be used to obtain the total heat flux over control surfaces,
when there are no particles crossing over, when there are no particles crossing over,
such as is often in solid-solid and solid-liquid interfaces. such as is often in solid--solid and solid--liquid interfaces.
This would be identical to the method of planes method. This would be identical to the method of planes method.
Note that the *heat/flux/virial/tally* compute is distinctly different Note that the *heat/flux/virial/tally* compute is distinctly different
from the *heat/flux* and *heat/flux/tally* computes, from the *heat/flux* and *heat/flux/tally* computes,
@ -152,7 +152,7 @@ Output info
atom scalar (the contributions of the single atom to the global atom scalar (the contributions of the single atom to the global
scalar). scalar).
- Compute *pe/mol/tally* calculates a global 4-element vector containing - Compute *pe/mol/tally* calculates a global four-element vector containing
(in this order): *evdwl* and *ecoul* for intramolecular pairs and (in this order): *evdwl* and *ecoul* for intramolecular pairs and
*evdwl* and *ecoul* for intermolecular pairs. Since molecules are *evdwl* and *ecoul* for intermolecular pairs. Since molecules are
identified by their molecule IDs, the partitioning does not have to be identified by their molecule IDs, the partitioning does not have to be
@ -165,24 +165,24 @@ Output info
- Compute *stress/tally* calculates a global scalar - Compute *stress/tally* calculates a global scalar
(average of the diagonal elements of the stress tensor) and a per atom (average of the diagonal elements of the stress tensor) and a per atom
vector (the 6 elements of stress tensor contributions from the vector (the six elements of stress tensor contributions from the
individual atom). individual atom).
- As in :doc:`compute heat/flux <compute_heat_flux>`, - As in :doc:`compute heat/flux <compute_heat_flux>`,
compute *heat/flux/tally* calculates a global vector of length 6, compute *heat/flux/tally* calculates a global vector of length 6,
where the first 3 components are the :math:`x`, :math:`y`, :math:`z` where the first three components are the :math:`x`, :math:`y`, :math:`z`
components of the full heat flow vector, components of the full heat flow vector,
and the next 3 components are the corresponding components and the next three components are the corresponding components
of just the convective portion of the flow, i.e. the of just the convective portion of the flow (i.e., the
first term in the equation for :math:`\mathbf{Q}`. first term in the equation for :math:`\mathbf{Q}`).
- Compute *heat/flux/virial/tally* calculates a global scalar (heat flow) - Compute *heat/flux/virial/tally* calculates a global scalar (heat flow)
and a per atom 3-element vector and a per atom three-element vector
(contribution to the force acting over atoms in the first group (contribution to the force acting over atoms in the first group
from individual atoms in both groups). from individual atoms in both groups).
Both the scalar and vector values calculated by this compute are Both the scalar and vector values calculated by this compute are
"extensive". "extensive."
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -6,7 +6,7 @@ compute tdpd/cc/atom command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID tdpd/cc/atom index compute ID group-ID tdpd/cc/atom index

View File

@ -9,7 +9,7 @@ Accelerator Variants: *temp/kk*
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
compute ID group-ID temp compute ID group-ID temp
@ -29,19 +29,27 @@ Description
Define a computation that calculates the temperature of a group of Define a computation that calculates the temperature of a group of
atoms. A compute of this style can be used by any command that atoms. A compute of this style can be used by any command that
computes a temperature, e.g. :doc:`thermo_modify <thermo_modify>`, :doc:`fix temp/rescale <fix_temp_rescale>`, :doc:`fix npt <fix_nh>`, etc. computes a temperature (e.g., :doc:`thermo_modify <thermo_modify>`,
:doc:`fix temp/rescale <fix_temp_rescale>`, :doc:`fix npt <fix_nh>`)
The temperature is calculated by the formula KE = dim/2 N k T, where The temperature is calculated by the formula
KE = total kinetic energy of the group of atoms (sum of 1/2 m v\^2),
dim = 2 or 3 = dimensionality of the simulation, N = number of atoms
in the group, k = Boltzmann constant, and T = temperature.
A kinetic energy tensor, stored as a 6-element vector, is also .. math::
\text{KE} = \frac{\text{dim}}{2} N k_B T,
where KE = total kinetic energy of the group of atoms (sum of
:math:`\frac12 m v^2`), dim = 2 or 3 is the dimensionality of the simulation,
:math:`N` is the number of atoms in the group, :math:`k_B` is the Boltzmann
constant, and :math:`T` is the absolute temperature.
A kinetic energy tensor, stored as a six-element vector, is also
calculated by this compute for use in the computation of a pressure calculated by this compute for use in the computation of a pressure
tensor. The formula for the components of the tensor is the same as tensor. The formula for the components of the tensor is the same as
the above formula, except that v\^2 is replaced by vx\*vy for the xy the above formula, except that :math:`v^2` is replaced by
component, etc. The 6 components of the vector are ordered xx, yy, :math:`v_x v_y` for the :math:`xy` component, and so on.
zz, xy, xz, yz. The six components of the vector are ordered :math:`xx`, :math:`yy`,
:math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
The number of atoms contributing to the temperature is assumed to be The number of atoms contributing to the temperature is assumed to be
constant for the duration of the run; use the *dynamic* option of the constant for the duration of the run; use the *dynamic* option of the
@ -77,12 +85,13 @@ Output info
""""""""""" """""""""""
This compute calculates a global scalar (the temperature) and a global This compute calculates a global scalar (the temperature) and a global
vector of length 6 (KE tensor), which can be accessed by indices 1-6. vector of length six (KE tensor), which can be accessed by indices 1--6.
These values can be used by any command that uses global scalar or These values can be used by any command that uses global scalar or
vector values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output vector values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The scalar value calculated by this compute is "intensive". The The scalar value calculated by this compute is "intensive." The
vector values are "extensive". vector values are "extensive".
The scalar value will be in temperature :doc:`units <units>`. The The scalar value will be in temperature :doc:`units <units>`. The

Some files were not shown because too many files have changed in this diff Show More