forked from lijiext/lammps
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@2871 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
parent
7d3db28119
commit
04a5fb2526
66
src/pair.cpp
66
src/pair.cpp
|
@ -690,6 +690,72 @@ void Pair::v_tally4(int i, int j, int k, int m,
|
||||||
vatom[m][3] += v[3]; vatom[m][4] += v[4]; vatom[m][5] += v[5];
|
vatom[m][3] += v[3]; vatom[m][4] += v[4]; vatom[m][5] += v[5];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------------
|
||||||
|
tally virial into global and per-atom accumulators
|
||||||
|
called by pair lubricate potential with 6 tensor components
|
||||||
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
void Pair::v_tally_tensor(int i, int j, int nlocal, int newton_pair,
|
||||||
|
double vxx, double vyy, double vzz,
|
||||||
|
double vxy, double vxz, double vyz)
|
||||||
|
{
|
||||||
|
double v[6];
|
||||||
|
|
||||||
|
v[0] = vxx;
|
||||||
|
v[1] = vyy;
|
||||||
|
v[2] = vzz;
|
||||||
|
v[3] = vxy;
|
||||||
|
v[4] = vxz;
|
||||||
|
v[5] = vyz;
|
||||||
|
|
||||||
|
if (vflag_global) {
|
||||||
|
if (newton_pair) {
|
||||||
|
virial[0] += v[0];
|
||||||
|
virial[1] += v[1];
|
||||||
|
virial[2] += v[2];
|
||||||
|
virial[3] += v[3];
|
||||||
|
virial[4] += v[4];
|
||||||
|
virial[5] += v[5];
|
||||||
|
} else {
|
||||||
|
if (i < nlocal) {
|
||||||
|
virial[0] += 0.5*v[0];
|
||||||
|
virial[1] += 0.5*v[1];
|
||||||
|
virial[2] += 0.5*v[2];
|
||||||
|
virial[3] += 0.5*v[3];
|
||||||
|
virial[4] += 0.5*v[4];
|
||||||
|
virial[5] += 0.5*v[5];
|
||||||
|
}
|
||||||
|
if (j < nlocal) {
|
||||||
|
virial[0] += 0.5*v[0];
|
||||||
|
virial[1] += 0.5*v[1];
|
||||||
|
virial[2] += 0.5*v[2];
|
||||||
|
virial[3] += 0.5*v[3];
|
||||||
|
virial[4] += 0.5*v[4];
|
||||||
|
virial[5] += 0.5*v[5];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (vflag_atom) {
|
||||||
|
if (newton_pair || i < nlocal) {
|
||||||
|
vatom[i][0] += 0.5*v[0];
|
||||||
|
vatom[i][1] += 0.5*v[1];
|
||||||
|
vatom[i][2] += 0.5*v[2];
|
||||||
|
vatom[i][3] += 0.5*v[3];
|
||||||
|
vatom[i][4] += 0.5*v[4];
|
||||||
|
vatom[i][5] += 0.5*v[5];
|
||||||
|
}
|
||||||
|
if (newton_pair || j < nlocal) {
|
||||||
|
vatom[j][0] += 0.5*v[0];
|
||||||
|
vatom[j][1] += 0.5*v[1];
|
||||||
|
vatom[j][2] += 0.5*v[2];
|
||||||
|
vatom[j][3] += 0.5*v[3];
|
||||||
|
vatom[j][4] += 0.5*v[4];
|
||||||
|
vatom[j][5] += 0.5*v[5];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
compute global pair virial via summing F dot r over own & ghost atoms
|
compute global pair virial via summing F dot r over own & ghost atoms
|
||||||
at this point, only pairwise forces have been accumulated in atom->f
|
at this point, only pairwise forces have been accumulated in atom->f
|
||||||
|
|
|
@ -127,6 +127,8 @@ class Pair : protected Pointers {
|
||||||
void v_tally3(int, int, int, double *, double *, double *, double *);
|
void v_tally3(int, int, int, double *, double *, double *, double *);
|
||||||
void v_tally4(int, int, int, int, double *, double *, double *,
|
void v_tally4(int, int, int, int, double *, double *, double *,
|
||||||
double *, double *, double *);
|
double *, double *, double *);
|
||||||
|
void v_tally_tensor(int, int, int, int,
|
||||||
|
double, double, double, double, double, double);
|
||||||
void virial_compute();
|
void virial_compute();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue