Merge pull request #4481 from akohlmey/collected-small-fixes

Collected small fixes and changes
This commit is contained in:
Axel Kohlmeyer
2025-03-14 18:10:14 -04:00
committed by GitHub
126 changed files with 3796 additions and 9645 deletions

View File

@ -1,6 +1,5 @@
# preset that enables KOKKOS and selects CUDA compilation with OpenMP # preset that enables KOKKOS and selects CUDA compilation with OpenMP
# enabled as well. This preselects CC 5.0 as default GPU arch, since # enabled as well. The GPU architecture *must* match your hardware
# that is compatible with all higher CC, but not the default CC 3.5
set(PKG_KOKKOS ON CACHE BOOL "" FORCE) set(PKG_KOKKOS ON CACHE BOOL "" FORCE)
set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "" FORCE) set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "" FORCE)
set(Kokkos_ENABLE_CUDA ON CACHE BOOL "" FORCE) set(Kokkos_ENABLE_CUDA ON CACHE BOOL "" FORCE)

View File

@ -162,8 +162,8 @@ OPT.
* :doc:`phonon <fix_phonon>` * :doc:`phonon <fix_phonon>`
* :doc:`pimd/langevin <fix_pimd>` * :doc:`pimd/langevin <fix_pimd>`
* :doc:`pimd/nvt <fix_pimd>` * :doc:`pimd/nvt <fix_pimd>`
* :doc:`pimd/langevin/bosonic <fix_pimd_bosonic>` * :doc:`pimd/langevin/bosonic <fix_pimd>`
* :doc:`pimd/nvt/bosonic <fix_pimd_bosonic>` * :doc:`pimd/nvt/bosonic <fix_pimd>`
* :doc:`planeforce <fix_planeforce>` * :doc:`planeforce <fix_planeforce>`
* :doc:`plumed <fix_plumed>` * :doc:`plumed <fix_plumed>`
* :doc:`poems <fix_poems>` * :doc:`poems <fix_poems>`

View File

@ -170,6 +170,18 @@ performance characteristics on NVIDIA GPUs. Both, the KOKKOS
and the :ref:`GPU package <PKG-GPU>` are maintained and the :ref:`GPU package <PKG-GPU>` are maintained
and allow running LAMMPS with GPU acceleration. and allow running LAMMPS with GPU acceleration.
Compute atom/molecule
_____________________
.. deprecated:: 11 Dec2015
The atom/molecule command has been removed from LAMMPS since it was superseded
by the more general and extensible "chunk infrastructure". Here the system is
partitioned in one of many possible ways - including using molecule IDs -
through the :doc:`compute chunk/atom <compute_chunk_atom>` command and then
summing is done using :doc:`compute reduce/chunk <compute_reduce_chunk>` Please
refer to the :doc:`chunk HOWTO <Howto_chunk>` section for an overview.
Fix ave/spatial and fix ave/spatial/sphere Fix ave/spatial and fix ave/spatial/sphere
------------------------------------------ ------------------------------------------

View File

@ -24,4 +24,5 @@ of time and requests from the LAMMPS user community.
Classes Classes
Developer_platform Developer_platform
Developer_utils Developer_utils
Developer_internal
Developer_grid Developer_grid

View File

@ -0,0 +1,113 @@
Internal Styles
---------------
LAMMPS has a number of styles that are not meant to be used in an input
file and thus are not documented in the :doc:`LAMMPS command
documentation <Commands_all>`. The differentiation between user
commands and internal commands is through the case of the command name:
user commands and styles are all lower case, internal styles are all
upper case. Internal styles are not called from the input file, but
their classes are instantiated by other styles. Often they are
created by other styles to store internal data or to perform actions
regularly at specific steps of the simulation.
The paragraphs below document some of those styles that have general
utility and may be used to avoid redundant implementation.
DEPRECATED Styles
^^^^^^^^^^^^^^^^^
The styles called DEPRECATED (e.g. pair, bond, fix, compute, region, etc.)
have the purpose to inform users that a specific style has been removed
or renamed. This is achieved by creating an alias for the deprecated
style to the corresponding class. For example, the fix style DEPRECATED
is aliased to fix style ave/spatial and fix style ave/spatial/sphere with
the following code:
.. code-block:: c++
FixStyle(DEPRECATED,FixDeprecated);
FixStyle(ave/spatial,FixDeprecated);
FixStyle(ave/spatial/sphere,FixDeprecated);
The individual class will then determine based on the style name
what action to perform:
- inform that the style has been removed and what style replaces it, if any, and then error out
- inform that the style has been renamed and then either execute the replacement or error out
- inform that the style is no longer required, and it is thus ignored and continue
There is also a section in the user's guide for :doc:`removed commands
and packages <Commands_removed>` with additional explanations.
Internal fix styles
^^^^^^^^^^^^^^^^^^^
fix DUMMY
"""""""""
Most fix classes cannot be instantiated before the simulation box has
been created since they access data that is only available then.
However, in some cases it is required that a fix must be at or close to
the top of the list of all fixes. In those cases an instance of the
DUMMY fix style may be created by calling ``Modify::add_fix()`` and then
later replaced by calling ``Modify::replace_fix()``.
fix STORE/ATOM
""""""""""""""
Fix STORE/ATOM can be used as persistent storage of per-atom data.
**Syntax**
.. code-block:: LAMMPS
fix ID group-ID STORE/ATOM N1 N2 gflag rflag
* ID, group-ID are documented in :doc:`fix <fix>` command
* STORE/ATOM = style name of this fix command
* N1 = 1, N2 = 0 : data is per-atom vector = single value per atom
* N1 > 1, N2 = 0 : data is per-atom array = N1 values per atom
* N1 > 0, N2 > 0 : data is per-atom tensor = N1xN2 values per atom
* gflag = 1 communicate per-atom values with ghost atoms, 0 do not update ghost atom data
* rflag = 1 store per-atom value in restart file, 0 do not store data in restart
Similar functionality is also available through using custom per-atom
properties with :doc:`fix property/atom <fix_property_atom>`. The
choice between the two fixes should be based on whether the user should
be able to access this per-atom data: if yes, then fix property/atom is
preferred, otherwise fix STORE/ATOM.
fix STORE/GLOBAL
""""""""""""""""
Fix STORE/GLOBAL can be used as persistent storage of global data with support for restarts
**Syntax**
.. code-block:: LAMMPS
fix ID group-ID STORE/GLOBAL N1 N2
* ID, group-ID are documented in :doc:`fix <fix>` command
* STORE/GLOBAL = style name of this fix command
* N1 >=1 : number of global items to store
* N2 = 1 : data is global vector of length N1
* N2 > 1 : data is global N1xN2 array
fix STORE/LOCAL
"""""""""""""""
Fix STORE/LOCAL can be used as persistent storage for local data
**Syntax**
.. code-block:: LAMMPS
fix ID group-ID STORE/LOCAL Nreset Nvalues
* ID, group-ID are documented in :doc:`fix <fix>` command
* STORE/LOCAL = style name of this fix command
* Nreset = frequency at which local data is available
* Nvalues = number of values per local item, that is the number of columns

View File

@ -197,7 +197,7 @@ The LPS model has a force scalar state
.. math:: .. math::
\underline{t} = \frac{3K\theta}{m}\underline{\omega}\,\underline{x} + \underline{t} = \frac{3K\theta}{m}\underline{\omega}\,\underline{x} +
\alpha \underline{\omega}\,\underline{e}^{\rm d}, \qquad\qquad\textrm{(3)} \alpha \underline{\omega}\,\underline{e}^\mathrm{d}, \qquad\qquad\textrm{(3)}
with :math:`K` the bulk modulus and :math:`\alpha` related to the shear with :math:`K` the bulk modulus and :math:`\alpha` related to the shear
modulus :math:`G` as modulus :math:`G` as
@ -242,14 +242,14 @@ scalar state are defined, respectively, as
.. math:: .. math::
\underline{e}^{\rm i}=\frac{\theta \underline{x}}{3}, \qquad \underline{e}^\mathrm{i}=\frac{\theta \underline{x}}{3}, \qquad
\underline{e}^{\rm d} = \underline{e}- \underline{e}^{\rm i}, \underline{e}^\mathrm{d} = \underline{e}- \underline{e}^\mathrm{i},
where the arguments of the state functions and the vectors on which they where the arguments of the state functions and the vectors on which they
operate are omitted for simplicity. We note that the LPS model is linear operate are omitted for simplicity. We note that the LPS model is linear
in the dilatation :math:`\theta`, and in the deviatoric part of the in the dilatation :math:`\theta`, and in the deviatoric part of the
extension :math:`\underline{e}^{\rm d}`. extension :math:`\underline{e}^\mathrm{d}`.
.. note:: .. note::

View File

@ -249,23 +249,23 @@ as follows:
.. math:: .. math::
a = & {\rm lx} \\ a = & \mathrm{lx} \\
b^2 = & {\rm ly}^2 + {\rm xy}^2 \\ b^2 = & \mathrm{ly}^2 + \mathrm{xy}^2 \\
c^2 = & {\rm lz}^2 + {\rm xz}^2 + {\rm yz}^2 \\ c^2 = & \mathrm{lz}^2 + \mathrm{xz}^2 + \mathrm{yz}^2 \\
\cos{\alpha} = & \frac{{\rm xy}*{\rm xz} + {\rm ly}*{\rm yz}}{b*c} \\ \cos{\alpha} = & \frac{\mathrm{xy}*\mathrm{xz} + \mathrm{ly}*\mathrm{yz}}{b*c} \\
\cos{\beta} = & \frac{\rm xz}{c} \\ \cos{\beta} = & \frac{\mathrm{xz}}{c} \\
\cos{\gamma} = & \frac{\rm xy}{b} \\ \cos{\gamma} = & \frac{\mathrm{xy}}{b} \\
The inverse relationship can be written as follows: The inverse relationship can be written as follows:
.. math:: .. math::
{\rm lx} = & a \\ \mathrm{lx} = & a \\
{\rm xy} = & b \cos{\gamma} \\ \mathrm{xy} = & b \cos{\gamma} \\
{\rm xz} = & c \cos{\beta}\\ \mathrm{xz} = & c \cos{\beta}\\
{\rm ly}^2 = & b^2 - {\rm xy}^2 \\ \mathrm{ly}^2 = & b^2 - \mathrm{xy}^2 \\
{\rm yz} = & \frac{b*c \cos{\alpha} - {\rm xy}*{\rm xz}}{\rm ly} \\ \mathrm{yz} = & \frac{b*c \cos{\alpha} - \mathrm{xy}*\mathrm{xz}}{\mathrm{ly}} \\
{\rm lz}^2 = & c^2 - {\rm xz}^2 - {\rm yz}^2 \\ \mathrm{lz}^2 = & c^2 - \mathrm{xz}^2 - \mathrm{yz}^2 \\
The values of *a*, *b*, *c*, :math:`\alpha` , :math:`\beta`, and The values of *a*, *b*, *c*, :math:`\alpha` , :math:`\beta`, and
:math:`\gamma` can be printed out or accessed by computes using the :math:`\gamma` can be printed out or accessed by computes using the

View File

@ -44,11 +44,6 @@ section below for examples where this has been done.
system the crossover (in single precision) is often about 50K-100K system the crossover (in single precision) is often about 50K-100K
atoms per GPU. When performing double precision calculations the atoms per GPU. When performing double precision calculations the
crossover point can be significantly smaller. crossover point can be significantly smaller.
* Both KOKKOS and GPU package compute bonded interactions (bonds, angles,
etc) on the CPU. If the GPU package is running with several MPI processes
assigned to one GPU, the cost of computing the bonded interactions is
spread across more CPUs and hence the GPU package can run faster in these
cases.
* When using LAMMPS with multiple MPI ranks assigned to the same GPU, its * When using LAMMPS with multiple MPI ranks assigned to the same GPU, its
performance depends to some extent on the available bandwidth between performance depends to some extent on the available bandwidth between
the CPUs and the GPU. This can differ significantly based on the the CPUs and the GPU. This can differ significantly based on the
@ -85,10 +80,10 @@ section below for examples where this has been done.
code (with a performance penalty due to having data transfers between code (with a performance penalty due to having data transfers between
host and GPU). host and GPU).
* The GPU package requires neighbor lists to be built on the CPU when using * The GPU package requires neighbor lists to be built on the CPU when using
exclusion lists, or a triclinic simulation box. hybrid pair styles, exclusion lists, or a triclinic simulation box.
* The GPU package can be compiled for CUDA or OpenCL and thus supports * The GPU package can be compiled for CUDA, HIP, or OpenCL and thus supports
both, NVIDIA and AMD GPUs well. On NVIDIA hardware, using CUDA is typically NVIDIA, AMD, and Intel GPUs well. On NVIDIA hardware, using CUDA is
resulting in equal or better performance over OpenCL. typically resulting in equal or better performance over OpenCL.
* OpenCL in the GPU package does theoretically also support Intel CPUs or * OpenCL in the GPU package does theoretically also support Intel CPUs or
Intel Xeon Phi, but the native support for those in KOKKOS (or INTEL) Intel Xeon Phi, but the native support for those in KOKKOS (or INTEL)
is superior. is superior.

View File

@ -142,7 +142,7 @@ is accordingly replaced with a square root. This approximation assumes bonds
are evenly distributed on a spherical surface and neglects constant prefactors are evenly distributed on a spherical surface and neglects constant prefactors
which are irrelevant since only the ratio of volumes matters. This term may be which are irrelevant since only the ratio of volumes matters. This term may be
used to adjust the Poisson's ratio. See the simulation in the used to adjust the Poisson's ratio. See the simulation in the
examples/bpm/poissons_ratio directory for a demonstration of this effect. ``examples/bpm/poissons_ratio`` directory for a demonstration of this effect.
If a bond is broken (or created), :math:`V_{0,i}` is updated by subtracting If a bond is broken (or created), :math:`V_{0,i}` is updated by subtracting
(or adding) that bond's contribution. (or adding) that bond's contribution.

View File

@ -110,7 +110,7 @@ the data file or restart files read by the :doc:`read_data
* :math:`k` (force/distance units) * :math:`k` (force/distance units)
* :math:`\epsilon_c` (unitless) * :math:`\epsilon_c` (unitless)
* :math:`\gamma` (force/velocity units) * :math:`\gamma` (force/velocity units)
* :math:`\epsilon_p (unit less) * :math:`\epsilon_p` (unitless)
See the :doc:`bpm/spring doc page <bond_bpm_spring>` for information on See the :doc:`bpm/spring doc page <bond_bpm_spring>` for information on
the *smooth*, *normalize*, *break*, *overlay/pair*, and *store/local* the *smooth*, *normalize*, *break*, *overlay/pair*, and *store/local*
@ -133,16 +133,17 @@ Restart and other info
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
This bond style writes the reference state and plastic history of each This bond style writes the reference state and plastic history of each
bond to :doc:`binary restart files <restart>`. Loading a restart bond to :doc:`binary restart files <restart>`. Loading a restart file
file will properly restore bonds. However, the reference state is NOT will properly restore bonds. However, the reference state is NOT written
written to data files. Therefore reading a data file will not to data files. Therefore reading a data file will not restore bonds and
restore bonds and will cause their reference states to be redefined. will cause their reference states to be redefined.
The potential energy and the single() function of this bond style returns zero. The potential energy and the single() function of this bond style
The single() function also calculates two extra bond quantities, the initial returns zero. The single() function also calculates two extra bond
distance :math:`r_0` and the current equilbrium length :math:`r_eq`. These extra quantities, the initial distance :math:`r_0` and the current equilibrium
quantities can be accessed by the :doc:`compute bond/local <compute_bond_local>` length :math:`r_eq`. These extra quantities can be accessed by the
command as *b1* and *b2*, respectively. :doc:`compute bond/local <compute_bond_local>` command as *b1* and *b2*,
respectively.
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -60,6 +60,8 @@ Related commands
"""""""""""""""" """"""""""""""""
:doc:`bond_coeff <bond_coeff>`, :doc:`delete_bonds <delete_bonds>` :doc:`bond_coeff <bond_coeff>`, :doc:`delete_bonds <delete_bonds>`
:doc:`bond style harmonic/shift <bond_harmonic_shift>`,
:doc:`bond style harmonic/shift/cut <bond_harmonic_shift_cut>`
Default Default
""""""" """""""

View File

@ -31,9 +31,15 @@ the potential
E = \frac{U_{\text{min}}}{(r_0-r_c)^2} \left[ (r-r_0)^2-(r_c-r_0)^2 \right] E = \frac{U_{\text{min}}}{(r_0-r_c)^2} \left[ (r-r_0)^2-(r_c-r_0)^2 \right]
where :math:`r_0` is the equilibrium bond distance, and :math:`r_c` the critical distance. where :math:`r_0` is the equilibrium bond distance, and :math:`r_c` the
The potential is :math:`-U_{\text{min}}` at :math:`r0` and zero at :math:`r_c`. The spring constant is critical distance. The potential energy has the value
:math:`k = U_{\text{min}} / [ 2 (r_0-r_c)^2]`. :math:`-U_{\text{min}}` at :math:`r_0` and zero at :math:`r_c`. This
bond style differs from :doc:`bond_style harmonic <bond_harmonic>`
by the value of the potential energy.
The equivalent spring constant value *K* for use with :doc:`bond_style
harmonic <bond_harmonic>` can be computed using :math:`K =
U_{\text{min}} / [(r_0-r_c)^2]`.
The following coefficients must be defined for each bond type via the The following coefficients must be defined for each bond type via the
:doc:`bond_coeff <bond_coeff>` command as in the example above, or in :doc:`bond_coeff <bond_coeff>` command as in the example above, or in
@ -41,9 +47,7 @@ the data file or restart files read by the :doc:`read_data <read_data>`
or :doc:`read_restart <read_restart>` commands: or :doc:`read_restart <read_restart>` commands:
* :math:`U_{\text{min}}` (energy) * :math:`U_{\text{min}}` (energy)
* :math:`r_0` (distance) * :math:`r_0` (distance)
* :math:`r_c` (distance) * :math:`r_c` (distance)
---------- ----------
@ -63,7 +67,8 @@ Related commands
"""""""""""""""" """"""""""""""""
:doc:`bond_coeff <bond_coeff>`, :doc:`delete_bonds <delete_bonds>`, :doc:`bond_coeff <bond_coeff>`, :doc:`delete_bonds <delete_bonds>`,
:doc:`bond_harmonic <bond_harmonic>` :doc:`bond style harmonic <bond_harmonic>`,
:doc:`bond style harmonic/shift/cut <bond_harmonic_shift_cut>`
Default Default
""""""" """""""

View File

@ -31,9 +31,14 @@ uses the potential
E = \frac{U_{\text{min}}}{(r_0-r_c)^2} \left[ (r-r_0)^2-(r_c-r_0)^2 \right] E = \frac{U_{\text{min}}}{(r_0-r_c)^2} \left[ (r-r_0)^2-(r_c-r_0)^2 \right]
where :math:`r_0` is the equilibrium bond distance, and rc the critical distance. where :math:`r_0` is the equilibrium bond distance, and :math:`r_c` the
The bond potential is zero for distances :math:`r > r_c`. The potential is :math:`-U_{\text{min}}` critical distance. The bond potential is zero and thus its force also
at :math:`r_0` and zero at :math:`r_c`. The spring constant is :math:`k = U_{\text{min}} / [ 2 (r_0-r_c)^2]`. zero for distances :math:`r > r_c`. The potential energy has the value
:math:`-U_{\text{min}}` at :math:`r_0` and zero at :math:`r_c`.
The equivalent spring constant value *K* for use with :doc:`bond_style
harmonic <bond_harmonic>` for :math:`r <= r_c`, can be computed using
:math:`K = U_{\text{min}} / [(r_0-r_c)^2]`
The following coefficients must be defined for each bond type via the The following coefficients must be defined for each bond type via the
:doc:`bond_coeff <bond_coeff>` command as in the example above, or in :doc:`bond_coeff <bond_coeff>` command as in the example above, or in

View File

@ -67,7 +67,7 @@ following relation should also be satisfied:
.. math:: .. math::
r_c + r_s > 2*{\rm cutoff} r_c + r_s > 2*\mathrm{cutoff}
where :math:`r_c` is the cutoff distance of the potential, :math:`r_s` where :math:`r_c` is the cutoff distance of the potential, :math:`r_s`
is the skin is the skin

View File

@ -74,7 +74,7 @@ following relation should also be satisfied:
.. math:: .. math::
r_c + r_s > 2*{\rm cutoff} r_c + r_s > 2*\mathrm{cutoff}
where :math:`r_c` is the cutoff distance of the potential, :math:`r_s` is where :math:`r_c` is the cutoff distance of the potential, :math:`r_s` is
the skin the skin

View File

@ -50,9 +50,9 @@ the potential energy using the Wolf summation method, described in
.. math:: .. math::
E_i = \frac{1}{2} \sum_{j \neq i} E_i = \frac{1}{2} \sum_{j \neq i}
\frac{q_i q_j {\rm erfc}(\alpha r_{ij})}{r_{ij}} + \frac{q_i q_j \mathrm{erfc}(\alpha r_{ij})}{r_{ij}} +
\frac{1}{2} \sum_{j \neq i} \frac{1}{2} \sum_{j \neq i}
\frac{q_i q_j {\rm erf}(\alpha r_{ij})}{r_{ij}} \qquad r < r_c \frac{q_i q_j \mathrm{erf}(\alpha r_{ij})}{r_{ij}} \qquad r < r_c
where :math:`\alpha` is the damping parameter, and *erf()* and *erfc()* where :math:`\alpha` is the damping parameter, and *erf()* and *erfc()*
are error-function and complementary error-function terms. This are error-function and complementary error-function terms. This

View File

@ -40,7 +40,7 @@ is a complex number (stored as two real numbers) defined as follows:
.. math:: .. math::
q_n = \frac{1}{nnn}\sum_{j = 1}^{nnn} e^{n i \theta({\bf r}_{ij})} q_n = \frac{1}{nnn}\sum_{j = 1}^{nnn} e^{n i \theta({\textbf{r}}_{ij})}
where the sum is over the *nnn* nearest neighbors where the sum is over the *nnn* nearest neighbors
of the central atom. The angle :math:`\theta` of the central atom. The angle :math:`\theta`

View File

@ -49,7 +49,7 @@ For each atom, :math:`Q_\ell` is a real number defined as follows:
.. math:: .. math::
\bar{Y}_{\ell m} = & \frac{1}{nnn}\sum_{j = 1}^{nnn} Y_{\ell m}\bigl( \theta( {\bf r}_{ij} ), \phi( {\bf r}_{ij} ) \bigr) \\ \bar{Y}_{\ell m} = & \frac{1}{nnn}\sum_{j = 1}^{nnn} Y_{\ell m}\bigl( \theta( \mathbf{r}_{ij} ), \phi( \mathbf{r}_{ij} ) \bigr) \\
Q_\ell = & \sqrt{\frac{4 \pi}{2 \ell + 1} \sum_{m = -\ell }^{m = \ell } \bar{Y}_{\ell m} \bar{Y}^*_{\ell m}} Q_\ell = & \sqrt{\frac{4 \pi}{2 \ell + 1} \sum_{m = -\ell }^{m = \ell } \bar{Y}_{\ell m} \bar{Y}^*_{\ell m}}
The first equation defines the local order parameters as averages The first equation defines the local order parameters as averages

View File

@ -139,11 +139,11 @@ mapped on to a third polar angle :math:`\theta_0` defined by,
.. math:: .. math::
\theta_0 = {\sf rfac0} \frac{r-r_{min0}}{R_{ii'}-r_{min0}} \pi \theta_0 = \mathsf{rfac0} \frac{r-r_{min0}}{R_{ii'}-r_{min0}} \pi
In this way, all possible neighbor positions are mapped on to a subset In this way, all possible neighbor positions are mapped on to a subset
of the 3-sphere. Points south of the latitude :math:`\theta_0` = of the 3-sphere. Points south of the latitude
*rfac0* :math:`\pi` are excluded. :math:`\theta_0 = \mathsf{rfac0} \pi` are excluded.
The natural basis for functions on the 3-sphere is formed by the The natural basis for functions on the 3-sphere is formed by the
representatives of *SU(2)*, the matrices :math:`U^j_{m,m'}(\theta, \phi, representatives of *SU(2)*, the matrices :math:`U^j_{m,m'}(\theta, \phi,
@ -204,7 +204,7 @@ components summed separately for each LAMMPS atom type:
.. math:: .. math::
-\sum_{i' \in I} \frac{\partial {B^{i'}_{j_1,j_2,j} }}{\partial {\bf r}_i} -\sum_{i' \in I} \frac{\partial {B^{i'}_{j_1,j_2,j} }}{\partial \mathbf{r}_i}
The sum is over all atoms *i'* of atom type *I*\ . For each atom *i*, The sum is over all atoms *i'* of atom type *I*\ . For each atom *i*,
this compute evaluates the above expression for each direction, each this compute evaluates the above expression for each direction, each
@ -216,7 +216,7 @@ derivatives:
.. math:: .. math::
-{\bf r}_i \otimes \sum_{i' \in I} \frac{\partial {B^{i'}_{j_1,j_2,j}}}{\partial {\bf r}_i} -\mathbf{r}_i \otimes \sum_{i' \in I} \frac{\partial {B^{i'}_{j_1,j_2,j}}}{\partial \mathbf{r}_i}
Again, the sum is over all atoms *i'* of atom type *I*\ . For each atom Again, the sum is over all atoms *i'* of atom type *I*\ . For each atom
*i*, this compute evaluates the above expression for each of the six *i*, this compute evaluates the above expression for each of the six

View File

@ -65,7 +65,7 @@ In case of compute *stress/atom*, the virial contribution is:
W_{ab} & = \frac{1}{2} \sum_{n = 1}^{N_p} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b}) + \frac{1}{2} \sum_{n = 1}^{N_b} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b}) \\ W_{ab} & = \frac{1}{2} \sum_{n = 1}^{N_p} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b}) + \frac{1}{2} \sum_{n = 1}^{N_b} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b}) \\
& + \frac{1}{3} \sum_{n = 1}^{N_a} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b} + r_{3_a} F_{3_b}) + \frac{1}{4} \sum_{n = 1}^{N_d} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b} + r_{3_a} F_{3_b} + r_{4_a} F_{4_b}) \\ & + \frac{1}{3} \sum_{n = 1}^{N_a} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b} + r_{3_a} F_{3_b}) + \frac{1}{4} \sum_{n = 1}^{N_d} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b} + r_{3_a} F_{3_b} + r_{4_a} F_{4_b}) \\
& + \frac{1}{4} \sum_{n = 1}^{N_i} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b} + r_{3_a} F_{3_b} + r_{4_a} F_{4_b}) + {\rm Kspace}(r_{i_a},F_{i_b}) + \sum_{n = 1}^{N_f} r_{i_a} F_{i_b} & + \frac{1}{4} \sum_{n = 1}^{N_i} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b} + r_{3_a} F_{3_b} + r_{4_a} F_{4_b}) + \mathrm{Kspace}(r_{i_a},F_{i_b}) + \sum_{n = 1}^{N_f} r_{i_a} F_{i_b}
The first term is a pairwise energy contribution where :math:`n` loops The first term is a pairwise energy contribution where :math:`n` loops
over the :math:`N_p` neighbors of atom :math:`I`, :math:`\mathbf{r}_1` over the :math:`N_p` neighbors of atom :math:`I`, :math:`\mathbf{r}_1`
@ -97,7 +97,7 @@ In case of compute *centroid/stress/atom*, the virial contribution is:
.. math:: .. math::
W_{ab} & = \sum_{n = 1}^{N_p} r_{I0_a} F_{I_b} + \sum_{n = 1}^{N_b} r_{I0_a} F_{I_b} + \sum_{n = 1}^{N_a} r_{I0_a} F_{I_b} + \sum_{n = 1}^{N_d} r_{I0_a} F_{I_b} + \sum_{n = 1}^{N_i} r_{I0_a} F_{I_b} \\ W_{ab} & = \sum_{n = 1}^{N_p} r_{I0_a} F_{I_b} + \sum_{n = 1}^{N_b} r_{I0_a} F_{I_b} + \sum_{n = 1}^{N_a} r_{I0_a} F_{I_b} + \sum_{n = 1}^{N_d} r_{I0_a} F_{I_b} + \sum_{n = 1}^{N_i} r_{I0_a} F_{I_b} \\
& + {\rm Kspace}(r_{i_a},F_{i_b}) + \sum_{n = 1}^{N_f} r_{i_a} F_{i_b} & + \mathrm{Kspace}(r_{i_a},F_{i_b}) + \sum_{n = 1}^{N_f} r_{i_a} F_{i_b}
As with compute *stress/atom*, the first, second, third, fourth and As with compute *stress/atom*, the first, second, third, fourth and
fifth terms are pairwise, bond, angle, dihedral and improper fifth terms are pairwise, bond, angle, dihedral and improper

