reformat system sizes information and make explanations more concise
This commit is contained in:
@ -179,6 +179,8 @@ Size of LAMMPS integer types and size limits
|
|||||||
|
|
||||||
LAMMPS has a few integer data types which can be defined as either
|
LAMMPS has a few integer data types which can be defined as either
|
||||||
4-byte (= 32-bit) or 8-byte (= 64-bit) integers at compile time.
|
4-byte (= 32-bit) or 8-byte (= 64-bit) integers at compile time.
|
||||||
|
This has an impact on the size of a system that can be simulated
|
||||||
|
or how large counters can become before "rolling over".
|
||||||
The default setting of "smallbig" is almost always adequate.
|
The default setting of "smallbig" is almost always adequate.
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
@ -208,34 +210,52 @@ The default setting of "smallbig" is almost always adequate.
|
|||||||
LAMMPS system size restrictions
|
LAMMPS system size restrictions
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
The default "smallbig" setting allows for simulations with:
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
:widths: auto
|
||||||
|
|
||||||
* total atom count = 2\^63 atoms (about 9e18)
|
* -
|
||||||
* total timesteps = 2\^63 (about 9e18)
|
- smallbig
|
||||||
* atom IDs = 2\^31 (about 2 billion)
|
- bigbig
|
||||||
* image flags = roll over at 512
|
- smallsmall
|
||||||
|
* - Total atom count
|
||||||
|
- :math:`2^{63}` atoms (= :math:`9.223 \cdot 10^{18}`)
|
||||||
|
- :math:`2^{63}` atoms (= :math:`9.223 \cdot 10^{18}`)
|
||||||
|
- :math:`2^{31}` atoms (= :math:`2\,147\,483\,648`)
|
||||||
|
* - Total timesteps
|
||||||
|
- :math:`2^{63}` steps (= :math:`9.223 \cdot 10^{18}`)
|
||||||
|
- :math:`2^{63}` steps (= :math:`9.223 \cdot 10^{18}`)
|
||||||
|
- :math:`2^{31}` steps (= :math:`2\,147\,483\,648`)
|
||||||
|
* - Atom ID values
|
||||||
|
- :math:`1 \le i \le 2^{31} (= 2\,147\,483\,648)`
|
||||||
|
- :math:`1 \le i \le 2^{63} (= 9.223 \cdot 10^{18})`
|
||||||
|
- :math:`1 \le i \le 2^{31} (= 2\,147\,483\,648)`
|
||||||
|
* - Image flag values
|
||||||
|
- :math:`-512 \le i \le 511` (= 10-bit)
|
||||||
|
- :math:`- 1\,048\,576 \le i \le 1\,048\,575` (= 21-bit)
|
||||||
|
- :math:`-512 \le i \le 511` (= 10-bit)
|
||||||
|
|
||||||
The "bigbig" setting increases the latter two limits. It allows for:
|
The "bigbig" setting increases the size of image flags and atom IDs over
|
||||||
|
"smallbig" and the "smallsmall" setting is only needed if your machine
|
||||||
|
does not support 64-bit integers or incurs performance penalties when
|
||||||
|
using them.
|
||||||
|
|
||||||
* total atom count = 2\^63 atoms (about 9e18)
|
These are limits for the core of the LAMMPS code, specific features or
|
||||||
* total timesteps = 2\^63 (about 9e18)
|
some styles may impose additional limits. The :ref:`USER-ATC
|
||||||
* atom IDs = 2\^63 (about 9e18)
|
<PKG-USER-ATC>` package cannot be compiled with the "bigbig" setting.
|
||||||
* image flags = roll over at about 1 million (2\^20)
|
Also, there are limitations when using the library interface where some
|
||||||
|
functions with known issues have been replaced by dummy calls printing a
|
||||||
The "smallsmall" setting is only needed if your machine does not
|
corresponding error message rather than crashing randomly or corrupting
|
||||||
support 64-bit integers. It allows for:
|
data.
|
||||||
|
|
||||||
* total atom count = 2\^31 atoms (about 2 billion)
|
|
||||||
* total timesteps = 2\^31 (about 2 billion)
|
|
||||||
* atom IDs = 2\^31 (about 2 billion)
|
|
||||||
* image flags = roll over at 512 (2\^9)
|
|
||||||
|
|
||||||
Atom IDs are not required for atomic systems which do not store bond
|
Atom IDs are not required for atomic systems which do not store bond
|
||||||
topology information, though IDs are enabled by default. The
|
topology information, though IDs are enabled by default. The
|
||||||
:doc:`atom_modify id no <atom_modify>` command will turn them off. Atom
|
:doc:`atom_modify id no <atom_modify>` command will turn them off. Atom
|
||||||
IDs are required for molecular systems with bond topology (bonds,
|
IDs are required for molecular systems with bond topology (bonds,
|
||||||
angles, dihedrals, etc). Thus if you model a molecular system with
|
angles, dihedrals, etc). Similarly, some force or compute or fix styles
|
||||||
more than 2 billion atoms, you need the "bigbig" setting.
|
require atom IDs. Thus if you model a molecular system or use one of
|
||||||
|
those styles with more than 2 billion atoms, you need the "bigbig"
|
||||||
|
setting.
|
||||||
|
|
||||||
Regardless of the total system size limits, the maximum number of atoms
|
Regardless of the total system size limits, the maximum number of atoms
|
||||||
per MPI rank (local + ghost atoms) is limited to 2 billion for atomic
|
per MPI rank (local + ghost atoms) is limited to 2 billion for atomic
|
||||||
@ -251,11 +271,6 @@ atom moves through the periodic box more than this limit, the value will
|
|||||||
mean-squared displacement, as calculated by the :doc:`compute msd
|
mean-squared displacement, as calculated by the :doc:`compute msd
|
||||||
<compute_msd>` command, to be faulty.
|
<compute_msd>` command, to be faulty.
|
||||||
|
|
||||||
Note that the USER-ATC package is currently not compatible with the
|
|
||||||
"bigbig" setting. Also, there are limitations when using the library
|
|
||||||
interface. Some functions with known issues have been replaced by dummy
|
|
||||||
calls printing a corresponding error rather than crashing randomly or
|
|
||||||
corrupting data.
|
|
||||||
|
|
||||||
Also note that the GPU package requires its lib/gpu library to be
|
Also note that the GPU package requires its lib/gpu library to be
|
||||||
compiled with the same size setting, or the link will fail. A CMake
|
compiled with the same size setting, or the link will fail. A CMake
|
||||||
|
|||||||
Reference in New Issue
Block a user