diff --git a/doc/Section_commands.html b/doc/Section_commands.html index ee477a76da..88d551c9db 100644 --- a/doc/Section_commands.html +++ b/doc/Section_commands.html @@ -399,20 +399,20 @@ This is indicated by additional letters in parenthesis: c = USER-CUDA, g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.

- - - - - - - - - - - - - - + + + + + + + + + + + + +
adaptaddforce (c)append/atomsatom/swapaveforce (c)ave/atomave/correlateave/histo
ave/spatialave/timebalancebond/breakbond/createbond/swapbox/relaxdeform
depositdragdt/resetefieldenforce2d (c)evaporateexternalfreeze (c)
gcmcgldgravity (co)heatindentlangevin (k)lineforcemomentum
movemsstnebnph (o)nphug (o)nph/asphere (o)nph/sphere (o)npt (co)
npt/asphere (o)npt/sphere (o)nve (cko)nve/aspherenve/asphere/noforcenve/bodynve/limitnve/line
nve/noforcenve/sphere (o)nve/trinvt (co)nvt/asphere (o)nvt/sllod (o)nvt/sphere (o)oneway
orient/fccplaneforcepoemspourpress/berendsenprintproperty/atomqeq/comb (o)
qeq/dynamicqeq/pointqeq/shieldedqeq/slaterreax/bondsrecenterrestrainrigid (o)
rigid/nph (o)rigid/npt (o)rigid/nve (o)rigid/nvt (o)rigid/small (o)rigid/small/nphrigid/small/nptrigid/small/nve
rigid/small/nvtsetforce (c)shake (c)springspring/rgspring/selfsrdstore/force
store/statetemp/berendsen (c)temp/csvrtemp/rescale (c)tfmcthermal/conductivitytmdttm
tune/kspacevectorviscosityviscous (c)wall/colloidwall/granwall/harmonicwall/lj1043
wall/lj126wall/lj93wall/pistonwall/reflectwall/regionwall/srd +
adaptaddforce (c)append/atomsatom/swapaveforce (c)ave/atomave/chunkave/correlate
ave/histoave/spatialave/timebalancebond/breakbond/createbond/swapbox/relax
deformdepositdragdt/resetefieldenforce2d (c)evaporateexternal
freeze (c)gcmcgldgravity (co)heatindentlangevin (k)lineforce
momentummovemsstnebnph (o)nphug (o)nph/asphere (o)nph/sphere (o)
npt (co)npt/asphere (o)npt/sphere (o)nve (cko)nve/aspherenve/asphere/noforcenve/bodynve/limit
nve/linenve/noforcenve/sphere (o)nve/trinvt (co)nvt/asphere (o)nvt/sllod (o)nvt/sphere (o)
onewayorient/fccplaneforcepoemspourpress/berendsenprintproperty/atom
qeq/comb (o)qeq/dynamicqeq/pointqeq/shieldedqeq/slaterreax/bondsrecenterrestrain
rigid (o)rigid/nph (o)rigid/npt (o)rigid/nve (o)rigid/nvt (o)rigid/small (o)rigid/small/nphrigid/small/npt
rigid/small/nverigid/small/nvtsetforce (c)shake (c)springspring/rgspring/selfsrd
store/forcestore/statetemp/berendsen (c)temp/csvrtemp/rescale (c)tfmcthermal/conductivitytmd
ttmtune/kspacevectorviscosityviscous (c)wall/colloidwall/granwall/harmonic
wall/lj1043wall/lj126wall/lj93wall/pistonwall/reflectwall/regionwall/srd

These are additional fix styles in USER packages, which can be used if @@ -441,17 +441,17 @@ letters in parenthesis: c = USER-CUDA, g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.

- - + + - - - - + + + + - - - + +
angle/localatom/moleculebody/localbond/localcentro/atomcluster/atom
cna/atomcomcom/moleculecontact/atomcoord/atomdamage/atom
angle/localbody/localbond/localcentro/atomchunk/atomcluster/atom
cna/atomcomcom/chunkcontact/atomcoord/atomdamage/atom
dihedral/localdilatation/atomdisplace/atomerotate/asphereerotate/rigiderotate/sphere
erotate/sphere/atomevent/displacegroup/groupgyrationgyration/moleculeheat/flux
improper/localinertia/moleculekeke/atomke/rigidmsd
msd/moleculemsd/nongausspairpair/localpe (c)pe/atom
plasticity/atompressure (c)property/atomproperty/localproperty/moleculerdf
erotate/sphere/atomevent/displacegroup/groupgyrationgyration/chunkheat/flux
improper/localinertia/chunkkeke/atomke/rigidmsd
msd/chunkmsd/nongausspairpair/localpe (c)pe/atom
plasticity/atompressure (c)property/atomproperty/localproperty/chunkrdf
reducereduce/regionslicesna/atomsnad/atomsnav/atom
stress/atomtemp (c)temp/aspheretemp/comtemp/deformtemp/partial (c)
temp/profiletemp/ramptemp/regiontemp/spheretivacf
vcm/moleculevoronoi/atom +
stress/atomtemp (c)temp/aspheretemp/comtemp/chunktemp/deform
temp/partial (c)temp/profiletemp/ramptemp/regiontemp/sphereti
torque/chunkvacfvcm/chunkvoronoi/atom