View File

@ -263,10 +263,10 @@ then the globally defined weights from the ``fitting_weight_energy`` and
POD Potential POD Potential
""""""""""""" """""""""""""
We consider a multi-element system of *N* atoms with :math:`N_{\rm e}` We consider a multi-element system of *N* atoms with :math:`N_\mathrm{e}`
unique elements. We denote by :math:`\boldsymbol r_n` and :math:`Z_n` unique elements. We denote by :math:`\boldsymbol r_n` and :math:`Z_n`
position vector and type of an atom *n* in the system, position vector and type of an atom *n* in the system,
respectively. Note that we have :math:`Z_n \in \{1, \ldots, N_{\rm e} respectively. Note that we have :math:`Z_n \in \{1, \ldots, N_\mathrm{e}
\}`, :math:`\boldsymbol R = (\boldsymbol r_1, \boldsymbol r_2, \ldots, \}`, :math:`\boldsymbol R = (\boldsymbol r_1, \boldsymbol r_2, \ldots,
\boldsymbol r_N) \in \mathbb{R}^{3N}`, and :math:`\boldsymbol Z = (Z_1, \boldsymbol r_N) \in \mathbb{R}^{3N}`, and :math:`\boldsymbol Z = (Z_1,
Z_2, \ldots, Z_N) \in \mathbb{N}^{N}`. The total energy of the Z_2, \ldots, Z_N) \in \mathbb{N}^{N}`. The total energy of the

View File

@ -341,8 +341,8 @@ accelerated styles exist.
* :doc:`phonon <fix_phonon>` - calculate dynamical matrix from MD simulations * :doc:`phonon <fix_phonon>` - calculate dynamical matrix from MD simulations
* :doc:`pimd/langevin <fix_pimd>` - Feynman path-integral molecular dynamics with stochastic thermostat * :doc:`pimd/langevin <fix_pimd>` - Feynman path-integral molecular dynamics with stochastic thermostat
* :doc:`pimd/nvt <fix_pimd>` - Feynman path-integral molecular dynamics with Nose-Hoover thermostat * :doc:`pimd/nvt <fix_pimd>` - Feynman path-integral molecular dynamics with Nose-Hoover thermostat
* :doc:`pimd/langevin/bosonic <fix_pimd_bosonic>` - Bosonic Feynman path-integral molecular dynamics for with stochastic thermostat * :doc:`pimd/langevin/bosonic <fix_pimd>` - Bosonic Feynman path-integral molecular dynamics for with stochastic thermostat
* :doc:`pimd/nvt/bosonic <fix_pimd_bosonic>` - Bosonic Feynman path-integral molecular dynamics with Nose-Hoover thermostat * :doc:`pimd/nvt/bosonic <fix_pimd>` - Bosonic Feynman path-integral molecular dynamics with Nose-Hoover thermostat
* :doc:`planeforce <fix_planeforce>` - constrain atoms to move in a plane * :doc:`planeforce <fix_planeforce>` - constrain atoms to move in a plane
* :doc:`plumed <fix_plumed>` - wrapper on PLUMED free energy library * :doc:`plumed <fix_plumed>` - wrapper on PLUMED free energy library
* :doc:`poems <fix_poems>` - constrain clusters of atoms to move as coupled rigid bodies * :doc:`poems <fix_poems>` - constrain clusters of atoms to move as coupled rigid bodies

View File

@ -459,8 +459,8 @@ output. This option can only be used with the *ave running* setting.
The *format* keyword sets the numeric format of each value when it is The *format* keyword sets the numeric format of each value when it is
printed to a file via the *file* keyword. Note that all values are printed to a file via the *file* keyword. Note that all values are
floating point quantities. The default format is %g. You can specify floating point quantities. The default format is " %g". You can specify
a higher precision if desired (e.g., %20.16g). a higher precision if desired (e.g., " %20.16g").
The *title1* and *title2* and *title3* keywords allow specification of The *title1* and *title2* and *title3* keywords allow specification of
the strings that will be printed as the first three lines of the output the strings that will be printed as the first three lines of the output

View File

@ -304,8 +304,8 @@ output. This option can only be used with the *ave running* setting.
The *format* keyword sets the numeric format of each value when it is The *format* keyword sets the numeric format of each value when it is
printed to a file via the *file* keyword. Note that all values are printed to a file via the *file* keyword. Note that all values are
floating point quantities. The default format is %g. You can specify floating point quantities. The default format is " %g". You can specify
a higher precision if desired (e.g., %20.16g). a higher precision if desired (e.g., " %20.16g").
The *title1* and *title2* and *title3* keywords allow specification of The *title1* and *title2* and *title3* keywords allow specification of
the strings that will be printed as the first 2 or 3 lines of the the strings that will be printed as the first 2 or 3 lines of the

View File

@ -60,9 +60,9 @@ With this fix active, the force on the *j*\ th atom is given as
.. math:: .. math::
{\bf F}_{j}(t) = & {\bf F}^C_j(t)-\int \limits_{0}^{t} \Gamma_j(t-s) {\bf v}_j(s)~\text{d}s + {\bf F}^R_j(t) \\ \mathbf{F}_{j}(t) = & \mathbf{F}^C_j(t)-\int \limits_{0}^{t} \Gamma_j(t-s) \mathbf{v}_j(s)~\text{d}s + \mathbf{F}^R_j(t) \\
\Gamma_j(t-s) = & \sum \limits_{k=1}^{N_k} \frac{c_k}{\tau_k} e^{-(t-s)/\tau_k} \\ \Gamma_j(t-s) = & \sum \limits_{k=1}^{N_k} \frac{c_k}{\tau_k} e^{-(t-s)/\tau_k} \\
\langle{\bf F}^R_j(t),{\bf F}^R_j(s)\rangle = & \text{k$_\text{B}$T} ~\Gamma_j(t-s) \langle\mathbf{F}^R_j(t),\mathbf{F}^R_j(s)\rangle = & \text{k$_\text{B}$T} ~\Gamma_j(t-s)
Here, the first term is representative of all conservative (pairwise, Here, the first term is representative of all conservative (pairwise,
bonded, etc) forces external to this fix, the second is the temporally bonded, etc) forces external to this fix, the second is the temporally

View File

@ -25,13 +25,14 @@ Syntax
* operator = "<" or "<=" or ">" or ">=" or "==" or "!=" or "\|\^" * operator = "<" or "<=" or ">" or ">=" or "==" or "!=" or "\|\^"
* avalue = numeric value to compare attribute to * avalue = numeric value to compare attribute to
* zero or more keyword/value pairs may be appended * zero or more keyword/value pairs may be appended
* keyword = *error* or *message* or *path* * keyword = *error* or *message* or *path* or *universe*
.. parsed-literal:: .. parsed-literal::
*error* value = *hard* or *soft* or *continue* *error* value = *hard* or *soft* or *continue*
*message* value = *yes* or *no* *message* value = *yes* or *no*
*path* value = path to check for free space (may be in quotes) *path* value = path to check for free space (may be in quotes)
*universe* value = *yes* or *no*
Examples Examples
@ -40,8 +41,10 @@ Examples
.. code-block:: LAMMPS .. code-block:: LAMMPS
fix 10 all halt 1 bondmax > 1.5 fix 10 all halt 1 bondmax > 1.5
fix 10 all halt 10 v_myCheck != 0 error soft fix 10 all halt 10 v_myCheck != 0 error soft message no
fix 10 all halt 100 diskfree < 100000.0 path "dump storage/." fix 10 all halt 100 diskfree < 100000.0 path "dump storage/."
fix 2 all halt 100 v_curtime > ${maxtime} universe yes
Description Description
""""""""""" """""""""""
@ -141,33 +144,52 @@ The optional *error* keyword determines how the current run is halted.
If its value is *hard*, then LAMMPS will stop with an error message. If its value is *hard*, then LAMMPS will stop with an error message.
If its value is *soft*, LAMMPS will exit the current run, but continue If its value is *soft*, LAMMPS will exit the current run, but continue
to execute subsequent commands in the input script. However, to execute subsequent commands in the input script. However, additional
additional :doc:`run <run>` or :doc:`minimize <minimize>` commands will be :doc:`run <run>` or :doc:`minimize <minimize>` commands will be skipped.
skipped. For example, this allows a script to output the current For example, this allows a script to output the current state of the
state of the system, e.g. via a :doc:`write_dump <write_dump>` or system, e.g. via a :doc:`write_dump <write_dump>` or :doc:`write_restart
:doc:`write_restart <write_restart>` command. <write_restart>` command. To re-enable regular runs after *fix halt*
stopped a run, you need to issue a :doc:`timer timeout unlimited
<timer>` command.
If its value is *continue*, the behavior is the same as for *soft*, If its value is *continue*, the behavior is the same as for *soft*,
except subsequent :doc:`run <run>` or :doc:`minimize <minimize>` commands except subsequent :doc:`run <run>` or :doc:`minimize <minimize>` commands
are executed. This allows your script to remedy the condition that are executed. This allows your script to remedy the condition that
triggered the halt, if necessary. Note that you may wish use the triggered the halt, if necessary. This is the equivalent of stopping
:doc:`unfix <unfix>` command on the fix halt ID, so that the same with *error soft* and followed by :doc:`timer timeout unlimited
condition is not immediately triggered in a subsequent run. <timer>` command. This can have undesired consequences, when a
:doc:`run command <run>` uses the *every* keyword, so using *error soft*
and resetting the timer manually may be the preferred option.
You may wish use the :doc:`unfix <unfix>` command on the *fix halt* ID
before starting a subsequent run, so that the same condition is not
immediately triggered again.
The optional *message* keyword determines whether a message is printed The optional *message* keyword determines whether a message is printed
to the screen and logfile when the halt condition is triggered. If to the screen and logfile when the halt condition is triggered. If
*message* is set to yes, a one line message with the values that *message* is set to yes, a one line message with the values that
triggered the halt is printed. If *message* is set to no, no message triggered the halt is printed. If *message* is set to no, no message is
is printed; the run simply exits. The latter may be desirable for printed; the run simply exits. The latter may be desirable for
post-processing tools that extract thermodynamic information from log post-processing tools that extract thermodynamic information from log
files. files.
.. versionadded:: TBD
The optional *universe* keyword determines whether the halt request
should be synchronized across the partitions of a :doc:`multi-partition
run <Run_options>`. If *universe* is set to yes, fix halt will check if
there is a specific message received from any of the other partitions
requesting to stop the run on this partition as well. Consequently, if
fix halt determines to halt the simulation, the fix will send messages
to all other partitions so they stop their runs, too.
Restart, fix_modify, output, run start/stop, minimize info Restart, fix_modify, output, run start/stop, minimize info
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
No information about this fix is written to :doc:`binary restart files <restart>`. None of the :doc:`fix_modify <fix_modify>` options No information about this fix is written to :doc:`binary restart files
are relevant to this fix. No global or per-atom quantities are stored <restart>`. None of the :doc:`fix_modify <fix_modify>` options are
by this fix for access by various :doc:`output commands <Howto_output>`. relevant to this fix. No global or per-atom quantities are stored by
this fix for access by various :doc:`output commands <Howto_output>`.
No parameter of this fix can be used with the *start/stop* keywords of No parameter of this fix can be used with the *start/stop* keywords of
the :doc:`run <run>` command. the :doc:`run <run>` command.
@ -183,4 +205,4 @@ Related commands
Default Default
""""""" """""""
The option defaults are error = soft, message = yes, and path = ".". The option defaults are error = soft, message = yes, path = ".", and universe = no.

View File

@ -130,7 +130,7 @@ calculated as:
.. math:: .. math::
{\bf F}_{j \alpha} = \gamma \left({\bf v}_n - {\bf u}_f \right) \zeta_{j\alpha} \mathbf{F}_{j \alpha} = \gamma \left(\mathbf{v}_n - \mathbf{u}_f \right) \zeta_{j\alpha}
where :math:`\mathbf{v}_n` is the velocity of the MD particle, where :math:`\mathbf{v}_n` is the velocity of the MD particle,
:math:`\mathbf{u}_f` is the fluid velocity interpolated to the particle :math:`\mathbf{u}_f` is the fluid velocity interpolated to the particle

View File

