Merge branch 'develop' into collected-small-changes
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
Use chunks to calculate system properties
|
||||
=========================================
|
||||
|
||||
In LAMMS, "chunks" are collections of atoms, as defined by the
|
||||
In LAMMPS, "chunks" are collections of atoms, as defined by the
|
||||
:doc:`compute chunk/atom <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
|
||||
@ -148,14 +148,14 @@ Example calculations with chunks
|
||||
Here are examples using chunk commands to calculate various
|
||||
properties:
|
||||
|
||||
(1) Average velocity in each of 1000 2d spatial bins:
|
||||
1. Average velocity in each of 1000 2d spatial bins:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
compute cc1 all chunk/atom bin/2d x 0.0 0.1 y lower 0.01 units reduced
|
||||
fix 1 all ave/chunk 100 10 1000 cc1 vx vy file tmp.out
|
||||
|
||||
(2) Temperature in each spatial bin, after subtracting a flow
|
||||
2. Temperature in each spatial bin, after subtracting a flow
|
||||
velocity:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
@ -164,7 +164,7 @@ velocity:
|
||||
compute vbias all temp/profile 1 0 0 y 10
|
||||
fix 1 all ave/chunk 100 10 1000 cc1 temp bias vbias file tmp.out
|
||||
|
||||
(3) Center of mass of each molecule:
|
||||
3. Center of mass of each molecule:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
@ -172,7 +172,7 @@ velocity:
|
||||
compute myChunk all com/chunk cc1
|
||||
fix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector
|
||||
|
||||
(4) Total force on each molecule and ave/max across all molecules:
|
||||
4. Total force on each molecule and ave/max across all molecules:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
@ -183,7 +183,7 @@ velocity:
|
||||
thermo 1000
|
||||
thermo_style custom step temp v_xave v_xmax
|
||||
|
||||
(5) Histogram of cluster sizes:
|
||||
5. Histogram of cluster sizes:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
@ -192,16 +192,16 @@ velocity:
|
||||
compute size all property/chunk cc1 count
|
||||
fix 1 all ave/histo 100 1 100 0 20 20 c_size mode vector ave running beyond ignore file tmp.histo
|
||||
|
||||
(6) An example for using a per-chunk value to apply per-atom forces to
|
||||
6. An example for using a per-chunk value to apply per-atom forces to
|
||||
compress individual polymer chains (molecules) in a mixture, is
|
||||
explained on the :doc:`compute chunk/spread/atom <compute_chunk_spread_atom>` command doc page.
|
||||
|
||||
(7) An example for using one set of per-chunk values for molecule
|
||||
7. An example for using one set of per-chunk values for molecule
|
||||
chunks, to create a second set of micelle-scale chunks (clustered
|
||||
molecules, due to hydrophobicity), is explained on the
|
||||
:doc:`compute reduce/chunk <compute_reduce_chunk>` command doc page.
|
||||
|
||||
(8) An example for using one set of per-chunk values (dipole moment
|
||||
8. An example for using one set of per-chunk values (dipole moment
|
||||
vectors) for molecule chunks, spreading the values to each atom in
|
||||
each chunk, then defining a second set of chunks as spatial bins, and
|
||||
using the :doc:`fix ave/chunk <fix_ave_chunk>` command to calculate an
|
||||
|
||||
@ -38,7 +38,7 @@ Syntax
|
||||
*electrode/thermo* args = potential eta *temp* values
|
||||
potential = electrode potential
|
||||
charge = electrode charge
|
||||
eta = reciprocal width of electrode charge smearing
|
||||
eta = reciprocal width of electrode charge smearing (can be NULL if eta keyword is used)
|
||||
*temp* values = T_v tau_v rng_v
|
||||
T_v = temperature of thermo-potentiostat
|
||||
tau_v = time constant of thermo-potentiostat
|
||||
@ -110,7 +110,7 @@ electrostatic configurations:
|
||||
:ref:`(Deissenbeck)<Deissenbeck>` between two electrodes
|
||||
|
||||
* (resulting in changing charges and potentials with appropriate
|
||||
average potential difference and thermal variance)
|
||||
average potential difference and thermal variance)
|
||||
|
||||
The first group-ID provided to each fix specifies the first electrode
|
||||
group, and more group(s) are added using the *couple* keyword for each
|
||||
@ -287,8 +287,18 @@ The *fix_modify tf* option enables the Thomas-Fermi metallicity model
|
||||
fix_modify ID tf type length voronoi
|
||||
|
||||
|
||||
If this option is used parameters must be set for all atom types of the
|
||||
electrode.
|
||||
If this option is used, these two parameters must be set for
|
||||
all atom types of the electrode:
|
||||
|
||||
* `tf` is the Thomas-Fermi length :math:`l_{TF}`
|
||||
* `voronoi` is the Voronoi volume per atom in units of length cubed
|
||||
|
||||
Different types may have different `tf` and `voronoi` values.
|
||||
The following self-energy term is then added for all electrode atoms:
|
||||
|
||||
.. math::
|
||||
|
||||
A_{ii} += \frac{1}{4 \pi \epsilon_0} \times \frac{4 \pi l_{TF}^2}{\mathrm{Voronoi volume}}
|
||||
|
||||
The *fix_modify timer* option turns on (off) additional timer outputs in the log
|
||||
file, for code developers to track optimization.
|
||||
@ -321,9 +331,11 @@ The global array has *N* rows and *2N+1* columns, where the fix manages
|
||||
array, the elements are:
|
||||
|
||||
* array[I][1] = total charge that group *I* would have had *if it were
|
||||
at 0 V applied potential* * array[I][2 to *N* + 1] = the *N* entries
|
||||
at 0 V applied potential*
|
||||
* array[I][2 to *N* + 1] = the *N* entries
|
||||
of the *I*-th row of the electrode capacitance matrix (definition
|
||||
follows) * array[I][*N* + 2 to *2N* + 1] = the *N* entries of the
|
||||
follows)
|
||||
* array[I][*N* + 2 to *2N* + 1] = the *N* entries of the
|
||||
*I*-th row of the electrode elastance matrix (the inverse of the
|
||||
electrode capacitance matrix)
|
||||
|
||||
|
||||
@ -12,7 +12,7 @@ Syntax
|
||||
|
||||
* file = name of data file to read in
|
||||
* zero or more keyword/arg pairs may be appended
|
||||
* keyword = *add* or *offset* or *shift* or *extra/atom/types* or *extra/bond/types* or *extra/angle/types* or *extra/dihedral/types* or *extra/improper/types* or *extra/bond/per/atom* or *extra/angle/per/atom* or *extra/dihedral/per/atom* or *extra/improper/per/atom* or *group* or *nocoeff* or *fix*
|
||||
* keyword = *add* or *offset* or *shift* or *extra/atom/types* or *extra/bond/types* or *extra/angle/types* or *extra/dihedral/types* or *extra/improper/types* or *extra/bond/per/atom* or *extra/angle/per/atom* or *extra/dihedral/per/atom* or *extra/improper/per/atom* or *extra/special/per/atom* or *group* or *nocoeff* or *fix*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
|
||||
@ -32,7 +32,7 @@ Syntax
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
reset atoms mol group-ID keyword value ...
|
||||
reset_atoms mol group-ID keyword value ...
|
||||
|
||||
* group-ID = ID of group of atoms whose molecule IDs will be reset
|
||||
* zero or more keyword/value pairs can be appended
|
||||
@ -66,16 +66,16 @@ Description
|
||||
.. versionadded:: 22Dec2022
|
||||
|
||||
The *reset_atoms* command resets the values of a specified atom
|
||||
property. In contrast to the set command, it does this in a
|
||||
property. In contrast to the *set* command, it does this in a
|
||||
collective manner which resets the values for many atoms in a
|
||||
self-consistent way. This is often useful when the simulated system
|
||||
has undergone significant modifications like adding or removing atoms
|
||||
or molecules, joining data files, changing bonds, or large-scale
|
||||
self-consistent way. This command is often useful when the simulated
|
||||
system has undergone significant modifications like adding or removing
|
||||
atoms or molecules, joining data files, changing bonds, or large-scale
|
||||
diffusion.
|
||||
|
||||
The new values can be thought of as a *reset*, similar to values atoms
|
||||
would have if a new data file were being read or a new simulation
|
||||
performed. Note that the set command also resets atom properties to
|
||||
performed. Note that the *set* command also resets atom properties to
|
||||
new values, but it treats each atom independently.
|
||||
|
||||
The *property* setting can be *id* or *image* or *mol*. For *id*, the
|
||||
@ -90,7 +90,7 @@ keyword/value settings are given below.
|
||||
|
||||
----------
|
||||
|
||||
*Property id*
|
||||
Property: *id*
|
||||
|
||||
Reset atom IDs for the entire system, including all the global IDs
|
||||
stored for bond, angle, dihedral, improper topology data. This will
|
||||
@ -146,7 +146,7 @@ processor have consecutive IDs, as the :doc:`create_atoms
|
||||
|
||||
----------
|
||||
|
||||
*Property image*
|
||||
Property: *image*
|
||||
|
||||
Reset the image flags of atoms so that at least one atom in each
|
||||
molecule has an image flag of 0. Molecular topology is respected so
|
||||
@ -191,7 +191,7 @@ flags.
|
||||
|
||||
----------
|
||||
|
||||
*Property mol*
|
||||
Property: *mol*
|
||||
|
||||
Reset molecule IDs for a specified group of atoms based on current
|
||||
bond connectivity. This will typically create a new set of molecule
|
||||
@ -203,7 +203,7 @@ For purposes of this operation, molecules are identified by the current
|
||||
bond connectivity in the system, which may or may not be consistent with
|
||||
the current molecule IDs. A molecule in this context is a set of atoms
|
||||
connected to each other with explicit bonds. The specific algorithm
|
||||
used is the one of :doc:`compute fragment/atom <compute_cluster_atom>`
|
||||
used is the one of :doc:`compute fragment/atom <compute_cluster_atom>`.
|
||||
Once the molecules are identified and a new molecule ID computed for
|
||||
each, this command will update the current molecule ID for all atoms in
|
||||
the group with the new molecule ID. Note that if the group excludes
|
||||
@ -266,7 +266,7 @@ The *image* property can only be used when the atom style supports bonds.
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`compute fragment/atom <compute_cluster_atom>`
|
||||
:doc:`compute fragment/atom <compute_cluster_atom>`,
|
||||
:doc:`fix bond/react <fix_bond_react>`,
|
||||
:doc:`fix bond/create <fix_bond_create>`,
|
||||
:doc:`fix bond/break <fix_bond_break>`,
|
||||
|
||||
Reference in New Issue
Block a user