These are additional compute styles in USER packages, which can be diff --git a/doc/Section_commands.txt b/doc/Section_commands.txt index d86bf57177..3f319e16b3 100644 --- a/doc/Section_commands.txt +++ b/doc/Section_commands.txt @@ -472,6 +472,7 @@ g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT. "atom/swap"_fix_atom_swap.html, "aveforce (c)"_fix_aveforce.html, "ave/atom"_fix_ave_atom.html, +"ave/chunk"_fix_ave_chunk.html, "ave/correlate"_fix_ave_correlate.html, "ave/histo"_fix_ave_histo.html, "ave/spatial"_fix_ave_spatial.html, @@ -627,14 +628,14 @@ letters in parenthesis: c = USER-CUDA, g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT. "angle/local"_compute_angle_local.html, -"atom/molecule"_compute_atom_molecule.html, "body/local"_compute_body_local.html, "bond/local"_compute_bond_local.html, "centro/atom"_compute_centro_atom.html, +"chunk/atom"_compute_chunk_atom.html, "cluster/atom"_compute_cluster_atom.html, "cna/atom"_compute_cna_atom.html, "com"_compute_com.html, -"com/molecule"_compute_com_molecule.html, +"com/chunk"_compute_com_chunk.html, "contact/atom"_compute_contact_atom.html, "coord/atom"_compute_coord_atom.html, "damage/atom"_compute_damage_atom.html, @@ -648,15 +649,15 @@ KOKKOS, o = USER-OMP, t = OPT. "event/displace"_compute_event_displace.html, "group/group"_compute_group_group.html, "gyration"_compute_gyration.html, -"gyration/molecule"_compute_gyration_molecule.html, +"gyration/chunk"_compute_gyration_chunk.html, "heat/flux"_compute_heat_flux.html, "improper/local"_compute_improper_local.html, -"inertia/molecule"_compute_inertia_molecule.html, +"inertia/chunk"_compute_inertia_chunk.html, "ke"_compute_ke.html, "ke/atom"_compute_ke_atom.html, "ke/rigid"_compute_ke_rigid.html, "msd"_compute_msd.html, -"msd/molecule"_compute_msd_molecule.html, +"msd/chunk"_compute_msd_chunk.html, "msd/nongauss"_compute_msd_nongauss.html, "pair"_compute_pair.html, "pair/local"_compute_pair_local.html, @@ -666,7 +667,7 @@ KOKKOS, o = USER-OMP, t = OPT. "pressure (c)"_compute_pressure.html, "property/atom"_compute_property_atom.html, "property/local"_compute_property_local.html, -"property/molecule"_compute_property_molecule.html, +"property/chunk"_compute_property_chunk.html, "rdf"_compute_rdf.html, "reduce"_compute_reduce.html, "reduce/region"_compute_reduce.html, @@ -678,6 +679,7 @@ KOKKOS, o = USER-OMP, t = OPT. "temp (c)"_compute_temp.html, "temp/asphere"_compute_temp_asphere.html, "temp/com"_compute_temp_com.html, +"temp/chunk"_compute_temp_chunk.html, "temp/deform"_compute_temp_deform.html, "temp/partial (c)"_compute_temp_partial.html, "temp/profile"_compute_temp_profile.html, @@ -685,8 +687,9 @@ KOKKOS, o = USER-OMP, t = OPT. "temp/region"_compute_temp_region.html, "temp/sphere"_compute_temp_sphere.html, "ti"_compute_ti.html, +"torque/chunk"_compute_torque_chunk.html, "vacf"_compute_vacf.html, -"vcm/molecule"_compute_vcm_molecule.html, +"vcm/chunk"_compute_vcm_chunk.html, "voronoi/atom"_compute_voronoi_atom.html :tb(c=6,ea=c) These are additional compute styles in USER packages, which can be diff --git a/doc/Section_howto.html b/doc/Section_howto.html index 1729fabea6..43a3ef5524 100644 --- a/doc/Section_howto.html +++ b/doc/Section_howto.html @@ -2155,39 +2155,49 @@ and thus extract D.

6.23 Using chunks to calculate system properties

-

In LAMMPS, chunks are collections of atoms defined by a compute -chunk/atom command, which assigns each atom -to a chunk (or to no chunk at all). The per-atom chunk assignments -can be used as input to two other kinds of commands, to calculate -various properties of a system: +