@ -208,19 +208,19 @@ The relaxation rate of the barostat is set by its inertia :math:`W`:
.. math:: .. math::
W = (N + 1) k_B T_{\rm target} P_{\rm damp}^2 W = (N + 1) k_B T_\mathrm{target} P_\mathrm{damp}^2
where :math:`N` is the number of atoms, :math:`k_B` is the Boltzmann constant, where :math:`N` is the number of atoms, :math:`k_B` is the Boltzmann constant,
and :math:`T_{\rm target}` is the target temperature of the barostat :ref:`(Martyna) <nh-Martyna>`. and :math:`T_\mathrm{target}` is the target temperature of the barostat :ref:`(Martyna) <nh-Martyna>`.
If a thermostat is defined, :math:`T_{\rm target}` is the target temperature If a thermostat is defined, :math:`T_\mathrm{target}` is the target temperature
of the thermostat. If a thermostat is not defined, :math:`T_{\rm target}` of the thermostat. If a thermostat is not defined, :math:`T_\mathrm{target}`
is set to the current temperature of the system when the barostat is initialized. is set to the current temperature of the system when the barostat is initialized.
If this temperature is too low the simulation will quit with an error. If this temperature is too low the simulation will quit with an error.
Note: in previous versions of LAMMPS, :math:`T_{\rm target}` would default to Note: in previous versions of LAMMPS, :math:`T_\mathrm{target}` would default to
a value of 1.0 for *lj* units and 300.0 otherwise if the system had a temperature a value of 1.0 for *lj* units and 300.0 otherwise if the system had a temperature
of exactly zero. of exactly zero.
If a thermostat is not specified by this fix, :math:`T_{\rm target}` can be If a thermostat is not specified by this fix, :math:`T_\mathrm{target}` can be
manually specified using the *Ptemp* parameter. This may be useful if the manually specified using the *Ptemp* parameter. This may be useful if the
barostat is initialized when the current temperature does not reflect the barostat is initialized when the current temperature does not reflect the
steady state temperature of the system. This keyword may also be useful in steady state temperature of the system. This keyword may also be useful in
@ -512,8 +512,8 @@ according to the following factorization of the Liouville propagator
.. math:: .. math::
\exp \left(\mathrm{i} L \Delta t \right) = & \hat{E} \exp \left(\mathrm{i} L \Delta t \right) = & \hat{E}
\exp \left(\mathrm{i} L_{\rm T\textrm{-}baro} \frac{\Delta t}{2} \right) \exp \left(\mathrm{i} L_\mathrm{T\textrm{-}baro} \frac{\Delta t}{2} \right)
\exp \left(\mathrm{i} L_{\rm T\textrm{-}part} \frac{\Delta t}{2} \right) \exp \left(\mathrm{i} L_\mathrm{T\textrm{-}part} \frac{\Delta t}{2} \right)
\exp \left(\mathrm{i} L_{\epsilon , 2} \frac{\Delta t}{2} \right) \exp \left(\mathrm{i} L_{\epsilon , 2} \frac{\Delta t}{2} \right)
\exp \left(\mathrm{i} L_{2}^{(2)} \frac{\Delta t}{2} \right) \\ \exp \left(\mathrm{i} L_{2}^{(2)} \frac{\Delta t}{2} \right) \\
&\times \left[ &\times \left[
@ -526,8 +526,8 @@ according to the following factorization of the Liouville propagator
&\times &\times
\exp \left(\mathrm{i} L_{2}^{(2)} \frac{\Delta t}{2} \right) \exp \left(\mathrm{i} L_{2}^{(2)} \frac{\Delta t}{2} \right)
\exp \left(\mathrm{i} L_{\epsilon , 2} \frac{\Delta t}{2} \right) \exp \left(\mathrm{i} L_{\epsilon , 2} \frac{\Delta t}{2} \right)
\exp \left(\mathrm{i} L_{\rm T\textrm{-}part} \frac{\Delta t}{2} \right) \exp \left(\mathrm{i} L_\mathrm{T\textrm{-}part} \frac{\Delta t}{2} \right)
\exp \left(\mathrm{i} L_{\rm T\textrm{-}baro} \frac{\Delta t}{2} \right) \\ \exp \left(\mathrm{i} L_\mathrm{T\textrm{-}baro} \frac{\Delta t}{2} \right) \\
&+ \mathcal{O} \left(\Delta t^3 \right) &+ \mathcal{O} \left(\Delta t^3 \right)
This factorization differs somewhat from that of Tuckerman et al, in This factorization differs somewhat from that of Tuckerman et al, in

View File

@ -426,8 +426,8 @@ according to the following factorization of the Liouville propagator
.. math:: .. math::
\exp \left(\mathrm{i} L \Delta t \right) = & \hat{E} \exp \left(\mathrm{i} L \Delta t \right) = & \hat{E}
\exp \left(\mathrm{i} L_{\rm T\textrm{-}baro} \frac{\Delta t}{2} \right) \exp \left(\mathrm{i} L_\mathrm{T\textrm{-}baro} \frac{\Delta t}{2} \right)
\exp \left(\mathrm{i} L_{\rm T\textrm{-}part} \frac{\Delta t}{2} \right) \exp \left(\mathrm{i} L_\mathrm{T\textrm{-}part} \frac{\Delta t}{2} \right)
\exp \left(\mathrm{i} L_{\epsilon , 2} \frac{\Delta t}{2} \right) \exp \left(\mathrm{i} L_{\epsilon , 2} \frac{\Delta t}{2} \right)
\exp \left(\mathrm{i} L_{2}^{(2)} \frac{\Delta t}{2} \right) \\ \exp \left(\mathrm{i} L_{2}^{(2)} \frac{\Delta t}{2} \right) \\
&\times \left[ &\times \left[
@ -440,8 +440,8 @@ according to the following factorization of the Liouville propagator
&\times &\times
\exp \left(\mathrm{i} L_{2}^{(2)} \frac{\Delta t}{2} \right) \exp \left(\mathrm{i} L_{2}^{(2)} \frac{\Delta t}{2} \right)
\exp \left(\mathrm{i} L_{\epsilon , 2} \frac{\Delta t}{2} \right) \exp \left(\mathrm{i} L_{\epsilon , 2} \frac{\Delta t}{2} \right)
\exp \left(\mathrm{i} L_{\rm T\textrm{-}part} \frac{\Delta t}{2} \right) \exp \left(\mathrm{i} L_\mathrm{T\textrm{-}part} \frac{\Delta t}{2} \right)
\exp \left(\mathrm{i} L_{\rm T\textrm{-}baro} \frac{\Delta t}{2} \right) \\ \exp \left(\mathrm{i} L_\mathrm{T\textrm{-}baro} \frac{\Delta t}{2} \right) \\
&+ \mathcal{O} \left(\Delta t^3 \right) &+ \mathcal{O} \left(\Delta t^3 \right)
This factorization differs somewhat from that of Tuckerman et al, in This factorization differs somewhat from that of Tuckerman et al, in

View File

@ -62,19 +62,19 @@ The potential energy added to atom I is given by these formulas
.. math:: .. math::
\xi_{i} = & \sum_{j=1}^{12} \left| \mathbf{r}_{j} - \mathbf{r}_{j}^{\rm I} \right| \qquad\qquad\left(1\right) \\ \xi_{i} = & \sum_{j=1}^{12} \left| \mathbf{r}_{j} - \mathbf{r}_{j}^\mathrm{I} \right| \qquad\qquad\left(1\right) \\
\\ \\
\xi_{\rm IJ} = & \sum_{j=1}^{12} \left| \mathbf{r}_{j}^{\rm J} - \mathbf{r}_{j}^{\rm I} \right| \qquad\qquad\left(2\right)\\ \xi_\mathrm{IJ} = & \sum_{j=1}^{12} \left| \mathbf{r}_{j}^\mathrm{J} - \mathbf{r}_{j}^\mathrm{I} \right| \qquad\qquad\left(2\right)\\
\\ \\
\xi_{\rm low} = & {\rm cutlo} \, \xi_{\rm IJ} \qquad\qquad\qquad\left(3\right)\\ \xi_\mathrm{low} = & \mathrm{cutlo} \, \xi_\mathrm{IJ} \qquad\qquad\qquad\left(3\right)\\
\xi_{\rm high} = & {\rm cuthi} \, \xi_{\rm IJ} \qquad\qquad\qquad\left(4\right) \\ \xi_\mathrm{high} = & \mathrm{cuthi} \, \xi_\mathrm{IJ} \qquad\qquad\qquad\left(4\right) \\
\\ \\
\omega_{i} = & \frac{\pi}{2} \frac{\xi_{i} - \xi_{\rm low}}{\xi_{\rm high} - \xi_{\rm low}} \qquad\qquad\left(5\right)\\ \omega_{i} = & \frac{\pi}{2} \frac{\xi_{i} - \xi_\mathrm{low}}{\xi_\mathrm{high} - \xi_\mathrm{low}} \qquad\qquad\left(5\right)\\
\\ \\
u_{i} = & 0 \quad\quad\qquad\qquad\qquad \textrm{ for } \qquad \xi_{i} < \xi_{\rm low}\\ u_{i} = & 0 \quad\quad\qquad\qquad\qquad \textrm{ for } \qquad \xi_{i} < \xi_\mathrm{low}\\
= & {\rm dE}\,\frac{1 - \cos(2 \omega_{i})}{2} = & \mathrm{dE}\,\frac{1 - \cos(2 \omega_{i})}{2}
\qquad \mathrm{ for }\qquad \xi_{\rm low} < \xi_{i} < \xi_{\rm high} \quad \left(6\right) \\ \qquad \mathrm{for }\qquad \xi_\mathrm{low} < \xi_{i} < \xi_\mathrm{high} \quad \left(6\right) \\
= & {\rm dE} \quad\qquad\qquad\qquad\textrm{ for } \qquad \xi_{\rm high} < \xi_{i} = & \mathrm{dE} \quad\qquad\qquad\qquad\textrm{ for } \qquad \xi_\mathrm{high} < \xi_{i}
which are fully explained in :ref:`(Janssens) <Janssens>`. For fcc crystals which are fully explained in :ref:`(Janssens) <Janssens>`. For fcc crystals
this order parameter Xi for atom I in equation (1) is a sum over the this order parameter Xi for atom I in equation (1) is a sum over the

View File

@ -9,11 +9,11 @@ fix pimd/langevin command
fix pimd/nvt command fix pimd/nvt command
==================== ====================
:doc:`fix pimd/langevin/bosonic <fix_pimd_bosonic>` command fix pimd/langevin/bosonic command
=========================================================== =================================
:doc:`fix pimd/nvt/bosonic <fix_pimd_bosonic>` command fix pimd/nvt/bosonic command
====================================================== ============================
Syntax Syntax
"""""" """"""
@ -23,7 +23,7 @@ Syntax
fix ID group-ID style keyword value ... fix ID group-ID style keyword value ...
* ID, group-ID are documented in :doc:`fix <fix>` command * ID, group-ID are documented in :doc:`fix <fix>` command
* style = *pimd/langevin* or *pimd/nvt* = style name of this fix command * style = *pimd/langevin* or *pimd/nvt* or *pimd/langevin/bosonic* or *pimd/nvt/bosonic* = style name of this fix command
* zero or more keyword/value pairs may be appended * zero or more keyword/value pairs may be appended
* keywords for style *pimd/nvt* * keywords for style *pimd/nvt*
@ -89,19 +89,20 @@ partition function for the original system to a classical partition
function for a ring-polymer system is exploited, to efficiently sample function for a ring-polymer system is exploited, to efficiently sample
configurations from the canonical ensemble :ref:`(Feynman) <Feynman>`. configurations from the canonical ensemble :ref:`(Feynman) <Feynman>`.
.. versionadded:: 11Mar2025 .. versionadded:: TBD
Fix *pimd/langevin/bosonic* and *pimd/nvt/bosonic* were added. Fix *pimd/langevin/bosonic* and *pimd/nvt/bosonic* were added.
Fix *pimd/nvt* and fix *pimd/langevin* simulate *distinguishable* quantum particles. Fix *pimd/nvt* and fix *pimd/langevin* simulate *distinguishable* quantum particles.
Simulations of bosons, including exchange effects, are supported with the :doc:`fix pimd/langevin/bosonic <fix_pimd_bosonic>` and :doc:`fix pimd/nvt/bosonic <fix_pimd_bosonic>` commands. Simulations of bosons, including exchange effects, are supported with the
fix *pimd/langevin/bosonic* and the *pimd/nvt/bosonic* commands.
For distinguishable particles, the isomorphic classical partition function and its components are given For distinguishable particles, the isomorphic classical partition function and its components are given
by the following equations: by the following equations:
.. math:: .. math::
Z = & \int d{\bf q} d{\bf p} \cdot \textrm{exp} [ -\beta H_{eff} ] \\ Z = & \int d\mathbf{q} d\mathbf{p} \cdot \textrm{exp} [ -\beta H_{eff} ] \\
H_{eff} = & \bigg(\sum_{i=1}^P \frac{p_i^2}{2M_i}\bigg) + V_{eff} \\ H_{eff} = & \bigg(\sum_{i=1}^P \frac{p_i^2}{2M_i}\bigg) + V_{eff} \\
V_{eff} = & \sum_{i=1}^P \bigg[ \frac{mP}{2\beta^2 \hbar^2} (q_i - q_{i+1})^2 + \frac{1}{P} V(q_i)\bigg] V_{eff} = & \sum_{i=1}^P \bigg[ \frac{mP}{2\beta^2 \hbar^2} (q_i - q_{i+1})^2 + \frac{1}{P} V(q_i)\bigg]
@ -173,15 +174,17 @@ normal-mode PIMD. A value of *cmd* is for centroid molecular dynamics
Mode *pimd* added to fix pimd/langevin. Mode *pimd* added to fix pimd/langevin.
Fix pimd/langevin supports the *method* values *nmpimd* and *pimd*. The default value is *nmpimd*. Fix pimd/langevin supports the *method* values *nmpimd* and *pimd*. The default
If *method* is *nmpimd*, the normal mode representation is used to integrate the equations of motion. value is *nmpimd*. If *method* is *nmpimd*, the normal mode representation is
The exact solution of harmonic oscillator is used to propagate the free ring polymer part of the Hamiltonian. used to integrate the equations of motion. The exact solution of harmonic
If *method* is *pimd*, the Cartesian representation is used to integrate the equations of motion. oscillator is used to propagate the free ring polymer part of the Hamiltonian.
The harmonic force is added to the total force of the system, and the numerical integrator is used to propagate the Hamiltonian. If *method* is *pimd*, the Cartesian representation is used to integrate the
equations of motion. The harmonic force is added to the total force of the
system, and the numerical integrator is used to propagate the Hamiltonian.
The keyword *integrator* specifies the Trotter splitting method used by *fix pimd/langevin*. The keyword *integrator* specifies the Trotter splitting method used by *fix
See :ref:`(Liu) <Liu>` for a discussion on the OBABO and BAOAB splitting schemes. Typically pimd/langevin*. See :ref:`(Liu) <Liu>` for a discussion on the OBABO and BAOAB
either of the two should work fine. splitting schemes. Typically either of the two should work fine.
The keyword *fmass* sets a further scaling factor for the fictitious The keyword *fmass* sets a further scaling factor for the fictitious
masses of beads, which can be used for the Partial Adiabatic CMD masses of beads, which can be used for the Partial Adiabatic CMD
@ -231,8 +234,8 @@ a positive floating-point number.
For pimd simulations, a temperature values should be specified even for nve ensemble. Temperature will make a difference For pimd simulations, a temperature values should be specified even for nve ensemble. Temperature will make a difference
for nve pimd, since the spring elastic frequency between the beads will be affected by the temperature. for nve pimd, since the spring elastic frequency between the beads will be affected by the temperature.
The keyword *thermostat* reads *style* and *seed* of thermostat for fix style *pimd/langevin*. *style* can only The keyword *thermostat* reads *style* and *seed* of thermostat for fix style *pimd/langevin*.
be *PILE_L* (path integral Langevin equation local thermostat, as described in :ref:`Ceriotti <Ceriotti2>`), and *seed* should a positive integer number, which serves as the seed of the pseudo random number generator. *style* can only be *PILE_L* (path integral Langevin equation local thermostat, as described in :ref:`Ceriotti <Ceriotti2>`), and *seed* should a positive integer number, which serves as the seed of the pseudo random number generator.
.. note:: .. note::
@ -418,7 +421,12 @@ LAMMPS was built with that package. See the :doc:`Build package
<Build_package>` page for more info. <Build_package>` page for more info.
Fix *pimd/nvt* cannot be used with :doc:`lj units <units>`. Fix *pimd/nvt* cannot be used with :doc:`lj units <units>`.
Fix *pimd/langevin* can be used with :doc:`lj units <units>`. See the above part for how to use it. Fix *pimd/langevin* can be used with :doc:`lj units <units>`.
See the documentation above for how to use it.
Only some combinations of fix styles and their options support
partitions with multiple processors. LAMMPS will stop with an
error if multi-processor partitions are not supported.
A PIMD simulation can be initialized with a single data file read via A PIMD simulation can be initialized with a single data file read via
the :doc:`read_data <read_data>` command. However, this means all the :doc:`read_data <read_data>` command. However, this means all
@ -435,7 +443,7 @@ variable, e.g.
Related commands Related commands
"""""""""""""""" """"""""""""""""
:doc:`pimd/nvt/bosonic <fix_pimd_bosonic>`, :doc:`pimd/langevin/bosonic <fix_pimd_bosonic>` :doc:`fix ipi <fix_ipi>`
Default Default
""""""" """""""

View File

@ -1,237 +0,0 @@
.. index:: fix pimd/langevin/bosonic
.. index:: fix pimd/nvt/bosonic
fix pimd/langevin/bosonic command
=================================
fix pimd/nvt/bosonic command
============================
Syntax
""""""
.. code-block:: LAMMPS
fix ID group-ID style keyword value ...
* ID, group-ID are documented in :doc:`fix <fix>` command
* style = *pimd/langevin/bosonic* or *pimd/nvt/bosonic* = style name of this fix command
* zero or more keyword/value pairs may be appended
* keywords for style *pimd/nvt/bosonic*
.. parsed-literal::
*keywords* = *method* or *fmass* or *sp* or *temp* or *nhc*
*method* value = *pimd* or *nmpimd*
*fmass* value = scaling factor on mass
*sp* value = scaling factor on Planck constant
*temp* value = temperature (temperature units)
*nhc* value = Nc = number of chains in Nose-Hoover thermostat
* keywords for style *pimd/langevin/bosonic*
.. parsed-literal::
*keywords* = *integrator* or *ensemble* or *fmass* or *temp* or *thermostat* or *tau* or *fixcom* or *lj* or *esych*
*integrator* value = *obabo* or *baoab*
*ensemble* value = *nvt* or *nve*
*fmass* value = scaling factor on mass
*temp* value = temperature (temperature unit)
temperature = target temperature of the thermostat
*thermostat* values = style seed
style value = *PILE_L*
seed = random number generator seed
*tau* value = thermostat damping parameter (time unit)
*fixcom* value = *yes* or *no*
*lj* values = epsilon sigma mass planck mvv2e
epsilon = energy scale for reduced units (energy units)
sigma = length scale for reduced units (length units)
mass = mass scale for reduced units (mass units)
planck = Planck's constant for other unit style
mvv2e = mass * velocity^2 to energy conversion factor for other unit style
*esynch* value = *yes* or *no*
Examples
""""""""
.. code-block:: LAMMPS
fix 1 all pimd/nvt/bosonic method pimd fmass 1.0 sp 1.0 temp 2.0 nhc 4
fix 1 all pimd/langevin/bosonic integrator obabo temp 113.15 thermostat PILE_L 1234 tau 1.0
Example input files are provided in the examples/PACKAGES/pimd_bosonic directory.
Description
"""""""""""
These fix commands are based on the fixes :doc:`pimd/nvt and
pimd/langevin <fix_pimd>` for performing quantum molecular dynamics
simulations based on the Feynman path-integral formalism. The key
difference is that fix *pimd/nvt* and fix *pimd/langevin* simulate
*distinguishable* particles, while fix *pimd/nvt/bosonic* and fix
*pimd/langevin/bosonic* perform simulations of bosons, including exchange
effects. The *bosonic* commands share syntax with the equivalent commands for distinguishable particles.
The user is referred to the documentation of :doc:`these commands <fix_pimd>`
for a detailed syntax description and additional, general capabilities
of the commands. The major differences from fix *pimd/nvt* and fix *pimd/langevin* in terms of
capabilities are:
* Fix *pimd/nvt/bosonic* only supports the "pimd" and "nmpimd" methods. Fix
*pimd/langevin/bosonic* only supports the "pimd" method, which is the default
in this fix. These restrictions are related to the use of normal
modes, which change in bosons. For similar reasons, *fmmode* of
*pimd/langevin* should not be used, and would raise an error if set to
a value other than *physical*.
* Fix *pimd/langevin/bosonic* currently does not support *ensemble* other than
*nve*, *nvt*. The barostat related keywords *iso*, *aniso*,
*barostat*, *taup* are not supported.
* Fix *pimd/langevin/bosonic* also has a keyword not available in fix
*pimd/langevin*: *esynch*, with default *yes*. If set to *no*, some
time consuming synchronization of spring energies and the primitive
kinetic energy estimator between processors is avoided.
The isomorphism between the partition function of :math:`N` bosonic
quantum particles and that of a system of classical ring polymers at
inverse temperature :math:`\beta` is given by :ref:`(Tuckerman)
<book-Tuckerman>`:
.. math::
Z \propto \int d{\bf q} \cdot \frac{1}{N!} \sum_\sigma \textrm{exp} [ -\beta \left( E^\sigma + V \right) ].
Here, :math:`V` is the potential between different particles at the same
imaginary time slice, which is the same for bosons and distinguishable
particles. The sum is over all permutations :math:`\sigma`. Recall that
a permutation matches each element :math:`l` in :math:`1, ..., N` to an
element :math:`\sigma(l)` in :math:`1, ..., N` without repetitions. The
energies :math:`E^\sigma` correspond to the linking of ring polymers of
different particles according to the permutations:
.. math::
E^\sigma = \frac{mP}{2\beta^2 \hbar^2} \sum_{\ell=1}^N \sum_{j=1}^P \left(\mathbf{q}_\ell^j - \mathbf{q}_\ell^{j+1}\right)^2,
where :math:`P` is the number of beads and :math:`\mathbf{q}_\ell^{P+1}=\mathbf{q}_{\sigma(\ell)}^1.`
Hirshberg et. al. showed that the ring polymer potential
:math:`-\frac{1}{\beta}\textrm{ln}\left[ \frac{1}{N!} \sum_\sigma e ^ {
-\beta E^\sigma } \right]`, which scales exponentially with :math:`N`,
can be replaced by a potential :math:`V^{[1,N]}` defined through a
recurrence relation :ref:`(Hirshberg1) <Hirshberg>`:
.. math::
e ^ { -\beta V^{[1,N]} } = \frac{1}{N} \sum_{k=1}^N e ^ { -\beta \left( V^{[1,N-k]} + E^{[N-K+1,N]} \right)}.
Here, :math:`E^{[N-K+1,N]}` is the spring energy of the ring polymer
obtained by connecting the beads of particles :math:`N - k + 1, N - k +
2, ..., N` in a cycle. This potential does not include all :math:`N!`
permutations, but samples the same bosonic partition function. The
implemented algorithm in LAMMPS for calculating the potential is the one
developed by Feldman and Hirshberg, which scales like :math:`N^2+PN`
:ref:`(Feldman) <Feldman>`. The forces are calculated as weighted
averages over the representative permutations, through an algorithm that
scales the same as the one for the potential calculation, :math:`N^2+PN`
:ref:`(Feldman) <Feldman>`. The minimum-image convention is employed on
the springs to account for periodic boundary conditions; an elaborate
discussion of the validity of the approximation is available in
:ref:`(Higer) <HigerFeldman>`.
Restart, fix_modify, output, run start/stop, minimize info
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
The use of :doc:`binary restart files <restart>` and :doc:`fix_modify
<fix_modify>` is the same as in :doc:`fix pimd <fix_pimd>`.
Fix *pimd/nvt/bosonic* computes a global 4-vector, which can be accessed by
various :doc:`output commands <Howto_output>`. The quantities in
the global vector are:
#. the total spring energy of the quasi-beads,
#. the current temperature of the classical system of ring polymers,
#. the current value of the scalar virial estimator for the kinetic
energy of the quantum system :ref:`(Herman) <HermanBB>` (see the justification in the supporting information of :ref:`(Hirshberg2) <HirshbergInvernizzi>`),
#. the current value of the scalar primitive estimator for the kinetic
energy of the quantum system :ref:`(Hirshberg1) <Hirshberg>`.
The vector values calculated by fix *pimd/nvt/bosonic* are "extensive", except
for the temperature, which is "intensive".
Fix *pimd/langevin/bosonic* computes a global 6-vector, which can be accessed
by various :doc:`output commands <Howto_output>`. The quantities in the
global vector are:
#. kinetic energy of the beads,
#. spring elastic energy of the beads,
#. potential energy of the bead,
#. total energy of all beads (conserved if *ensemble* is *nve*) if *esynch* is *yes*
#. primitive kinetic energy estimator :ref:`(Hirshberg1) <Hirshberg>`
#. virial energy estimator :ref:`(Herman) <HermanBB>` (see the justification in the supporting information of :ref:`(Hirshberg2) <HirshbergInvernizzi>`).
The first three are different for different log files, and the others
are the same for different log files, except for the primitive kinetic
energy estimator when setting *esynch* to *no*. Then, the primitive
kinetic energy estimator is obtained by summing over all log files.
Also note that when *esynch* is set to *no*, the fourth output gives the
total energy of all beads excluding the spring elastic energy; the total
classical energy can then be obtained by adding the sum of second output
over all log files. All vector values calculated by fix
*pimd/langevin/bosonic* are "extensive".
For both *pimd/nvt/bosonic* and *pimd/langevin/bosonic*, the contribution of the
exterior spring to the primitive estimator is printed to the first log
file. The contribution of the :math:`P-1` interior springs is printed
to the other :math:`P-1` log files. The contribution of the constant
:math:`\frac{PdN}{2 \beta}` (with :math:`d` being the dimensionality) is
equally divided over log files.
Restrictions
""""""""""""
These fixes are part of the REPLICA package. They are only enabled if
LAMMPS was built with that package. See the :doc:`Build package
<Build_package>` page for more info.
The restrictions of :doc:`fix pimd <fix_pimd>` apply.
Related commands
""""""""""""""""
:doc:`pimd/nvt <fix_pimd>`, :doc:`pimd/langevin <fix_pimd>`
Default
"""""""
The keyword defaults for fix *pimd/nvt/bosonic* are method = pimd, fmass = 1.0,
sp = 1.0, temp = 300.0, and nhc = 2.
The keyword defaults for fix *pimd/langevin/bosonic* are integrator = obabo,
method = pimd, ensemble = nvt, fmass = 1.0, temp = 298.15, thermostat =
PILE_L, tau = 1.0, fixcom = yes, esynch = yes, and lj = 1 for all its
arguments.
----------
.. _book-Tuckerman:
**(Tuckerman)** M. Tuckerman, Statistical Mechanics: Theory and Molecular Simulation (Oxford University Press, 2010)
.. _Hirshberg:
**(Hirshberg1)** B. Hirshberg, V. Rizzi, and M. Parrinello, "Path integral molecular dynamics for bosons," Proc. Natl. Acad. Sci. U. S. A. 116, 21445 (2019)
.. _HirshbergInvernizzi:
**(Hirshberg2)** B. Hirshberg, M. Invernizzi, and M. Parrinello, "Path integral molecular dynamics for fermions: Alleviating the sign problem with the Bogoliubov inequality," J Chem Phys, 152, 171102 (2020)
.. _Feldman:
**(Feldman)** Y. M. Y. Feldman and B. Hirshberg, "Quadratic scaling bosonic path integral molecular dynamics," J. Chem. Phys. 159, 154107 (2023)
.. _HigerFeldman:
**(Higer)** J. Higer, Y. M. Y. Feldman, and B. Hirshberg, "Periodic Boundary Conditions for Bosonic Path Integral Molecular Dynamics," arXiv:2501.17618 (2025)
.. _HermanBB:
**(Herman)** M. F. Herman, E. J. Bruskin, B. J. Berne, J Chem Phys, 76, 5150 (1982).

View File

@ -207,6 +207,9 @@ No parameter of this fix can be used with the *start/stop* keywords of
the :doc:`run <run>` command. the :doc:`run <run>` command.
This fix is not invoked during :doc:`energy minimization <minimize>`. This fix is not invoked during :doc:`energy minimization <minimize>`.
This fix supports dynamic groups only if the *Nrepeat* setting is 1,
i.e. there is no averaging.
---------- ----------
.. include:: accel_styles.rst .. include:: accel_styles.rst

View File

@ -98,14 +98,14 @@ all atoms
.. math:: .. math::
|| \vec{F} ||_{max} = {\rm max}\left(||\vec{F}_1||, \cdots, ||\vec{F}_N||\right) || \vec{F} ||_{max} = \mathrm{max}\left(||\vec{F}_1||, \cdots, ||\vec{F}_N||\right)
The *inf* norm takes the maximum component across the forces of The *inf* norm takes the maximum component across the forces of
all atoms in the system: all atoms in the system:
.. math:: .. math::
|| \vec{F} ||_{inf} = {\rm max}\left(|F_1^1|, |F_1^2|, |F_1^3| \cdots, |F_N^1|, |F_N^2|, |F_N^3|\right) || \vec{F} ||_{inf} = \mathrm{max}\left(|F_1^1|, |F_1^2|, |F_1^3| \cdots, |F_N^1|, |F_N^2|, |F_N^3|\right)
For the min styles *spin*, *spin/cg* and *spin/lbfgs*, the force For the min styles *spin*, *spin/cg* and *spin/lbfgs*, the force
norm is replaced by the spin-torque norm. norm is replaced by the spin-torque norm.

View File

@ -50,9 +50,9 @@ system:
.. math:: .. math::
{\Delta t}_{\rm max} = \frac{2\pi}{\kappa \left|\vec{\omega}_{\rm max} \right|} {\Delta t}_\mathrm{max} = \frac{2\pi}{\kappa \left|\vec{\omega}_\mathrm{max} \right|}
with :math:`\left|\vec{\omega}_{\rm max}\right|` the norm of the largest precession with :math:`\left|\vec{\omega}_\mathrm{max}\right|` the norm of the largest precession
frequency in the system (across all processes, and across all replicas if a frequency in the system (across all processes, and across all replicas if a
spin/neb calculation is performed). spin/neb calculation is performed).

View File

@ -108,12 +108,12 @@ potential energy of the system as a function of the N atom
coordinates: coordinates:
.. math:: .. math::
E(r_1,r_2, \ldots ,r_N) = & \sum_{i,j} E_{\it pair}(r_i,r_j) + E(r_1,r_2, \ldots ,r_N) = & \sum_{i,j} E_{pair}(r_i,r_j) +
\sum_{ij} E_{\it bond}(r_i,r_j) + \sum_{ij} E_{bond}(r_i,r_j) +
\sum_{ijk} E_{\it angle}(r_i,r_j,r_k) + \\ \sum_{ijk} E_{angle}(r_i,r_j,r_k) + \\
& \sum_{ijkl} E_{\it dihedral}(r_i,r_j,r_k,r_l) + & \sum_{ijkl} E_{dihedral}(r_i,r_j,r_k,r_l) +
\sum_{ijkl} E_{\it improper}(r_i,r_j,r_k,r_l) + \sum_{ijkl} E_{improper}(r_i,r_j,r_k,r_l) +
\sum_i E_{\it fix}(r_i) \sum_i E_{fix}(r_i)
where the first term is the sum of all non-bonded :doc:`pairwise where the first term is the sum of all non-bonded :doc:`pairwise
interactions <pair_style>` including :doc:`long-range Coulombic interactions <pair_style>` including :doc:`long-range Coulombic

View File

@ -148,7 +148,7 @@ spin i, :math:`\omega_i^{\nu}` is a rotation angle defined as:
.. math:: .. math::
\omega_i^{\nu} = (\nu - 1) \Delta \omega_i {\rm ~~and~~} \Delta \omega_i = \frac{\omega_i}{Q-1} \omega_i^{\nu} = (\nu - 1) \Delta \omega_i \mathrm{~~and~~} \Delta \omega_i = \frac{\omega_i}{Q-1}
with :math:`\nu` the image number, Q the total number of images, and with :math:`\nu` the image number, Q the total number of images, and
:math:`\omega_i` the total rotation between the initial and final spins. :math:`\omega_i` the total rotation between the initial and final spins.

View File

@ -53,14 +53,14 @@ materials as described in :ref:`(Feng1) <Feng1>` and :ref:`(Feng2) <Feng2>`.
.. math:: .. math::
E = & \frac{1}{2} \sum_i \sum_{j \neq i} V_{ij} \\ E = & \frac{1}{2} \sum_i \sum_{j \neq i} V_{ij} \\
V_{ij} = & {\rm Tap}(r_{ij})\left \{ e^{-\alpha (r_{ij}/\beta -1)} V_{ij} = & \mathrm{Tap}(r_{ij})\left \{ e^{-\alpha (r_{ij}/\beta -1)}
\left [ \epsilon + f(\rho_{ij}) + f(\rho_{ji})\right ] - \left [ \epsilon + f(\rho_{ij}) + f(\rho_{ji})\right ] -
\frac{1}{1+e^{-d\left [ \left ( r_{ij}/\left (s_R \cdot r^{eff} \right ) \right )-1 \right ]}} \frac{1}{1+e^{-d\left [ \left ( r_{ij}/\left (s_R \cdot r^{eff} \right ) \right )-1 \right ]}}
\cdot \frac{C_6}{r^6_{ij}} \right \}\\ \cdot \frac{C_6}{r^6_{ij}} \right \}\\
\rho_{ij}^2 = & r_{ij}^2 - ({\bf r}_{ij} \cdot {\bf n}_i)^2 \\ \rho_{ij}^2 = & r_{ij}^2 - (\mathbf{r}_{ij} \cdot \mathbf{n}_i)^2 \\
\rho_{ji}^2 = & r_{ij}^2 - ({\bf r}_{ij} \cdot {\bf n}_j)^2 \\ \rho_{ji}^2 = & r_{ij}^2 - (\mathbf{r}_{ij} \cdot \mathbf{n}_j)^2 \\
f(\rho) = & C e^{ -( \rho / \delta )^2 } \\ f(\rho) = & C e^{ -( \rho / \delta )^2 } \\
{\rm Tap}(r_{ij}) = & 20\left ( \frac{r_{ij}}{R_{cut}} \right )^7 - \mathrm{Tap}(r_{ij}) = & 20\left ( \frac{r_{ij}}{R_{cut}} \right )^7 -
70\left ( \frac{r_{ij}}{R_{cut}} \right )^6 + 70\left ( \frac{r_{ij}}{R_{cut}} \right )^6 +
84\left ( \frac{r_{ij}}{R_{cut}} \right )^5 - 84\left ( \frac{r_{ij}}{R_{cut}} \right )^5 -
35\left ( \frac{r_{ij}}{R_{cut}} \right )^4 + 1 35\left ( \frac{r_{ij}}{R_{cut}} \right )^4 + 1

View File

@ -241,9 +241,9 @@ summation method, described in :ref:`Wolf <Wolf1>`, given by:
.. math:: .. math::
E_i = \frac{1}{2} \sum_{j \neq i} E_i = \frac{1}{2} \sum_{j \neq i}
\frac{q_i q_j {\rm erfc}(\alpha r_{ij})}{r_{ij}} + \frac{q_i q_j \mathrm{erfc}(\alpha r_{ij})}{r_{ij}} +
\frac{1}{2} \sum_{j \neq i} \frac{1}{2} \sum_{j \neq i}
\frac{q_i q_j {\rm erf}(\alpha r_{ij})}{r_{ij}} \qquad r < r_c \frac{q_i q_j \mathrm{erf}(\alpha r_{ij})}{r_{ij}} \qquad r < r_c
where :math:`\alpha` is the damping parameter, and *erf()* and *erfc()* where :math:`\alpha` is the damping parameter, and *erf()* and *erfc()*
are error-function and complementary error-function terms. This are error-function and complementary error-function terms. This

View File

@ -40,8 +40,8 @@ the pair style :doc:`ilp/graphene/hbn <pair_ilp_graphene_hbn>`
.. math:: .. math::
E = & \frac{1}{2} \sum_i \sum_{j \neq i} V_{ij} \\ E = & \frac{1}{2} \sum_i \sum_{j \neq i} V_{ij} \\
V_{ij} = & {\rm Tap}(r_{ij})\frac{\kappa q_i q_j}{\sqrt[3]{r_{ij}^3+(1/\lambda_{ij})^3}}\\ V_{ij} = & \mathrm{Tap}(r_{ij})\frac{\kappa q_i q_j}{\sqrt[3]{r_{ij}^3+(1/\lambda_{ij})^3}}\\
{\rm Tap}(r_{ij}) = & 20\left ( \frac{r_{ij}}{R_{cut}} \right )^7 - \mathrm{Tap}(r_{ij}) = & 20\left ( \frac{r_{ij}}{R_{cut}} \right )^7 -
70\left ( \frac{r_{ij}}{R_{cut}} \right )^6 + 70\left ( \frac{r_{ij}}{R_{cut}} \right )^6 +
84\left ( \frac{r_{ij}}{R_{cut}} \right )^5 - 84\left ( \frac{r_{ij}}{R_{cut}} \right )^5 -
35\left ( \frac{r_{ij}}{R_{cut}} \right )^4 + 1 35\left ( \frac{r_{ij}}{R_{cut}} \right )^4 + 1

View File

@ -62,8 +62,8 @@ a sum of 3 terms
\mathbf{f} = & f^C + f^D + f^R \qquad \qquad r < r_c \\ \mathbf{f} = & f^C + f^D + f^R \qquad \qquad r < r_c \\
f^C = & A_{ij} w(r) \hat{\mathbf{r}}_{ij} \\ f^C = & A_{ij} w(r) \hat{\mathbf{r}}_{ij} \\
f^D = & - \gamma_{\parallel} w_{\parallel}^2(r) (\hat{\mathbf{r}}_{ij} \cdot \mathbf{v}_{ij}) \hat{\mathbf{r}}_{ij} - \gamma_{\perp} w_{\perp}^2 (r) ( \mathbf{I} - \hat{\mathbf{r}}_{ij} \hat{\mathbf{r}}_{ij}^{\rm T} ) \mathbf{v}_{ij} \\ f^D = & - \gamma_{\parallel} w_{\parallel}^2(r) (\hat{\mathbf{r}}_{ij} \cdot \mathbf{v}_{ij}) \hat{\mathbf{r}}_{ij} - \gamma_{\perp} w_{\perp}^2 (r) ( \mathbf{I} - \hat{\mathbf{r}}_{ij} \hat{\mathbf{r}}_{ij}^\mathrm{T} ) \mathbf{v}_{ij} \\
f^R = & \sigma_{\parallel} w_{\parallel}(r) \frac{\alpha}{\sqrt{\Delta t}} \hat{\mathbf{r}}_{ij} + \sigma_{\perp} w_{\perp} (r) ( \mathbf{I} - \hat{\mathbf{r}}_{ij} \hat{\mathbf{r}}_{ij}^{\rm T} ) \frac{\mathbf{\xi}_{ij}}{\sqrt{\Delta t}}\\ f^R = & \sigma_{\parallel} w_{\parallel}(r) \frac{\alpha}{\sqrt{\Delta t}} \hat{\mathbf{r}}_{ij} + \sigma_{\perp} w_{\perp} (r) ( \mathbf{I} - \hat{\mathbf{r}}_{ij} \hat{\mathbf{r}}_{ij}^\mathrm{T} ) \frac{\mathbf{\xi}_{ij}}{\sqrt{\Delta t}}\\
w(r) = & 1 - r/r_c \\ w(r) = & 1 - r/r_c \\
where :math:`\mathbf{f}^C` is a conservative force, :math:`\mathbf{f}^D` where :math:`\mathbf{f}^C` is a conservative force, :math:`\mathbf{f}^D`

View File

@ -68,21 +68,21 @@ force field, given by:
.. math:: .. math::
E = & \left[LJ(r) | Morse(r) \right] \qquad \qquad \qquad r < r_{\rm in} \\ E = & \left[LJ(r) | Morse(r) \right] \qquad \qquad \qquad r < r_\mathrm{in} \\
= & S(r) * \left[LJ(r) | Morse(r) \right] \qquad \qquad r_{\rm in} < r < r_{\rm out} \\ = & S(r) * \left[LJ(r) | Morse(r) \right] \qquad \qquad r_\mathrm{in} < r < r_\mathrm{out} \\
= & 0 \qquad \qquad \qquad \qquad \qquad \qquad \qquad r > r_{\rm out} \\ = & 0 \qquad \qquad \qquad \qquad \qquad \qquad \qquad r > r_\mathrm{out} \\
LJ(r) = & AR^{-12}-BR^{-10}cos^n\theta= LJ(r) = & AR^{-12}-BR^{-10}cos^n\theta=
\epsilon\left\lbrace 5\left[ \frac{\sigma}{r}\right]^{12}- \epsilon\left\lbrace 5\left[ \frac{\sigma}{r}\right]^{12}-
6\left[ \frac{\sigma}{r}\right]^{10} \right\rbrace cos^n\theta\\ 6\left[ \frac{\sigma}{r}\right]^{10} \right\rbrace cos^n\theta\\
Morse(r) = & D_0\left\lbrace \chi^2 - 2\chi\right\rbrace cos^n\theta= Morse(r) = & D_0\left\lbrace \chi^2 - 2\chi\right\rbrace cos^n\theta=
D_{0}\left\lbrace e^{- 2 \alpha (r - r_0)} - 2 e^{- \alpha (r - r_0)} D_{0}\left\lbrace e^{- 2 \alpha (r - r_0)} - 2 e^{- \alpha (r - r_0)}
\right\rbrace cos^n\theta \\ \right\rbrace cos^n\theta \\
S(r) = & \frac{ \left[r_{\rm out}^2 - r^2\right]^2 S(r) = & \frac{ \left[r_\mathrm{out}^2 - r^2\right]^2
\left[r_{\rm out}^2 + 2r^2 - 3{r_{\rm in}^2}\right]} \left[r_\mathrm{out}^2 + 2r^2 - 3{r_\mathrm{in}^2}\right]}
{ \left[r_{\rm out}^2 - {r_{\rm in}}^2\right]^3 } { \left[r_\mathrm{out}^2 - {r_\mathrm{in}}^2\right]^3 }
where :math:`r_{\rm in}` is the inner spline distance cutoff, where :math:`r_\mathrm{in}` is the inner spline distance cutoff,
:math:`r_{\rm out}` is the outer distance cutoff, :math:`\theta_c` is :math:`r_\mathrm{out}` is the outer distance cutoff, :math:`\theta_c` is
the angle cutoff, and :math:`n` is the power of the cosine of the angle the angle cutoff, and :math:`n` is the power of the cosine of the angle
:math:`\theta`. :math:`\theta`.
@ -189,8 +189,8 @@ follows:
* :math:`\epsilon` (energy units) * :math:`\epsilon` (energy units)
* :math:`\sigma` (distance units) * :math:`\sigma` (distance units)
* *n* = exponent in formula above * *n* = exponent in formula above
* distance cutoff :math:`r_{\rm in}` (distance units) * distance cutoff :math:`r_\mathrm{in}` (distance units)
* distance cutoff :math:`r_{\rm out}` (distance units) * distance cutoff :math:`r_\mathrm{out}` (distance units)
* angle cutoff (degrees) * angle cutoff (degrees)
For the *hbond/dreiding/morse* style the list of coefficients is as For the *hbond/dreiding/morse* style the list of coefficients is as
@ -202,7 +202,7 @@ follows:
* :math:`\alpha` (1/distance units) * :math:`\alpha` (1/distance units)
* :math:`r_0` (distance units) * :math:`r_0` (distance units)
* *n* = exponent in formula above * *n* = exponent in formula above
* distance cutoff :math:`r_{\rm in}` (distance units) * distance cutoff :math:`r_\mathrm{in}` (distance units)
* distance cutoff :math:`r_{out}` (distance units) * distance cutoff :math:`r_{out}` (distance units)
* angle cutoff (degrees) * angle cutoff (degrees)

View File

@ -44,14 +44,14 @@ in :ref:`(Kolmogorov) <Kolmogorov2>`.
.. math:: .. math::
E = & \frac{1}{2} \sum_i \sum_{j \neq i} V_{ij} \\ E = & \frac{1}{2} \sum_i \sum_{j \neq i} V_{ij} \\
V_{ij} = & {\rm Tap}(r_{ij})\left \{ e^{-\alpha (r_{ij}/\beta -1)} V_{ij} = & \mathrm{Tap}(r_{ij})\left \{ e^{-\alpha (r_{ij}/\beta -1)}
\left [ \epsilon + f(\rho_{ij}) + f(\rho_{ji})\right ] - \left [ \epsilon + f(\rho_{ij}) + f(\rho_{ji})\right ] -
\frac{1}{1+e^{-d\left [ \left ( r_{ij}/\left (s_R \cdot r^{eff} \right ) \right )-1 \right ]}} \frac{1}{1+e^{-d\left [ \left ( r_{ij}/\left (s_R \cdot r^{eff} \right ) \right )-1 \right ]}}
\cdot \frac{C_6}{r^6_{ij}} \right \}\\ \cdot \frac{C_6}{r^6_{ij}} \right \}\\
\rho_{ij}^2 = & r_{ij}^2 - ({\bf r}_{ij} \cdot {\bf n}_i)^2 \\ \rho_{ij}^2 = & r_{ij}^2 - (\mathbf{r}_{ij} \cdot \mathbf{n}_i)^2 \\
\rho_{ji}^2 = & r_{ij}^2 - ({\bf r}_{ij} \cdot {\bf n}_j)^2 \\ \rho_{ji}^2 = & r_{ij}^2 - (\mathbf{r}_{ij} \cdot \mathbf{n}_j)^2 \\
f(\rho) = & C e^{ -( \rho / \delta )^2 } \\ f(\rho) = & C e^{ -( \rho / \delta )^2 } \\
{\rm Tap}(r_{ij}) = & 20\left ( \frac{r_{ij}}{R_{cut}} \right )^7 - \mathrm{Tap}(r_{ij}) = & 20\left ( \frac{r_{ij}}{R_{cut}} \right )^7 -
70\left ( \frac{r_{ij}}{R_{cut}} \right )^6 + 70\left ( \frac{r_{ij}}{R_{cut}} \right )^6 +
84\left ( \frac{r_{ij}}{R_{cut}} \right )^5 - 84\left ( \frac{r_{ij}}{R_{cut}} \right )^5 -
35\left ( \frac{r_{ij}}{R_{cut}} \right )^4 + 1 35\left ( \frac{r_{ij}}{R_{cut}} \right )^4 + 1

View File

@ -41,14 +41,14 @@ as described in :ref:`(Ouyang7) <Ouyang7>` and :ref:`(Jiang) <Jiang>`.
.. math:: .. math::
E = & \frac{1}{2} \sum_i \sum_{j \neq i} V_{ij} \\ E = & \frac{1}{2} \sum_i \sum_{j \neq i} V_{ij} \\
V_{ij} = & {\rm Tap}(r_{ij})\left \{ e^{-\alpha (r_{ij}/\beta -1)} V_{ij} = & \mathrm{Tap}(r_{ij})\left \{ e^{-\alpha (r_{ij}/\beta -1)}
\left [ \epsilon + f(\rho_{ij}) + f(\rho_{ji})\right ] - \left [ \epsilon + f(\rho_{ij}) + f(\rho_{ji})\right ] -
\frac{1}{1+e^{-d\left [ \left ( r_{ij}/\left (s_R \cdot r^{eff} \right ) \right )-1 \right ]}} \frac{1}{1+e^{-d\left [ \left ( r_{ij}/\left (s_R \cdot r^{eff} \right ) \right )-1 \right ]}}
\cdot \frac{C_6}{r^6_{ij}} \right \}\\ \cdot \frac{C_6}{r^6_{ij}} \right \}\\
\rho_{ij}^2 = & r_{ij}^2 - ({\bf r}_{ij} \cdot {\bf n}_i)^2 \\ \rho_{ij}^2 = & r_{ij}^2 - (\mathbf{r}_{ij} \cdot \mathbf{n}_i)^2 \\
\rho_{ji}^2 = & r_{ij}^2 - ({\bf r}_{ij} \cdot {\bf n}_j)^2 \\ \rho_{ji}^2 = & r_{ij}^2 - (\mathbf{r}_{ij} \cdot \mathbf{n}_j)^2 \\
f(\rho) = & C e^{ -( \rho / \delta )^2 } \\ f(\rho) = & C e^{ -( \rho / \delta )^2 } \\
{\rm Tap}(r_{ij}) = & 20\left ( \frac{r_{ij}}{R_{cut}} \right )^7 - \mathrm{Tap}(r_{ij}) = & 20\left ( \frac{r_{ij}}{R_{cut}} \right )^7 -
70\left ( \frac{r_{ij}}{R_{cut}} \right )^6 + 70\left ( \frac{r_{ij}}{R_{cut}} \right )^6 +
84\left ( \frac{r_{ij}}{R_{cut}} \right )^5 - 84\left ( \frac{r_{ij}}{R_{cut}} \right )^5 -
35\left ( \frac{r_{ij}}{R_{cut}} \right )^4 + 1 35\left ( \frac{r_{ij}}{R_{cut}} \right )^4 + 1
@ -67,7 +67,7 @@ calculating the normals.
normal vectors used for graphene and h-BN is no longer valid for TMDs. normal vectors used for graphene and h-BN is no longer valid for TMDs.
In :ref:`(Ouyang7) <Ouyang7>`, a new definition is proposed, where for In :ref:`(Ouyang7) <Ouyang7>`, a new definition is proposed, where for
each atom `i`, its six nearest neighboring atoms belonging to the same each atom `i`, its six nearest neighboring atoms belonging to the same
sub-layer are chosen to define the normal vector `{\bf n}_i`. sub-layer are chosen to define the normal vector `\mathbf{n}_i`.
The parameter file (e.g. TMD.ILP), is intended for use with *metal* The parameter file (e.g. TMD.ILP), is intended for use with *metal*
:doc:`units <units>`, with energies in meV. Two additional parameters, :doc:`units <units>`, with energies in meV. Two additional parameters,

View File

@ -37,8 +37,8 @@ No simplification is made,
E = & \frac{1}{2} \sum_i \sum_{j \neq i} V_{ij} \\ E = & \frac{1}{2} \sum_i \sum_{j \neq i} V_{ij} \\
V_{ij} = & e^{-\lambda (r_{ij} -z_0)} \left [ C + f(\rho_{ij}) + f(\rho_{ji}) \right ] - A \left ( \frac{r_{ij}}{z_0}\right )^{-6} \\ V_{ij} = & e^{-\lambda (r_{ij} -z_0)} \left [ C + f(\rho_{ij}) + f(\rho_{ji}) \right ] - A \left ( \frac{r_{ij}}{z_0}\right )^{-6} \\
\rho_{ij}^2 = & r_{ij}^2 - ({\bf r}_{ij}\cdot {\bf n}_{i})^2 \\ \rho_{ij}^2 = & r_{ij}^2 - (\mathbf{r}_{ij}\cdot \mathbf{n}_{i})^2 \\
\rho_{ji}^2 = & r_{ij}^2 - ({\bf r}_{ij}\cdot {\bf n}_{j})^2 \\ \rho_{ji}^2 = & r_{ij}^2 - (\mathbf{r}_{ij}\cdot \mathbf{n}_{j})^2 \\
f(\rho) & = e^{-(\rho/\delta)^2} \sum_{n=0}^2 C_{2n} { (\rho/\delta) }^{2n} f(\rho) & = e^{-(\rho/\delta)^2} \sum_{n=0}^2 C_{2n} { (\rho/\delta) }^{2n}
It is important to have a sufficiently large cutoff to ensure smooth It is important to have a sufficiently large cutoff to ensure smooth

View File

@ -194,9 +194,9 @@ summation method, described in :ref:`Wolf <Wolf3>`, given by:
.. math:: .. math::
E_i = \frac{1}{2} \sum_{j \neq i} E_i = \frac{1}{2} \sum_{j \neq i}
\frac{q_i q_j {\rm erfc}(\alpha r_{ij})}{r_{ij}} + \frac{q_i q_j \mathrm{erfc}(\alpha r_{ij})}{r_{ij}} +
\frac{1}{2} \sum_{j \neq i} \frac{1}{2} \sum_{j \neq i}
\frac{q_i q_j {\rm erf}(\alpha r_{ij})}{r_{ij}} \qquad r < r_c \frac{q_i q_j \mathrm{erf}(\alpha r_{ij})}{r_{ij}} \qquad r < r_c
where :math:`\alpha` is the damping parameter, and erfc() is the where :math:`\alpha` is the damping parameter, and erfc() is the
complementary error-function terms. This potential is essentially a complementary error-function terms. This potential is essentially a

View File

@ -200,7 +200,7 @@ force :math:`F_{ij}^C` are expressed as
\mathbf{F}_{ij}^{D} & = -\gamma {\omega_{D}}(r_{ij})(\mathbf{e}_{ij} \cdot \mathbf{v}_{ij})\mathbf{e}_{ij} \\ \mathbf{F}_{ij}^{D} & = -\gamma {\omega_{D}}(r_{ij})(\mathbf{e}_{ij} \cdot \mathbf{v}_{ij})\mathbf{e}_{ij} \\
\mathbf{F}_{ij}^{R} & = \sigma {\omega_{R}}(r_{ij}){\xi_{ij}}\Delta t^{-1/2} \mathbf{e}_{ij} \\ \mathbf{F}_{ij}^{R} & = \sigma {\omega_{R}}(r_{ij}){\xi_{ij}}\Delta t^{-1/2} \mathbf{e}_{ij} \\
\omega_{C}(r) & = 1 - r/r_c \\ \omega_{C}(r) & = 1 - r/r_c \\
\omega_{D}(r) & = \omega^2_{R}(r) = (1-r/r_c)^{\rm power_f} \\ \omega_{D}(r) & = \omega^2_{R}(r) = (1-r/r_c)^\mathrm{power_f} \\
\sigma^2 = 2\gamma k_B T \sigma^2 = 2\gamma k_B T
The concentration flux between two tDPD particles includes the Fickian The concentration flux between two tDPD particles includes the Fickian
@ -211,7 +211,7 @@ by
Q_{ij}^D & = -\kappa_{ij} w_{DC}(r_{ij}) \left( C_i - C_j \right) \\ Q_{ij}^D & = -\kappa_{ij} w_{DC}(r_{ij}) \left( C_i - C_j \right) \\
Q_{ij}^R & = \epsilon_{ij}\left( C_i + C_j \right) w_{RC}(r_{ij}) \xi_{ij} \\ Q_{ij}^R & = \epsilon_{ij}\left( C_i + C_j \right) w_{RC}(r_{ij}) \xi_{ij} \\
w_{DC}(r_{ij}) & =w^2_{RC}(r_{ij}) = (1 - r/r_{cc})^{\rm power_{cc}} \\ w_{DC}(r_{ij}) & =w^2_{RC}(r_{ij}) = (1 - r/r_{cc})^\mathrm{power_{cc}} \\
\epsilon_{ij}^2 & = m_s^2\kappa_{ij}\rho \epsilon_{ij}^2 & = m_s^2\kappa_{ij}\rho
where the parameters kappa and epsilon determine the strength of the where the parameters kappa and epsilon determine the strength of the

View File

@ -33,7 +33,7 @@ elemental bulk material in the form
.. math:: .. math::
E_{\rm tot}({\bf R}_1 \ldots {\bf R}_N) = NE_{\rm vol}(\Omega ) E_\mathrm{tot}(\mathbf{R}_1 \ldots \mathbf{R}_N) = NE_\mathrm{vol}(\Omega )
+ \frac{1}{2} \sum _{i,j} \mbox{}^\prime \ v_2(ij;\Omega ) + \frac{1}{2} \sum _{i,j} \mbox{}^\prime \ v_2(ij;\Omega )
+ \frac{1}{6} \sum _{i,j,k} \mbox{}^\prime \ v_3(ijk;\Omega ) + \frac{1}{6} \sum _{i,j,k} \mbox{}^\prime \ v_3(ijk;\Omega )
+ \frac{1}{24} \sum _{i,j,k,l} \mbox{}^\prime \ v_4(ijkl;\Omega ) + \frac{1}{24} \sum _{i,j,k,l} \mbox{}^\prime \ v_4(ijkl;\Omega )

View File

@ -41,14 +41,14 @@ potential (ILP) potential for hetero-junctions formed with hexagonal
.. math:: .. math::
E = & \frac{1}{2} \sum_i \sum_{j \neq i} V_{ij} \\ E = & \frac{1}{2} \sum_i \sum_{j \neq i} V_{ij} \\
V_{ij} = & {\rm Tap}(r_{ij})\left \{ e^{-\alpha (r_{ij}/\beta -1)} V_{ij} = & \mathrm{Tap}(r_{ij})\left \{ e^{-\alpha (r_{ij}/\beta -1)}
\left [ \epsilon + f(\rho_{ij}) + f(\rho_{ji})\right ] - \left [ \epsilon + f(\rho_{ij}) + f(\rho_{ji})\right ] -
\frac{1}{1+e^{-d\left [ \left ( r_{ij}/\left (s_R \cdot r^{eff} \right ) \right )-1 \right ]}} \frac{1}{1+e^{-d\left [ \left ( r_{ij}/\left (s_R \cdot r^{eff} \right ) \right )-1 \right ]}}
\cdot \frac{C_6}{r^6_{ij}} \right \}\\ \cdot \frac{C_6}{r^6_{ij}} \right \}\\
\rho_{ij}^2 = & r_{ij}^2 - ({\bf r}_{ij} \cdot {\bf n}_i)^2 \\ \rho_{ij}^2 = & r_{ij}^2 - (\mathbf{r}_{ij} \cdot \mathbf{n}_i)^2 \\
\rho_{ji}^2 = & r_{ij}^2 - ({\bf r}_{ij} \cdot {\bf n}_j)^2 \\ \rho_{ji}^2 = & r_{ij}^2 - (\mathbf{r}_{ij} \cdot \mathbf{n}_j)^2 \\
f(\rho) = & C e^{ -( \rho / \delta )^2 } \\ f(\rho) = & C e^{ -( \rho / \delta )^2 } \\
{\rm Tap}(r_{ij}) = & 20\left ( \frac{r_{ij}}{R_{cut}} \right )^7 - \mathrm{Tap}(r_{ij}) = & 20\left ( \frac{r_{ij}}{R_{cut}} \right )^7 -
70\left ( \frac{r_{ij}}{R_{cut}} \right )^6 + 70\left ( \frac{r_{ij}}{R_{cut}} \right )^6 +
84\left ( \frac{r_{ij}}{R_{cut}} \right )^5 - 84\left ( \frac{r_{ij}}{R_{cut}} \right )^5 -
35\left ( \frac{r_{ij}}{R_{cut}} \right )^4 + 1 35\left ( \frac{r_{ij}}{R_{cut}} \right )^4 + 1
@ -63,8 +63,8 @@ calculating the normals.
.. note:: .. note::
To account for the isotropic nature of the isolated gold atom To account for the isotropic nature of the isolated gold atom
electron cloud, their corresponding normal vectors (`{\bf n}_i`) are electron cloud, their corresponding normal vectors (`\mathbf{n}_i`) are
assumed to lie along the interatomic vector `{\bf r}_ij`. Notably, this assumed to lie along the interatomic vector `\mathbf{r}_ij`. Notably, this
assumption is suitable for many bulk material surfaces, for assumption is suitable for many bulk material surfaces, for
example, for systems possessing s-type valence orbitals or example, for systems possessing s-type valence orbitals or
metallic surfaces, whose valence electrons are mostly metallic surfaces, whose valence electrons are mostly

View File

@ -43,7 +43,7 @@ vector omega and mechanical force between particles I and J.
.. math:: .. math::
\mathcal{H}_{\rm long} & = \mathcal{H}_\mathrm{long} & =
-\frac{\mu_{0} \left( \mu_B\right)^2}{4\pi} -\frac{\mu_{0} \left( \mu_B\right)^2}{4\pi}
\sum_{i,j,i\neq j}^{N} \sum_{i,j,i\neq j}^{N}
\frac{g_i g_j}{r_{ij}^3} \frac{g_i g_j}{r_{ij}^3}

View File

@ -52,7 +52,7 @@ particle i:
.. math:: .. math::
\vec{\omega}_i = -\frac{1}{\hbar} \sum_{j}^{Neighb} \vec{s}_{j}\times \left(\vec{e}_{ij}\times \vec{D} \right) \vec{\omega}_i = -\frac{1}{\hbar} \sum_{j}^{Neighb} \vec{s}_{j}\times \left(\vec{e}_{ij}\times \vec{D} \right)
~~{\rm and}~~ ~~\mathrm{and}~~
\vec{F}_i = -\sum_{j}^{Neighb} \frac{1}{r_{ij}} \vec{D} \times \left( \vec{s}_{i}\times \vec{s}_{j} \right) \vec{F}_i = -\sum_{j}^{Neighb} \frac{1}{r_{ij}} \vec{D} \times \left( \vec{s}_{i}\times \vec{s}_{j} \right)
More details about the derivation of these torques/forces are reported in More details about the derivation of these torques/forces are reported in

View File

@ -94,7 +94,7 @@ submitted to a force :math:`\vec{F}_{i}` for spin-lattice calculations (see
\vec{\omega}_{i} = \frac{1}{\hbar} \sum_{j}^{Neighb} {J} \vec{\omega}_{i} = \frac{1}{\hbar} \sum_{j}^{Neighb} {J}
\left(r_{ij} \right)\,\vec{s}_{j} \left(r_{ij} \right)\,\vec{s}_{j}
~~{\rm and}~~ ~~\mathrm{and}~~
\vec{F}_{i} = \sum_{j}^{Neighb} \frac{\partial {J} \left(r_{ij} \right)}{ \vec{F}_{i} = \sum_{j}^{Neighb} \frac{\partial {J} \left(r_{ij} \right)}{
\partial r_{ij}} \left( \vec{s}_{i}\cdot \vec{s}_{j} \right) \vec{e}_{ij} \partial r_{ij}} \left( \vec{s}_{i}\cdot \vec{s}_{j} \right) \vec{e}_{ij}

View File

@ -35,7 +35,7 @@ Description
.. versionadded:: TBD .. versionadded:: TBD
Write a `VMD <https:://ks.uiuc.edu/Research/vmd/>`_ Tcl script file with Write a `VMD <https://ks.uiuc.edu/Research/vmd/>`_ Tcl script file with
commands that aim to create a visualization of :doc:`regions <region>`. commands that aim to create a visualization of :doc:`regions <region>`.
There may be multiple region visualizations stored in a single file. There may be multiple region visualizations stored in a single file.

View File

@ -51,12 +51,12 @@ Syntax
thermo keywords = vol, ke, press, etc from :doc:`thermo_style <thermo_style>` thermo keywords = vol, ke, press, etc from :doc:`thermo_style <thermo_style>`
math operators = (), -x, x+y, x-y, x\*y, x/y, x\^y, x%y, math operators = (), -x, x+y, x-y, x\*y, x/y, x\^y, x%y,
x == y, x != y, x < y, x <= y, x > y, x >= y, x && y, x \|\| y, x \|\^ y, !x x == y, x != y, x < y, x <= y, x > y, x >= y, x && y, x \|\| y, x \|\^ y, !x
math functions = sqrt(x), exp(x), ln(x), log(x), abs(x), math functions = sqrt(x), exp(x), ln(x), log(x), abs(x), sign(x),
sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y,x), sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y,x),
random(x,y,z), normal(x,y,z), ceil(x), floor(x), round(x), ternary(x,y,z), random(x,y,z), normal(x,y,z), ceil(x), floor(x), round(x), ternary(x,y,z),
ramp(x,y), stagger(x,y), logfreq(x,y,z), logfreq2(x,y,z), ramp(x,y), stagger(x,y), logfreq(x,y,z), logfreq2(x,y,z),
logfreq3(x,y,z), stride(x,y,z), stride2(x,y,z,a,b,c), logfreq3(x,y,z), stride(x,y,z), stride2(x,y,z,a,b,c),
vdisplace(x,y), swiggle(x,y,z), cwiggle(x,y,z), sign(x) vdisplace(x,y), swiggle(x,y,z), cwiggle(x,y,z)
group functions = count(group), mass(group), charge(group), group functions = count(group), mass(group), charge(group),
xcm(group,dim), vcm(group,dim), fcm(group,dim), xcm(group,dim), vcm(group,dim), fcm(group,dim),
bound(group,dir), gyration(group), ke(group), bound(group,dir), gyration(group), ke(group),
@ -541,7 +541,7 @@ variables.
+------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Math operators | (), -x, x+y, x-y, x\*y, x/y, x\^y, x%y, x == y, x != y, x < y, x <= y, x > y, x >= y, x && y, x \|\| y, x \|\^ y, !x | | Math operators | (), -x, x+y, x-y, x\*y, x/y, x\^y, x%y, x == y, x != y, x < y, x <= y, x > y, x >= y, x && y, x \|\| y, x \|\^ y, !x |
+------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Math functions | sqrt(x), exp(x), ln(x), log(x), abs(x), sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y,x), random(x,y,z), normal(x,y,z), ceil(x), floor(x), round(x), ternary(x,y,z), ramp(x,y), stagger(x,y), logfreq(x,y,z), logfreq2(x,y,z), logfreq3(x,y,z), stride(x,y,z), stride2(x,y,z,a,b,c), vdisplace(x,y), swiggle(x,y,z), cwiggle(x,y,z), sign(x) | | Math functions | sqrt(x), exp(x), ln(x), log(x), abs(x), sign(x), sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y,x), random(x,y,z), normal(x,y,z), ceil(x), floor(x), round(x), ternary(x,y,z), ramp(x,y), stagger(x,y), logfreq(x,y,z), logfreq2(x,y,z), logfreq3(x,y,z), stride(x,y,z), stride2(x,y,z,a,b,c), vdisplace(x,y), swiggle(x,y,z), cwiggle(x,y,z) |
+------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Group functions | count(ID), mass(ID), charge(ID), xcm(ID,dim), vcm(ID,dim), fcm(ID,dim), bound(ID,dir), gyration(ID), ke(ID), angmom(ID,dim), torque(ID,dim), inertia(ID,dimdim), omega(ID,dim) | | Group functions | count(ID), mass(ID), charge(ID), xcm(ID,dim), vcm(ID,dim), fcm(ID,dim), bound(ID,dir), gyration(ID), ke(ID), angmom(ID,dim), torque(ID,dim), inertia(ID,dimdim), omega(ID,dim) |
+------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@ -692,6 +692,11 @@ sqrt() of the product of one atom's y and z coordinates.
Most of the math functions perform obvious operations. The ln() is Most of the math functions perform obvious operations. The ln() is
the natural log; log() is the base 10 log. the natural log; log() is the base 10 log.
.. versionadded:: 4Feb2025
The sign(x) function returns 1.0 if the value is greater than or equal
to 0.0, and -1.0 otherwise.
The random(x,y,z) function takes 3 arguments: x = lo, y = hi, and z = The random(x,y,z) function takes 3 arguments: x = lo, y = hi, and z =
seed. It generates a uniform random number between lo and hi. The seed. It generates a uniform random number between lo and hi. The
normal(x,y,z) function also takes 3 arguments: x = mu, y = sigma, and normal(x,y,z) function also takes 3 arguments: x = mu, y = sigma, and
@ -860,9 +865,6 @@ run, according to one of these formulas, where omega = 2 PI / period:
where dt = the timestep size. where dt = the timestep size.
The sign(x) function returns 1.0 if the value is greater than or equal
to 0.0, and -1.0 otherwise.
The run begins on startstep. Startstep can span multiple runs, using The run begins on startstep. Startstep can span multiple runs, using
the *start* keyword of the :doc:`run <run>` command. See the :doc:`run the *start* keyword of the :doc:`run <run>` command. See the :doc:`run
<run>` command for details of how to do this. Note that the <run>` command for details of how to do this. Note that the

