reformat, add versionadded marker
This commit is contained in:
@ -45,92 +45,107 @@ Examples
|
|||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Compute *stress/mop* and compute *stress/mop/profile* define computations that
|
Compute *stress/mop* and compute *stress/mop/profile* define
|
||||||
calculate components of the local stress tensor using the method of
|
computations that calculate components of the local stress tensor using
|
||||||
planes :ref:`(Todd) <mop-todd>`. Specifically in compute *stress/mop* calculates 3
|
the method of planes :ref:`(Todd) <mop-todd>`. Specifically in compute
|
||||||
components are computed in directions *dir*,\ *x*\ ; *dir*,\ *y*\ ; and
|
*stress/mop* calculates 3 components are computed in directions *dir*,\
|
||||||
*dir*,\ *z*\ ; where *dir* is the direction normal to the plane, while
|
*x*\ ; *dir*,\ *y*\ ; and *dir*,\ *z*\ ; where *dir* is the direction
|
||||||
in compute *stress/mop/profile* the profile of the stress is computed.
|
normal to the plane, while 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
|
||||||
compatible with mechanical balance in heterogeneous systems and at
|
is compatible with mechanical balance in heterogeneous systems and at
|
||||||
interfaces :ref:`(Todd) <mop-todd>`.
|
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
|
||||||
atoms have crossed the plane if their positions at times :math:`t-\Delta t`
|
that atoms have crossed the plane if their positions at times
|
||||||
and :math:`t` are one on either side of the plane, and uses the velocity at
|
:math:`t-\Delta t` and :math:`t` are one on either side of the plane,
|
||||||
time :math:`t-\Delta t/2` given by the velocity Verlet algorithm.
|
and uses the velocity at time :math:`t-\Delta t/2` given by the velocity
|
||||||
|
Verlet algorithm.
|
||||||
|
|
||||||
Between one and six keywords can be used to indicate which
|
.. versionadded:: TBD
|
||||||
contributions to the stress must be computed: total stress (total), kinetic stress (kin),
|
|
||||||
configurational stress (conf), stress due to bond stretching (bond),
|
|
||||||
stress due to angle bending (angle) and/or due to pairwise non-bonded interactions (pair).
|
|
||||||
The angle keyword is currently available only for the stress/mop command and not the stress/mop/profile.
|
|
||||||
|
|
||||||
NOTE 1: The configurational stress is computed considering all pairs of atoms where at least one atom belongs to group group-ID.
|
contributions from bond and angle potentials
|
||||||
|
|
||||||
|
Between one and six keywords can be used to indicate which contributions
|
||||||
|
to the stress must be computed: total stress (total), kinetic stress
|
||||||
|
(kin), configurational stress (conf), stress due to bond stretching
|
||||||
|
(bond), stress due to angle bending (angle) and/or due to pairwise
|
||||||
|
non-bonded interactions (pair). The angle keyword is currently
|
||||||
|
available only for the *stress/mop* command and **not** the
|
||||||
|
*stress/mop/profile* command.
|
||||||
|
|
||||||
|
NOTE 1: The configurational stress is computed considering all pairs of
|
||||||
|
atoms where at least one atom belongs to group group-ID.
|
||||||
|
|
||||||
NOTE 2: The local stress does not include any Lennard-Jones tail
|
NOTE 2: 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
|
||||||
command, since those are contributions to the global system pressure.
|
<pair_modify>` 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
|
||||||
is similar to that obtained by compute
|
*stress/mop/profile* is similar to that obtained by compute
|
||||||
:doc:`stress/cartesian <compute_stress_profile>`.
|
:doc:`stress/cartesian <compute_stress_profile>`. A key difference is
|
||||||
A key difference is that compute *stress/mop/profile* considers particles
|
that compute *stress/mop/profile* considers particles crossing a set of
|
||||||
crossing a set of planes, while compute *stress/cartesian* computes averages
|
planes, while compute *stress/cartesian* computes averages for a set of
|
||||||
for a set of small volumes. More information
|
small volumes. More information on the similarities and differences can
|
||||||
on the similarities and differences can be found in
|
be found in :ref:`(Ikeshoji)<Ikeshoji2>`.
|
||||||
:ref:`(Ikeshoji)<Ikeshoji2>`.
|
|
||||||
|
|
||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Compute *stress/mop* calculates a global vector (indices starting at 1), with 3
|
Compute *stress/mop* calculates a global vector (indices starting at 1),
|
||||||
values for each declared keyword (in the order the keywords have been
|
with 3 values for each declared keyword (in the order the keywords have
|
||||||
declared). For each keyword, the stress tensor components are ordered as
|
been declared). For each keyword, the stress tensor components are
|
||||||
follows: stress_dir,x, stress_dir,y, and stress_dir,z.
|
ordered as follows: stress_dir,x, stress_dir,y, and stress_dir,z.
|
||||||
|
|
||||||
Compute *stress/mop/profile* instead calculates a global array, with 1 column
|
Compute *stress/mop/profile* instead calculates a global array, with 1
|
||||||
giving the position of the planes where the stress tensor was computed,
|
column giving the position of the planes where the stress tensor was
|
||||||
and with 3 columns of values for each declared keyword (in the order the
|
computed, and with 3 columns of values for each declared keyword (in the
|
||||||
keywords have been declared). For each keyword, the profiles of stress
|
order the keywords have been declared). For each keyword, the profiles
|
||||||
tensor components are ordered as follows: stress_dir,x; stress_dir,y;
|
of stress tensor components are ordered as follows: stress_dir,x;
|
||||||
and stress_dir,z.
|
stress_dir,y; and stress_dir,z.
|
||||||
|
|
||||||
The values are in pressure :doc:`units <units>`.
|
The values are in pressure :doc:`units <units>`.
|
||||||
|
|
||||||
The values produced by this compute can be accessed by various :doc:`output commands <Howto_output>`.
|
The values produced by this compute can be accessed by various
|
||||||
For instance, the results can be written to a file using the
|
:doc:`output commands <Howto_output>`. For instance, the results can be
|
||||||
:doc:`fix ave/time <fix_ave_time>` command. Please see the example
|
written to a file using the :doc:`fix ave/time <fix_ave_time>`
|
||||||
in the examples/PACKAGES/mop folder.
|
command. Please see the example in the examples/PACKAGES/mop folder.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
These styles are part of the EXTRA-COMPUTE package. They are only enabled if
|
These styles are part of the EXTRA-COMPUTE package. They are only
|
||||||
LAMMPS is built with that package. See the :doc:`Build package <Build_package>`
|
enabled if LAMMPS is built with that package. See the :doc:`Build
|
||||||
doc page on for more info.
|
package <Build_package>` doc page on for more info.
|
||||||
|
|
||||||
The method is only implemented for 3d orthogonal simulation boxes whose
|
The method is only implemented for 3d orthogonal simulation boxes whose
|
||||||
size does not change in time, and axis-aligned planes.
|
size does not change in time, and axis-aligned planes.
|
||||||
|
|
||||||
The method only works with two-body pair interactions, because it
|
The method only works with two-body pair interactions, because it
|
||||||
requires the class method pair->single() to be implemented. In
|
requires the class method ``Pair::single()`` to be implemented, which is
|
||||||
particular, compute *stress/mop/profile* does not work with more than
|
not possible for manybody potentials. In particular, compute
|
||||||
two-body pair interactions, long range (kspace) interactions and angle/dihedral/improper
|
*stress/mop/profile* does not work with more than two-body pair
|
||||||
intramolecular interactions. Similarly, compute *stress/mop* does not work with more than
|
interactions, long range (kspace) interactions and
|
||||||
two-body pair interactions, long range (kspace) interactions and dihedral/improper
|
angle/dihedral/improper intramolecular interactions. Similarly, compute
|
||||||
intramolecular interactions but works with all bond interactions with the class method
|
*stress/mop* does not work with more than two-body pair interactions,
|
||||||
single() implemented and all angle interactions with the class method born_matrix()
|
long range (kspace) interactions and dihedral/improper intramolecular
|
||||||
implemented.
|
interactions but works with all bond interactions with the class method
|
||||||
|
single() implemented and all angle interactions with the class method
|
||||||
|
born_matrix() implemented.
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|
||||||
:doc:`compute stress/atom <compute_stress_atom>`, :doc:`compute pressure <compute_pressure>`, :doc:`compute stress/cartesian <compute_stress_profile>`, :doc:`compute stress/cylinder <compute_stress_profile>`, :doc:`compute stress/spherical <compute_stress_profile>`
|
:doc:`compute stress/atom <compute_stress_atom>`,
|
||||||
|
:doc:`compute pressure <compute_pressure>`,
|
||||||
|
:doc:`compute stress/cartesian <compute_stress_profile>`,
|
||||||
|
:doc:`compute stress/cylinder <compute_stress_profile>`,
|
||||||
|
:doc:`compute stress/spherical <compute_stress_profile>`
|
||||||
|
|
||||||
Default
|
Default
|
||||||
"""""""
|
"""""""
|
||||||
|
|||||||
Reference in New Issue
Block a user