Merge branch 'develop' into custom-thermo-headers
This commit is contained in:
@ -75,10 +75,11 @@ solids undergoing thermal motion.
|
||||
.. note::
|
||||
|
||||
Initial coordinates are stored in "unwrapped" form, by using the
|
||||
image flags associated with each atom. See the :doc:`dump custom <dump>` command for a discussion of "unwrapped" coordinates.
|
||||
See the Atoms section of the :doc:`read_data <read_data>` command for a
|
||||
discussion of image flags and how they are set for each atom. You can
|
||||
reset the image flags (e.g. to 0) before invoking this compute by
|
||||
image flags associated with each atom. See the :doc:`dump custom
|
||||
<dump>` command for a discussion of "unwrapped" coordinates. See the
|
||||
Atoms section of the :doc:`read_data <read_data>` command for a
|
||||
discussion of image flags and how they are set for each atom. You
|
||||
can reset the image flags (e.g. to 0) before invoking this compute by
|
||||
using the :doc:`set image <set>` command.
|
||||
|
||||
.. note::
|
||||
@ -108,7 +109,8 @@ distance\^2 :doc:`units <units>`.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
none
|
||||
|
||||
Compute *msd* cannot be used with a dynamic group.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
@ -74,8 +74,11 @@ the third is dimensionless.
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This compute is part of the EXTRA-COMPUTE package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
||||
Compute *msd/nongauss* cannot be used with a dynamic group.
|
||||
|
||||
This compute is part of the EXTRA-COMPUTE package. It is only enabled
|
||||
if LAMMPS was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
@ -19,6 +19,12 @@ Syntax
|
||||
* cutlo,cuthi = lo and hi cutoff for Taper radius
|
||||
* tolerance = precision to which charges will be equilibrated
|
||||
* params = reaxff or a filename
|
||||
* one or more keywords or keyword/value pairs may be appended
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
keyword = *maxiter*
|
||||
*maxiter* N = limit the number of iterations to *N*
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
@ -26,7 +32,7 @@ Examples
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix 1 all acks2/reaxff 1 0.0 10.0 1.0e-6 reaxff
|
||||
fix 1 all acks2/reaxff 1 0.0 10.0 1.0e-6 param.acks2
|
||||
fix 1 all acks2/reaxff 1 0.0 10.0 1.0e-6 param.acks2 maxiter 500
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
@ -44,14 +50,14 @@ the charge equilibration performed by fix acks2/reaxff, see the
|
||||
|
||||
The ACKS2 method minimizes the electrostatic energy of the system by
|
||||
adjusting the partial charge on individual atoms based on interactions
|
||||
with their neighbors. It requires some parameters for each atom type.
|
||||
with their neighbors. It requires some parameters for each atom type.
|
||||
If the *params* setting above is the word "reaxff", then these are
|
||||
extracted from the :doc:`pair_style reaxff <pair_reaxff>` command and
|
||||
the ReaxFF force field file it reads in. If a file name is specified
|
||||
for *params*\ , then the parameters are taken from the specified file
|
||||
and the file must contain one line for each atom type. The latter form
|
||||
must be used when performing QeQ with a non-ReaxFF potential. The lines
|
||||
should be formatted as follows:
|
||||
for *params*, then the parameters are taken from the specified file
|
||||
and the file must contain one line for each atom type. The latter
|
||||
form must be used when performing QeQ with a non-ReaxFF potential.
|
||||
The lines should be formatted as follows:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -67,13 +73,25 @@ ReaxFF potential file, except that eta is defined here as twice the eta
|
||||
value in the ReaxFF file. Note that unlike the rest of LAMMPS, the units
|
||||
of this fix are hard-coded to be A, eV, and electronic charge.
|
||||
|
||||
**Restart, fix_modify, output, run start/stop, minimize info:**
|
||||
The optional *maxiter* keyword allows changing the max number
|
||||
of iterations in the linear solver. The default value is 200.
|
||||
|
||||
.. note::
|
||||
|
||||
In order to solve the self-consistent equations for electronegativity
|
||||
equalization, LAMMPS imposes the additional constraint that all the
|
||||
charges in the fix group must add up to zero. The initial charge
|
||||
assignments should also satisfy this constraint. LAMMPS will print a
|
||||
warning if that is not the case.
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files
|
||||
<restart>`. No global scalar or vector 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 the :doc:`run <run>` command.
|
||||
<restart>`. This fix computes a global scalar (the number of
|
||||
iterations) for access by various :doc:`output commands <Howto_output>`.
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command.
|
||||
|
||||
This fix is invoked during :doc:`energy minimization <minimize>`.
|
||||
|
||||
@ -86,12 +104,12 @@ This fix is invoked during :doc:`energy minimization <minimize>`.
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This fix is part of the REAXFF package. It is only enabled if LAMMPS
|
||||
was built with that package. See the :doc:`Build package
|
||||
<Build_package>` doc page for more info.
|
||||
This fix is part of the REAXFF package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
This fix does not correctly handle interactions involving multiple
|
||||
periodic images of the same atom. Hence, it should not be used for
|
||||
periodic images of the same atom. Hence, it should not be used for
|
||||
periodic cell dimensions less than 10 angstroms.
|
||||
|
||||
This fix may be used in combination with :doc:`fix efield <fix_efield>`
|
||||
@ -105,7 +123,10 @@ Related commands
|
||||
|
||||
:doc:`pair_style reaxff <pair_reaxff>`, :doc:`fix qeq/reaxff <fix_qeq_reaxff>`
|
||||
|
||||
**Default:** none
|
||||
Default
|
||||
"""""""
|
||||
|
||||
maxiter 200
|
||||
|
||||
----------
|
||||
|
||||
|
||||
@ -70,7 +70,7 @@ Syntax
|
||||
|
||||
*remap* value = *x* or *v* or *none*
|
||||
x = remap coords of atoms in group into deforming box
|
||||
v = remap velocities of all atoms when they cross periodic boundaries
|
||||
v = remap velocities of atoms in group when they cross periodic boundaries
|
||||
none = no remapping of x or v
|
||||
*flip* value = *yes* or *no*
|
||||
allow or disallow box flips when it becomes highly skewed
|
||||
|
||||
@ -12,7 +12,7 @@ Syntax
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* move = style name of this fix command
|
||||
* style = *linear* or *wiggle* or *rotate* or *variable*
|
||||
* style = *linear* or *wiggle* or *rotate* or *transrot* or *variable*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -25,6 +25,11 @@ Syntax
|
||||
Px,Py,Pz = origin point of axis of rotation (distance units)
|
||||
Rx,Ry,Rz = axis of rotation vector
|
||||
period = period of rotation (time units)
|
||||
*transrot* args = Vx Vy Vz Px Py Pz Rx Ry Rz period
|
||||
Vx,Vy,Vz = components of velocity vector (velocity units)
|
||||
Px,Py,Pz = origin point of axis of rotation (distance units)
|
||||
Rx,Ry,Rz = axis of rotation vector
|
||||
period = period of rotation (time units)
|
||||
*variable* args = v_dx v_dy v_dz v_vx v_vy v_vz
|
||||
v_dx,v_dy,v_dz = 3 variable names that calculate x,y,z displacement as function of time, any component can be specified as NULL
|
||||
v_vx,v_vy,v_vz = 3 variable names that calculate x,y,z velocity as function of time, any component can be specified as NULL
|
||||
@ -44,6 +49,7 @@ Examples
|
||||
fix 1 boundary move wiggle 3.0 0.0 0.0 1.0 units box
|
||||
fix 2 boundary move rotate 0.0 0.0 0.0 0.0 0.0 1.0 5.0
|
||||
fix 2 boundary move variable v_myx v_myy NULL v_VX v_VY NULL
|
||||
fix 3 boundary move transrot 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.0 1.0 5.0 units box
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
@ -55,15 +61,17 @@ whose movement can influence nearby atoms.
|
||||
|
||||
.. note::
|
||||
|
||||
The atoms affected by this fix should not normally be time
|
||||
integrated by other fixes (e.g. :doc:`fix nve <fix_nve>`, :doc:`fix nvt <fix_nh>`), since that will change their positions and
|
||||
velocities twice.
|
||||
The atoms affected by this fix should not normally be time integrated
|
||||
by other fixes (e.g. :doc:`fix nve <fix_nve>`, :doc:`fix nvt
|
||||
<fix_nh>`), since that will change their positions and velocities
|
||||
twice.
|
||||
|
||||
.. note::
|
||||
|
||||
As atoms move due to this fix, they will pass through periodic
|
||||
boundaries and be remapped to the other side of the simulation box,
|
||||
just as they would during normal time integration (e.g. via the :doc:`fix nve <fix_nve>` command). It is up to you to decide whether
|
||||
just as they would during normal time integration (e.g. via the
|
||||
:doc:`fix nve <fix_nve>` command). It is up to you to decide whether
|
||||
periodic boundaries are appropriate with the kind of atom motion you
|
||||
are prescribing with this fix.
|
||||
|
||||
@ -73,11 +81,11 @@ whose movement can influence nearby atoms.
|
||||
position at the time the fix is specified. These initial coordinates
|
||||
are stored by the fix in "unwrapped" form, by using the image flags
|
||||
associated with each atom. See the :doc:`dump custom <dump>` command
|
||||
for a discussion of "unwrapped" coordinates. See the Atoms section of
|
||||
the :doc:`read_data <read_data>` command for a discussion of image flags
|
||||
and how they are set for each atom. You can reset the image flags
|
||||
(e.g. to 0) before invoking this fix by using the :doc:`set image <set>`
|
||||
command.
|
||||
for a discussion of "unwrapped" coordinates. See the Atoms section
|
||||
of the :doc:`read_data <read_data>` command for a discussion of image
|
||||
flags and how they are set for each atom. You can reset the image
|
||||
flags (e.g. to 0) before invoking this fix by using the :doc:`set
|
||||
image <set>` command.
|
||||
|
||||
----------
|
||||
|
||||
@ -118,13 +126,13 @@ notation as
|
||||
|
||||
where *X0* = (x0,y0,z0) is their position at the time the fix is
|
||||
specified, *A* is the specified amplitude vector with components
|
||||
(Ax,Ay,Az), *omega* is 2 PI / *period*, and *delta* is the time
|
||||
elapsed since the fix was specified. This style also sets the
|
||||
velocity of each atom to the time derivative of this expression. If
|
||||
any of the amplitude components is specified as NULL, then the
|
||||
position and velocity of that component is time integrated the same as
|
||||
the :doc:`fix nve <fix_nve>` command would perform, using the
|
||||
corresponding force component on the atom.
|
||||
(Ax,Ay,Az), *omega* is 2 PI / *period*, and *delta* is the time elapsed
|
||||
since the fix was specified. This style also sets the velocity of each
|
||||
atom to the time derivative of this expression. If any of the amplitude
|
||||
components is specified as NULL, then the position and velocity of that
|
||||
component is time integrated the same as the :doc:`fix nve <fix_nve>`
|
||||
command would perform, using the corresponding force component on the
|
||||
atom.
|
||||
|
||||
Note that the *wiggle* style is identical to using the *variable*
|
||||
style with :doc:`equal-style variables <variable>` that use the
|
||||
@ -139,21 +147,29 @@ swiggle() and cwiggle() functions. E.g.
|
||||
variable v equal v_omega*($A-cwiggle(0.0,$A,$T))
|
||||
fix 1 boundary move variable v_x NULL NULL v_v NULL NULL
|
||||
|
||||
The *rotate* style rotates atoms around a rotation axis *R* =
|
||||
(Rx,Ry,Rz) that goes through a point *P* = (Px,Py,Pz). The *period* of
|
||||
the rotation is also specified. The direction of rotation for the
|
||||
atoms around the rotation axis is consistent with the right-hand rule:
|
||||
if your right-hand thumb points along *R*, then your fingers wrap
|
||||
around the axis in the direction of rotation.
|
||||
The *rotate* style rotates atoms around a rotation axis *R* = (Rx,Ry,Rz)
|
||||
that goes through a point *P* = (Px,Py,Pz). The *period* of the
|
||||
rotation is also specified. The direction of rotation for the atoms
|
||||
around the rotation axis is consistent with the right-hand rule: if your
|
||||
right-hand thumb points along *R*, then your fingers wrap around the
|
||||
axis in the direction of rotation.
|
||||
|
||||
This style also sets the velocity of each atom to (omega cross Rperp)
|
||||
where omega is its angular velocity around the rotation axis and Rperp
|
||||
is a perpendicular vector from the rotation axis to the atom. If the
|
||||
defined :doc:`atom_style <atom_style>` assigns an angular velocity or
|
||||
angular momentum or orientation to each atom (:doc:`atom styles <atom_style>` sphere, ellipsoid, line, tri, body), then
|
||||
angular momentum or orientation to each atom (:doc:`atom styles
|
||||
<atom_style>` sphere, ellipsoid, line, tri, body), then
|
||||
those properties are also updated appropriately to correspond to the
|
||||
atom's motion and rotation over time.
|
||||
|
||||
The *transrot* style combines the effects of *rotate* and *linear* so
|
||||
that it is possible to prescribe a rotating group of atoms that also
|
||||
moves at a constant velocity. The arguments are for the translation
|
||||
first and then for the rotation. Since the rotation affects all
|
||||
coordinate components, it is not possible to set any of the
|
||||
translation vector components to NULL.
|
||||
|
||||
The *variable* style allows the position and velocity components of
|
||||
each atom to be set by formulas specified via the
|
||||
:doc:`variable <variable>` command. Each of the 6 variables is
|
||||
@ -165,10 +181,10 @@ Each variable must be of either the *equal* or *atom* style.
|
||||
a function of the timestep as well as of other simulation values.
|
||||
*Atom*\ -style variables compute a numeric quantity for each atom, that
|
||||
can be a function per-atom quantities, such as the atom's position, as
|
||||
well as of the timestep and other simulation values. Note that this
|
||||
fix stores the original coordinates of each atom (see note below) so
|
||||
that per-atom quantity can be used in an atom-style variable formula.
|
||||
See the :doc:`variable <variable>` command for details.
|
||||
well as of the timestep and other simulation values. Note that this fix
|
||||
stores the original coordinates of each atom (see note below) so that
|
||||
per-atom quantity can be used in an atom-style variable formula. See
|
||||
the :doc:`variable <variable>` command for details.
|
||||
|
||||
The first 3 variables (v_dx,v_dy,v_dz) specified for the *variable*
|
||||
style are used to calculate a displacement from the atom's original
|
||||
@ -206,8 +222,9 @@ spacings can be different in x,y,z.
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
This fix writes the original coordinates of moving atoms to :doc:`binary restart files <restart>`, as well as the initial timestep, so that
|
||||
the motion can be continuous in a restarted simulation. See the
|
||||
This fix writes the original coordinates of moving atoms to :doc:`binary
|
||||
restart files <restart>`, as well as the initial timestep, so that the
|
||||
motion can be continuous in a restarted simulation. See the
|
||||
:doc:`read_restart <read_restart>` command for info on how to re-specify
|
||||
a fix in an input script that reads a restart file, so that the
|
||||
operation of the fix continues in an uninterrupted fashion.
|
||||
@ -224,11 +241,12 @@ fix.
|
||||
|
||||
This fix produces a per-atom array which can be accessed by various
|
||||
:doc:`output commands <Howto_output>`. The number of columns for each
|
||||
atom is 3, and the columns store the original unwrapped x,y,z coords
|
||||
of each atom. The per-atom values can be accessed on any timestep.
|
||||
atom is 3, and the columns store the original unwrapped x,y,z coords of
|
||||
each atom. The per-atom values can be accessed on any timestep.
|
||||
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
|
||||
the :doc:`run <run>` command. This fix is not invoked during
|
||||
:doc:`energy minimization <minimize>`.
|
||||
|
||||
For :doc:`rRESPA time integration <run_style>`, this fix adjusts the
|
||||
position and velocity of atoms on the outermost rRESPA level.
|
||||
|
||||
@ -71,7 +71,7 @@ Syntax
|
||||
*no_affinity* values = none
|
||||
*kokkos* args = keyword value ...
|
||||
zero or more keyword/value pairs may be appended
|
||||
keywords = *neigh* or *neigh/qeq* or *neigh/thread* or *newton* or *binsize* or *comm* or *comm/exchange* or *comm/forward* *pair/comm/forward* *fix/comm/forward* or *comm/reverse* or *gpu/aware* or *pair/only*
|
||||
keywords = *neigh* or *neigh/qeq* or *neigh/thread* or *newton* or *binsize* or *comm* or *comm/exchange* or *comm/forward* *comm/pair/forward* *comm/fix/forward* or *comm/reverse* or *gpu/aware* or *pair/only*
|
||||
*neigh* value = *full* or *half*
|
||||
full = full neighbor list
|
||||
half = half neighbor list built in thread-safe manner
|
||||
@ -90,11 +90,11 @@ Syntax
|
||||
*binsize* value = size
|
||||
size = bin size for neighbor list construction (distance units)
|
||||
*comm* value = *no* or *host* or *device*
|
||||
use value for comm/exchange and comm/forward and pair/comm/forward and fix/comm/forward and comm/reverse
|
||||
use value for comm/exchange and comm/forward and comm/pair/forward and comm/fix/forward and comm/reverse
|
||||
*comm/exchange* value = *no* or *host* or *device*
|
||||
*comm/forward* value = *no* or *host* or *device*
|
||||
*pair/comm/forward* value = *no* or *device*
|
||||
*fix/comm/forward* value = *no* or *device*
|
||||
*comm/pair/forward* value = *no* or *device*
|
||||
*comm/fix/forward* value = *no* or *device*
|
||||
*comm/reverse* value = *no* or *host* or *device*
|
||||
no = perform communication pack/unpack in non-KOKKOS mode
|
||||
host = perform pack/unpack on host (e.g. with OpenMP threading)
|
||||
@ -498,8 +498,8 @@ because the GPU is faster at performing pairwise interactions, then this
|
||||
rule of thumb may give too large a binsize and the default should be
|
||||
overridden with a smaller value.
|
||||
|
||||
The *comm* and *comm/exchange* and *comm/forward* and *pair/comm/forward*
|
||||
and *fix/comm/forward* and comm/reverse*
|
||||
The *comm* and *comm/exchange* and *comm/forward* and *comm/pair/forward*
|
||||
and *comm/fix/forward* and comm/reverse*
|
||||
keywords determine whether the host or device performs the packing and
|
||||
unpacking of data when communicating per-atom data between processors.
|
||||
"Exchange" communication happens only on timesteps that neighbor lists
|
||||
@ -520,8 +520,8 @@ packing/unpacking data for the communication. A value of *host* means to
|
||||
use the host, typically a multi-core CPU, and perform the
|
||||
packing/unpacking in parallel with threads. A value of *device* means to
|
||||
use the device, typically a GPU, to perform the packing/unpacking
|
||||
operation. If a value of *host* is used for the *pair/comm/forward* or
|
||||
*fix/comm/forward* keyword, it will be automatically be changed to *no*
|
||||
operation. If a value of *host* is used for the *comm/pair/forward* or
|
||||
*comm/fix/forward* keyword, it will be automatically be changed to *no*
|
||||
since these keywords don't support *host* mode.
|
||||
|
||||
The optimal choice for these keywords depends on the input script and
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
// clang-format off
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/, Sandia National Laboratories
|
||||
@ -19,17 +18,17 @@
|
||||
#include "compute_msd_nongauss.h"
|
||||
|
||||
#include "atom.h"
|
||||
#include "update.h"
|
||||
#include "group.h"
|
||||
#include "domain.h"
|
||||
#include "fix_store.h"
|
||||
#include "group.h"
|
||||
#include "update.h"
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
ComputeMSDNonGauss::ComputeMSDNonGauss(LAMMPS *lmp, int narg, char **arg) :
|
||||
ComputeMSD(lmp, narg, arg)
|
||||
ComputeMSD(lmp, narg, arg)
|
||||
{
|
||||
size_vector = 3;
|
||||
}
|
||||
@ -43,8 +42,10 @@ void ComputeMSDNonGauss::compute_vector()
|
||||
// cm = current center of mass
|
||||
|
||||
double cm[3];
|
||||
if (comflag) group->xcm(igroup,masstotal,cm);
|
||||
else cm[0] = cm[1] = cm[2] = 0.0;
|
||||
if (comflag)
|
||||
group->xcm(igroup, masstotal, cm);
|
||||
else
|
||||
cm[0] = cm[1] = cm[2] = 0.0;
|
||||
|
||||
// dx,dy,dz = displacement of atom from original position
|
||||
// original unwrapped position is stored by fix
|
||||
@ -63,8 +64,8 @@ void ComputeMSDNonGauss::compute_vector()
|
||||
double yprd = domain->yprd;
|
||||
double zprd = domain->zprd;
|
||||
|
||||
double dx,dy,dz;
|
||||
int xbox,ybox,zbox;
|
||||
double dx, dy, dz;
|
||||
int xbox, ybox, zbox;
|
||||
|
||||
double msd[2];
|
||||
msd[0] = msd[1] = 0.0;
|
||||
@ -75,11 +76,11 @@ void ComputeMSDNonGauss::compute_vector()
|
||||
xbox = (image[i] & IMGMASK) - IMGMAX;
|
||||
ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
|
||||
zbox = (image[i] >> IMG2BITS) - IMGMAX;
|
||||
dx = x[i][0] + xbox*xprd - cm[0] - xoriginal[i][0];
|
||||
dy = x[i][1] + ybox*yprd - cm[1] - xoriginal[i][1];
|
||||
dz = x[i][2] + zbox*zprd - cm[2] - xoriginal[i][2];
|
||||
msd[0] += dx*dx + dy*dy + dz*dz;
|
||||
msd[1] += (dx*dx + dy*dy + dz*dz)*(dx*dx + dy*dy + dz*dz);
|
||||
dx = x[i][0] + xbox * xprd - cm[0] - xoriginal[i][0];
|
||||
dy = x[i][1] + ybox * yprd - cm[1] - xoriginal[i][1];
|
||||
dz = x[i][2] + zbox * zprd - cm[2] - xoriginal[i][2];
|
||||
msd[0] += dx * dx + dy * dy + dz * dz;
|
||||
msd[1] += (dx * dx + dy * dy + dz * dz) * (dx * dx + dy * dy + dz * dz);
|
||||
}
|
||||
|
||||
} else {
|
||||
@ -88,19 +89,18 @@ void ComputeMSDNonGauss::compute_vector()
|
||||
xbox = (image[i] & IMGMASK) - IMGMAX;
|
||||
ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
|
||||
zbox = (image[i] >> IMG2BITS) - IMGMAX;
|
||||
dx = x[i][0] + h[0]*xbox + h[5]*ybox + h[4]*zbox -
|
||||
cm[0] - xoriginal[i][0];
|
||||
dy = x[i][1] + h[1]*ybox + h[3]*zbox - cm[1] - xoriginal[i][1];
|
||||
dz = x[i][2] + h[2]*zbox - cm[2] - xoriginal[i][2];
|
||||
msd[0] += dx*dx + dy*dy + dz*dz;
|
||||
msd[1] += (dx*dx + dy*dy + dz*dz)*(dx*dx + dy*dy + dz*dz);
|
||||
dx = x[i][0] + h[0] * xbox + h[5] * ybox + h[4] * zbox - cm[0] - xoriginal[i][0];
|
||||
dy = x[i][1] + h[1] * ybox + h[3] * zbox - cm[1] - xoriginal[i][1];
|
||||
dz = x[i][2] + h[2] * zbox - cm[2] - xoriginal[i][2];
|
||||
msd[0] += dx * dx + dy * dy + dz * dz;
|
||||
msd[1] += (dx * dx + dy * dy + dz * dz) * (dx * dx + dy * dy + dz * dz);
|
||||
}
|
||||
}
|
||||
|
||||
MPI_Allreduce(msd,vector,2,MPI_DOUBLE,MPI_SUM,world);
|
||||
MPI_Allreduce(msd, vector, 2, MPI_DOUBLE, MPI_SUM, world);
|
||||
if (nmsd) {
|
||||
vector[0] /= nmsd;
|
||||
vector[1] /= nmsd;
|
||||
vector[2] = (3*vector[1])/(5*vector[0]*vector[0]) - 1;
|
||||
vector[2] = (3 * vector[1]) / (5 * vector[0] * vector[0]) - 1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1214,6 +1214,12 @@ struct params_lj_coul {
|
||||
F_FLOAT cut_ljsq,cut_coulsq,lj1,lj2,lj3,lj4,offset;
|
||||
};
|
||||
|
||||
// ReaxFF
|
||||
|
||||
struct alignas(4 * sizeof(int)) reax_int4 {
|
||||
int i0, i1, i2, i3;
|
||||
};
|
||||
|
||||
// Pair SNAP
|
||||
|
||||
#define SNAP_KOKKOS_REAL double
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -90,13 +90,13 @@ struct TagPairReaxComputeMulti1{};
|
||||
template<int NEIGHFLAG, int EFLAG>
|
||||
struct TagPairReaxComputeMulti2{};
|
||||
|
||||
template<bool POPULATE>
|
||||
struct TagPairReaxCountAngularTorsion{};
|
||||
template<int NEIGHFLAG, int EVFLAG>
|
||||
struct TagPairReaxComputeAngular{};
|
||||
|
||||
struct TagPairReaxComputeTorsionPreview{};
|
||||
struct TagPairReaxComputeAngularPreprocessed{};
|
||||
|
||||
template<int NEIGHFLAG, int EVFLAG>
|
||||
struct TagPairReaxComputeTorsion{};
|
||||
struct TagPairReaxComputeTorsionPreprocessed{};
|
||||
|
||||
template<int NEIGHFLAG, int EVFLAG>
|
||||
struct TagPairReaxComputeHydrogen{};
|
||||
@ -120,7 +120,7 @@ class PairReaxFFKokkos : public PairReaxFF {
|
||||
// "Blocking" factors to reduce thread divergence within some kernels
|
||||
using blocking_t = unsigned short int;
|
||||
|
||||
// "PairReaxFFComputeTorsionBlocking"
|
||||
// "PairReaxFFComputeTorsion"
|
||||
static constexpr int compute_torsion_blocksize = 8;
|
||||
|
||||
// "PairReaxBuildListsHalfBlocking"
|
||||
@ -176,9 +176,28 @@ class PairReaxFFKokkos : public PairReaxFF {
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator()(TagPairReaxBuildListsHalfPreview<NEIGHFLAG>, const int&) const;
|
||||
|
||||
// Isolated function that builds the hbond list, reused across
|
||||
// TagPairReaxBuildListsHalfBlocking, HalfBlockingPreview, HalfPreview
|
||||
template<int NEIGHFLAG>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void build_hb_list(F_FLOAT, int, int, int, int, int) const;
|
||||
|
||||
// Isolated function that builds the bond order list, reused across
|
||||
// TagPairReaxBuildListsHalfBlocking, HalfBlockingPreview, HalfPreview
|
||||
// Returns if we need to populate d_d* functions or not
|
||||
template<int NEIGHFLAG>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
bool build_bo_list(int, int, int, int, int, int&, int&) const;
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator()(TagPairReaxBuildListsFull, const int&) const;
|
||||
|
||||
// Isolated function that computes bond order parameters
|
||||
// Returns BO_s, BO_pi, BO_pi2, C12, C34, C56 by reference
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void compute_bo(F_FLOAT, int, int, F_FLOAT, F_FLOAT, F_FLOAT,
|
||||
F_FLOAT&, F_FLOAT&, F_FLOAT&, F_FLOAT&, F_FLOAT&, F_FLOAT&) const;
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator()(TagPairReaxZero, const int&) const;
|
||||
|
||||
@ -222,24 +241,39 @@ class PairReaxFFKokkos : public PairReaxFF {
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator()(TagPairReaxComputeMulti2<NEIGHFLAG,EFLAG>, const int&) const;
|
||||
|
||||
template<int NEIGHFLAG, int EVFLAG>
|
||||
template<bool POPULATE>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator()(TagPairReaxComputeAngular<NEIGHFLAG,EVFLAG>, const int&, EV_FLOAT_REAX&) const;
|
||||
void operator()(TagPairReaxCountAngularTorsion<POPULATE>, const int&) const;
|
||||
|
||||
// Abstraction for computing SBSO2, CSBO2, dSBO1, dsBO2
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void compute_angular_sbo(int, int, int, int) const;
|
||||
|
||||
// Abstraction for counting and populating angular intermediates
|
||||
template<bool POPULATE>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
int preprocess_angular(int, int, int, int, int) const;
|
||||
|
||||
// Abstraction for counting and populating torsion intermediated
|
||||
template<bool POPULATE>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
int preprocess_torsion(int, int, int, F_FLOAT, F_FLOAT, F_FLOAT, int, int, int) const;
|
||||
|
||||
template<int NEIGHFLAG, int EVFLAG>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator()(TagPairReaxComputeAngular<NEIGHFLAG,EVFLAG>, const int&) const;
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator()(TagPairReaxComputeTorsionPreview, const int&) const;
|
||||
void operator()(TagPairReaxComputeAngularPreprocessed<NEIGHFLAG,EVFLAG>, const int&, EV_FLOAT_REAX&) const;
|
||||
|
||||
template<int NEIGHFLAG, int EVFLAG>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator()(TagPairReaxComputeTorsion<NEIGHFLAG,EVFLAG>, const int&, EV_FLOAT_REAX&) const;
|
||||
void operator()(TagPairReaxComputeAngularPreprocessed<NEIGHFLAG,EVFLAG>, const int&) const;
|
||||
|
||||
template<int NEIGHFLAG, int EVFLAG>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator()(TagPairReaxComputeTorsion<NEIGHFLAG,EVFLAG>, const int&) const;
|
||||
void operator()(TagPairReaxComputeTorsionPreprocessed<NEIGHFLAG,EVFLAG>, const int&, EV_FLOAT_REAX&) const;
|
||||
|
||||
template<int NEIGHFLAG, int EVFLAG>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator()(TagPairReaxComputeTorsionPreprocessed<NEIGHFLAG,EVFLAG>, const int&) const;
|
||||
|
||||
template<int NEIGHFLAG, int EVFLAG>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
@ -395,9 +429,8 @@ class PairReaxFFKokkos : public PairReaxFF {
|
||||
|
||||
typename AT::t_float_1d d_bo_rij, d_hb_rsq, d_Deltap, d_Deltap_boc, d_total_bo, d_s;
|
||||
typename AT::t_float_1d d_Delta, d_Delta_boc, d_Delta_lp, d_dDelta_lp, d_Delta_lp_temp, d_CdDelta;
|
||||
typename AT::t_ffloat_2d_dl d_BO, d_BO_s, d_BO_pi, d_BO_pi2, d_dBOp;
|
||||
typename AT::t_ffloat_2d_dl d_dln_BOp_pix, d_dln_BOp_piy, d_dln_BOp_piz;
|
||||
typename AT::t_ffloat_2d_dl d_dln_BOp_pi2x, d_dln_BOp_pi2y, d_dln_BOp_pi2z;
|
||||
typename AT::t_ffloat_2d_dl d_BO, d_BO_s, d_BO_pi, d_BO_pi2;
|
||||
typename AT::t_ffloat_2d_dl d_dln_BOp_pi, d_dln_BOp_pi2;
|
||||
typename AT::t_ffloat_2d_dl d_C1dbo, d_C2dbo, d_C3dbo;
|
||||
typename AT::t_ffloat_2d_dl d_C1dbopi, d_C2dbopi, d_C3dbopi, d_C4dbopi;
|
||||
typename AT::t_ffloat_2d_dl d_C1dbopi2, d_C2dbopi2, d_C3dbopi2, d_C4dbopi2;
|
||||
@ -447,7 +480,7 @@ class PairReaxFFKokkos : public PairReaxFF {
|
||||
typename AT::t_int_scalar d_resize_bo, d_resize_hb;
|
||||
|
||||
typename AT::t_ffloat_2d_dl d_sum_ovun;
|
||||
typename AT::t_ffloat_2d_dl d_dBOpx, d_dBOpy, d_dBOpz;
|
||||
typename AT::t_ffloat_2d_dl d_dBOp;
|
||||
|
||||
int neighflag, newton_pair, maxnumneigh, maxhb, maxbo;
|
||||
int nlocal,nn,NN,eflag,vflag,acks2_flag;
|
||||
@ -480,15 +513,15 @@ class PairReaxFFKokkos : public PairReaxFF {
|
||||
typename AT::t_ffloat_1d d_buf;
|
||||
DAT::tdual_int_scalar k_nbuf_local;
|
||||
|
||||
// for fast ComputeTorsion preprocessor kernel
|
||||
typedef Kokkos::View<int*, LMPPinnedHostType> t_hostpinned_int_1d;
|
||||
typedef Kokkos::View<reax_int4**, LMPDeviceType::array_layout, DeviceType> t_reax_int4_2d;
|
||||
|
||||
t_reax_int4_2d d_angular_pack, d_torsion_pack;
|
||||
|
||||
typename AT::t_ffloat_2d d_angular_intermediates;
|
||||
|
||||
typename AT::tdual_int_1d k_count_angular_torsion;
|
||||
typename AT::t_int_1d d_count_angular_torsion;
|
||||
|
||||
int inum_store;
|
||||
t_hostpinned_int_1d counters;
|
||||
t_hostpinned_int_1d counters_jj_min;
|
||||
t_hostpinned_int_1d counters_jj_max;
|
||||
t_hostpinned_int_1d counters_kk_min;
|
||||
t_hostpinned_int_1d counters_kk_max;
|
||||
};
|
||||
|
||||
template <class DeviceType>
|
||||
|
||||
@ -102,13 +102,15 @@ void PairSNAPKokkos<DeviceType, real_type, vector_length>::init_style()
|
||||
if (force->newton_pair == 0)
|
||||
error->all(FLERR,"Pair style SNAP requires newton pair on");
|
||||
|
||||
// adjust neighbor list request for KOKKOS
|
||||
// neighbor list request for KOKKOS
|
||||
|
||||
neighflag = lmp->kokkos->neighflag;
|
||||
|
||||
auto request = neighbor->add_request(this, NeighConst::REQ_FULL);
|
||||
request->set_kokkos_host(std::is_same<DeviceType,LMPHostType>::value &&
|
||||
!std::is_same<DeviceType,LMPDeviceType>::value);
|
||||
request->set_kokkos_device(std::is_same<DeviceType,LMPDeviceType>::value);
|
||||
if (lmp->kokkos->neighflag == FULL)
|
||||
if (neighflag == FULL)
|
||||
error->all(FLERR,"Must use half neighbor list style with pair snap/kk");
|
||||
}
|
||||
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
// clang-format off
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/, Sandia National Laboratories
|
||||
@ -28,11 +27,9 @@ using namespace LAMMPS_NS;
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
ComputeMSD::ComputeMSD(LAMMPS *lmp, int narg, char **arg) :
|
||||
Compute(lmp, narg, arg),
|
||||
id_fix(nullptr)
|
||||
ComputeMSD::ComputeMSD(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg), id_fix(nullptr)
|
||||
{
|
||||
if (narg < 3) error->all(FLERR,"Illegal compute msd command");
|
||||
if (narg < 3) error->all(FLERR, "Illegal compute msd command");
|
||||
|
||||
vector_flag = 1;
|
||||
size_vector = 4;
|
||||
@ -47,28 +44,33 @@ ComputeMSD::ComputeMSD(LAMMPS *lmp, int narg, char **arg) :
|
||||
|
||||
int iarg = 3;
|
||||
while (iarg < narg) {
|
||||
if (strcmp(arg[iarg],"com") == 0) {
|
||||
if (iarg+2 > narg) error->all(FLERR,"Illegal compute msd command");
|
||||
comflag = utils::logical(FLERR,arg[iarg+1],false,lmp);
|
||||
if (strcmp(arg[iarg], "com") == 0) {
|
||||
if (iarg + 2 > narg) error->all(FLERR, "Illegal compute msd command");
|
||||
comflag = utils::logical(FLERR, arg[iarg + 1], false, lmp);
|
||||
iarg += 2;
|
||||
} else if (strcmp(arg[iarg],"average") == 0) {
|
||||
if (iarg+2 > narg) error->all(FLERR,"Illegal compute msd command");
|
||||
avflag = utils::logical(FLERR,arg[iarg+1],false,lmp);
|
||||
} else if (strcmp(arg[iarg], "average") == 0) {
|
||||
if (iarg + 2 > narg) error->all(FLERR, "Illegal compute msd command");
|
||||
avflag = utils::logical(FLERR, arg[iarg + 1], false, lmp);
|
||||
iarg += 2;
|
||||
} else error->all(FLERR,"Illegal compute msd command");
|
||||
} else
|
||||
error->all(FLERR, "Illegal compute msd command");
|
||||
}
|
||||
|
||||
if (group->dynamic[igroup])
|
||||
error->all(FLERR, "Compute {} is not compatible with dynamic groups", style);
|
||||
|
||||
// create a new fix STORE style for reference positions
|
||||
// id = compute-ID + COMPUTE_STORE, fix group = compute group
|
||||
|
||||
id_fix = utils::strdup(id + std::string("_COMPUTE_STORE"));
|
||||
fix = (FixStore *) modify->add_fix(fmt::format("{} {} STORE peratom 1 3",
|
||||
id_fix, group->names[igroup]));
|
||||
fix = (FixStore *) modify->add_fix(
|
||||
fmt::format("{} {} STORE peratom 1 3", id_fix, group->names[igroup]));
|
||||
|
||||
// calculate xu,yu,zu for fix store array
|
||||
// skip if reset from restart file
|
||||
|
||||
if (fix->restart_reset) fix->restart_reset = 0;
|
||||
if (fix->restart_reset)
|
||||
fix->restart_reset = 0;
|
||||
else {
|
||||
double **xoriginal = fix->astore;
|
||||
|
||||
@ -78,15 +80,17 @@ ComputeMSD::ComputeMSD(LAMMPS *lmp, int narg, char **arg) :
|
||||
int nlocal = atom->nlocal;
|
||||
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) domain->unmap(x[i],image[i],xoriginal[i]);
|
||||
else xoriginal[i][0] = xoriginal[i][1] = xoriginal[i][2] = 0.0;
|
||||
if (mask[i] & groupbit)
|
||||
domain->unmap(x[i], image[i], xoriginal[i]);
|
||||
else
|
||||
xoriginal[i][0] = xoriginal[i][1] = xoriginal[i][2] = 0.0;
|
||||
|
||||
// adjust for COM if requested
|
||||
|
||||
if (comflag) {
|
||||
double cm[3];
|
||||
masstotal = group->mass(igroup);
|
||||
group->xcm(igroup,masstotal,cm);
|
||||
group->xcm(igroup, masstotal, cm);
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
xoriginal[i][0] -= cm[0];
|
||||
@ -124,7 +128,7 @@ void ComputeMSD::init()
|
||||
// set fix which stores reference atom coords
|
||||
|
||||
fix = (FixStore *) modify->get_fix_by_id(id_fix);
|
||||
if (!fix) error->all(FLERR,"Could not find compute msd fix with ID {}", id_fix);
|
||||
if (!fix) error->all(FLERR, "Could not find compute msd fix with ID {}", id_fix);
|
||||
|
||||
// nmsd = # of atoms in group
|
||||
|
||||
@ -141,8 +145,10 @@ void ComputeMSD::compute_vector()
|
||||
// cm = current center of mass
|
||||
|
||||
double cm[3];
|
||||
if (comflag) group->xcm(igroup,masstotal,cm);
|
||||
else cm[0] = cm[1] = cm[2] = 0.0;
|
||||
if (comflag)
|
||||
group->xcm(igroup, masstotal, cm);
|
||||
else
|
||||
cm[0] = cm[1] = cm[2] = 0.0;
|
||||
|
||||
// dx,dy,dz = displacement of atom from reference position
|
||||
// reference unwrapped position is stored by fix
|
||||
@ -161,8 +167,8 @@ void ComputeMSD::compute_vector()
|
||||
double yprd = domain->yprd;
|
||||
double zprd = domain->zprd;
|
||||
|
||||
double dx,dy,dz;
|
||||
int xbox,ybox,zbox;
|
||||
double dx, dy, dz;
|
||||
int xbox, ybox, zbox;
|
||||
|
||||
double msd[4];
|
||||
msd[0] = msd[1] = msd[2] = msd[3] = 0.0;
|
||||
@ -174,36 +180,34 @@ void ComputeMSD::compute_vector()
|
||||
double navfac;
|
||||
if (avflag) {
|
||||
naverage++;
|
||||
navfac = 1.0/(naverage+1);
|
||||
navfac = 1.0 / (naverage + 1);
|
||||
}
|
||||
|
||||
|
||||
if (domain->triclinic == 0) {
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
xbox = (image[i] & IMGMASK) - IMGMAX;
|
||||
ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
|
||||
zbox = (image[i] >> IMG2BITS) - IMGMAX;
|
||||
xtmp = x[i][0] + xbox*xprd - cm[0];
|
||||
ytmp = x[i][1] + ybox*yprd - cm[1];
|
||||
ztmp = x[i][2] + zbox*zprd - cm[2];
|
||||
xtmp = x[i][0] + xbox * xprd - cm[0];
|
||||
ytmp = x[i][1] + ybox * yprd - cm[1];
|
||||
ztmp = x[i][2] + zbox * zprd - cm[2];
|
||||
|
||||
// use running average position for reference if requested
|
||||
|
||||
if (avflag) {
|
||||
xoriginal[i][0] = (xoriginal[i][0]*naverage + xtmp)*navfac;
|
||||
xoriginal[i][1] = (xoriginal[i][1]*naverage + ytmp)*navfac;
|
||||
xoriginal[i][2] = (xoriginal[i][2]*naverage + ztmp)*navfac;
|
||||
xoriginal[i][0] = (xoriginal[i][0] * naverage + xtmp) * navfac;
|
||||
xoriginal[i][1] = (xoriginal[i][1] * naverage + ytmp) * navfac;
|
||||
xoriginal[i][2] = (xoriginal[i][2] * naverage + ztmp) * navfac;
|
||||
}
|
||||
|
||||
dx = xtmp - xoriginal[i][0];
|
||||
dy = ytmp - xoriginal[i][1];
|
||||
dz = ztmp - xoriginal[i][2];
|
||||
msd[0] += dx*dx;
|
||||
msd[1] += dy*dy;
|
||||
msd[2] += dz*dz;
|
||||
msd[3] += dx*dx + dy*dy + dz*dz;
|
||||
|
||||
msd[0] += dx * dx;
|
||||
msd[1] += dy * dy;
|
||||
msd[2] += dz * dz;
|
||||
msd[3] += dx * dx + dy * dy + dz * dz;
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
@ -211,29 +215,29 @@ void ComputeMSD::compute_vector()
|
||||
xbox = (image[i] & IMGMASK) - IMGMAX;
|
||||
ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
|
||||
zbox = (image[i] >> IMG2BITS) - IMGMAX;
|
||||
xtmp = x[i][0] + h[0]*xbox + h[5]*ybox + h[4]*zbox - cm[0];
|
||||
ytmp = x[i][1] + h[1]*ybox + h[3]*zbox - cm[1];
|
||||
ztmp = x[i][2] + h[2]*zbox - cm[2];
|
||||
xtmp = x[i][0] + h[0] * xbox + h[5] * ybox + h[4] * zbox - cm[0];
|
||||
ytmp = x[i][1] + h[1] * ybox + h[3] * zbox - cm[1];
|
||||
ztmp = x[i][2] + h[2] * zbox - cm[2];
|
||||
|
||||
// use running average position for reference if requested
|
||||
|
||||
if (avflag) {
|
||||
xoriginal[i][0] = (xoriginal[i][0]*naverage + xtmp)*navfac;
|
||||
xoriginal[i][1] = (xoriginal[i][0]*naverage + xtmp)*navfac;
|
||||
xoriginal[i][2] = (xoriginal[i][0]*naverage + xtmp)*navfac;
|
||||
xoriginal[i][0] = (xoriginal[i][0] * naverage + xtmp) * navfac;
|
||||
xoriginal[i][1] = (xoriginal[i][0] * naverage + xtmp) * navfac;
|
||||
xoriginal[i][2] = (xoriginal[i][0] * naverage + xtmp) * navfac;
|
||||
}
|
||||
|
||||
dx = xtmp - xoriginal[i][0];
|
||||
dy = ytmp - xoriginal[i][1];
|
||||
dz = ztmp - xoriginal[i][2];
|
||||
msd[0] += dx*dx;
|
||||
msd[1] += dy*dy;
|
||||
msd[2] += dz*dz;
|
||||
msd[3] += dx*dx + dy*dy + dz*dz;
|
||||
msd[0] += dx * dx;
|
||||
msd[1] += dy * dy;
|
||||
msd[2] += dz * dz;
|
||||
msd[3] += dx * dx + dy * dy + dz * dz;
|
||||
}
|
||||
}
|
||||
|
||||
MPI_Allreduce(msd,vector,4,MPI_DOUBLE,MPI_SUM,world);
|
||||
MPI_Allreduce(msd, vector, 4, MPI_DOUBLE, MPI_SUM, world);
|
||||
if (nmsd) {
|
||||
vector[0] /= nmsd;
|
||||
vector[1] /= nmsd;
|
||||
|
||||
852
src/fix_move.cpp
852
src/fix_move.cpp
File diff suppressed because it is too large
Load Diff
74
unittest/force-styles/tests/fix-timestep-move_linear.yaml
Normal file
74
unittest/force-styles/tests/fix-timestep-move_linear.yaml
Normal file
@ -0,0 +1,74 @@
|
||||
---
|
||||
lammps_version: 24 Mar 2022
|
||||
date_generated: Sun Apr 3 03:06:24 2022
|
||||
epsilon: 2e-14
|
||||
skip_tests:
|
||||
prerequisites: ! |
|
||||
atom full
|
||||
fix move
|
||||
pre_commands: ! ""
|
||||
post_commands: ! |
|
||||
fix test solute move linear 1.0 1.0 1.0
|
||||
input_file: in.fourmol
|
||||
natoms: 29
|
||||
run_pos: ! |2
|
||||
1 1.7200631633077317e+00 4.4726588069312836e+00 1.8279913975585156e+00
|
||||
2 2.3019708395540222e+00 4.9515239068888608e+00 1.1431026442709245e+00
|
||||
3 1.3056462211944140e+00 3.2440473127136711e+00 1.3776619853110796e+00
|
||||
4 4.2283858353148673e-01 3.4915333140468068e+00 7.5128731549594785e-01
|
||||
5 1.1049823864064074e+00 2.9356812874307137e+00 2.4022773187148436e+00
|
||||
6 2.2941260793770599e+00 2.2271928265665291e+00 7.1569059321421302e-01
|
||||
7 2.3401987106287963e+00 1.9908722649924213e+00 -4.6331132243045614e-01
|
||||
8 3.1641187171852803e+00 1.5162469404461476e+00 1.3234017623263132e+00
|
||||
9 3.3777459838125838e+00 1.7463366133047700e+00 2.2687764473032632e+00
|
||||
10 4.0185283555536984e+00 5.7160331534826425e-01 1.0326647272886698e+00
|
||||
11 3.7929780509347664e+00 1.2895245923125742e-02 1.1593733568143261e-01
|
||||
12 5.0030247876861225e+00 1.5107668003242725e+00 3.8113414684627522e-01
|
||||
13 6.0447273787895934e+00 1.0986800145255375e+00 3.6155527316791636e-01
|
||||
14 4.6033152817257079e+00 1.5921023849403642e+00 -6.5544135388230629e-01
|
||||
15 4.9756315249791303e+00 2.5633426972296931e+00 7.5623492454009922e-01
|
||||
16 4.6517554244980310e+00 -3.9571104249784383e-01 2.0329083359991782e+00
|
||||
17 4.2309964792710639e+00 -1.0229189433193842e-01 3.1491948328949437e+00
|
||||
18 2.1384791188033843e+00 3.0177261773770208e+00 -3.5160827596876225e+00
|
||||
19 1.5349125211132961e+00 2.6315969880333707e+00 -4.2472859440220647e+00
|
||||
20 2.7641167828863153e+00 3.6833419064000221e+00 -3.9380850623312638e+00
|
||||
21 4.9064454390208301e+00 -4.0751205255383196e+00 -3.6215576073601046e+00
|
||||
22 4.3687453488627543e+00 -4.2054270536772504e+00 -4.4651491269372565e+00
|
||||
23 5.7374928154769504e+00 -3.5763355905184966e+00 -3.8820297194230728e+00
|
||||
24 2.0684115301174013e+00 3.1518221747664397e+00 3.1554242678474576e+00
|
||||
25 1.2998381073113014e+00 3.2755513587518097e+00 2.5092990173114837e+00
|
||||
26 2.5807438597688113e+00 4.0120175892854135e+00 3.2133398379059099e+00
|
||||
27 -1.9613581876744359e+00 -4.3556300596085160e+00 2.1101467673534788e+00
|
||||
28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00
|
||||
29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00
|
||||
run_vel: ! |2
|
||||
1 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
|
||||
2 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
|
||||
3 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
|
||||
4 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
|
||||
5 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
|
||||
6 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
|
||||
7 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
|
||||
8 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
|
||||
9 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
|
||||
10 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
|
||||
11 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
|
||||
12 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
|
||||
13 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
|
||||
14 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
|
||||
15 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
|
||||
16 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
|
||||
17 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
|
||||
18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04
|
||||
19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03
|
||||
20 4.7777805013736515e-03 5.1003745845520452e-03 1.8002873923729241e-03
|
||||
21 -9.5568188553430398e-04 1.6594630943762931e-04 -1.8199788009966615e-04
|
||||
22 -3.3137518957653462e-03 -2.8683968287936054e-03 3.6384389958326871e-03
|
||||
23 2.4209481134686401e-04 -4.5457709985051130e-03 2.7663581642115042e-03
|
||||
24 2.5447450568861086e-04 4.8412447786110117e-04 -4.8021914527341357e-04
|
||||
25 4.3722771097312743e-03 -4.5184411669545515e-03 2.5200952006556795e-03
|
||||
26 -1.9250110555001179e-03 -3.0342169883610837e-03 3.5062814567984532e-03
|
||||
27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04
|
||||
28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03
|
||||
29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03
|
||||
...
|
||||
74
unittest/force-styles/tests/fix-timestep-move_rotate.yaml
Normal file
74
unittest/force-styles/tests/fix-timestep-move_rotate.yaml
Normal file
@ -0,0 +1,74 @@
|
||||
---
|
||||
lammps_version: 24 Mar 2022
|
||||
date_generated: Sun Apr 3 03:06:24 2022
|
||||
epsilon: 2e-14
|
||||
skip_tests:
|
||||
prerequisites: ! |
|
||||
atom full
|
||||
fix move
|
||||
pre_commands: ! ""
|
||||
post_commands: ! |
|
||||
fix test solute move rotate -0.18 1.1 -1.8 0.1 0.5 1.0 1.0
|
||||
input_file: in.fourmol
|
||||
natoms: 29
|
||||
run_pos: ! |2
|
||||
1 -2.7993683669226810e-01 2.4726588069312840e+00 -1.7200860244148450e-01
|
||||
2 3.0197083955402271e-01 2.9515239068888608e+00 -8.5689735572907566e-01
|
||||
3 -6.9435377880558635e-01 1.2440473127136713e+00 -6.2233801468892025e-01
|
||||
4 -1.5771614164685133e+00 1.4915333140468072e+00 -1.2487126845040524e+00
|
||||
5 -8.9501761359359322e-01 9.3568128743071388e-01 4.0227731871484329e-01
|
||||
6 2.9412607937705959e-01 2.2719282656652884e-01 -1.2843094067857868e+00
|
||||
7 3.4019871062879570e-01 -9.1277350075789077e-03 -2.4633113224304561e+00
|
||||
8 1.1641187171852796e+00 -4.8375305955385284e-01 -6.7659823767368665e-01
|
||||
9 1.3777459838125827e+00 -2.5366338669523070e-01 2.6877644730326344e-01
|
||||
10 2.0185283555536979e+00 -1.4283966846517369e+00 -9.6733527271132957e-01
|
||||
11 1.7929780509347653e+00 -1.9871047540768751e+00 -1.8840626643185665e+00
|
||||
12 3.0030247876861216e+00 -4.8923319967572887e-01 -1.6188658531537241e+00
|
||||
13 4.0447273787895925e+00 -9.0131998547446424e-01 -1.6384447268320823e+00
|
||||
14 2.6033152817257070e+00 -4.0789761505963706e-01 -2.6554413538823054e+00
|
||||
15 2.9756315249791299e+00 5.6334269722969144e-01 -1.2437650754599001e+00
|
||||
16 2.6517554244980293e+00 -2.3957110424978456e+00 3.2908335999179084e-02
|
||||
17 2.2309964792710621e+00 -2.1022918943319393e+00 1.1491948328949442e+00
|
||||
18 2.1384791188033843e+00 3.0177261773770208e+00 -3.5160827596876225e+00
|
||||
19 1.5349125211132961e+00 2.6315969880333707e+00 -4.2472859440220647e+00
|
||||
20 2.7641167828863153e+00 3.6833419064000221e+00 -3.9380850623312638e+00
|
||||
21 4.9064454390208301e+00 -4.0751205255383196e+00 -3.6215576073601046e+00
|
||||
22 4.3687453488627543e+00 -4.2054270536772504e+00 -4.4651491269372565e+00
|
||||
23 5.7374928154769504e+00 -3.5763355905184966e+00 -3.8820297194230728e+00
|
||||
24 2.0684115301174013e+00 3.1518221747664397e+00 3.1554242678474576e+00
|
||||
25 1.2998381073113014e+00 3.2755513587518097e+00 2.5092990173114837e+00
|
||||
26 2.5807438597688113e+00 4.0120175892854135e+00 3.2133398379059099e+00
|
||||
27 -1.9613581876744359e+00 -4.3556300596085160e+00 2.1101467673534788e+00
|
||||
28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00
|
||||
29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00
|
||||
run_vel: ! |2
|
||||
1 -3.1271203016537847e+00 -1.4706662994868196e+00 1.0480451799087882e+00
|
||||
2 -7.7244053214512371e+00 2.1699325352629488e+00 -3.1252573548635093e-01
|
||||
3 2.4896794778365781e+00 -3.5382955941894649e+00 1.5201798493110743e+00
|
||||
4 -6.4869308833104955e-01 -8.1292033418525875e+00 4.1294709797593985e+00
|
||||
5 7.0834056891986288e+00 -5.2350417705319234e+00 1.9091803163460987e+00
|
||||
6 6.3288343933688544e+00 2.3652656077349734e+00 -1.8155162432043723e+00
|
||||
7 4.3519048787150751e+00 3.2831045265140744e+00 -2.0767427511285446e+00
|
||||
8 1.2009192080844477e+01 6.8948882185832456e+00 -4.6483633173760710e+00
|
||||
9 1.3367134079812072e+01 7.5614941211688285e+00 -5.1174604685656222e+00
|
||||
10 1.6483139579874326e+01 1.1840191844735013e+01 -7.5684098803549391e+00
|
||||
11 1.7044817849532322e+01 1.1090811320459508e+01 -7.2498874451829867e+00
|
||||
12 9.4026927142316001e+00 1.7715611543038719e+01 -9.7980750429425196e+00
|
||||
13 1.1654554684130250e+01 2.3557507710224332e+01 -1.2944209323525191e+01
|
||||
14 6.0462972823495269e+00 1.6058458836709743e+01 -8.6338591465898240e+00
|
||||
15 4.5607069302660133e+00 1.7352314681858498e+01 -9.1322280339558510e+00
|
||||
16 2.4697122832464643e+01 1.4824797394989091e+01 -9.8821109807410092e+00
|
||||
17 2.6178917667758348e+01 1.1844754445814953e+01 -8.5402689896833106e+00
|
||||
18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04
|
||||
19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03
|
||||
20 4.7777805013736515e-03 5.1003745845520452e-03 1.8002873923729241e-03
|
||||
21 -9.5568188553430398e-04 1.6594630943762931e-04 -1.8199788009966615e-04
|
||||
22 -3.3137518957653462e-03 -2.8683968287936054e-03 3.6384389958326871e-03
|
||||
23 2.4209481134686401e-04 -4.5457709985051130e-03 2.7663581642115042e-03
|
||||
24 2.5447450568861086e-04 4.8412447786110117e-04 -4.8021914527341357e-04
|
||||
25 4.3722771097312743e-03 -4.5184411669545515e-03 2.5200952006556795e-03
|
||||
26 -1.9250110555001179e-03 -3.0342169883610837e-03 3.5062814567984532e-03
|
||||
27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04
|
||||
28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03
|
||||
29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03
|
||||
...
|
||||
74
unittest/force-styles/tests/fix-timestep-move_transrot.yaml
Normal file
74
unittest/force-styles/tests/fix-timestep-move_transrot.yaml
Normal file
@ -0,0 +1,74 @@
|
||||
---
|
||||
lammps_version: 24 Mar 2022
|
||||
date_generated: Sun Apr 3 03:07:42 2022
|
||||
epsilon: 2e-14
|
||||
skip_tests:
|
||||
prerequisites: ! |
|
||||
atom full
|
||||
fix move
|
||||
pre_commands: ! ""
|
||||
post_commands: ! |
|
||||
fix test solute move transrot 0.1 0.2 -0.1 -0.18 1.1 -1.8 0.1 0.5 1.0 1.0
|
||||
input_file: in.fourmol
|
||||
natoms: 29
|
||||
run_pos: ! |2
|
||||
1 -7.9936836692268087e-02 2.8726588069312839e+00 -3.7200860244148448e-01
|
||||
2 5.0197083955402277e-01 3.3515239068888607e+00 -1.0568973557290757e+00
|
||||
3 -4.9435377880558634e-01 1.6440473127136714e+00 -8.2233801468892032e-01
|
||||
4 -1.3771614164685133e+00 1.8915333140468071e+00 -1.4487126845040523e+00
|
||||
5 -6.9501761359359326e-01 1.3356812874307140e+00 2.0227731871484328e-01
|
||||
6 4.9412607937705960e-01 6.2719282656652886e-01 -1.4843094067857867e+00
|
||||
7 5.4019871062879576e-01 3.9087226499242111e-01 -2.6633113224304563e+00
|
||||
8 1.3641187171852796e+00 -8.3753059553852816e-02 -8.7659823767368672e-01
|
||||
9 1.5777459838125827e+00 1.4633661330476933e-01 6.8776447303263433e-02
|
||||
10 2.2185283555536981e+00 -1.0283966846517369e+00 -1.1673352727113295e+00
|
||||
11 1.9929780509347652e+00 -1.5871047540768752e+00 -2.0840626643185667e+00
|
||||
12 3.2030247876861218e+00 -8.9233199675728847e-02 -1.8188658531537241e+00
|
||||
13 4.2447273787895927e+00 -5.0131998547446421e-01 -1.8384447268320823e+00
|
||||
14 2.8033152817257072e+00 -7.8976150596370420e-03 -2.8554413538823056e+00
|
||||
15 3.1756315249791300e+00 9.6334269722969146e-01 -1.4437650754599001e+00
|
||||
16 2.8517554244980294e+00 -1.9957110424978457e+00 -1.6709166400082093e-01
|
||||
17 2.4309964792710623e+00 -1.7022918943319394e+00 9.4919483289494422e-01
|
||||
18 2.1384791188033843e+00 3.0177261773770208e+00 -3.5160827596876225e+00
|
||||
19 1.5349125211132961e+00 2.6315969880333707e+00 -4.2472859440220647e+00
|
||||
20 2.7641167828863153e+00 3.6833419064000221e+00 -3.9380850623312638e+00
|
||||
21 4.9064454390208301e+00 -4.0751205255383196e+00 -3.6215576073601046e+00
|
||||
22 4.3687453488627543e+00 -4.2054270536772504e+00 -4.4651491269372565e+00
|
||||
23 5.7374928154769504e+00 -3.5763355905184966e+00 -3.8820297194230728e+00
|
||||
24 2.0684115301174013e+00 3.1518221747664397e+00 3.1554242678474576e+00
|
||||
25 1.2998381073113014e+00 3.2755513587518097e+00 2.5092990173114837e+00
|
||||
26 2.5807438597688113e+00 4.0120175892854135e+00 3.2133398379059099e+00
|
||||
27 -1.9613581876744359e+00 -4.3556300596085160e+00 2.1101467673534788e+00
|
||||
28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00
|
||||
29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00
|
||||
run_vel: ! |2
|
||||
1 -3.0271203016537847e+00 -1.2706662994868196e+00 9.4804517990878823e-01
|
||||
2 -7.6244053214512375e+00 2.3699325352629490e+00 -4.1252573548635096e-01
|
||||
3 2.5896794778365781e+00 -3.3382955941894648e+00 1.4201798493110742e+00
|
||||
4 -5.4869308833104957e-01 -7.9292033418525874e+00 4.0294709797593988e+00
|
||||
5 7.1834056891986284e+00 -5.0350417705319233e+00 1.8091803163460987e+00
|
||||
6 6.4288343933688541e+00 2.5652656077349736e+00 -1.9155162432043724e+00
|
||||
7 4.4519048787150748e+00 3.4831045265140745e+00 -2.1767427511285447e+00
|
||||
8 1.2109192080844476e+01 7.0948882185832458e+00 -4.7483633173760706e+00
|
||||
9 1.3467134079812071e+01 7.7614941211688286e+00 -5.2174604685656218e+00
|
||||
10 1.6583139579874327e+01 1.2040191844735013e+01 -7.6684098803549388e+00
|
||||
11 1.7144817849532323e+01 1.1290811320459508e+01 -7.3498874451829863e+00
|
||||
12 9.5026927142315998e+00 1.7915611543038718e+01 -9.8980750429425193e+00
|
||||
13 1.1754554684130250e+01 2.3757507710224331e+01 -1.3044209323525191e+01
|
||||
14 6.1462972823495265e+00 1.6258458836709742e+01 -8.7338591465898237e+00
|
||||
15 4.6607069302660129e+00 1.7552314681858498e+01 -9.2322280339558507e+00
|
||||
16 2.4797122832464645e+01 1.5024797394989090e+01 -9.9821109807410089e+00
|
||||
17 2.6278917667758350e+01 1.2044754445814952e+01 -8.6402689896833103e+00
|
||||
18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04
|
||||
19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03
|
||||
20 4.7777805013736515e-03 5.1003745845520452e-03 1.8002873923729241e-03
|
||||
21 -9.5568188553430398e-04 1.6594630943762931e-04 -1.8199788009966615e-04
|
||||
22 -3.3137518957653462e-03 -2.8683968287936054e-03 3.6384389958326871e-03
|
||||
23 2.4209481134686401e-04 -4.5457709985051130e-03 2.7663581642115042e-03
|
||||
24 2.5447450568861086e-04 4.8412447786110117e-04 -4.8021914527341357e-04
|
||||
25 4.3722771097312743e-03 -4.5184411669545515e-03 2.5200952006556795e-03
|
||||
26 -1.9250110555001179e-03 -3.0342169883610837e-03 3.5062814567984532e-03
|
||||
27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04
|
||||
28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03
|
||||
29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03
|
||||
...
|
||||
80
unittest/force-styles/tests/fix-timestep-move_variable.yaml
Normal file
80
unittest/force-styles/tests/fix-timestep-move_variable.yaml
Normal file
@ -0,0 +1,80 @@
|
||||
---
|
||||
lammps_version: 24 Mar 2022
|
||||
date_generated: Sun Apr 3 03:16:48 2022
|
||||
epsilon: 2e-14
|
||||
skip_tests:
|
||||
prerequisites: ! |
|
||||
atom full
|
||||
fix move
|
||||
pre_commands: ! |
|
||||
variable vx equal 1.0
|
||||
variable x equal vdisplace(0.0,v_vx)
|
||||
variable vy equal 0.0
|
||||
variable y equal 0.0
|
||||
variable vz equal 0.0
|
||||
variable z equal 0.0
|
||||
post_commands: ! |
|
||||
fix test solute move variable v_x v_y v_z v_vx v_vy v_vz
|
||||
input_file: in.fourmol
|
||||
natoms: 29
|
||||
run_pos: ! |2
|
||||
1 1.7200631633077317e+00 2.4726588069312840e+00 -1.7200860244148433e-01
|
||||
2 2.3019708395540222e+00 2.9515239068888608e+00 -8.5689735572907566e-01
|
||||
3 1.3056462211944140e+00 1.2440473127136711e+00 -6.2233801468892025e-01
|
||||
4 4.2283858353148673e-01 1.4915333140468066e+00 -1.2487126845040522e+00
|
||||
5 1.1049823864064074e+00 9.3568128743071344e-01 4.0227731871484346e-01
|
||||
6 2.2941260793770599e+00 2.2719282656652909e-01 -1.2843094067857870e+00
|
||||
7 2.3401987106287963e+00 -9.1277350075786561e-03 -2.4633113224304561e+00
|
||||
8 3.1641187171852803e+00 -4.8375305955385234e-01 -6.7659823767368688e-01
|
||||
9 3.3777459838125838e+00 -2.5366338669522998e-01 2.6877644730326306e-01
|
||||
10 4.0185283555536984e+00 -1.4283966846517357e+00 -9.6733527271133024e-01
|
||||
11 3.7929780509347664e+00 -1.9871047540768743e+00 -1.8840626643185674e+00
|
||||
12 5.0030247876861225e+00 -4.8923319967572748e-01 -1.6188658531537248e+00
|
||||
13 6.0447273787895934e+00 -9.0131998547446246e-01 -1.6384447268320836e+00
|
||||
14 4.6033152817257079e+00 -4.0789761505963579e-01 -2.6554413538823063e+00
|
||||
15 4.9756315249791303e+00 5.6334269722969288e-01 -1.2437650754599008e+00
|
||||
16 4.6517554244980310e+00 -2.3957110424978438e+00 3.2908335999178327e-02
|
||||
17 4.2309964792710639e+00 -2.1022918943319384e+00 1.1491948328949437e+00
|
||||
18 2.1384791188033843e+00 3.0177261773770208e+00 -3.5160827596876225e+00
|
||||
19 1.5349125211132961e+00 2.6315969880333707e+00 -4.2472859440220647e+00
|
||||
20 2.7641167828863153e+00 3.6833419064000221e+00 -3.9380850623312638e+00
|
||||
21 4.9064454390208301e+00 -4.0751205255383196e+00 -3.6215576073601046e+00
|
||||
22 4.3687453488627543e+00 -4.2054270536772504e+00 -4.4651491269372565e+00
|
||||
23 5.7374928154769504e+00 -3.5763355905184966e+00 -3.8820297194230728e+00
|
||||
24 2.0684115301174013e+00 3.1518221747664397e+00 3.1554242678474576e+00
|
||||
25 1.2998381073113014e+00 3.2755513587518097e+00 2.5092990173114837e+00
|
||||
26 2.5807438597688113e+00 4.0120175892854135e+00 3.2133398379059099e+00
|
||||
27 -1.9613581876744359e+00 -4.3556300596085160e+00 2.1101467673534788e+00
|
||||
28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00
|
||||
29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00
|
||||
run_vel: ! |2
|
||||
1 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
2 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
3 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
4 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
5 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
6 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
7 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
8 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
9 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
10 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
11 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
12 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
13 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
14 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
15 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
16 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
17 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
|
||||
18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04
|
||||
19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03
|
||||
20 4.7777805013736515e-03 5.1003745845520452e-03 1.8002873923729241e-03
|
||||
21 -9.5568188553430398e-04 1.6594630943762931e-04 -1.8199788009966615e-04
|
||||
22 -3.3137518957653462e-03 -2.8683968287936054e-03 3.6384389958326871e-03
|
||||
23 2.4209481134686401e-04 -4.5457709985051130e-03 2.7663581642115042e-03
|
||||
24 2.5447450568861086e-04 4.8412447786110117e-04 -4.8021914527341357e-04
|
||||
25 4.3722771097312743e-03 -4.5184411669545515e-03 2.5200952006556795e-03
|
||||
26 -1.9250110555001179e-03 -3.0342169883610837e-03 3.5062814567984532e-03
|
||||
27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04
|
||||
28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03
|
||||
29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03
|
||||
...
|
||||
74
unittest/force-styles/tests/fix-timestep-move_wiggle.yaml
Normal file
74
unittest/force-styles/tests/fix-timestep-move_wiggle.yaml
Normal file
@ -0,0 +1,74 @@
|
||||
---
|
||||
lammps_version: 24 Mar 2022
|
||||
date_generated: Sun Apr 3 03:06:24 2022
|
||||
epsilon: 2e-14
|
||||
skip_tests:
|
||||
prerequisites: ! |
|
||||
atom full
|
||||
fix move
|
||||
pre_commands: ! ""
|
||||
post_commands: ! |
|
||||
fix test solute move wiggle 1.0 0.5 -1.0 1.0
|
||||
input_file: in.fourmol
|
||||
natoms: 29
|
||||
run_pos: ! |2
|
||||
1 -2.7993683669226882e-01 2.4726588069312836e+00 -1.7200860244148383e-01
|
||||
2 3.0197083955402154e-01 2.9515239068888603e+00 -8.5689735572907522e-01
|
||||
3 -6.9435377880558646e-01 1.2440473127136709e+00 -6.2233801468891981e-01
|
||||
4 -1.5771614164685137e+00 1.4915333140468063e+00 -1.2487126845040517e+00
|
||||
5 -8.9501761359359300e-01 9.3568128743071322e-01 4.0227731871484396e-01
|
||||
6 2.9412607937705959e-01 2.2719282656652884e-01 -1.2843094067857865e+00
|
||||
7 3.4019871062879559e-01 -9.1277350075789007e-03 -2.4633113224304557e+00
|
||||
8 1.1641187171852800e+00 -4.8375305955385256e-01 -6.7659823767368643e-01
|
||||
9 1.3777459838125834e+00 -2.5366338669523020e-01 2.6877644730326355e-01
|
||||
10 2.0185283555536984e+00 -1.4283966846517360e+00 -9.6733527271132980e-01
|
||||
11 1.7929780509347661e+00 -1.9871047540768745e+00 -1.8840626643185669e+00
|
||||
12 3.0030247876861220e+00 -4.8923319967572770e-01 -1.6188658531537243e+00
|
||||
13 4.0447273787895925e+00 -9.0131998547446268e-01 -1.6384447268320832e+00
|
||||
14 2.6033152817257070e+00 -4.0789761505963601e-01 -2.6554413538823058e+00
|
||||
15 2.9756315249791299e+00 5.6334269722969266e-01 -1.2437650754599003e+00
|
||||
16 2.6517554244980301e+00 -2.3957110424978443e+00 3.2908335999178820e-02
|
||||
17 2.2309964792710635e+00 -2.1022918943319389e+00 1.1491948328949442e+00
|
||||
18 2.1384791188033843e+00 3.0177261773770208e+00 -3.5160827596876225e+00
|
||||
19 1.5349125211132961e+00 2.6315969880333707e+00 -4.2472859440220647e+00
|
||||
20 2.7641167828863153e+00 3.6833419064000221e+00 -3.9380850623312638e+00
|
||||
21 4.9064454390208301e+00 -4.0751205255383196e+00 -3.6215576073601046e+00
|
||||
22 4.3687453488627543e+00 -4.2054270536772504e+00 -4.4651491269372565e+00
|
||||
23 5.7374928154769504e+00 -3.5763355905184966e+00 -3.8820297194230728e+00
|
||||
24 2.0684115301174013e+00 3.1518221747664397e+00 3.1554242678474576e+00
|
||||
25 1.2998381073113014e+00 3.2755513587518097e+00 2.5092990173114837e+00
|
||||
26 2.5807438597688113e+00 4.0120175892854135e+00 3.2133398379059099e+00
|
||||
27 -1.9613581876744359e+00 -4.3556300596085160e+00 2.1101467673534788e+00
|
||||
28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00
|
||||
29 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00
|
||||
run_vel: ! |2
|
||||
1 6.2831853071795862e+00 3.1415926535897931e+00 -6.2831853071795862e+00
|
||||
2 6.2831853071795862e+00 3.1415926535897931e+00 -6.2831853071795862e+00
|
||||
3 6.2831853071795862e+00 3.1415926535897931e+00 -6.2831853071795862e+00
|
||||
4 6.2831853071795862e+00 3.1415926535897931e+00 -6.2831853071795862e+00
|
||||
5 6.2831853071795862e+00 3.1415926535897931e+00 -6.2831853071795862e+00
|
||||
6 6.2831853071795862e+00 3.1415926535897931e+00 -6.2831853071795862e+00
|
||||
7 6.2831853071795862e+00 3.1415926535897931e+00 -6.2831853071795862e+00
|
||||
8 6.2831853071795862e+00 3.1415926535897931e+00 -6.2831853071795862e+00
|
||||
9 6.2831853071795862e+00 3.1415926535897931e+00 -6.2831853071795862e+00
|
||||
10 6.2831853071795862e+00 3.1415926535897931e+00 -6.2831853071795862e+00
|
||||
11 6.2831853071795862e+00 3.1415926535897931e+00 -6.2831853071795862e+00
|
||||
12 6.2831853071795862e+00 3.1415926535897931e+00 -6.2831853071795862e+00
|
||||
13 6.2831853071795862e+00 3.1415926535897931e+00 -6.2831853071795862e+00
|
||||
14 6.2831853071795862e+00 3.1415926535897931e+00 -6.2831853071795862e+00
|
||||
15 6.2831853071795862e+00 3.1415926535897931e+00 -6.2831853071795862e+00
|
||||
16 6.2831853071795862e+00 3.1415926535897931e+00 -6.2831853071795862e+00
|
||||
17 6.2831853071795862e+00 3.1415926535897931e+00 -6.2831853071795862e+00
|
||||
18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04
|
||||
19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03
|
||||
20 4.7777805013736515e-03 5.1003745845520452e-03 1.8002873923729241e-03
|
||||
21 -9.5568188553430398e-04 1.6594630943762931e-04 -1.8199788009966615e-04
|
||||
22 -3.3137518957653462e-03 -2.8683968287936054e-03 3.6384389958326871e-03
|
||||
23 2.4209481134686401e-04 -4.5457709985051130e-03 2.7663581642115042e-03
|
||||
24 2.5447450568861086e-04 4.8412447786110117e-04 -4.8021914527341357e-04
|
||||
25 4.3722771097312743e-03 -4.5184411669545515e-03 2.5200952006556795e-03
|
||||
26 -1.9250110555001179e-03 -3.0342169883610837e-03 3.5062814567984532e-03
|
||||
27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04
|
||||
28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03
|
||||
29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03
|
||||
...
|
||||
Reference in New Issue
Block a user