Fixed error in average option

git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@14280 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
athomps
2015-12-04 19:06:19 +00:00
parent 853eab8917
commit 28e3ebfd10

View File

@ -107,8 +107,7 @@ ComputeMSD::ComputeMSD(LAMMPS *lmp, int narg, char **arg) :
// initialize counter for average positions if requested
if (avflag) naverage = 1;
naverage = 0;
}
// displacement vector
@ -179,10 +178,18 @@ void ComputeMSD::compute_vector()
double msd[4];
msd[0] = msd[1] = msd[2] = msd[3] = 0.0;
double xtmp, ytmp, ztmp;
// update number of averages if requested
double navfac;
if (avflag) {
naverage++;
printf("naverage = %d\n",naverage);
navfac = 1.0/naverage;
}
if (domain->triclinic == 0) {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
@ -203,11 +210,9 @@ void ComputeMSD::compute_vector()
// use running average position for reference if requested
if (avflag) {
double navfac = 1.0/(naverage+1);
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;
naverage++;
xoriginal[i][0] = (xoriginal[i][0]*(naverage-1) + xtmp)*navfac;
xoriginal[i][1] = (xoriginal[i][1]*(naverage-1) + ytmp)*navfac;
xoriginal[i][2] = (xoriginal[i][2]*(naverage-1) + ztmp)*navfac;
}
}
} else {
@ -230,11 +235,9 @@ void ComputeMSD::compute_vector()
// use running average position for reference if requested
if (avflag) {
double navfac = 1.0/(naverage+1);
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;
naverage++;
xoriginal[i][0] = (xoriginal[i][0]*(naverage-1) + xtmp)*navfac;
xoriginal[i][1] = (xoriginal[i][0]*(naverage-1) + xtmp)*navfac;
xoriginal[i][2] = (xoriginal[i][0]*(naverage-1) + xtmp)*navfac;
}
}
}