Merge pull request #4481 from akohlmey/collected-small-fixes
Collected small fixes and changes
This commit is contained in:
@ -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)
|
||||||
|
|||||||
@ -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>`
|
||||||
|
|||||||
@ -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
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
113
doc/src/Developer_internal.rst
Normal file
113
doc/src/Developer_internal.rst
Normal 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
|
||||||
@ -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::
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -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
|
||||||
"""""""
|
"""""""
|
||||||
|
|||||||
@ -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
|
||||||
"""""""
|
"""""""
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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`
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
"""""""
|
"""""""
|
||||||
|
|||||||
@ -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).
|
|
||||||
@ -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
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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).
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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`
|
||||||
|
|||||||
@ -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)
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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 )
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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}
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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}
|
||||||
|
|
||||||
|
|||||||
@ -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.
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -0,0 +1,2 @@
|
|||||||
|
LAMMPS (4 Feb 2025 - Development - patch_4Feb2025-344-g0a4a2f6deb-modified)
|
||||||
|
Running on 4 partitions of processors
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -0,0 +1,2 @@
|
|||||||
|
LAMMPS (4 Feb 2025 - Development - patch_4Feb2025-344-g0a4a2f6deb-modified)
|
||||||
|
Running on 4 partitions of processors
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
136
examples/SPIN/read_restart/log.10Mar25.spin.read_data.g++.1
Normal file
136
examples/SPIN/read_restart/log.10Mar25.spin.read_data.g++.1
Normal 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
|
||||||
136
examples/SPIN/read_restart/log.10Mar25.spin.read_data.g++.4
Normal file
136
examples/SPIN/read_restart/log.10Mar25.spin.read_data.g++.4
Normal 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
|
||||||
135
examples/SPIN/read_restart/log.10Mar25.spin.restart.g++.1
Normal file
135
examples/SPIN/read_restart/log.10Mar25.spin.restart.g++.1
Normal 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
|
||||||
136
examples/SPIN/read_restart/log.10Mar25.spin.restart.g++.4
Normal file
136
examples/SPIN/read_restart/log.10Mar25.spin.restart.g++.4
Normal 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
|
||||||
142
examples/SPIN/read_restart/log.10Mar25.spin.write_restart.g++.1
Normal file
142
examples/SPIN/read_restart/log.10Mar25.spin.write_restart.g++.1
Normal 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
|
||||||
142
examples/SPIN/read_restart/log.10Mar25.spin.write_restart.g++.4
Normal file
142
examples/SPIN/read_restart/log.10Mar25.spin.write_restart.g++.4
Normal 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
|
||||||
@ -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
|
|
||||||
@ -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
|
|
||||||
@ -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
|
|
||||||
@ -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
|
|
||||||
@ -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
|
|
||||||
@ -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
|
|
||||||
Binary file not shown.
4
src/.gitignore
vendored
4
src/.gitignore
vendored
@ -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
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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();
|
||||||
|
|||||||
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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
Reference in New Issue
Block a user