bondlist option docs
This commit is contained in:
@ -12,11 +12,12 @@ Syntax
|
|||||||
|
|
||||||
nx,ny,nz = replication factors in each dimension
|
nx,ny,nz = replication factors in each dimension
|
||||||
|
|
||||||
* optional *keyword* = *bbox*
|
* optional *keyword* = *bbox* or *bondlist*
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
*bbox* = only check atoms in replicas that overlap with a processor's sub-domain
|
*bbox* = only check atoms in replicas that overlap with a processor's sub-domain
|
||||||
|
*bondlist* = use a generalized algorithm that correctly replicates periodic loops
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -59,6 +60,33 @@ does require temporary use of more memory, specifically that each
|
|||||||
processor can store all atoms in the entire system before it is
|
processor can store all atoms in the entire system before it is
|
||||||
replicated.
|
replicated.
|
||||||
|
|
||||||
|
The optional keyword *bondlist* correctly treats molecules that span
|
||||||
|
the box and are bonded to themselves across a periodic boundary, by
|
||||||
|
relying on self-consistent nearest-image assumptions (rather than
|
||||||
|
using image flags). Therefore, the *bondlist* keyword can also be
|
||||||
|
used in general for systems that may not have consistent image flags.
|
||||||
|
The *bondlist* algorithm builds off the *bbox* algorithm, so it is
|
||||||
|
fast when using a large number of processors, but does require
|
||||||
|
temporary use of more memory. Specifically, each processor must be
|
||||||
|
able to store arrays for all atoms in the entire system before it is
|
||||||
|
replicated.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
For systems that contain a molecule that spans the box and is
|
||||||
|
bonded to itself across a periodic boundary (so that the molecule
|
||||||
|
is effectively a loop), the *bondlist* keyword must be used. A
|
||||||
|
simple example would be a linear polymer chain that spans the
|
||||||
|
simulation box and bonds back to itself across the periodic
|
||||||
|
boundary. More realistic examples would be a CNT (meant to be an
|
||||||
|
infinitely long CNT) or a graphene sheet or a bulk periodic crystal
|
||||||
|
where there are explicit bonds specified between near neighbors.
|
||||||
|
(Note that this restriction only applies to systems that have
|
||||||
|
permanent bonds as specified in the data file. A CNT that is just
|
||||||
|
atoms modeled with the :doc:`AIREBO potential <pair_airebo>` has no
|
||||||
|
such permanent bonds, so it can be replicated without the
|
||||||
|
*bondlist* keyword.)
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
@ -68,29 +96,6 @@ If a simulation is non-periodic in a dimension, care should be used
|
|||||||
when replicating it in that dimension, as it may put atoms nearly on
|
when replicating it in that dimension, as it may put atoms nearly on
|
||||||
top of each other.
|
top of each other.
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
You cannot use the replicate command on a system which has a
|
|
||||||
molecule that spans the box and is bonded to itself across a periodic
|
|
||||||
boundary, so that the molecule is effectively a loop. A simple
|
|
||||||
example would be a linear polymer chain that spans the simulation box
|
|
||||||
and bonds back to itself across the periodic boundary. More realistic
|
|
||||||
examples would be a CNT (meant to be an infinitely long CNT) or a
|
|
||||||
graphene sheet or a bulk periodic crystal where there are explicit
|
|
||||||
bonds specified between near neighbors. (Note that this only applies
|
|
||||||
to systems that have permanent bonds as specified in the data file. A
|
|
||||||
CNT that is just atoms modeled with the :doc:`AIREBO potential <pair_airebo>` has no such permanent bonds, so it can be
|
|
||||||
replicated.) The reason replication does not work with those systems
|
|
||||||
is that the image flag settings described above cannot be made
|
|
||||||
consistent. I.e. it is not possible to define images flags so that
|
|
||||||
when every pair of bonded atoms is unwrapped (using the image flags),
|
|
||||||
they will be close to each other. The only way the replicate command
|
|
||||||
could work in this scenario is for it to break a bond, insert more
|
|
||||||
atoms, and re-connect the loop for the larger simulation box. But it
|
|
||||||
is not clever enough to do this. So you will have to construct a
|
|
||||||
larger version of your molecule as a pre-processing step and input a
|
|
||||||
new data file to LAMMPS.
|
|
||||||
|
|
||||||
If the current simulation was read in from a restart file (before a
|
If the current simulation was read in from a restart file (before a
|
||||||
run is performed), there must not be any fix information stored in
|
run is performed), there must not be any fix information stored in
|
||||||
the file for individual atoms. Similarly, no fixes can be defined at
|
the file for individual atoms. Similarly, no fixes can be defined at
|
||||||
|
|||||||
Reference in New Issue
Block a user