remove directionCorrection and update docs for compute pair/local and compute bond/local
This commit is contained in:
@ -64,22 +64,32 @@ All these properties are computed for the pair of atoms in a bond,
|
||||
whether the two atoms represent a simple diatomic molecule, or are part
|
||||
of some larger molecule.
|
||||
|
||||
The value *dist* is the current length of the bond.
|
||||
The values *dx*, *dy*, and *dz* are the xyz components of the
|
||||
*distance* between the pair of atoms. This value is always the
|
||||
distance from the atom of lower to the one with the higher id.
|
||||
.. versionchanged:: TBD
|
||||
|
||||
The sign of *dx*, *dy*, *dz* is no longer determined by the atom IDs
|
||||
of the bonded atoms but by their order in the bond list to be
|
||||
consistent with *fx*, *fy*, and *fz*.
|
||||
|
||||
The value *dist* is the current length of the bond. The values *dx*,
|
||||
*dy*, and *dz* are the :math:`(x,y,z)` components of the distance vector
|
||||
:math:`\vec{x_i} - \vec{x_j}` between the atoms in the bond. The order
|
||||
of the atoms is determined by the bond list and the respective atom-IDs
|
||||
can be output with :doc:`compute property/local
|
||||
<compute_property_local>`.
|
||||
|
||||
The value *engpot* is the potential energy for the bond,
|
||||
based on the current separation of the pair of atoms in the bond.
|
||||
|
||||
The value *force* is the magnitude of the force acting between the
|
||||
pair of atoms in the bond.
|
||||
The value *force* is the magnitude of the force acting between the pair
|
||||
of atoms in the bond, which is positive for a repulsive force and
|
||||
negative for an attractive force.
|
||||
|
||||
The values *fx*, *fy*, and *fz* are the xyz components of
|
||||
*force* between the pair of atoms in the bond. For bond styles that apply
|
||||
non-central forces, such as :doc:`bond_style bpm/rotational
|
||||
<bond_bpm_rotational>`, these values only include the :math:`(x,y,z)`
|
||||
components of the normal force component.
|
||||
The values *fx*, *fy*, and *fz* are the :math:`(x,y,z)` components of
|
||||
the force vector on atom *i* obtained by projecting *force* on the
|
||||
distance vector. For bond styles that apply non-central forces, such as
|
||||
:doc:`bond_style bpm/rotational <bond_bpm_rotational>`, these values
|
||||
only include the :math:`(x,y,z)` components of the normal force
|
||||
component.
|
||||
|
||||
The remaining properties are all computed for motion of the two atoms
|
||||
relative to the center of mass (COM) velocity of the two atoms in the
|
||||
|
||||
@ -56,19 +56,30 @@ force cutoff distance for that interaction, as defined by the
|
||||
:doc:`pair_style <pair_style>` and :doc:`pair_coeff <pair_coeff>`
|
||||
commands.
|
||||
|
||||
The value *dist* is the distance between the pair of atoms.
|
||||
The values *dx*, *dy*, and *dz* are the :math:`(x,y,z)` components of the
|
||||
*distance* between the pair of atoms. This value is always the
|
||||
distance from the atom of higher to the one with the lower atom ID.
|
||||
.. versionchanged:: TBD
|
||||
|
||||
The sign of *dx*, *dy*, *dz* is no longer determined by the value of
|
||||
their atom-IDs but by their order in the neighbor list to be
|
||||
consistent with *fx*, *fy*, and *fz*.
|
||||
|
||||
The value *dist* is the distance between the pair of atoms. The values
|
||||
*dx*, *dy*, and *dz* are the :math:`(x,y,z)` components of the distance
|
||||
vector :math:`\vec{x_i} - \vec{x_j}` between the pair of atoms. The
|
||||
order of the atoms is determined by the neighbor list and the respective
|
||||
atom-IDs can be output with :doc:`compute property/local
|
||||
<compute_property_local>`.
|
||||
|
||||
The value *eng* is the interaction energy for the pair of atoms.
|
||||
|
||||
The value *force* is the force acting between the pair of atoms, which
|
||||
is positive for a repulsive force and negative for an attractive
|
||||
force. The values *fx*, *fy*, and *fz* are the :math:`(x,y,z)` components of
|
||||
*force* on atom I. For pair styles that apply non-central forces,
|
||||
such as :doc:`granular pair styles <pair_gran>`, these values only include
|
||||
the :math:`(x,y,z)` components of the normal force component.
|
||||
force.
|
||||
|
||||
The values *fx*, *fy*, and *fz* are the :math:`(x,y,z)` components of
|
||||
the force vector on atom *i* obtained by projecting *force* on the
|
||||
distance vector. For pair styles that apply non-central forces, such as
|
||||
:doc:`granular pair styles <pair_gran>`, these values only include the
|
||||
:math:`(x,y,z)` components of the normal force component.
|
||||
|
||||
A pair style may define additional pairwise quantities which can be
|
||||
accessed as *p1* to *pN*, where :math:`N` is defined by the pair style.
|
||||
|
||||
@ -428,22 +428,19 @@ int ComputeBondLocal::compute_bonds(int flag)
|
||||
if (dstr) input->variable->internal_set(dvar, sqrt(rsq));
|
||||
}
|
||||
|
||||
// to make sure dx, dy and dz are always from the lower to the higher id
|
||||
double directionCorrection = tag[atom1] > tag[atom2] ? -1.0 : 1.0;
|
||||
|
||||
for (int n = 0; n < nvalues; n++) {
|
||||
switch (bstyle[n]) {
|
||||
case DIST:
|
||||
ptr[n] = sqrt(rsq);
|
||||
break;
|
||||
case DX:
|
||||
ptr[n] = dx * directionCorrection;
|
||||
ptr[n] = dx;
|
||||
break;
|
||||
case DY:
|
||||
ptr[n] = dy * directionCorrection;
|
||||
ptr[n] = dy;
|
||||
break;
|
||||
case DZ:
|
||||
ptr[n] = dz * directionCorrection;
|
||||
ptr[n] = dz;
|
||||
break;
|
||||
case ENGPOT:
|
||||
ptr[n] = engpot;
|
||||
|
||||
@ -277,22 +277,19 @@ int ComputePairLocal::compute_pairs(int flag)
|
||||
else
|
||||
ptr = alocal[m];
|
||||
|
||||
// to make sure dx, dy and dz are always from the lower to the higher id
|
||||
double directionCorrection = itag > jtag ? -1.0 : 1.0;
|
||||
|
||||
for (n = 0; n < nvalues; n++) {
|
||||
switch (pstyle[n]) {
|
||||
case DIST:
|
||||
ptr[n] = sqrt(rsq);
|
||||
break;
|
||||
case DX:
|
||||
ptr[n] = delx * directionCorrection;
|
||||
ptr[n] = delx;
|
||||
break;
|
||||
case DY:
|
||||
ptr[n] = dely * directionCorrection;
|
||||
ptr[n] = dely;
|
||||
break;
|
||||
case DZ:
|
||||
ptr[n] = delz * directionCorrection;
|
||||
ptr[n] = delz;
|
||||
break;
|
||||
case ENG:
|
||||
ptr[n] = eng;
|
||||
|
||||
Reference in New Issue
Block a user