In LAMMS, "chunks" are collections of atoms, as defined by the +compute chunk/atom command, which assigns +each atom to a chunk ID (or to no chunk at all). The number of chunks +and the assignment of chunk IDs to atoms can be static or change over +time. Examples of "chunks" are molecules or spatial bins or atoms +with similar values (e.g. coordination number or potential energy). +

+

The per-atom chunk IDs can be used as input to two other kinds of +commands, to calculate various properties of a system:

Here, each of the 3 kinds of chunk-related commands is briefly -overviewed, and some examples given of how to compute -different properties with chunk commands. +overviewed. Then some examples are given of how to compute different +properties with chunk commands.

Compute chunk/atom command
-

This compute assigns atoms to chunks of various styles. Only atoms in -the specified group and optional specified region are assigned to a -chunk. Here is a list of possible chunk definitions: +

This compute can assign atoms to chunks of various styles. Only atoms +in the specified group and optional specified region are assigned to a +chunk. Here are some possible chunk definitions:

- + - + - - + +
atoms in same molecule chunk ID = molecule ID
atoms with same atom type - chunk ID = atom type
atoms of same atom type chunk ID = atom type
all atoms with same atom property (charge, radius, etc) chunk ID = output of compute property/atom
atoms in same cluster chunk ID = output of compute cluster/atom command
atoms in same cluster chunk ID = output of compute cluster/atom command
atoms in same spatial bin chunk ID = bin ID
atoms in same rigid body chunk ID = ID of an atom in the body
all atoms with same local defect structure chunk ID = output of compute centro/atom or coord/atom command +
atoms in same rigid body chunk ID = molecule ID used to define rigid bodies
atoms with similar potential energy chunk ID = output of compute pe/atom
atoms with same local defect structure chunk ID = output of compute centro/atom or compute coord/atom command
+

Note that chunk IDs are integer values, so for atom properties or +computes that produce a floating point value, they will be truncated +to an integer. You could also use the compute in a variable that +scales the floating point value to spread it across multiple intergers. +

Spatial bins can be of various kinds, e.g. 1d bins = slabs, 2d bins = pencils, 3d bins = boxes, spherical bins, cylindrical bins.

-

This compute also calculates the number of chunks Nchunk which is +

This compute also calculates the number of chunks Nchunk, which is used by other commands to tally per-chunk data. Nchunk can be a static value or change over time (e.g. the number of clusters). The chunk ID for an individual atom can also be static (e.g. a molecule @@ -2197,7 +2207,7 @@ ID), or dynamic (e.g. what spatial bin an atom is in as it moves). computes, fixes, and variables to be used to define chunk IDs for each atom. This means you can write your own compute or fix to output a -per-atom quantity to use as chunk ID; See +per-atom quantity to use as chunk ID. See Section_modify of the documentation for how to do this. You can also define a per-atom variable in the input script that uses a formula to generate a chunk ID for each @@ -2206,55 +2216,55 @@ atom.

Fix ave/chunk command

This fix takes the ID of a compute -chunk/atom command as input. For each chunk +chunk/atom command as input. For each chunk, it then sums one or more specified per-atom values over the atoms in each chunk. The per-atom values can be any atom property, such as -force, charge, potential energy, kinetic energy, stress. Additional -keywords are allowed for per-chunk properties like density and -temperature. More generally any per-atom value generated by other -computes, fixes, and per-atom +velocity, force, charge, potential energy, kinetic energy, stress, +etc. Additional keywords are defined for per-chunk properties like +density and temperature. More generally any per-atom value generated +by other computes, fixes, and per-atom variables, can be summed over atoms in each chunk.

Similar to other averaging fixes, this fix allows the summed per-chunk values to be time-averaged in various ways, and output to a file. The fix produces a global array as output with one row of values per -chunk. Global arrays or columns thereof can be used as input for -other commands, as described in the following section. +chunk.

Compute */chunk commands
-

Currently the following computes operate on chunks: +

Currently the following computes operate on chunks of atoms to produce +per-chunk values.

They each take the ID of a compute chunk/atom command as input. As their names indicate, they calculate the center-of-mass, radius of gyration, -moments of inertia, mean-squared displacement, and velocity of -center-of-mass for each chunk of atoms. The compute -property/chunk command can be tally the +moments of inertia, mean-squared displacement, temperature, torque, +and velocity of center-of-mass for each chunk of atoms. The compute +property/chunk command can tally the count of atoms in each chunk and extract other per-chunk properties.

The reason these various calculations are not part of the fix ave/chunk command, is that each requires a more complicated operation than simply summing and averaging over per-atom -values in each chunk. Most of them require calculation of a center of -mass, which requires summing mass*position over the atoms and dividing -by summed mass. +values in each chunk. For example, many of them require calculation +of a center of mass, which requires summing mass*position over the +atoms and then dividing by summed mass.

All of these computes produce a global vector or global array as -output, wih one or more values per chunk. Global vectors or arrays -can be used as input for other commands, e.g. +output, wih one or more values per chunk. They can be used +in various ways:

-