2007-02-10 05:40:32 +08:00
|
|
|
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
|
|
|
|
|
|
|
:link(lws,http://lammps.sandia.gov)
|
|
|
|
:link(ld,Manual.html)
|
|
|
|
:link(lc,Section_commands.html#comm)
|
|
|
|
|
|
|
|
:line
|
|
|
|
|
|
|
|
compute stress/atom command :h3
|
|
|
|
|
|
|
|
[Syntax:]
|
|
|
|
|
2007-12-01 07:16:45 +08:00
|
|
|
compute ID group-ID stress/atom keyword ... :pre
|
|
|
|
|
|
|
|
ID, group-ID are documented in "compute"_compute.html command
|
|
|
|
stress/atom = style name of this compute command
|
|
|
|
zero or more keywords may be appended
|
2008-01-10 05:57:06 +08:00
|
|
|
keyword = {ke} or {pair} or {bond} or {angle} or {dihedral} or {improper} or {fix} :ul
|
2007-02-10 05:40:32 +08:00
|
|
|
|
|
|
|
[Examples:]
|
|
|
|
|
|
|
|
compute 1 mobile stress/atom :pre
|
2007-12-01 07:16:45 +08:00
|
|
|
compute 1 all stress/atom pair bond :pre
|
2007-02-10 05:40:32 +08:00
|
|
|
|
|
|
|
[Description:]
|
|
|
|
|
2007-12-01 07:16:45 +08:00
|
|
|
Define a computation that computes the symmetric per-atom stress
|
|
|
|
tensor for each atom in a group. The tensor for each atom has 6
|
|
|
|
components: xx, yy, zz, xy, xz, yz. See the "compute
|
|
|
|
pressure"_compute_pressure.html command if you want the stress tensor
|
|
|
|
(pressure) of the entire system. The 6 components can be accessed by
|
2008-01-04 08:56:10 +08:00
|
|
|
indices 1-6 by any command that uses per-atom computes as input,
|
|
|
|
e.g. the "dump custom"_dump.html command or "fix
|
|
|
|
ave/spatial"_fix_ave_spatial.html command or "fix
|
|
|
|
ave/atom"_fix_ave_atom.html command. See "this
|
2007-12-01 07:16:45 +08:00
|
|
|
section"_Section_howto.html#4_15 for an overview.
|
2007-02-10 05:40:32 +08:00
|
|
|
|
2007-12-01 07:36:27 +08:00
|
|
|
The stress tensor for atom {I} is given by the following formula,
|
|
|
|
where {a} and {b} take on values x,y,z to generate the 6 components of
|
|
|
|
the symmetric tensor:
|
2007-02-10 05:40:32 +08:00
|
|
|
|
|
|
|
:c,image(Eqs/stress_tensor.jpg)
|
|
|
|
|
2007-07-03 03:59:42 +08:00
|
|
|
The first term is a kinetic energy contribution for atom {I}. The
|
2007-12-01 07:36:27 +08:00
|
|
|
second term is a pairwise energy contribution where {n} loops over the
|
2007-12-01 07:16:45 +08:00
|
|
|
{Np} neighbors of atom {I}, {r1} and {r2} are the positions of the 2
|
2007-12-01 07:36:27 +08:00
|
|
|
atoms in the pairwise interaction, and {F1} and {F2} are the forces on
|
|
|
|
the 2 atoms resulting from the pairwise interaction. The third term
|
|
|
|
is a bond contribution of similar form for the {Nb} bonds which atom
|
2008-01-10 05:57:06 +08:00
|
|
|
{I} is part of. There are similar terms for the {Na} angle, {Nd}
|
2007-12-01 07:36:27 +08:00
|
|
|
dihedral, and {Ni} improper interactions atom {I} is part of.
|
2008-01-10 05:57:06 +08:00
|
|
|
Finally, there is a term for the {Nf} "fixes"_fix.html that apply
|
|
|
|
internal constraint forces to atom {I}. Currently, only the "fix
|
|
|
|
shake"_fix_shake.html and "fix rigid"_fix_rigid.html commands
|
|
|
|
contribute to this term.
|
2007-12-01 07:36:27 +08:00
|
|
|
|
|
|
|
As the coefficients in the formula imply, a virial contribution
|
|
|
|
produced by a small set of atoms (e.g. 4 atoms in a dihedral or 3
|
|
|
|
atoms in a Tersoff 3-body interaction) is assigned in equal portions
|
|
|
|
to each atom in the set. E.g. 1/4 of the dihedral virial to each of
|
2008-01-10 05:57:06 +08:00
|
|
|
the 4 atoms, or 1/3 of the fix virial due to SHAKE constraints applied
|
|
|
|
to atoms in a a water molecule via the "fix shake"_fix_shake.html
|
|
|
|
command.
|
2007-12-01 07:16:45 +08:00
|
|
|
|
|
|
|
If no extra keywords are listed, all of the terms in this formula are
|
|
|
|
included in the per-atom stress tensor. If any extra keywords are
|
|
|
|
listed, only those terms are summed to compute the tensor.
|
|
|
|
|
|
|
|
Note that the stress for each atom is due to its interaction with all
|
|
|
|
other atoms in the simulation, not just with other atoms in the group.
|
|
|
|
|
|
|
|
The "dihedral_style charmm"_dihedral_charmm.html style calculates
|
|
|
|
pairwise interactions between 1-4 atoms. The virial contribution of
|
|
|
|
these terms is included in the pair virial, not the dihedral virial.
|
|
|
|
|
|
|
|
Note that as defined in the formula, per-atom stress is the negative
|
|
|
|
of the per-atom pressure tensor. It is also really a stress-volume
|
2007-02-10 05:40:32 +08:00
|
|
|
formulation. It would need to be divided by a per-atom volume to have
|
|
|
|
units of stress, but an individual atom's volume is not easy to
|
2007-12-01 07:16:45 +08:00
|
|
|
compute in a deformed solid or a liquid. Thus, if the diagonal
|
|
|
|
components of the per-atom stress tensor are summed for all atoms in
|
|
|
|
the system and the sum is divided by 3V, where V is the volume of the
|
|
|
|
system, the result should be -P, where P is the total pressure of the
|
|
|
|
system.
|
|
|
|
|
2008-01-10 05:57:06 +08:00
|
|
|
These lines in an input script should yield that result. I.e. the
|
2008-01-04 03:03:15 +08:00
|
|
|
last 2 columns of thermo output will be the same:
|
2007-12-01 07:16:45 +08:00
|
|
|
|
|
|
|
compute peratom all stress/atom
|
2008-01-17 03:17:20 +08:00
|
|
|
compute p all sum c_peratom\[1\] c_peratom\[2\] c_peratom\[3\]
|
|
|
|
variable press equal -(c_p\[1\]+c_p\[2\]+c_p\[3\])/(3*vol)
|
2008-01-04 03:03:15 +08:00
|
|
|
thermo_style custom step temp etotal press v_press :pre
|
2007-12-01 07:16:45 +08:00
|
|
|
|
|
|
|
IMPORTANT NOTE: The per-atom stress does NOT include contributions due
|
2008-01-10 05:57:06 +08:00
|
|
|
to long-range Coulombic interactions (via the
|
2008-01-10 05:59:42 +08:00
|
|
|
"kspace_style"_kspace_style.html command). It's not clear this
|
|
|
|
contribution can easily be computed. There are also a few pair styles
|
|
|
|
for manybody potentials that are not yet instrumented to yield
|
|
|
|
per-atom stress. See the Restrictions below.
|
2007-02-10 05:40:32 +08:00
|
|
|
|
2008-01-04 08:56:10 +08:00
|
|
|
[Output info:]
|
|
|
|
|
|
|
|
This compute calculates a vector of length 6 for each atom, which can
|
|
|
|
be accessed by indices 1-6 by any command that uses per-atom computes
|
|
|
|
as input. See "this section"_Section_howto.html#4_15 for an overview
|
|
|
|
of LAMMPS output options. The 6 components of the vector are ordered
|
|
|
|
xx, yy, zz, xy, xz, yz.
|
|
|
|
|
2007-07-03 03:59:42 +08:00
|
|
|
[Restrictions:]
|
|
|
|
|
2008-01-10 23:50:00 +08:00
|
|
|
These pair styles do not yet tabulate per-atom virials to allow them
|
|
|
|
to work with this compute: "airebo"_pair_airebo.html,
|
2007-12-01 07:39:04 +08:00
|
|
|
"meam"_pair_meam.html, and "TIP4P"_pair_lj.html.
|
2007-02-10 05:40:32 +08:00
|
|
|
|
2007-12-01 07:16:45 +08:00
|
|
|
[Related commands:]
|
2007-02-10 05:40:32 +08:00
|
|
|
|
2007-12-01 07:16:45 +08:00
|
|
|
"compute pe"_compute_pe.html, "compute
|
|
|
|
stress/atom"_compute_stress_atom.html
|
2007-07-03 03:59:42 +08:00
|
|
|
|
2007-12-01 07:16:45 +08:00
|
|
|
[Default:] none
|