View File

@ -1,4 +1,4 @@
Sphinx >= 5.3.0, <8.2.0 Sphinx >= 5.3.0, <8.3.0
sphinxcontrib-spelling sphinxcontrib-spelling
sphinxcontrib-jquery sphinxcontrib-jquery
sphinx-design sphinx-design

View File

@ -208,13 +208,11 @@ html_favicon = '_static/lammps.ico'
# Add any paths that contain custom static files (such as style sheets) here, # Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files, # relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css". # so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static'] html_static_path = ['_static',]
# These paths are either relative to html_static_path # These paths are either relative to html_static_path
# or fully qualified paths (eg. https://...) # or fully qualified paths (eg. https://...)
html_css_files = [ html_css_files = ['css/lammps.css',]
'css/lammps.css',
]
# Add any extra paths that contain custom files (such as robots.txt or # Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied # .htaccess) here, relative to this directory. These files are copied
@ -290,7 +288,7 @@ rst_prolog = r"""
.. only:: html .. only:: html
:math:`\renewcommand{\AA}{\text{}}` :math:`\renewcommand{\AA}{\textup{\r{A}}`
.. role:: lammps(code) .. role:: lammps(code)
:language: LAMMPS :language: LAMMPS

View File

@ -1331,6 +1331,7 @@ geturl
gewald gewald
Gezelter Gezelter
gfile gfile
gflag
Gflop Gflop
gfortran gfortran
ghostneigh ghostneigh
@ -2964,6 +2965,7 @@ pKa
pKb pKb
pKs pKs
planeforce planeforce
plastically
Plathe Plathe
Plimpton Plimpton
plog plog
@ -3266,6 +3268,7 @@ rewrap
rezwanur rezwanur
rfac rfac
rfile rfile
rflag
rg rg
Rg Rg
Rhaphson Rhaphson

View File

@ -0,0 +1,2 @@
LAMMPS (4 Feb 2025 - Development - patch_4Feb2025-344-g0a4a2f6deb-modified)
Running on 4 partitions of processors

View File

@ -1,5 +1,6 @@
LAMMPS (4 Feb 2025) LAMMPS (4 Feb 2025 - Development - patch_4Feb2025-344-g0a4a2f6deb-modified)
Processor partition = 0 Processor partition = 0
using 1 OpenMP thread(s) per MPI task
# Units and dimensions # Units and dimensions
units electron units electron
dimension 3 dimension 3
@ -103,8 +104,8 @@ Initializing PI Langevin equation thermostat...
3 9.11206647e-03 5.00000000e+01 9.95012479e-01 9.97505201e-02 3 9.11206647e-03 5.00000000e+01 9.95012479e-01 9.97505201e-02
PILE_L thermostat successfully initialized! PILE_L thermostat successfully initialized!
WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (../atom.cpp:2444) WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (src/atom.cpp:2444)
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (../comm_brick.cpp:212) WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:212)
Per MPI rank memory allocation (min/avg/max) = 2.801 | 2.801 | 2.801 Mbytes Per MPI rank memory allocation (min/avg/max) = 2.801 | 2.801 | 2.801 Mbytes
Step PotEng v_virial v_prim_kinetic Step PotEng v_virial v_prim_kinetic
0 0 1.3661449e-08 0.0009918329 0 0 1.3661449e-08 0.0009918329
@ -208,20 +209,20 @@ Per MPI rank memory allocation (min/avg/max) = 2.801 | 2.801 | 2.801 Mbytes
98 9.2042324e-06 1.780703e-05 0.00083221292 98 9.2042324e-06 1.780703e-05 0.00083221292
99 9.5058078e-06 1.8141862e-05 0.00082913227 99 9.5058078e-06 1.8141862e-05 0.00082913227
100 9.8087647e-06 1.8457846e-05 0.00082619877 100 9.8087647e-06 1.8457846e-05 0.00082619877
Loop time of 0.122922 on 1 procs for 100 steps with 3 atoms Loop time of 0.00116399 on 1 procs for 100 steps with 3 atoms
Performance: 35144210.362 fs/day, 0.000 hours/fs, 813.523 timesteps/s, 2.441 katom-step/s Performance: 3711359336.904 fs/day, 0.000 hours/fs, 85911.096 timesteps/s, 257.733 katom-step/s
70.1% CPU use with 1 MPI tasks x no OpenMP threads 89.8% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown: MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total Section | min time | avg time | max time |%varavg| %total
--------------------------------------------------------------- ---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00 Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 1.1593e-05 | 1.1593e-05 | 1.1593e-05 | 0.0 | 0.01 Neigh | 1.292e-06 | 1.292e-06 | 1.292e-06 | 0.0 | 0.11
Comm | 9.2183e-05 | 9.2183e-05 | 9.2183e-05 | 0.0 | 0.07 Comm | 1.2305e-05 | 1.2305e-05 | 1.2305e-05 | 0.0 | 1.06
Output | 0.023243 | 0.023243 | 0.023243 | 0.0 | 18.91 Output | 0.00018105 | 0.00018105 | 0.00018105 | 0.0 | 15.55
Modify | 0.099386 | 0.099386 | 0.099386 | 0.0 | 80.85 Modify | 0.00090255 | 0.00090255 | 0.00090255 | 0.0 | 77.54
Other | | 0.0001896 | | | 0.15 Other | | 6.68e-05 | | | 5.74
Nlocal: 3 ave 3 max 3 min Nlocal: 3 ave 3 max 3 min
Histogram: 1 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0
@ -234,3 +235,4 @@ Total # of neighbors = 0
Ave neighs/atom = 0 Ave neighs/atom = 0
Neighbor list builds = 33 Neighbor list builds = 33
Dangerous builds = 0 Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -1,5 +1,6 @@
LAMMPS (4 Feb 2025) LAMMPS (4 Feb 2025 - Development - patch_4Feb2025-344-g0a4a2f6deb-modified)
Processor partition = 1 Processor partition = 1
using 1 OpenMP thread(s) per MPI task
# Units and dimensions # Units and dimensions
units electron units electron
dimension 3 dimension 3
@ -95,8 +96,8 @@ thermo_style custom step pe v_virial v_prim_kinetic
thermo 1 thermo 1
run 100 run 100
WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (../atom.cpp:2444) WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (src/atom.cpp:2444)
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (../comm_brick.cpp:212) WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:212)
Per MPI rank memory allocation (min/avg/max) = 2.801 | 2.801 | 2.801 Mbytes Per MPI rank memory allocation (min/avg/max) = 2.801 | 2.801 | 2.801 Mbytes
Step PotEng v_virial v_prim_kinetic Step PotEng v_virial v_prim_kinetic
0 0 1.3661449e-08 0.0009918329 0 0 1.3661449e-08 0.0009918329
@ -200,20 +201,20 @@ Per MPI rank memory allocation (min/avg/max) = 2.801 | 2.801 | 2.801 Mbytes
98 2.5769956e-05 1.780703e-05 0.00083221292 98 2.5769956e-05 1.780703e-05 0.00083221292
99 2.624134e-05 1.8141862e-05 0.00082913227 99 2.624134e-05 1.8141862e-05 0.00082913227
100 2.6731735e-05 1.8457846e-05 0.00082619877 100 2.6731735e-05 1.8457846e-05 0.00082619877
Loop time of 0.122878 on 1 procs for 100 steps with 3 atoms Loop time of 0.0011782 on 1 procs for 100 steps with 3 atoms
Performance: 35156789.883 fs/day, 0.000 hours/fs, 813.815 timesteps/s, 2.441 katom-step/s Performance: 3666606971.137 fs/day, 0.000 hours/fs, 84875.161 timesteps/s, 254.625 katom-step/s
46.7% CPU use with 1 MPI tasks x no OpenMP threads 88.4% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown: MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total Section | min time | avg time | max time |%varavg| %total
--------------------------------------------------------------- ---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00 Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 1.9787e-05 | 1.9787e-05 | 1.9787e-05 | 0.0 | 0.02 Neigh | 1.773e-06 | 1.773e-06 | 1.773e-06 | 0.0 | 0.15
Comm | 9.2033e-05 | 9.2033e-05 | 9.2033e-05 | 0.0 | 0.07 Comm | 1.4979e-05 | 1.4979e-05 | 1.4979e-05 | 0.0 | 1.27
Output | 0.0022584 | 0.0022584 | 0.0022584 | 0.0 | 1.84 Output | 0.00021888 | 0.00021888 | 0.00021888 | 0.0 | 18.58
Modify | 0.12033 | 0.12033 | 0.12033 | 0.0 | 97.93 Modify | 0.00086503 | 0.00086503 | 0.00086503 | 0.0 | 73.42
Other | | 0.0001755 | | | 0.14 Other | | 7.754e-05 | | | 6.58
Nlocal: 3 ave 3 max 3 min Nlocal: 3 ave 3 max 3 min
Histogram: 1 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0
@ -226,3 +227,4 @@ Total # of neighbors = 0
Ave neighs/atom = 0 Ave neighs/atom = 0
Neighbor list builds = 44 Neighbor list builds = 44
Dangerous builds = 0 Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -1,5 +1,6 @@
LAMMPS (4 Feb 2025) LAMMPS (4 Feb 2025 - Development - patch_4Feb2025-344-g0a4a2f6deb-modified)
Processor partition = 2 Processor partition = 2
using 1 OpenMP thread(s) per MPI task
# Units and dimensions # Units and dimensions
units electron units electron
dimension 3 dimension 3
@ -95,8 +96,8 @@ thermo_style custom step pe v_virial v_prim_kinetic
thermo 1 thermo 1
run 100 run 100
WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (../atom.cpp:2444) WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (src/atom.cpp:2444)
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (../comm_brick.cpp:212) WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:212)
Per MPI rank memory allocation (min/avg/max) = 2.801 | 2.801 | 2.801 Mbytes Per MPI rank memory allocation (min/avg/max) = 2.801 | 2.801 | 2.801 Mbytes
Step PotEng v_virial v_prim_kinetic Step PotEng v_virial v_prim_kinetic
0 0 1.3661449e-08 0.0009918329 0 0 1.3661449e-08 0.0009918329
@ -200,20 +201,20 @@ Per MPI rank memory allocation (min/avg/max) = 2.801 | 2.801 | 2.801 Mbytes
98 1.8568337e-05 1.780703e-05 0.00083221292 98 1.8568337e-05 1.780703e-05 0.00083221292
99 1.9188379e-05 1.8141862e-05 0.00082913227 99 1.9188379e-05 1.8141862e-05 0.00082913227
100 1.9789011e-05 1.8457846e-05 0.00082619877 100 1.9789011e-05 1.8457846e-05 0.00082619877
Loop time of 0.112003 on 1 procs for 100 steps with 3 atoms Loop time of 0.00116163 on 1 procs for 100 steps with 3 atoms
Performance: 38570373.396 fs/day, 0.000 hours/fs, 892.833 timesteps/s, 2.678 katom-step/s Performance: 3718915419.639 fs/day, 0.000 hours/fs, 86086.005 timesteps/s, 258.258 katom-step/s
52.7% CPU use with 1 MPI tasks x no OpenMP threads 89.6% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown: MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total Section | min time | avg time | max time |%varavg| %total
--------------------------------------------------------------- ---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00 Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 1.4356e-05 | 1.4356e-05 | 1.4356e-05 | 0.0 | 0.01 Neigh | 1.582e-06 | 1.582e-06 | 1.582e-06 | 0.0 | 0.14
Comm | 9.7936e-05 | 9.7936e-05 | 9.7936e-05 | 0.0 | 0.09 Comm | 1.3306e-05 | 1.3306e-05 | 1.3306e-05 | 0.0 | 1.15
Output | 0.0017373 | 0.0017373 | 0.0017373 | 0.0 | 1.55 Output | 0.00017996 | 0.00017996 | 0.00017996 | 0.0 | 15.49
Modify | 0.10997 | 0.10997 | 0.10997 | 0.0 | 98.19 Modify | 0.00090771 | 0.00090771 | 0.00090771 | 0.0 | 78.14
Other | | 0.0001804 | | | 0.16 Other | | 5.907e-05 | | | 5.09
Nlocal: 3 ave 3 max 3 min Nlocal: 3 ave 3 max 3 min
Histogram: 1 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0
@ -226,3 +227,4 @@ Total # of neighbors = 0
Ave neighs/atom = 0 Ave neighs/atom = 0
Neighbor list builds = 41 Neighbor list builds = 41
Dangerous builds = 0 Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -1,5 +1,6 @@
LAMMPS (4 Feb 2025) LAMMPS (4 Feb 2025 - Development - patch_4Feb2025-344-g0a4a2f6deb-modified)
Processor partition = 3 Processor partition = 3
using 1 OpenMP thread(s) per MPI task
# Units and dimensions # Units and dimensions
units electron units electron
dimension 3 dimension 3
@ -95,8 +96,8 @@ thermo_style custom step pe v_virial v_prim_kinetic
thermo 1 thermo 1
run 100 run 100
WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (../atom.cpp:2444) WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (src/atom.cpp:2444)
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (../comm_brick.cpp:212) WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:212)
Per MPI rank memory allocation (min/avg/max) = 2.801 | 2.801 | 2.801 Mbytes Per MPI rank memory allocation (min/avg/max) = 2.801 | 2.801 | 2.801 Mbytes
Step PotEng v_virial v_prim_kinetic Step PotEng v_virial v_prim_kinetic
0 0 1.3661449e-08 0.0009918329 0 0 1.3661449e-08 0.0009918329
@ -200,20 +201,20 @@ Per MPI rank memory allocation (min/avg/max) = 2.801 | 2.801 | 2.801 Mbytes
98 2.5288512e-05 1.780703e-05 0.00083221292 98 2.5288512e-05 1.780703e-05 0.00083221292
99 2.5384836e-05 1.8141862e-05 0.00082913227 99 2.5384836e-05 1.8141862e-05 0.00082913227
100 2.5401412e-05 1.8457846e-05 0.00082619877 100 2.5401412e-05 1.8457846e-05 0.00082619877
Loop time of 0.122921 on 1 procs for 100 steps with 3 atoms Loop time of 0.00116067 on 1 procs for 100 steps with 3 atoms
Performance: 35144393.915 fs/day, 0.000 hours/fs, 813.528 timesteps/s, 2.441 katom-step/s Performance: 3721997782.310 fs/day, 0.000 hours/fs, 86157.356 timesteps/s, 258.472 katom-step/s
88.8% CPU use with 1 MPI tasks x no OpenMP threads 88.3% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown: MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total Section | min time | avg time | max time |%varavg| %total
--------------------------------------------------------------- ---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00 Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 1.5885e-05 | 1.5885e-05 | 1.5885e-05 | 0.0 | 0.01 Neigh | 1.441e-06 | 1.441e-06 | 1.441e-06 | 0.0 | 0.12
Comm | 9.4707e-05 | 9.4707e-05 | 9.4707e-05 | 0.0 | 0.08 Comm | 1.2111e-05 | 1.2111e-05 | 1.2111e-05 | 0.0 | 1.04
Output | 0.0027076 | 0.0027076 | 0.0027076 | 0.0 | 2.20 Output | 0.00018148 | 0.00018148 | 0.00018148 | 0.0 | 15.64
Modify | 0.11993 | 0.11993 | 0.11993 | 0.0 | 97.57 Modify | 0.0009054 | 0.0009054 | 0.0009054 | 0.0 | 78.01
Other | | 0.0001738 | | | 0.14 Other | | 6.023e-05 | | | 5.19
Nlocal: 3 ave 3 max 3 min Nlocal: 3 ave 3 max 3 min
Histogram: 1 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0
@ -226,3 +227,4 @@ Total # of neighbors = 0
Ave neighs/atom = 0 Ave neighs/atom = 0
Neighbor list builds = 42 Neighbor list builds = 42
Dangerous builds = 0 Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,2 @@
LAMMPS (4 Feb 2025 - Development - patch_4Feb2025-344-g0a4a2f6deb-modified)
Running on 4 partitions of processors

View File

@ -1,5 +1,6 @@
LAMMPS (4 Feb 2025) LAMMPS (4 Feb 2025 - Development - patch_4Feb2025-344-g0a4a2f6deb-modified)
Processor partition = 0 Processor partition = 0
using 1 OpenMP thread(s) per MPI task
# Units and dimensions # Units and dimensions
units electron units electron
dimension 3 dimension 3
@ -99,11 +100,11 @@ thermo_style custom step pe v_virial v_prim_kinetic
thermo 1 thermo 1
run 100 run 100
WARNING: No fixes with time integration, atoms won't move (../verlet.cpp:60) WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
Fix pimd/nvt -P/(beta^2 * hbar^2) = -2.2139311e-05 (kcal/mol/A^2) Fix pimd/nvt -P/(beta^2 * hbar^2) = -2.2139311e-05 (kcal/mol/A^2)
WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (../atom.cpp:2444) WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (src/atom.cpp:2444)
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (../comm_brick.cpp:212) WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:212)
Per MPI rank memory allocation (min/avg/max) = 9.176 | 9.176 | 9.176 Mbytes Per MPI rank memory allocation (min/avg/max) = 9.176 | 9.176 | 9.176 Mbytes
Step PotEng v_virial v_prim_kinetic Step PotEng v_virial v_prim_kinetic
0 0 0 0.00024794798 0 0 0 0.00024794798
@ -207,20 +208,20 @@ Per MPI rank memory allocation (min/avg/max) = 9.176 | 9.176 | 9.176 Mbytes
98 7.4842314e-06 1.8940408e-06 0.0002348915 98 7.4842314e-06 1.8940408e-06 0.0002348915
99 7.622805e-06 1.9289045e-06 0.00023466684 99 7.622805e-06 1.9289045e-06 0.00023466684
100 7.76221e-06 1.9639756e-06 0.00023444136 100 7.76221e-06 1.9639756e-06 0.00023444136
Loop time of 0.00940749 on 1 procs for 100 steps with 3 atoms Loop time of 0.00193128 on 1 procs for 100 steps with 3 atoms
Performance: 459208566.791 fs/day, 0.000 hours/fs, 10629.828 timesteps/s, 31.889 katom-step/s Performance: 2236858456.568 fs/day, 0.000 hours/fs, 51779.131 timesteps/s, 155.337 katom-step/s
90.3% CPU use with 1 MPI tasks x no OpenMP threads 36.5% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown: MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total Section | min time | avg time | max time |%varavg| %total
--------------------------------------------------------------- ---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00 Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 8.466e-06 | 8.466e-06 | 8.466e-06 | 0.0 | 0.09 Neigh | 1.454e-06 | 1.454e-06 | 1.454e-06 | 0.0 | 0.08
Comm | 7.8365e-05 | 7.8365e-05 | 7.8365e-05 | 0.0 | 0.83 Comm | 2.3033e-05 | 2.3033e-05 | 2.3033e-05 | 0.0 | 1.19
Output | 0.0012482 | 0.0012482 | 0.0012482 | 0.0 | 13.27 Output | 0.00030824 | 0.00030824 | 0.00030824 | 0.0 | 15.96
Modify | 0.0079193 | 0.0079193 | 0.0079193 | 0.0 | 84.18 Modify | 0.001541 | 0.001541 | 0.001541 | 0.0 | 79.79
Other | | 0.0001532 | | | 1.63 Other | | 5.754e-05 | | | 2.98
Nlocal: 3 ave 3 max 3 min Nlocal: 3 ave 3 max 3 min
Histogram: 1 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0

View File

@ -1,5 +1,6 @@
LAMMPS (4 Feb 2025) LAMMPS (4 Feb 2025 - Development - patch_4Feb2025-344-g0a4a2f6deb-modified)
Processor partition = 1 Processor partition = 1
using 1 OpenMP thread(s) per MPI task
# Units and dimensions # Units and dimensions
units electron units electron
dimension 3 dimension 3
@ -99,9 +100,9 @@ thermo_style custom step pe v_virial v_prim_kinetic
thermo 1 thermo 1
run 100 run 100
WARNING: No fixes with time integration, atoms won't move (../verlet.cpp:60) WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (../atom.cpp:2444) WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (src/atom.cpp:2444)
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (../comm_brick.cpp:212) WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:212)
Per MPI rank memory allocation (min/avg/max) = 9.176 | 9.176 | 9.176 Mbytes Per MPI rank memory allocation (min/avg/max) = 9.176 | 9.176 | 9.176 Mbytes
Step PotEng v_virial v_prim_kinetic Step PotEng v_virial v_prim_kinetic
0 0 0 0.00024796164 0 0 0 0.00024796164
@ -205,20 +206,20 @@ Per MPI rank memory allocation (min/avg/max) = 9.176 | 9.176 | 9.176 Mbytes
98 7.3002707e-06 1.8531354e-06 0.00024148118 98 7.3002707e-06 1.8531354e-06 0.00024148118
99 7.4315008e-06 1.88617e-06 0.00024137268 99 7.4315008e-06 1.88617e-06 0.00024137268
100 7.563358e-06 1.9193596e-06 0.00024126398 100 7.563358e-06 1.9193596e-06 0.00024126398
Loop time of 0.00941353 on 1 procs for 100 steps with 3 atoms Loop time of 0.00190888 on 1 procs for 100 steps with 3 atoms
Performance: 458913876.206 fs/day, 0.000 hours/fs, 10623.006 timesteps/s, 31.869 katom-step/s Performance: 2263110719.025 fs/day, 0.000 hours/fs, 52386.822 timesteps/s, 157.160 katom-step/s
50.9% CPU use with 1 MPI tasks x no OpenMP threads 0.0% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown: MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total Section | min time | avg time | max time |%varavg| %total
--------------------------------------------------------------- ---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00 Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 8.215e-06 | 8.215e-06 | 8.215e-06 | 0.0 | 0.09 Neigh | 2.774e-06 | 2.774e-06 | 2.774e-06 | 0.0 | 0.15
Comm | 7.7692e-05 | 7.7692e-05 | 7.7692e-05 | 0.0 | 0.83 Comm | 2.3215e-05 | 2.3215e-05 | 2.3215e-05 | 0.0 | 1.22
Output | 0.0047662 | 0.0047662 | 0.0047662 | 0.0 | 50.63 Output | 0.00042246 | 0.00042246 | 0.00042246 | 0.0 | 22.13
Modify | 0.004407 | 0.004407 | 0.004407 | 0.0 | 46.82 Modify | 0.0013744 | 0.0013744 | 0.0013744 | 0.0 | 72.00
Other | | 0.0001545 | | | 1.64 Other | | 8.601e-05 | | | 4.51
Nlocal: 3 ave 3 max 3 min Nlocal: 3 ave 3 max 3 min
Histogram: 1 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0

View File

@ -1,5 +1,6 @@
LAMMPS (4 Feb 2025) LAMMPS (4 Feb 2025 - Development - patch_4Feb2025-344-g0a4a2f6deb-modified)
Processor partition = 2 Processor partition = 2
using 1 OpenMP thread(s) per MPI task
# Units and dimensions # Units and dimensions
units electron units electron
dimension 3 dimension 3
@ -99,9 +100,9 @@ thermo_style custom step pe v_virial v_prim_kinetic
thermo 1 thermo 1
run 100 run 100
WARNING: No fixes with time integration, atoms won't move (../verlet.cpp:60) WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (../atom.cpp:2444) WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (src/atom.cpp:2444)
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (../comm_brick.cpp:212) WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:212)
Per MPI rank memory allocation (min/avg/max) = 9.176 | 9.176 | 9.176 Mbytes Per MPI rank memory allocation (min/avg/max) = 9.176 | 9.176 | 9.176 Mbytes
Step PotEng v_virial v_prim_kinetic Step PotEng v_virial v_prim_kinetic
0 0 0 0.00024796164 0 0 0 0.00024796164
@ -205,20 +206,20 @@ Per MPI rank memory allocation (min/avg/max) = 9.176 | 9.176 | 9.176 Mbytes
98 7.1356907e-06 1.7335027e-06 0.0002297417 98 7.1356907e-06 1.7335027e-06 0.0002297417
99 7.2605738e-06 1.7643404e-06 0.00022943234 99 7.2605738e-06 1.7643404e-06 0.00022943234
100 7.3859169e-06 1.7952968e-06 0.00022912226 100 7.3859169e-06 1.7952968e-06 0.00022912226
Loop time of 0.00941372 on 1 procs for 100 steps with 3 atoms Loop time of 0.00195857 on 1 procs for 100 steps with 3 atoms
Performance: 458904516.311 fs/day, 0.000 hours/fs, 10622.790 timesteps/s, 31.868 katom-step/s Performance: 2205688634.372 fs/day, 0.000 hours/fs, 51057.607 timesteps/s, 153.173 katom-step/s
24.7% CPU use with 1 MPI tasks x no OpenMP threads 39.2% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown: MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total Section | min time | avg time | max time |%varavg| %total
--------------------------------------------------------------- ---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00 Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 8.785e-06 | 8.785e-06 | 8.785e-06 | 0.0 | 0.09 Neigh | 1.602e-06 | 1.602e-06 | 1.602e-06 | 0.0 | 0.08
Comm | 7.9921e-05 | 7.9921e-05 | 7.9921e-05 | 0.0 | 0.85 Comm | 1.6951e-05 | 1.6951e-05 | 1.6951e-05 | 0.0 | 0.87
Output | 0.0071119 | 0.0071119 | 0.0071119 | 0.0 | 75.55 Output | 0.00032627 | 0.00032627 | 0.00032627 | 0.0 | 16.66
Modify | 0.0020558 | 0.0020558 | 0.0020558 | 0.0 | 21.84 Modify | 0.0015486 | 0.0015486 | 0.0015486 | 0.0 | 79.07
Other | | 0.0001572 | | | 1.67 Other | | 6.514e-05 | | | 3.33
Nlocal: 3 ave 3 max 3 min Nlocal: 3 ave 3 max 3 min
Histogram: 1 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0

View File

@ -1,5 +1,6 @@
LAMMPS (4 Feb 2025) LAMMPS (4 Feb 2025 - Development - patch_4Feb2025-344-g0a4a2f6deb-modified)
Processor partition = 3 Processor partition = 3
using 1 OpenMP thread(s) per MPI task
# Units and dimensions # Units and dimensions
units electron units electron
dimension 3 dimension 3
@ -99,9 +100,9 @@ thermo_style custom step pe v_virial v_prim_kinetic
thermo 1 thermo 1
run 100 run 100
WARNING: No fixes with time integration, atoms won't move (../verlet.cpp:60) WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (../atom.cpp:2444) WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (src/atom.cpp:2444)
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (../comm_brick.cpp:212) WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:212)
Per MPI rank memory allocation (min/avg/max) = 9.176 | 9.176 | 9.176 Mbytes Per MPI rank memory allocation (min/avg/max) = 9.176 | 9.176 | 9.176 Mbytes
Step PotEng v_virial v_prim_kinetic Step PotEng v_virial v_prim_kinetic
0 0 0 0.00024796164 0 0 0 0.00024796164
@ -205,20 +206,20 @@ Per MPI rank memory allocation (min/avg/max) = 9.176 | 9.176 | 9.176 Mbytes
98 7.2937187e-06 1.8407787e-06 0.00023702765 98 7.2937187e-06 1.8407787e-06 0.00023702765
99 7.4250201e-06 1.8736806e-06 0.00023685186 99 7.4250201e-06 1.8736806e-06 0.00023685186
100 7.5569619e-06 1.9067398e-06 0.00023667607 100 7.5569619e-06 1.9067398e-06 0.00023667607
Loop time of 0.00939597 on 1 procs for 100 steps with 3 atoms Loop time of 0.00197094 on 1 procs for 100 steps with 3 atoms
Performance: 459771778.655 fs/day, 0.000 hours/fs, 10642.865 timesteps/s, 31.929 katom-step/s Performance: 2191851993.165 fs/day, 0.000 hours/fs, 50737.315 timesteps/s, 152.212 katom-step/s
25.2% CPU use with 1 MPI tasks x no OpenMP threads 37.5% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown: MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total Section | min time | avg time | max time |%varavg| %total
--------------------------------------------------------------- ---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00 Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 8.404e-06 | 8.404e-06 | 8.404e-06 | 0.0 | 0.09 Neigh | 1.652e-06 | 1.652e-06 | 1.652e-06 | 0.0 | 0.08
Comm | 8.6872e-05 | 8.6872e-05 | 8.6872e-05 | 0.0 | 0.92 Comm | 1.7965e-05 | 1.7965e-05 | 1.7965e-05 | 0.0 | 0.91
Output | 0.0071309 | 0.0071309 | 0.0071309 | 0.0 | 75.89 Output | 0.00036011 | 0.00036011 | 0.00036011 | 0.0 | 18.27
Modify | 0.0020085 | 0.0020085 | 0.0020085 | 0.0 | 21.38 Modify | 0.0015231 | 0.0015231 | 0.0015231 | 0.0 | 77.28
Other | | 0.0001612 | | | 1.72 Other | | 6.806e-05 | | | 3.45
Nlocal: 3 ave 3 max 3 min Nlocal: 3 ave 3 max 3 min
Histogram: 1 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0

File diff suppressed because it is too large Load Diff

View File

@ -7,6 +7,7 @@ atom_style spin
# necessary for the serial algorithm (sametag) # necessary for the serial algorithm (sametag)
atom_modify map array atom_modify map array
read_data Norm_randXY_8x8x32.data read_data Norm_randXY_8x8x32.data
replicate 1 1 2
mass 1 58.93 mass 1 58.93
@ -40,6 +41,6 @@ thermo_style custom step time v_magnorm pe v_emag v_tmag temp etotal
thermo_modify format float %20.15g thermo_modify format float %20.15g
compute outsp all property/atom spx spy spz sp fmx fmy fmz compute outsp all property/atom spx spy spz sp fmx fmy fmz
dump 1 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] #dump 1 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7]
#dump_modify 1 sort id
run 100 run 100

View File

@ -18,7 +18,7 @@ create_atoms 1 box
mass 1 58.93 mass 1 58.93
set group all spin/random 31 1.72 set group all spin/atom/random 31 1.72
pair_style spin/exchange 4.0 pair_style spin/exchange 4.0
pair_coeff * * exchange 4.0 0.3593 1.135028015e-05 1.064568567 pair_coeff * * exchange 4.0 0.3593 1.135028015e-05 1.064568567
@ -48,7 +48,7 @@ thermo_style custom step time v_magnorm pe v_emag temp etotal
thermo 100 thermo 100
compute outsp all property/atom spx spy spz sp fmx fmy fmz compute outsp all property/atom spx spy spz sp fmx fmy fmz
dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] #dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7]
#dump_modify 100 sort id
run 1000 run 1000
write_restart restart_hcp_cobalt.equil write_restart restart_hcp_cobalt.equil

View File

@ -0,0 +1,136 @@
LAMMPS (4 Feb 2025 - Development - patch_4Feb2025-212-g01698ddc2e-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:99)
using 1 OpenMP thread(s) per MPI task
units metal
dimension 3
boundary p p p
atom_style spin
# necessary for the serial algorithm (sametag)
atom_modify map array
read_data Norm_randXY_8x8x32.data
Reading data file ...
orthogonal box = (0 0 0) to (15 28.32 13.68)
1 by 1 by 1 MPI processor grid
reading atoms ...
1024 atoms
reading velocities ...
1024 velocities
read_data CPU = 0.004 seconds
replicate 1 1 2
Replication is creating a 1x1x2 = 2 times larger system...
orthogonal box = (0 0 0) to (15 28.32 27.36)
1 by 1 by 1 MPI processor grid
2048 atoms
replicate CPU = 0.001 seconds
mass 1 58.93
pair_style hybrid/overlay eam/alloy spin/exchange 4.0
pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co
pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885
neighbor 1.0 bin
neigh_modify every 1 check no delay 0
fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0
fix 2 all langevin/spin 0.0 0.0 21
fix 3 all nve/spin lattice moving
timestep 0.0001
# define outputs and computes
compute out_mag all spin
compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
thermo 20
thermo_style custom step time v_magnorm pe v_emag v_tmag temp etotal
thermo_modify format float %20.15g
compute outsp all property/atom spx spy spz sp fmx fmy fmz
#dump 1 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7]
#dump_modify 1 sort id
run 100
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- fix nve/spin command: doi:10.1016/j.jcp.2018.06.042
@article{tranchida2018massively,
title={Massively Parallel Symplectic Algorithm for Coupled Magnetic Spin Dynamics and Molecular Dynamics},
author={Tranchida, J and Plimpton, S J and Thibaudeau, P and Thompson, A P},
journal={Journal of Computational Physics},
volume={372},
pages={406--425},
year={2018},
publisher={Elsevier}
doi={10.1016/j.jcp.2018.06.042}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 7.499539
ghost atom cutoff = 7.499539
binsize = 3.7497695, bins = 5 8 8
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair eam/alloy, perpetual, half/full from (2)
attributes: half, newton on, cut 7.499539
pair build: halffull/newton
stencil: none
bin: none
(2) pair spin/exchange, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 9.082 | 9.082 | 9.082 Mbytes
Step Time v_magnorm PotEng v_emag v_tmag Temp TotEng
0 0 0.99566943155533 116726.359107918 -852.392312873949 34.9207785637842 0 116726.359107918
20 0.002 0.995669416541629 70905.5692189811 -849.222504107045 34.647400481739 172820.122486868 116632.998844426
40 0.004 0.995669401356638 71221.2391274615 -848.368415908416 34.9759984641547 171555.103338675 116613.950357609
60 0.006 0.995669394598344 69647.7523345612 -845.585158124559 36.100016238044 177502.681559427 116614.166097826
80 0.008 0.995669395756676 107415.560454437 -846.200871523815 37.9775024824566 35031.4099604677 116684.714477685
100 0.01 0.995669403283478 63849.6798250643 -836.341677782106 39.680777051272 199492.565587335 116634.518317396
Loop time of 2.97847 on 1 procs for 100 steps with 2048 atoms
Performance: 0.290 ns/day, 82.735 hours/ns, 33.574 timesteps/s, 68.760 katom-step/s
99.6% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.0361 | 1.0361 | 1.0361 | 0.0 | 34.79
Neigh | 0.78559 | 0.78559 | 0.78559 | 0.0 | 26.38
Comm | 0.013262 | 0.013262 | 0.013262 | 0.0 | 0.45
Output | 0.00026908 | 0.00026908 | 0.00026908 | 0.0 | 0.01
Modify | 1.1415 | 1.1415 | 1.1415 | 0.0 | 38.33
Other | | 0.001761 | | | 0.06
Nlocal: 2048 ave 2048 max 2048 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 7952 ave 7952 max 7952 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 314944 ave 314944 max 314944 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 629888 ave 629888 max 629888 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 629888
Ave neighs/atom = 307.5625
Neighbor list builds = 100
Dangerous builds not checked
Total wall time: 0:00:03

View File

@ -0,0 +1,136 @@
LAMMPS (4 Feb 2025 - Development - patch_4Feb2025-212-g01698ddc2e-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:99)
using 1 OpenMP thread(s) per MPI task
units metal
dimension 3
boundary p p p
atom_style spin
# necessary for the serial algorithm (sametag)
atom_modify map array
read_data Norm_randXY_8x8x32.data
Reading data file ...
orthogonal box = (0 0 0) to (15 28.32 13.68)
2 by 2 by 1 MPI processor grid
reading atoms ...
1024 atoms
reading velocities ...
1024 velocities
read_data CPU = 0.004 seconds
replicate 1 1 2
Replication is creating a 1x1x2 = 2 times larger system...
orthogonal box = (0 0 0) to (15 28.32 27.36)
1 by 2 by 2 MPI processor grid
2048 atoms
replicate CPU = 0.002 seconds
mass 1 58.93
pair_style hybrid/overlay eam/alloy spin/exchange 4.0
pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co
pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885
neighbor 1.0 bin
neigh_modify every 1 check no delay 0
fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0
fix 2 all langevin/spin 0.0 0.0 21
fix 3 all nve/spin lattice moving
timestep 0.0001
# define outputs and computes
compute out_mag all spin
compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
thermo 20
thermo_style custom step time v_magnorm pe v_emag v_tmag temp etotal
thermo_modify format float %20.15g
compute outsp all property/atom spx spy spz sp fmx fmy fmz
#dump 1 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7]
#dump_modify 1 sort id
run 100
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- fix nve/spin command: doi:10.1016/j.jcp.2018.06.042
@article{tranchida2018massively,
title={Massively Parallel Symplectic Algorithm for Coupled Magnetic Spin Dynamics and Molecular Dynamics},
author={Tranchida, J and Plimpton, S J and Thibaudeau, P and Thompson, A P},
journal={Journal of Computational Physics},
volume={372},
pages={406--425},
year={2018},
publisher={Elsevier}
doi={10.1016/j.jcp.2018.06.042}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 7.499539
ghost atom cutoff = 7.499539
binsize = 3.7497695, bins = 5 8 8
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair eam/alloy, perpetual, half/full from (2)
attributes: half, newton on, cut 7.499539
pair build: halffull/newton
stencil: none
bin: none
(2) pair spin/exchange, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.812 | 5.812 | 5.812 Mbytes
Step Time v_magnorm PotEng v_emag v_tmag Temp TotEng
0 0 0.995669431555328 116726.359107923 -852.39231287395 34.9207785637843 0 116726.359107923
20 0.002 0.995669419512638 70905.5692199804 -849.222502855646 34.6474282239503 172820.122483292 116632.998844479
40 0.004 0.995669419108591 71221.2391285209 -848.368412494784 34.97611050919 171555.103335676 116613.950357875
60 0.006 0.99566940895435 69647.7523345112 -845.585157291247 36.1001312564486 177502.681560664 116614.166098104
80 0.008 0.995669417344697 107415.560454912 -846.200874451992 37.9776090859263 35031.4099596403 116684.714477941
100 0.01 0.995669427709463 63849.6798245944 -836.341678212079 39.6809090980074 199492.565591024 116634.518317902
Loop time of 0.991506 on 4 procs for 100 steps with 2048 atoms
Performance: 0.871 ns/day, 27.542 hours/ns, 100.857 timesteps/s, 206.554 katom-step/s
99.0% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.31016 | 0.31287 | 0.31496 | 0.3 | 31.56
Neigh | 0.21999 | 0.22957 | 0.23793 | 1.7 | 23.15
Comm | 0.015231 | 0.025975 | 0.036137 | 6.0 | 2.62
Output | 0.00012037 | 0.00014855 | 0.0001849 | 0.0 | 0.01
Modify | 0.4213 | 0.42166 | 0.42201 | 0.0 | 42.53
Other | | 0.001272 | | | 0.13
Nlocal: 512 ave 521 max 503 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 4112 ave 4121 max 4103 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 78736 ave 80265 max 77207 min
Histogram: 2 0 0 0 0 0 0 0 0 2
FullNghs: 157472 ave 160276 max 154668 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 629888
Ave neighs/atom = 307.5625
Neighbor list builds = 100
Dangerous builds not checked
Total wall time: 0:00:01

View File

@ -0,0 +1,135 @@
LAMMPS (4 Feb 2025 - Development - patch_4Feb2025-212-g01698ddc2e-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:99)
using 1 OpenMP thread(s) per MPI task
# start a spin-lattice simulation from a data file
units metal
atom_style spin
dimension 3
boundary p p p
# necessary for the serial algorithm (sametag)
atom_modify map array
read_restart restart_hcp_cobalt.equil
Reading restart file ...
restart file = 4 Feb 2025, LAMMPS = 4 Feb 2025
restoring atom style spin from restart
orthogonal box = (0 0 0) to (12.5355 21.712123 20.470386)
1 by 1 by 1 MPI processor grid
restoring pair style spin/exchange from restart
500 atoms
read_restart CPU = 0.000 seconds
# setting mass, mag. moments, and interactions
mass 1 58.93
pair_style hybrid/overlay eam/alloy spin/exchange 4.0
pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co
pair_coeff * * spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567
neighbor 1.0 bin
neigh_modify every 1 check no delay 0
fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0
fix 2 all langevin/spin 0.0 0.0 21
fix 3 all nve/spin lattice moving
timestep 0.0001
# define outputs
compute out_mag all spin
compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
thermo 20
thermo_style custom step time v_magnorm pe v_emag v_tmag temp etotal
thermo_modify format float %20.15g
compute outsp all property/atom spx spy spz sp fmx fmy fmz
dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7]
run 100
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- fix nve/spin command: doi:10.1016/j.jcp.2018.06.042
@article{tranchida2018massively,
title={Massively Parallel Symplectic Algorithm for Coupled Magnetic Spin Dynamics and Molecular Dynamics},
author={Tranchida, J and Plimpton, S J and Thibaudeau, P and Thompson, A P},
journal={Journal of Computational Physics},
volume={372},
pages={406--425},
year={2018},
publisher={Elsevier}
doi={10.1016/j.jcp.2018.06.042}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 7.499539
ghost atom cutoff = 7.499539
binsize = 3.7497695, bins = 4 6 6
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair eam/alloy, perpetual, half/full from (2)
attributes: half, newton on, cut 7.499539
pair build: halffull/newton
stencil: none
bin: none
(2) pair spin/exchange, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
WARNING: Dump 100 includes no atom IDs and is not sorted by ID. This may complicate post-processing tasks or visualization (src/dump.cpp:220)
Per MPI rank memory allocation (min/avg/max) = 5.255 | 5.255 | 5.255 Mbytes
Step Time v_magnorm PotEng v_emag v_tmag Temp TotEng
1000 0.1 0.0932563992120983 -2200.23506043127 -5.23510819573568 2608.1272233749 0 -2200.23506043127
1020 0.102 0.0932564226983496 -2200.24431693921 -5.24438874766875 2636.89284253705 0.143502110493468 -2200.23506093651
1040 0.104 0.0932564330551733 -2200.27026761331 -5.27068764778909 2646.09012775508 0.545814389665464 -2200.23506214178
1060 0.106 0.0932564065525508 -2200.30841491752 -5.31025431862422 2627.26990645217 1.13721564075693 -2200.23506358487
1080 0.108 0.0932563850278094 -2200.35339675793 -5.35874497582981 2585.24230543411 1.83458183455181 -2200.23506473927
1100 0.11 0.0932563977118321 -2200.40087596139 -5.41289411193204 2540.00857034711 2.5706738278606 -2200.23506541119
Loop time of 0.473574 on 1 procs for 100 steps with 500 atoms
Performance: 1.824 ns/day, 13.155 hours/ns, 211.160 timesteps/s, 105.580 katom-step/s
98.4% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.12025 | 0.12025 | 0.12025 | 0.0 | 25.39
Neigh | 0.14912 | 0.14912 | 0.14912 | 0.0 | 31.49
Comm | 0.0047587 | 0.0047587 | 0.0047587 | 0.0 | 1.00
Output | 0.07234 | 0.07234 | 0.07234 | 0.0 | 15.28
Modify | 0.12645 | 0.12645 | 0.12645 | 0.0 | 26.70
Other | | 0.0006494 | | | 0.14
Nlocal: 500 ave 500 max 500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 2534 ave 2534 max 2534 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 36500 ave 36500 max 36500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 73000 ave 73000 max 73000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 73000
Ave neighs/atom = 146
Neighbor list builds = 100
Dangerous builds not checked
Total wall time: 0:00:00

View File

@ -0,0 +1,136 @@
LAMMPS (4 Feb 2025 - Development - patch_4Feb2025-212-g01698ddc2e-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:99)
using 1 OpenMP thread(s) per MPI task
# start a spin-lattice simulation from a data file
units metal
atom_style spin
dimension 3
boundary p p p
# necessary for the serial algorithm (sametag)
atom_modify map array
read_restart restart_hcp_cobalt.equil
Reading restart file ...
restart file = 4 Feb 2025, LAMMPS = 4 Feb 2025
WARNING: Restart file used different # of processors: 1 vs. 4 (src/read_restart.cpp:628)
restoring atom style spin from restart
orthogonal box = (0 0 0) to (12.5355 21.712123 20.470386)
1 by 2 by 2 MPI processor grid
restoring pair style spin/exchange from restart
500 atoms
read_restart CPU = 0.001 seconds
# setting mass, mag. moments, and interactions
mass 1 58.93
pair_style hybrid/overlay eam/alloy spin/exchange 4.0
pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co
pair_coeff * * spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567
neighbor 1.0 bin
neigh_modify every 1 check no delay 0
fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0
fix 2 all langevin/spin 0.0 0.0 21
fix 3 all nve/spin lattice moving
timestep 0.0001
# define outputs
compute out_mag all spin
compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
thermo 20
thermo_style custom step time v_magnorm pe v_emag v_tmag temp etotal
thermo_modify format float %20.15g
compute outsp all property/atom spx spy spz sp fmx fmy fmz
dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7]
run 100
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- fix nve/spin command: doi:10.1016/j.jcp.2018.06.042
@article{tranchida2018massively,
title={Massively Parallel Symplectic Algorithm for Coupled Magnetic Spin Dynamics and Molecular Dynamics},
author={Tranchida, J and Plimpton, S J and Thibaudeau, P and Thompson, A P},
journal={Journal of Computational Physics},
volume={372},
pages={406--425},
year={2018},
publisher={Elsevier}
doi={10.1016/j.jcp.2018.06.042}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 7.499539
ghost atom cutoff = 7.499539
binsize = 3.7497695, bins = 4 6 6
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair eam/alloy, perpetual, half/full from (2)
attributes: half, newton on, cut 7.499539
pair build: halffull/newton
stencil: none
bin: none
(2) pair spin/exchange, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
WARNING: Dump 100 includes no atom IDs and is not sorted by ID. This may complicate post-processing tasks or visualization (src/dump.cpp:220)
Per MPI rank memory allocation (min/avg/max) = 5.188 | 5.188 | 5.188 Mbytes
Step Time v_magnorm PotEng v_emag v_tmag Temp TotEng
1000 0.1 0.0932563992120983 -2200.23506043087 -5.23510819573568 2608.1272233749 0 -2200.23506043087
1020 0.102 0.0932564663999882 -2200.24431693996 -5.24438874845296 2636.89226887198 0.14350212264756 -2200.23506093648
1040 0.104 0.0932565837400281 -2200.27026761822 -5.27068765273516 2646.08966888271 0.545814465748645 -2200.23506214179
1060 0.106 0.0932567073488227 -2200.30841492456 -5.31025432590717 2627.27001685206 1.13721574991944 -2200.23506358486
1080 0.108 0.0932567401022577 -2200.35339675946 -5.35874497805351 2585.24242001276 1.83458185842719 -2200.23506473925
1100 0.11 0.0932566884738387 -2200.4008759633 -5.41289411525345 2540.00813568378 2.57067385759474 -2200.23506541119
Loop time of 0.180477 on 4 procs for 100 steps with 500 atoms
Performance: 4.787 ns/day, 5.013 hours/ns, 554.088 timesteps/s, 277.044 katom-step/s
97.3% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.033968 | 0.034363 | 0.035109 | 0.2 | 19.04
Neigh | 0.035043 | 0.03728 | 0.040013 | 0.9 | 20.66
Comm | 0.0049574 | 0.0073867 | 0.0089549 | 1.7 | 4.09
Output | 0.021087 | 0.023594 | 0.026417 | 1.3 | 13.07
Modify | 0.074785 | 0.07749 | 0.079892 | 0.7 | 42.94
Other | | 0.0003627 | | | 0.20
Nlocal: 125 ave 136 max 117 min
Histogram: 1 0 1 0 1 0 0 0 0 1
Nghost: 1387 ave 1395 max 1376 min
Histogram: 1 0 0 0 0 1 0 1 0 1
Neighs: 9125 ave 9972 max 8559 min
Histogram: 1 0 1 1 0 0 0 0 0 1
FullNghs: 18250 ave 19856 max 17082 min
Histogram: 1 0 1 0 1 0 0 0 0 1
Total # of neighbors = 73000
Ave neighs/atom = 146
Neighbor list builds = 100
Dangerous builds not checked
Total wall time: 0:00:00

View File

@ -0,0 +1,142 @@
LAMMPS (4 Feb 2025 - Development - patch_4Feb2025-212-g01698ddc2e-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:99)
using 1 OpenMP thread(s) per MPI task
# fcc cobalt in a 3d periodic box
units metal
atom_style spin
dimension 3
boundary p p p
# necessary for the serial algorithm (sametag)
atom_modify map array
lattice hcp 2.5071
Lattice spacing in x,y,z = 2.5071 4.3424246 4.0940772
region box block 0.0 5.0 0.0 5.0 0.0 5.0
create_box 1 box
Created orthogonal box = (0 0 0) to (12.5355 21.712123 20.470386)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 500 atoms
using lattice units in orthogonal box = (0 0 0) to (12.5355 21.712123 20.470386)
create_atoms CPU = 0.000 seconds
# setting mass, mag. moments, and interactions for cobalt
mass 1 58.93
set group all spin/atom/random 31 1.72
Setting atom values ...
500 settings made for spin/atom/random
pair_style spin/exchange 4.0
pair_coeff * * exchange 4.0 0.3593 1.135028015e-05 1.064568567
neighbor 0.1 bin
neigh_modify every 10 check yes delay 20
fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0
fix 2 all langevin/spin 100.0 0.01 21
fix 3 all nve/spin lattice frozen
timestep 0.0001
# compute and output options
compute out_mag all spin
compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
thermo_style custom step time v_magnorm pe v_emag temp etotal
thermo 100
compute outsp all property/atom spx spy spz sp fmx fmy fmz
#dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7]
#dump_modify 100 sort id
run 1000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- fix nve/spin command: doi:10.1016/j.jcp.2018.06.042
@article{tranchida2018massively,
title={Massively Parallel Symplectic Algorithm for Coupled Magnetic Spin Dynamics and Molecular Dynamics},
author={Tranchida, J and Plimpton, S J and Thibaudeau, P and Thompson, A P},
journal={Journal of Computational Physics},
volume={372},
pages={406--425},
year={2018},
publisher={Elsevier}
doi={10.1016/j.jcp.2018.06.042}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 10 steps, delay = 20 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 4.1
ghost atom cutoff = 4.1
binsize = 2.05, bins = 7 11 10
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair spin/exchange, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 4.78 | 4.78 | 4.78 Mbytes
Step Time v_magnorm PotEng v_emag Temp TotEng
0 0 0.076558814 0.89911794 0.89911794 0 0.89911794
100 0.01 0.077627966 0.36694275 0.36694275 0 0.36694275
200 0.02 0.076678387 -0.20241504 -0.20241504 0 -0.20241504
300 0.03 0.079174207 -0.67593525 -0.67593525 0 -0.67593525
400 0.04 0.085031074 -1.5172826 -1.5172826 0 -1.5172826
500 0.05 0.087026279 -2.042653 -2.042653 0 -2.042653
600 0.06 0.087064628 -2.6297295 -2.6297295 0 -2.6297295
700 0.07 0.089787949 -3.3144767 -3.3144767 0 -3.3144767
800 0.08 0.091698615 -4.028707 -4.028707 0 -4.028707
900 0.09 0.090031988 -4.6007241 -4.6007241 0 -4.6007241
1000 0.1 0.093256399 -5.2351082 -5.2351082 0 -5.2351082
Loop time of 0.710555 on 1 procs for 1000 steps with 500 atoms
Performance: 12.160 ns/day, 1.974 hours/ns, 1407.350 timesteps/s, 703.675 katom-step/s
99.6% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.12852 | 0.12852 | 0.12852 | 0.0 | 18.09
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.012387 | 0.012387 | 0.012387 | 0.0 | 1.74
Output | 0.00014522 | 0.00014522 | 0.00014522 | 0.0 | 0.02
Modify | 0.56835 | 0.56835 | 0.56835 | 0.0 | 79.99
Other | | 0.001145 | | | 0.16
Nlocal: 500 ave 500 max 500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1221 ave 1221 max 1221 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 10000 ave 10000 max 10000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 10000
Ave neighs/atom = 20
Neighbor list builds = 0
Dangerous builds = 0
write_restart restart_hcp_cobalt.equil
System init for write_restart ...
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Total wall time: 0:00:00

View File

@ -0,0 +1,142 @@
LAMMPS (4 Feb 2025 - Development - patch_4Feb2025-212-g01698ddc2e-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:99)
using 1 OpenMP thread(s) per MPI task
# fcc cobalt in a 3d periodic box
units metal
atom_style spin
dimension 3
boundary p p p
# necessary for the serial algorithm (sametag)
atom_modify map array
lattice hcp 2.5071
Lattice spacing in x,y,z = 2.5071 4.3424246 4.0940772
region box block 0.0 5.0 0.0 5.0 0.0 5.0
create_box 1 box
Created orthogonal box = (0 0 0) to (12.5355 21.712123 20.470386)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 500 atoms
using lattice units in orthogonal box = (0 0 0) to (12.5355 21.712123 20.470386)
create_atoms CPU = 0.001 seconds
# setting mass, mag. moments, and interactions for cobalt
mass 1 58.93
set group all spin/atom/random 31 1.72
Setting atom values ...
500 settings made for spin/atom/random
pair_style spin/exchange 4.0
pair_coeff * * exchange 4.0 0.3593 1.135028015e-05 1.064568567
neighbor 0.1 bin
neigh_modify every 10 check yes delay 20
fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0
fix 2 all langevin/spin 100.0 0.01 21
fix 3 all nve/spin lattice frozen
timestep 0.0001
# compute and output options
compute out_mag all spin
compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
thermo_style custom step time v_magnorm pe v_emag temp etotal
thermo 100
compute outsp all property/atom spx spy spz sp fmx fmy fmz
#dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7]
#dump_modify 100 sort id
run 1000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- fix nve/spin command: doi:10.1016/j.jcp.2018.06.042
@article{tranchida2018massively,
title={Massively Parallel Symplectic Algorithm for Coupled Magnetic Spin Dynamics and Molecular Dynamics},
author={Tranchida, J and Plimpton, S J and Thibaudeau, P and Thompson, A P},
journal={Journal of Computational Physics},
volume={372},
pages={406--425},
year={2018},
publisher={Elsevier}
doi={10.1016/j.jcp.2018.06.042}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 10 steps, delay = 20 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 4.1
ghost atom cutoff = 4.1
binsize = 2.05, bins = 7 11 10
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair spin/exchange, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 4.732 | 4.732 | 4.733 Mbytes
Step Time v_magnorm PotEng v_emag Temp TotEng
0 0 0.076558814 0.89911794 0.89911794 0 0.89911794
100 0.01 0.078299852 0.44131103 0.44131103 0 0.44131103
200 0.02 0.081260369 -0.2174146 -0.2174146 0 -0.2174146
300 0.03 0.081195064 -0.87039697 -0.87039697 0 -0.87039697
400 0.04 0.087298284 -1.7069593 -1.7069593 0 -1.7069593
500 0.05 0.087663192 -2.1882865 -2.1882865 0 -2.1882865
600 0.06 0.091713114 -2.926766 -2.926766 0 -2.926766
700 0.07 0.093779218 -3.3532704 -3.3532704 0 -3.3532704
800 0.08 0.097960251 -3.9343481 -3.9343481 0 -3.9343481
900 0.09 0.10193598 -4.7944099 -4.7944099 0 -4.7944099
1000 0.1 0.10832963 -5.3823924 -5.3823924 0 -5.3823924
Loop time of 0.40066 on 4 procs for 1000 steps with 500 atoms
Performance: 21.564 ns/day, 1.113 hours/ns, 2495.885 timesteps/s, 1.248 Matom-step/s
97.9% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.032435 | 0.033013 | 0.033957 | 0.3 | 8.24
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.016106 | 0.016898 | 0.017915 | 0.5 | 4.22
Output | 0.00012331 | 0.00013523 | 0.00016852 | 0.0 | 0.03
Modify | 0.34913 | 0.34974 | 0.35017 | 0.1 | 87.29
Other | | 0.0008755 | | | 0.22
Nlocal: 125 ave 125 max 125 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 597.5 ave 600 max 595 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 2500 ave 2500 max 2500 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 10000
Ave neighs/atom = 20
Neighbor list builds = 0
Dangerous builds = 0
write_restart restart_hcp_cobalt.equil
System init for write_restart ...
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Total wall time: 0:00:00

View File

@ -1,110 +0,0 @@
LAMMPS (19 Mar 2020)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94)
using 1 OpenMP thread(s) per MPI task
units metal
dimension 3
boundary p p p
atom_style spin
# necessary for the serial algorithm (sametag)
atom_modify map array
read_data Norm_randXY_8x8x32.data
orthogonal box = (0 0 0) to (28.32 28.32 113.28)
1 by 1 by 1 MPI processor grid
reading atoms ...
8192 atoms
read_data CPU = 0.022048 secs
mass 1 58.93
pair_style hybrid/overlay eam/alloy spin/exchange 4.0
pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co
pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885
neighbor 1.0 bin
neigh_modify every 1 check no delay 0
fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0
fix 2 all langevin/spin 0.0 0.0 21
fix 3 all nve/spin lattice moving
timestep 0.0001
# define outputs and computes
compute out_mag all spin
compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
thermo 20
thermo_style custom step time v_magnorm pe v_emag v_tmag temp etotal
thermo_modify format float %20.15g
compute outsp all property/atom spx spy spz sp fmx fmy fmz
dump 1 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7]
run 100
Neighbor list info ...
update every 1 steps, delay 0 steps, check no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 7.49954
ghost atom cutoff = 7.49954
binsize = 3.74977, bins = 8 8 31
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair eam/alloy, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(2) pair spin/exchange, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 19.99 | 19.99 | 19.99 Mbytes
Step Time v_magnorm PotEng v_emag v_tmag Temp TotEng
0 0 0.0177864461018737 -36558.7284872918 -661.829206399896 1274.398774669 0 -36558.7284872918
20 0.002 0.0177864377256184 -36558.7389378387 -661.839683504936 1259.94171978912 0.00986992693139795 -36558.7284878577
40 0.004 0.017786472977471 -36558.7684525639 -661.869582914286 1224.05894016152 0.0377451568363827 -36558.7284891299
60 0.006 0.0177865119543331 -36558.8126238543 -661.915330492427 1184.24369688088 0.0794631076347515 -36558.728490712
80 0.008 0.0177865172048059 -36558.8659242367 -661.972562482488 1152.05459929593 0.129803482511904 -36558.7284922233
100 0.01 0.0177865063752424 -36558.9229549739 -662.037138807935 1129.51470280479 0.183667498513087 -36558.7284933644
Loop time of 14.3276 on 1 procs for 100 steps with 8192 atoms
Performance: 0.060 ns/day, 397.988 hours/ns, 6.980 timesteps/s
99.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 4.0409 | 4.0409 | 4.0409 | 0.0 | 28.20
Neigh | 3.6219 | 3.6219 | 3.6219 | 0.0 | 25.28
Comm | 0.055327 | 0.055327 | 0.055327 | 0.0 | 0.39
Output | 2.4259 | 2.4259 | 2.4259 | 0.0 | 16.93
Modify | 4.1688 | 4.1688 | 4.1688 | 0.0 | 29.10
Other | | 0.01477 | | | 0.10
Nlocal: 8192 ave 8192 max 8192 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 14621 ave 14621 max 14621 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 573440 ave 573440 max 573440 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 1.14688e+06 ave 1.14688e+06 max 1.14688e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1146880
Ave neighs/atom = 140
Neighbor list builds = 100
Dangerous builds not checked
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:14

View File

@ -1,110 +0,0 @@
LAMMPS (19 Mar 2020)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94)
using 1 OpenMP thread(s) per MPI task
units metal
dimension 3
boundary p p p
atom_style spin
# necessary for the serial algorithm (sametag)
atom_modify map array
read_data Norm_randXY_8x8x32.data
orthogonal box = (0 0 0) to (28.32 28.32 113.28)
1 by 1 by 4 MPI processor grid
reading atoms ...
8192 atoms
read_data CPU = 0.013634 secs
mass 1 58.93
pair_style hybrid/overlay eam/alloy spin/exchange 4.0
pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co
pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885
neighbor 1.0 bin
neigh_modify every 1 check no delay 0
fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0
fix 2 all langevin/spin 0.0 0.0 21
fix 3 all nve/spin lattice moving
timestep 0.0001
# define outputs and computes
compute out_mag all spin
compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
thermo 20
thermo_style custom step time v_magnorm pe v_emag v_tmag temp etotal
thermo_modify format float %20.15g
compute outsp all property/atom spx spy spz sp fmx fmy fmz
dump 1 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7]
run 100
Neighbor list info ...
update every 1 steps, delay 0 steps, check no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 7.49954
ghost atom cutoff = 7.49954
binsize = 3.74977, bins = 8 8 31
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair eam/alloy, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(2) pair spin/exchange, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 8.961 | 9.047 | 9.29 Mbytes
Step Time v_magnorm PotEng v_emag v_tmag Temp TotEng
0 0 0.0177864461018739 -36558.7284872997 -661.829206399894 1274.398774669 0 -36558.7284872997
20 0.002 0.0177863981273124 -36558.7389378386 -661.839683504262 1259.94177798388 0.00986992629371963 -36558.7284878582
40 0.004 0.0177864622701489 -36558.7684525586 -661.869582908114 1224.05908191331 0.0377451510479599 -36558.7284891308
60 0.006 0.0177865625037858 -36558.8126238326 -661.915330472361 1184.24389640891 0.0794630890177406 -36558.72849071
80 0.008 0.0177865898045059 -36558.8659241943 -661.972562439245 1152.05483020781 0.129803443061299 -36558.7284922226
100 0.01 0.017786565190115 -36558.9229549058 -662.037138735432 1129.51495182843 0.183667434061771 -36558.7284933646
Loop time of 4.35911 on 4 procs for 100 steps with 8192 atoms
Performance: 0.198 ns/day, 121.086 hours/ns, 22.940 timesteps/s
99.7% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.0924 | 1.1043 | 1.1117 | 0.7 | 25.33
Neigh | 0.93575 | 0.94926 | 0.98325 | 2.0 | 21.78
Comm | 0.044663 | 0.088288 | 0.11128 | 8.7 | 2.03
Output | 0.64199 | 0.6587 | 0.67226 | 1.4 | 15.11
Modify | 1.5412 | 1.5535 | 1.5706 | 0.9 | 35.64
Other | | 0.005046 | | | 0.12
Nlocal: 2048 ave 2061 max 2035 min
Histogram: 1 0 0 1 0 0 1 0 0 1
Nghost: 5765 ave 5778 max 5752 min
Histogram: 1 0 0 1 0 0 1 0 0 1
Neighs: 143360 ave 144262 max 142469 min
Histogram: 1 0 0 1 0 0 1 0 0 1
FullNghs: 286720 ave 288540 max 284900 min
Histogram: 1 0 0 1 0 0 1 0 0 1
Total # of neighbors = 1146880
Ave neighs/atom = 140
Neighbor list builds = 100
Dangerous builds not checked
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:04

View File

@ -1,116 +0,0 @@
LAMMPS (19 Mar 2020)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94)
using 1 OpenMP thread(s) per MPI task
# start a spin-lattice simulation from a data file
units metal
atom_style spin
dimension 3
boundary p p p
# necessary for the serial algorithm (sametag)
atom_modify map array
read_restart restart_hcp_cobalt.equil
WARNING: Restart file used different # of processors: 4 vs. 1 (../read_restart.cpp:736)
restoring atom style spin from restart
orthogonal box = (0 0 0) to (12.5355 21.7121 20.4704)
1 by 1 by 1 MPI processor grid
restoring pair style spin/exchange from restart
500 atoms
read_restart CPU = 0.00179696 secs
# setting mass, mag. moments, and interactions
mass 1 58.93
pair_style hybrid/overlay eam/alloy spin/exchange 4.0
pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co
pair_coeff * * spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567
neighbor 1.0 bin
neigh_modify every 1 check no delay 0
fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0
fix 2 all langevin/spin 0.0 0.0 21
fix 3 all nve/spin lattice moving
timestep 0.0001
# define outputs
compute out_mag all spin
compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
thermo 20
thermo_style custom step time v_magnorm pe v_emag v_tmag temp etotal
thermo_modify format float %20.15g
compute outsp all property/atom spx spy spz sp fmx fmy fmz
dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7]
run 100
Neighbor list info ...
update every 1 steps, delay 0 steps, check no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 7.49954
ghost atom cutoff = 7.49954
binsize = 3.74977, bins = 4 6 6
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair eam/alloy, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(2) pair spin/exchange, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 7.422 | 7.422 | 7.422 Mbytes
Step Time v_magnorm PotEng v_emag v_tmag Temp TotEng
1000 0 0.108317262557656 -2200.38241212222 -5.38245988668244 2538.4247868621 0 -2200.38241212222
1020 0.002 0.108317318495042 -2200.39172132133 -5.39179331134703 2513.42968070374 0.144319963844279 -2200.38241256643
1040 0.004 0.108317415558744 -2200.41811580407 -5.418541526637 2478.87571728648 0.553516420254567 -2200.38241354532
1060 0.006 0.108317473592946 -2200.45801216332 -5.45990062771403 2449.77257658726 1.17203792179707 -2200.38241476526
1080 0.008 0.108317450745396 -2200.5068824087 -5.51245983698347 2427.25022669715 1.92968606059505 -2200.3824160902
1100 0.01 0.108317381572202 -2200.55976028827 -5.57250071024394 2400.86131889957 2.74946927499959 -2200.38241728649
Loop time of 0.954493 on 1 procs for 100 steps with 500 atoms
Performance: 0.905 ns/day, 26.514 hours/ns, 104.768 timesteps/s
100.0% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.27043 | 0.27043 | 0.27043 | 0.0 | 28.33
Neigh | 0.26148 | 0.26148 | 0.26148 | 0.0 | 27.40
Comm | 0.0071123 | 0.0071123 | 0.0071123 | 0.0 | 0.75
Output | 0.14169 | 0.14169 | 0.14169 | 0.0 | 14.84
Modify | 0.2726 | 0.2726 | 0.2726 | 0.0 | 28.56
Other | | 0.001178 | | | 0.12
Nlocal: 500 ave 500 max 500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 2534 ave 2534 max 2534 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 36500 ave 36500 max 36500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 73000 ave 73000 max 73000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 73000
Ave neighs/atom = 146
Neighbor list builds = 100
Dangerous builds not checked
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:01

View File

@ -1,115 +0,0 @@
LAMMPS (19 Mar 2020)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94)
using 1 OpenMP thread(s) per MPI task
# start a spin-lattice simulation from a data file
units metal
atom_style spin
dimension 3
boundary p p p
# necessary for the serial algorithm (sametag)
atom_modify map array
read_restart restart_hcp_cobalt.equil
restoring atom style spin from restart
orthogonal box = (0 0 0) to (12.5355 21.7121 20.4704)
1 by 2 by 2 MPI processor grid
restoring pair style spin/exchange from restart
500 atoms
read_restart CPU = 0.00173593 secs
# setting mass, mag. moments, and interactions
mass 1 58.93
pair_style hybrid/overlay eam/alloy spin/exchange 4.0
pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co
pair_coeff * * spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567
neighbor 1.0 bin
neigh_modify every 1 check no delay 0
fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0
fix 2 all langevin/spin 0.0 0.0 21
fix 3 all nve/spin lattice moving
timestep 0.0001
# define outputs
compute out_mag all spin
compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
thermo 20
thermo_style custom step time v_magnorm pe v_emag v_tmag temp etotal
thermo_modify format float %20.15g
compute outsp all property/atom spx spy spz sp fmx fmy fmz
dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7]
run 100
Neighbor list info ...
update every 1 steps, delay 0 steps, check no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 7.49954
ghost atom cutoff = 7.49954
binsize = 3.74977, bins = 4 6 6
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair eam/alloy, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(2) pair spin/exchange, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 7.324 | 7.324 | 7.324 Mbytes
Step Time v_magnorm PotEng v_emag v_tmag Temp TotEng
1000 0 0.108317262557656 -2200.38241212182 -5.38245988668244 2538.4247868621 0 -2200.38241212182
1020 0.002 0.108317316216432 -2200.39172132147 -5.39179331147409 2513.42945241007 0.14431996581917 -2200.38241256644
1040 0.004 0.108317347939802 -2200.41811580574 -5.41854152831072 2478.87544274124 0.553516446104432 -2200.38241354532
1060 0.006 0.108317342440309 -2200.45801216927 -5.45990063373049 2449.77218633122 1.17203801398165 -2200.38241476526
1080 0.008 0.108317320345284 -2200.50688241767 -5.51245984623572 2427.2497145488 1.92968619968329 -2200.3824160902
1100 0.01 0.10831728372281 -2200.55976028296 -5.57250070536486 2400.86059511731 2.74946919265255 -2200.38241728649
Loop time of 0.405615 on 4 procs for 100 steps with 500 atoms
Performance: 2.130 ns/day, 11.267 hours/ns, 246.539 timesteps/s
99.7% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.075661 | 0.076798 | 0.077343 | 0.2 | 18.93
Neigh | 0.063154 | 0.064974 | 0.066991 | 0.5 | 16.02
Comm | 0.012538 | 0.013787 | 0.015151 | 0.8 | 3.40
Output | 0.039155 | 0.040842 | 0.042502 | 0.6 | 10.07
Modify | 0.20709 | 0.20883 | 0.21036 | 0.3 | 51.49
Other | | 0.0003826 | | | 0.09
Nlocal: 125 ave 127 max 122 min
Histogram: 1 0 0 0 1 0 0 0 0 2
Nghost: 1387 ave 1390 max 1385 min
Histogram: 2 0 0 0 0 0 1 0 0 1
Neighs: 9125 ave 9272 max 8945 min
Histogram: 1 0 0 1 0 0 0 0 1 1
FullNghs: 18250 ave 18542 max 17812 min
Histogram: 1 0 0 0 1 0 0 0 0 2
Total # of neighbors = 73000
Ave neighs/atom = 146
Neighbor list builds = 100
Dangerous builds not checked
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:00

View File

@ -1,120 +0,0 @@
LAMMPS (19 Mar 2020)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94)
using 1 OpenMP thread(s) per MPI task
# fcc cobalt in a 3d periodic box
units metal
atom_style spin
dimension 3
boundary p p p
# necessary for the serial algorithm (sametag)
atom_modify map array
lattice hcp 2.5071
Lattice spacing in x,y,z = 2.5071 4.34242 4.09408
region box block 0.0 5.0 0.0 5.0 0.0 5.0
create_box 1 box
Created orthogonal box = (0 0 0) to (12.5355 21.7121 20.4704)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 500 atoms
create_atoms CPU = 0.000952005 secs
# setting mass, mag. moments, and interactions for cobalt
mass 1 58.93
set group all spin/random 31 1.72
500 settings made for spin/random
pair_style spin/exchange 4.0
pair_coeff * * exchange 4.0 0.3593 1.135028015e-05 1.064568567
neighbor 0.1 bin
neigh_modify every 10 check yes delay 20
fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0
fix 2 all langevin/spin 100.0 0.01 21
fix 3 all nve/spin lattice frozen
timestep 0.0001
# compute and output options
compute out_mag all spin
compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
thermo_style custom step time v_magnorm pe v_emag temp etotal
thermo 100
compute outsp all property/atom spx spy spz sp fmx fmy fmz
dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7]
run 1000
Neighbor list info ...
update every 10 steps, delay 20 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 4.1
ghost atom cutoff = 4.1
binsize = 2.05, bins = 7 11 10
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair spin/exchange, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.947 | 6.947 | 6.947 Mbytes
Step Time v_magnorm PotEng v_emag Temp TotEng
0 0 0.076558814 0.89911794 0.89911794 0 0.89911794
100 0.01 0.077628154 0.36693917 0.36693917 0 0.36693917
200 0.02 0.076678996 -0.20242315 -0.20242315 0 -0.20242315
300 0.03 0.079174837 -0.67595514 -0.67595514 0 -0.67595514
400 0.04 0.085031632 -1.5172851 -1.5172851 0 -1.5172851
500 0.05 0.08702747 -2.0426628 -2.0426628 0 -2.0426628
600 0.06 0.087066482 -2.6297745 -2.6297745 0 -2.6297745
700 0.07 0.089788894 -3.314538 -3.314538 0 -3.314538
800 0.08 0.091699611 -4.0287043 -4.0287043 0 -4.0287043
900 0.09 0.090038899 -4.600601 -4.600601 0 -4.600601
1000 0.1 0.093257309 -5.2352261 -5.2352261 0 -5.2352261
Loop time of 3.30071 on 1 procs for 1000 steps with 500 atoms
Performance: 2.618 ns/day, 9.169 hours/ns, 302.965 timesteps/s
99.3% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.3844 | 0.3844 | 0.3844 | 0.0 | 11.65
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.019863 | 0.019863 | 0.019863 | 0.0 | 0.60
Output | 1.3844 | 1.3844 | 1.3844 | 0.0 | 41.94
Modify | 1.5084 | 1.5084 | 1.5084 | 0.0 | 45.70
Other | | 0.00367 | | | 0.11
Nlocal: 500 ave 500 max 500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1221 ave 1221 max 1221 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 10000 ave 10000 max 10000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 10000
Ave neighs/atom = 20
Neighbor list builds = 0
Dangerous builds = 0
write_restart restart_hcp_cobalt.equil
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:03

View File

@ -1,120 +0,0 @@
LAMMPS (19 Mar 2020)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94)
using 1 OpenMP thread(s) per MPI task
# fcc cobalt in a 3d periodic box
units metal
atom_style spin
dimension 3
boundary p p p
# necessary for the serial algorithm (sametag)
atom_modify map array
lattice hcp 2.5071
Lattice spacing in x,y,z = 2.5071 4.34242 4.09408
region box block 0.0 5.0 0.0 5.0 0.0 5.0
create_box 1 box
Created orthogonal box = (0 0 0) to (12.5355 21.7121 20.4704)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 500 atoms
create_atoms CPU = 0.000663042 secs
# setting mass, mag. moments, and interactions for cobalt
mass 1 58.93
set group all spin/random 31 1.72
500 settings made for spin/random
pair_style spin/exchange 4.0
pair_coeff * * exchange 4.0 0.3593 1.135028015e-05 1.064568567
neighbor 0.1 bin
neigh_modify every 10 check yes delay 20
fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0
fix 2 all langevin/spin 100.0 0.01 21
fix 3 all nve/spin lattice frozen
timestep 0.0001
# compute and output options
compute out_mag all spin
compute out_pe all pe
compute out_ke all ke
compute out_temp all temp
variable magz equal c_out_mag[3]
variable magnorm equal c_out_mag[4]
variable emag equal c_out_mag[5]
variable tmag equal c_out_mag[6]
thermo_style custom step time v_magnorm pe v_emag temp etotal
thermo 100
compute outsp all property/atom spx spy spz sp fmx fmy fmz
dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7]
run 1000
Neighbor list info ...
update every 10 steps, delay 20 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 4.1
ghost atom cutoff = 4.1
binsize = 2.05, bins = 7 11 10
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair spin/exchange, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.868 | 6.868 | 6.868 Mbytes
Step Time v_magnorm PotEng v_emag Temp TotEng
0 0 0.076558814 0.89911794 0.89911794 0 0.89911794
100 0.01 0.078299981 0.44129792 0.44129792 0 0.44129792
200 0.02 0.081260508 -0.21742361 -0.21742361 0 -0.21742361
300 0.03 0.081195603 -0.87041046 -0.87041046 0 -0.87041046
400 0.04 0.087298495 -1.7069519 -1.7069519 0 -1.7069519
500 0.05 0.087663924 -2.1883045 -2.1883045 0 -2.1883045
600 0.06 0.091713683 -2.9267461 -2.9267461 0 -2.9267461
700 0.07 0.093779119 -3.353314 -3.353314 0 -3.353314
800 0.08 0.097960611 -3.9344284 -3.9344284 0 -3.9344284
900 0.09 0.10193463 -4.7944004 -4.7944004 0 -4.7944004
1000 0.1 0.10831726 -5.3824599 -5.3824599 0 -5.3824599
Loop time of 1.7839 on 4 procs for 1000 steps with 500 atoms
Performance: 4.843 ns/day, 4.955 hours/ns, 560.569 timesteps/s
99.5% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.10068 | 0.10749 | 0.11461 | 1.5 | 6.03
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.052378 | 0.062171 | 0.07177 | 2.8 | 3.49
Output | 0.4054 | 0.42334 | 0.44025 | 2.0 | 23.73
Modify | 1.174 | 1.1893 | 1.2043 | 1.1 | 66.67
Other | | 0.001558 | | | 0.09
Nlocal: 125 ave 125 max 125 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 597.5 ave 600 max 595 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 2500 ave 2500 max 2500 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 10000
Ave neighs/atom = 20
Neighbor list builds = 0
Dangerous builds = 0
write_restart restart_hcp_cobalt.equil
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:01

4
src/.gitignore vendored
View File

@ -1661,10 +1661,14 @@
/fix_pimd.h /fix_pimd.h
/fix_pimd_langevin.cpp /fix_pimd_langevin.cpp
/fix_pimd_langevin.h /fix_pimd_langevin.h
/fix_pimd_langevin_bosonic.cpp
/fix_pimd_langevin_bosonic.h
/fix_alchemy.cpp /fix_alchemy.cpp
/fix_alchemy.h /fix_alchemy.h
/fix_pimd_nvt.cpp /fix_pimd_nvt.cpp
/fix_pimd_nvt.h /fix_pimd_nvt.h
/fix_pimd_nvt_bosonic.cpp
/fix_pimd_nvt_bosonic.h
/fix_qbmsst.cpp /fix_qbmsst.cpp
/fix_qbmsst.h /fix_qbmsst.h
/fix_qtb.cpp /fix_qtb.cpp

View File

@ -82,6 +82,7 @@ FixAmoebaBiTorsion::FixAmoebaBiTorsion(LAMMPS *lmp, int narg, char **arg) :
wd_section = 1; wd_section = 1;
respa_level_support = 1; respa_level_support = 1;
ilevel_respa = 0; ilevel_respa = 0;
stores_ids = 1;
MPI_Comm_rank(world,&me); MPI_Comm_rank(world,&me);
MPI_Comm_size(world,&nprocs); MPI_Comm_size(world,&nprocs);

View File

@ -62,6 +62,7 @@ FixAmoebaPiTorsion::FixAmoebaPiTorsion(LAMMPS *lmp, int narg, char **arg) :
wd_section = 1; wd_section = 1;
respa_level_support = 1; respa_level_support = 1;
ilevel_respa = 0; ilevel_respa = 0;
stores_ids = 1;
MPI_Comm_rank(world,&me); MPI_Comm_rank(world,&me);
MPI_Comm_size(world,&nprocs); MPI_Comm_size(world,&nprocs);

View File

@ -430,7 +430,7 @@ double BondBPMSpringPlastic::single(int type, double rsq, int i, int j, double &
{ {
if (type <= 0) return 0.0; if (type <= 0) return 0.0;
double r0, ep; double r0 = 0.0, ep = 0.0;
for (int n = 0; n < atom->num_bond[i]; n++) { for (int n = 0; n < atom->num_bond[i]; n++) {
if (atom->bond_atom[i][n] == atom->tag[j]) { if (atom->bond_atom[i][n] == atom->tag[j]) {
r0 = fix_bond_history->get_atom_value(i, n, 0); r0 = fix_bond_history->get_atom_value(i, n, 0);
@ -471,7 +471,7 @@ double BondBPMSpringPlastic::single(int type, double rsq, int i, int j, double &
// set single_extra quantities // set single_extra quantities
svector[0] = r0; svector[0] = r0;
svector[0] = (1.0 + ep) * r0; svector[1] = (1.0 + ep) * r0;
return 0.0; return 0.0;
} }

View File

@ -1117,6 +1117,11 @@ void ComputeStressMop::compute_dihedrals()
df[1] = sgn * (f1[1] + f3[1]); df[1] = sgn * (f1[1] + f3[1]);
df[2] = sgn * (f1[2] + f3[2]); df[2] = sgn * (f1[2] + f3[2]);
} }
// no if matches
else {
df[0] = df[1] = df[2] = 0.0;
}
local_contribution[0] += df[0] / area * nktv2p; local_contribution[0] += df[0] / area * nktv2p;
local_contribution[1] += df[1] / area * nktv2p; local_contribution[1] += df[1] / area * nktv2p;
local_contribution[2] += df[2] / area * nktv2p; local_contribution[2] += df[2] / area * nktv2p;

View File

@ -60,6 +60,7 @@ FixSMD_TLSPH_ReferenceConfiguration::FixSMD_TLSPH_ReferenceConfiguration(LAMMPS
if (atom->map_style == Atom::MAP_NONE) if (atom->map_style == Atom::MAP_NONE)
error->all(FLERR, "Pair tlsph with partner list requires an atom map, see atom_modify"); error->all(FLERR, "Pair tlsph with partner list requires an atom map, see atom_modify");
stores_ids = 1;
maxpartner = 1; maxpartner = 1;
npartner = nullptr; npartner = nullptr;
partner = nullptr; partner = nullptr;

View File

@ -87,6 +87,7 @@ FixCMAP::FixCMAP(LAMMPS *lmp, int narg, char **arg) :
respa_level_support = 1; respa_level_support = 1;
ilevel_respa = 0; ilevel_respa = 0;
eflag_caller = 1; eflag_caller = 1;
stores_ids = 1;
// allocate memory for CMAP data // allocate memory for CMAP data

View File

@ -52,6 +52,7 @@ FixPeriNeigh::FixPeriNeigh(LAMMPS *lmp,int narg, char **arg) :
restart_global = 1; restart_global = 1;
restart_peratom = 1; restart_peratom = 1;
first = 1; first = 1;
stores_ids = 1;
// perform initial allocation of atom-based arrays // perform initial allocation of atom-based arrays
// register with atom class // register with atom class

View File

@ -23,6 +23,7 @@
#include "fix_qtpie_reaxff.h" #include "fix_qtpie_reaxff.h"
#include "atom.h" #include "atom.h"
#include "citeme.h"
#include "comm.h" #include "comm.h"
#include "domain.h" #include "domain.h"
#include "error.h" #include "error.h"
@ -52,6 +53,19 @@ static constexpr double CONV_TO_EV = 14.4;
static constexpr double QSUMSMALL = 0.00001; static constexpr double QSUMSMALL = 0.00001;
static constexpr double ANGSTROM_TO_BOHRRADIUS = 1.8897261259; static constexpr double ANGSTROM_TO_BOHRRADIUS = 1.8897261259;
static const char cite_fix_qtpie_reax[] =
"fix qtpie/reaxff command: \n\n"
"@Article{Kritikos20,\n"
" author = {E. Kritikos and A. Giusti},\n"
" title = {Reactive Molecular Dynamics Investigation of Toluene Oxidation under Electrostatic Fields: Effect of the Modeling of Local Charge Distribution},\n"
" journal = {The Journal of Physical Chemistry A},\n"
" volume = {124},\n"
" number = {51},\n"
" pages = {10705--10716},\n"
" year = {2020},\n"
" publisher = {ACS Publications}\n"
"}\n\n";
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
FixQtpieReaxFF::FixQtpieReaxFF(LAMMPS *lmp, int narg, char **arg) : FixQtpieReaxFF::FixQtpieReaxFF(LAMMPS *lmp, int narg, char **arg) :
@ -165,6 +179,8 @@ FixQtpieReaxFF::~FixQtpieReaxFF()
void FixQtpieReaxFF::post_constructor() void FixQtpieReaxFF::post_constructor()
{ {
if (lmp->citeme) lmp->citeme->add(cite_fix_qtpie_reax);
grow_arrays(atom->nmax); grow_arrays(atom->nmax);
for (int i = 0; i < atom->nmax; i++) for (int i = 0; i < atom->nmax; i++)
for (int j = 0; j < nprev; ++j) for (int j = 0; j < nprev; ++j)

View File

@ -234,6 +234,12 @@ namespace ReaxFF {
if (lgflag) { if (lgflag) {
values = reader.next_values(0); values = reader.next_values(0);
++lineno; ++lineno;
// if line does not start with a floating point number, i.e. is the start
// of the data for the next element, the file does not support lgflag != 0
if (!values.matches("^\\s*\\f+\\s*"))
THROW_ERROR("ReaxFF potential file is not compatible with 'lgvdw yes'");
CHECK_COLUMNS(2); CHECK_COLUMNS(2);
sbp[i].lgcij = values.next_double(); sbp[i].lgcij = values.next_double();
sbp[i].lgre = values.next_double(); sbp[i].lgre = values.next_double();

View File

@ -113,7 +113,8 @@ FixPIMDLangevin::FixPIMDLangevin(LAMMPS *lmp, int narg, char **arg) :
int seed = -1; int seed = -1;
if (domain->dimension != 3) error->universe_all(FLERR, "Fix pimd/langevin requires a 3d system"); if (domain->dimension != 3)
error->universe_all(FLERR, fmt::format("Fix {} requires a 3d system", style));
for (int i = 0; i < 6; i++) { for (int i = 0; i < 6; i++) {
p_flag[i] = 0; p_flag[i] = 0;
@ -127,7 +128,7 @@ FixPIMDLangevin::FixPIMDLangevin(LAMMPS *lmp, int narg, char **arg) :
else if (strcmp(arg[i + 1], "pimd") == 0) else if (strcmp(arg[i + 1], "pimd") == 0)
method = PIMD; method = PIMD;
else else
error->universe_all(FLERR, "Unknown method parameter for fix pimd/langevin"); error->universe_all(FLERR, fmt::format("Unknown method parameter for fix {}", style));
} else if (strcmp(arg[i], "integrator") == 0) { } else if (strcmp(arg[i], "integrator") == 0) {
if (strcmp(arg[i + 1], "obabo") == 0) if (strcmp(arg[i + 1], "obabo") == 0)
integrator = OBABO; integrator = OBABO;
@ -135,8 +136,9 @@ FixPIMDLangevin::FixPIMDLangevin(LAMMPS *lmp, int narg, char **arg) :
integrator = BAOAB; integrator = BAOAB;
else else
error->universe_all(FLERR, error->universe_all(FLERR,
"Unknown integrator parameter for fix pimd/langevin. Only obabo and " fmt::format("Unknown integrator parameter for fix {}. Only obabo and "
"baoab integrators are supported!"); "baoab integrators are supported!",
style));
} else if (strcmp(arg[i], "ensemble") == 0) { } else if (strcmp(arg[i], "ensemble") == 0) {
if (strcmp(arg[i + 1], "nve") == 0) { if (strcmp(arg[i + 1], "nve") == 0) {
ensemble = NVE; ensemble = NVE;
@ -156,15 +158,16 @@ FixPIMDLangevin::FixPIMDLangevin(LAMMPS *lmp, int narg, char **arg) :
pstat_flag = 1; pstat_flag = 1;
} else } else
error->universe_all(FLERR, error->universe_all(FLERR,
"Unknown ensemble parameter for fix pimd/langevin. Only nve, nvt, nph, " fmt::format("Unknown ensemble parameter for fix {}. Only nve, nvt, "
"and npt ensembles are supported!"); "nph, and npt ensembles are supported!",
style));
} else if (strcmp(arg[i], "fmass") == 0) { } else if (strcmp(arg[i], "fmass") == 0) {
fmass = utils::numeric(FLERR, arg[i + 1], false, lmp); fmass = utils::numeric(FLERR, arg[i + 1], false, lmp);
if (fmass < 0.0 || fmass > np) if (fmass < 0.0 || fmass > np)
error->universe_all(FLERR, "Invalid fmass value for fix pimd/langevin"); error->universe_all(FLERR, fmt::format("Invalid fmass value for fix {}", style));
} else if (strcmp(arg[i], "sp") == 0) { } else if (strcmp(arg[i], "sp") == 0) {
sp = utils::numeric(FLERR, arg[i + 1], false, lmp); sp = utils::numeric(FLERR, arg[i + 1], false, lmp);
if (sp < 0.0) error->universe_all(FLERR, "Invalid sp value for fix pimd/langevin"); if (sp < 0.0) error->universe_all(FLERR, fmt::format("Invalid sp value for fix {}", style));
} else if (strcmp(arg[i], "fmmode") == 0) { } else if (strcmp(arg[i], "fmmode") == 0) {
if (strcmp(arg[i + 1], "physical") == 0) if (strcmp(arg[i + 1], "physical") == 0)
fmmode = PHYSICAL; fmmode = PHYSICAL;
@ -172,8 +175,9 @@ FixPIMDLangevin::FixPIMDLangevin(LAMMPS *lmp, int narg, char **arg) :
fmmode = NORMAL; fmmode = NORMAL;
else else
error->universe_all(FLERR, error->universe_all(FLERR,
"Unknown fictitious mass mode for fix pimd/langevin. Only physical " fmt::format("Unknown fictitious mass mode for fix {}. Only physical "
"mass and normal mode mass are supported!"); "mass and normal mode mass are supported!",
style));
} else if (strcmp(arg[i], "scale") == 0) { } else if (strcmp(arg[i], "scale") == 0) {
if (method == PIMD) if (method == PIMD)
error->universe_all( error->universe_all(
@ -182,10 +186,11 @@ FixPIMDLangevin::FixPIMDLangevin(LAMMPS *lmp, int narg, char **arg) :
"scale parameter if you do want to use method pimd."); "scale parameter if you do want to use method pimd.");
pilescale = utils::numeric(FLERR, arg[i + 1], false, lmp); pilescale = utils::numeric(FLERR, arg[i + 1], false, lmp);
if (pilescale < 0.0) if (pilescale < 0.0)
error->universe_all(FLERR, "Invalid PILE_L scale value for fix pimd/langevin"); error->universe_all(FLERR, fmt::format("Invalid PILE_L scale value for fix {}", style));
} else if (strcmp(arg[i], "temp") == 0) { } else if (strcmp(arg[i], "temp") == 0) {
temp = utils::numeric(FLERR, arg[i + 1], false, lmp); temp = utils::numeric(FLERR, arg[i + 1], false, lmp);
if (temp < 0.0) error->universe_all(FLERR, "Invalid temp value for fix pimd/langevin"); if (temp < 0.0)
error->universe_all(FLERR, fmt::format("Invalid temp value for fix {}", style));
} else if (strcmp(arg[i], "lj") == 0) { } else if (strcmp(arg[i], "lj") == 0) {
lj_epsilon = utils::numeric(FLERR, arg[i + 1], false, lmp); lj_epsilon = utils::numeric(FLERR, arg[i + 1], false, lmp);
lj_sigma = utils::numeric(FLERR, arg[i + 2], false, lmp); lj_sigma = utils::numeric(FLERR, arg[i + 2], false, lmp);
@ -207,7 +212,7 @@ FixPIMDLangevin::FixPIMDLangevin(LAMMPS *lmp, int narg, char **arg) :
} else if (strcmp(arg[i + 1], "BZP") == 0) { } else if (strcmp(arg[i + 1], "BZP") == 0) {
barostat = BZP; barostat = BZP;
} else } else
error->universe_all(FLERR, "Unknown barostat parameter for fix pimd/langevin"); error->universe_all(FLERR, fmt::format("Unknown barostat parameter for fix {}", style));
} else if (strcmp(arg[i], "iso") == 0) { } else if (strcmp(arg[i], "iso") == 0) {
pstyle = ISO; pstyle = ISO;
p_flag[0] = p_flag[1] = p_flag[2] = 1; p_flag[0] = p_flag[1] = p_flag[2] = 1;
@ -237,7 +242,8 @@ FixPIMDLangevin::FixPIMDLangevin(LAMMPS *lmp, int narg, char **arg) :
pdim++; pdim++;
} else if (strcmp(arg[i], "taup") == 0) { } else if (strcmp(arg[i], "taup") == 0) {
tau_p = utils::numeric(FLERR, arg[i + 1], false, lmp); tau_p = utils::numeric(FLERR, arg[i + 1], false, lmp);
if (tau_p <= 0.0) error->universe_all(FLERR, "Invalid tau_p value for fix pimd/langevin"); if (tau_p <= 0.0)
error->universe_all(FLERR, fmt::format("Invalid tau_p value for fix {}", style));
} else if (strcmp(arg[i], "fixcom") == 0) { } else if (strcmp(arg[i], "fixcom") == 0) {
if (strcmp(arg[i + 1], "yes") == 0) if (strcmp(arg[i + 1], "yes") == 0)
removecomflag = 1; removecomflag = 1;
@ -403,6 +409,7 @@ FixPIMDLangevin::~FixPIMDLangevin()
memory->destroy(tagsend); memory->destroy(tagsend);
memory->destroy(tagrecv); memory->destroy(tagrecv);
memory->destroy(bufbeads); memory->destroy(bufbeads);
if (rootworld != MPI_COMM_NULL) MPI_Comm_free(&rootworld);
} }
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
@ -422,10 +429,10 @@ int FixPIMDLangevin::setmask()
void FixPIMDLangevin::init() void FixPIMDLangevin::init()
{ {
if (atom->map_style == Atom::MAP_NONE) if (atom->map_style == Atom::MAP_NONE)
error->all(FLERR, "Fix pimd/langevin requires an atom map, see atom_modify"); error->all(FLERR, fmt::format("Fix {} requires an atom map, see atom_modify", style));
if (universe->me == 0 && universe->uscreen) if (universe->me == 0 && universe->uscreen)
fprintf(universe->uscreen, "Fix pimd/langevin: initializing Path-Integral ...\n"); utils::print(universe->uscreen, "Fix {}: initializing Path-Integral ...\n", style);
// prepare the constants // prepare the constants
@ -448,8 +455,8 @@ void FixPIMDLangevin::init()
fbond = _fbond * force->mvv2e; fbond = _fbond * force->mvv2e;
if ((universe->me == 0) && (universe->uscreen)) if ((universe->me == 0) && (universe->uscreen))
fprintf(universe->uscreen, utils::print(universe->uscreen, "Fix {}: -P/(beta^2 * hbar^2) = {:20.7e} (kcal/mol/A^2)\n\n",
"Fix pimd/langevin: -P/(beta^2 * hbar^2) = %20.7lE (kcal/mol/A^2)\n\n", fbond); style, fbond);
if (integrator == OBABO) { if (integrator == OBABO) {
dtf = 0.5 * update->dt * force->ftm2v; dtf = 0.5 * update->dt * force->ftm2v;
@ -462,7 +469,7 @@ void FixPIMDLangevin::init()
dtv2 = dtv * dtv; dtv2 = dtv * dtv;
dtv3 = THIRD * dtv2 * dtv * force->ftm2v; dtv3 = THIRD * dtv2 * dtv * force->ftm2v;
} else { } else {
error->universe_all(FLERR, "Unknown integrator parameter for fix pimd/langevin"); error->universe_all(FLERR, fmt::format("Unknown integrator parameter for fix {}", style));
} }
comm_init(); comm_init();
@ -518,11 +525,15 @@ void FixPIMDLangevin::setup(int vflag)
nmpimd_transform(bufbeads, x, M_x2xp[universe->iworld]); nmpimd_transform(bufbeads, x, M_x2xp[universe->iworld]);
} else if (method == PIMD) { } else if (method == PIMD) {
prepare_coordinates(); prepare_coordinates();
if (cmode == SINGLE_PROC)
spring_force(); spring_force();
else if (cmode == MULTI_PROC)
error->universe_all(FLERR, "Method pimd only supports a single processor per bead");
} else { } else {
error->universe_all( error->universe_all(
FLERR, FLERR,
"Unknown method parameter for fix pimd/langevin. Only nmpimd and pimd are supported!"); fmt::format("Unknown method parameter for fix {}. Only nmpimd and pimd are supported!",
style));
} }
collect_xc(); collect_xc();
compute_spring_energy(); compute_spring_energy();
@ -584,7 +595,8 @@ void FixPIMDLangevin::initial_integrate(int /*vflag*/)
} else { } else {
error->universe_all( error->universe_all(
FLERR, FLERR,
"Unknown method parameter for fix pimd/langevin. Only nmpimd and pimd are supported!"); fmt::format("Unknown method parameter for fix {}. Only nmpimd and pimd are supported!",
style));
} }
} else if (integrator == BAOAB) { } else if (integrator == BAOAB) {
if (pstat_flag) { if (pstat_flag) {
@ -606,7 +618,8 @@ void FixPIMDLangevin::initial_integrate(int /*vflag*/)
} else { } else {
error->universe_all( error->universe_all(
FLERR, FLERR,
"Unknown method parameter for fix pimd/langevin. Only nmpimd and pimd are supported!"); fmt::format("Unknown method parameter for fix {}. Only nmpimd and pimd are supported!",
style));
} }
if (tstat_flag) { if (tstat_flag) {
o_step(); o_step();
@ -621,12 +634,14 @@ void FixPIMDLangevin::initial_integrate(int /*vflag*/)
} else { } else {
error->universe_all( error->universe_all(
FLERR, FLERR,
"Unknown method parameter for fix pimd/langevin. Only nmpimd and pimd are supported!"); fmt::format("Unknown method parameter for fix {}. Only nmpimd and pimd are supported!",
style));
} }
} else { } else {
error->universe_all(FLERR, error->universe_all(FLERR,
"Unknown integrator parameter for fix pimd/langevin. Only obabo and baoab " fmt::format("Unknown integrator parameter for fix {}. Only obabo and baoab "
"integrators are supported!"); "integrators are supported!",
style));
} }
collect_xc(); collect_xc();
@ -668,7 +683,7 @@ void FixPIMDLangevin::final_integrate()
} else if (integrator == BAOAB) { } else if (integrator == BAOAB) {
} else { } else {
error->universe_all(FLERR, "Unknown integrator parameter for fix pimd/langevin"); error->universe_all(FLERR, fmt::format("Unknown integrator parameter for fix {}", style));
} }
} }
@ -1042,8 +1057,9 @@ void FixPIMDLangevin::langevin_init()
c1 = exp(-gamma * update->dt); c1 = exp(-gamma * update->dt);
else else
error->universe_all(FLERR, error->universe_all(FLERR,
"Unknown integrator parameter for fix pimd/langevin. Only obabo and " fmt::format("Unknown integrator parameter for fix {}. Only obabo and baoab "
"baoab integrators are supported!"); "integrators are supported!",
style));
c2 = sqrt(1.0 - c1 * c1); // note that c1 and c2 here only works for the centroid mode. c2 = sqrt(1.0 - c1 * c1); // note that c1 and c2 here only works for the centroid mode.
@ -1065,8 +1081,9 @@ void FixPIMDLangevin::langevin_init()
c1_k[i] = exp(-1.0 * update->dt / tau_k[i]); c1_k[i] = exp(-1.0 * update->dt / tau_k[i]);
else else
error->universe_all(FLERR, error->universe_all(FLERR,
"Unknown integrator parameter for fix pimd/langevin. Only obabo and " fmt::format("Unknown integrator parameter for fix {}. Only obabo and "
"baoab integrators are supported!"); "baoab integrators are supported!",
style));
c2_k[i] = sqrt(1.0 - c1_k[i] * c1_k[i]); c2_k[i] = sqrt(1.0 - c1_k[i] * c1_k[i]);
} }
for (int i = 0; i < np; i++) { for (int i = 0; i < np; i++) {
@ -1417,7 +1434,9 @@ void FixPIMDLangevin::remove_com_motion()
} }
} }
} else { } else {
error->all(FLERR, "Unknown method for fix pimd/langevin. Only nmpimd and pimd are supported!"); error->all(
FLERR,
fmt::format("Unknown method for fix {}. Only nmpimd and pimd are supported!", style));
} }
} }
@ -1548,7 +1567,8 @@ void FixPIMDLangevin::compute_spring_energy()
} else { } else {
error->universe_all( error->universe_all(
FLERR, FLERR,
"Unknown method parameter for fix pimd/langevin. Only nmpimd and pimd are supported!"); fmt::format("Unknown method parameter for fix {}. Only nmpimd and pimd are supported!",
style));
} }
} }
@ -1612,7 +1632,8 @@ void FixPIMDLangevin::compute_p_cv()
} else { } else {
error->universe_all( error->universe_all(
FLERR, FLERR,
"Unknown method parameter for fix pimd/langevin. Only nmpimd and pimd are supported!"); fmt::format("Unknown method parameter for fix {}. Only nmpimd and pimd are supported!",
style));
} }
} }

View File

@ -86,10 +86,12 @@ FixPIMDBLangevin::FixPIMDBLangevin(LAMMPS *lmp, int narg, char **arg) :
} }
method = PIMD; method = PIMD;
size_vector = 6; size_vector = 6;
memory->create(f_tag_order, nbosons, 3, "FixPIMDBLangevin:f_tag_order"); memory->create(f_tag_order, nbosons, 3, "FixPIMDBLangevin:f_tag_order");
if (cmode != SINGLE_PROC)
error->universe_all(FLERR,
fmt::format("Fix {} only supports a single processor per bead", style));
} }
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
@ -98,7 +100,7 @@ FixPIMDBLangevin::~FixPIMDBLangevin()
{ {
memory->destroy(f_tag_order); memory->destroy(f_tag_order);
for (int i = 0; i < filtered_narg; ++i) delete[] filtered_args[i]; for (int i = 0; i < filtered_narg; ++i) delete[] filtered_args[i];
memory->destroy(filtered_args); delete[] filtered_args;
delete bosonic_exchange; delete bosonic_exchange;
} }

View File

@ -89,26 +89,28 @@ FixPIMDNVT::FixPIMDNVT(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg)
method = CMD; method = CMD;
else else
error->universe_all( error->universe_all(
FLERR, fmt::format("Unknown method parameter {} for fix pimd/nvt", arg[i + 1])); FLERR, fmt::format("Unknown method parameter {} for fix {}", arg[i + 1], style));
} else if (strcmp(arg[i], "fmass") == 0) { } else if (strcmp(arg[i], "fmass") == 0) {
fmass = utils::numeric(FLERR, arg[i + 1], false, lmp); fmass = utils::numeric(FLERR, arg[i + 1], false, lmp);
if ((fmass < 0.0) || (fmass > np)) if ((fmass < 0.0) || (fmass > np))
error->universe_all(FLERR, fmt::format("Invalid fmass value {} for fix pimd/nvt", fmass)); error->universe_all(FLERR, fmt::format("Invalid fmass value {} for fix {}", fmass, style));
} else if (strcmp(arg[i], "sp") == 0) { } else if (strcmp(arg[i], "sp") == 0) {
sp = utils::numeric(FLERR, arg[i + 1], false, lmp); sp = utils::numeric(FLERR, arg[i + 1], false, lmp);
if (sp < 0.0) error->universe_all(FLERR, "Invalid sp value for fix pimd/nvt"); if (sp < 0.0) error->universe_all(FLERR, fmt::format("Invalid sp value for fix {}", style));
} else if (strcmp(arg[i], "temp") == 0) { } else if (strcmp(arg[i], "temp") == 0) {
nhc_temp = utils::numeric(FLERR, arg[i + 1], false, lmp); nhc_temp = utils::numeric(FLERR, arg[i + 1], false, lmp);
if (nhc_temp < 0.0) error->universe_all(FLERR, "Invalid temp value for fix pimd/nvt"); if (nhc_temp < 0.0)
error->universe_all(FLERR, fmt::format("Invalid temp value for fix {}", style));
} else if (strcmp(arg[i], "nhc") == 0) { } else if (strcmp(arg[i], "nhc") == 0) {
nhc_nchain = utils::inumeric(FLERR, arg[i + 1], false, lmp); nhc_nchain = utils::inumeric(FLERR, arg[i + 1], false, lmp);
if (nhc_nchain < 2) error->universe_all(FLERR, "Invalid nhc value for fix pimd/nvt"); if (nhc_nchain < 2)
error->universe_all(FLERR, fmt::format("Invalid nhc value for fix {}", style));
} else } else
error->universe_all(FLERR, fmt::format("Unknown keyword {} for fix pimd/nvt", arg[i])); error->universe_all(FLERR, fmt::format("Unknown keyword {} for fix {}", arg[i], style));
} }
if (strcmp(update->unit_style, "lj") == 0) if (strcmp(update->unit_style, "lj") == 0)
error->all(FLERR, "Fix pimd/nvt does not support lj units"); error->all(FLERR, fmt::format("Fix {} does not support lj units", style));
/* Initiation */ /* Initiation */
@ -187,10 +189,10 @@ int FixPIMDNVT::setmask()
void FixPIMDNVT::init() void FixPIMDNVT::init()
{ {
if (atom->map_style == Atom::MAP_NONE) if (atom->map_style == Atom::MAP_NONE)
error->universe_all(FLERR, "Fix pimd/nvt requires an atom map, see atom_modify"); error->universe_all(FLERR, fmt::format("Fix {} requires an atom map, see atom_modify", style));
if (universe->me == 0 && universe->uscreen) if (universe->me == 0 && universe->uscreen)
fprintf(universe->uscreen, "Fix pimd/nvt initializing Path-Integral ...\n"); utils::print(universe->uscreen, "Fix {} initializing Path-Integral ...\n", style);
// prepare the constants // prepare the constants
@ -539,13 +541,15 @@ void FixPIMDNVT::nmpimd_transform(double **src, double **des, double *vector)
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
void FixPIMDNVT::pre_spring_force_estimators(){ void FixPIMDNVT::pre_spring_force_estimators()
{
vir_estimator(); vir_estimator();
} }
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
void FixPIMDNVT::vir_estimator() { void FixPIMDNVT::vir_estimator()
{
double **x = atom->x; double **x = atom->x;
double **f = atom->f; double **f = atom->f;
int nlocal = atom->nlocal; int nlocal = atom->nlocal;

View File

@ -26,6 +26,7 @@
#include "bosonic_exchange.h" #include "bosonic_exchange.h"
#include "atom.h" #include "atom.h"
#include "comm.h"
#include "error.h" #include "error.h"
#include "force.h" #include "force.h"
#include "universe.h" #include "universe.h"
@ -46,6 +47,9 @@ FixPIMDBNVT::FixPIMDBNVT(LAMMPS *lmp, int narg, char **arg) : FixPIMDNVT(lmp, na
error->universe_all(FLERR, error->universe_all(FLERR,
"Method not supported in fix pimdb/nvt; only methods PIMD and NMPIMD"); "Method not supported in fix pimdb/nvt; only methods PIMD and NMPIMD");
} }
if (comm->nprocs != 1)
error->universe_all(FLERR,
fmt::format("Fix {} only supports a single processor per bead", style));
} }
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */

View File

@ -105,6 +105,7 @@ void ComputeSpin::init()
// init length of vector of ptrs to Pair/Spin styles // init length of vector of ptrs to Pair/Spin styles
if (npairspin > 0) { if (npairspin > 0) {
delete[] spin_pairs;
spin_pairs = new PairSpin*[npairspin]; spin_pairs = new PairSpin*[npairspin];
} }
@ -142,6 +143,7 @@ void ComputeSpin::init()
nprecspin = precfixes.size(); nprecspin = precfixes.size();
if (nprecspin > 0) { if (nprecspin > 0) {
delete[] lockprecessionspin;
lockprecessionspin = new FixPrecessionSpin *[nprecspin]; lockprecessionspin = new FixPrecessionSpin *[nprecspin];
precession_spin_flag = 1; precession_spin_flag = 1;

View File

@ -185,6 +185,7 @@ void FixNVESpin::init()
// init length of vector of ptrs to Pair/Spin styles // init length of vector of ptrs to Pair/Spin styles
if (npairspin > 0) { if (npairspin > 0) {
delete[] spin_pairs;
spin_pairs = new PairSpin*[npairspin]; spin_pairs = new PairSpin*[npairspin];
} }
@ -231,6 +232,7 @@ void FixNVESpin::init()
// init length of vector of ptrs to precession/spin styles // init length of vector of ptrs to precession/spin styles
if (nprecspin > 0) { if (nprecspin > 0) {
delete[] lockprecessionspin;
lockprecessionspin = new FixPrecessionSpin*[nprecspin]; lockprecessionspin = new FixPrecessionSpin*[nprecspin];
} }
@ -582,7 +584,8 @@ void FixNVESpin::sectoring()
} }
if (rv == 0.0) if (rv == 0.0)
error->all(FLERR,"Illegal sectoring operation"); error->all(FLERR, Error::NOLASTLINE,
"No suitable cutoff found for sectoring operation: rv = {}", rv);
double rax = rsx/rv; double rax = rsx/rv;
double ray = rsy/rv; double ray = rsy/rv;
@ -598,7 +601,8 @@ void FixNVESpin::sectoring()
nsectors = sec[0]*sec[1]*sec[2]; nsectors = sec[0]*sec[1]*sec[2];
if (sector_flag && (nsectors != 8)) if (sector_flag && (nsectors != 8))
error->all(FLERR,"Illegal sectoring operation"); error->all(FLERR, Error::NOLASTLINE,
"Illegal sectoring operation resulting in {} sectors instead of 8", nsectors);
rsec[0] = rsx; rsec[0] = rsx;
rsec[1] = rsy; rsec[1] = rsy;

View File

@ -300,6 +300,14 @@ int MPI_Irecv(void *buf, int count, MPI_Datatype datatype, int source, int tag,
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
int MPI_Iprobe(int, int, MPI_Comm, int *flag, MPI_Status *)
{
if (flag) *flag = 0;
return 0;
}
/* ---------------------------------------------------------------------- */
int MPI_Wait(MPI_Request *request, MPI_Status *status) int MPI_Wait(MPI_Request *request, MPI_Status *status)
{ {
static int callcount = 0; static int callcount = 0;

Some files were not shown because too many files have changed in this diff Show More