Commit 4386b1a8 authored by Lee-Ping Wang's avatar Lee-Ping Wang
Browse files

Fixed units for AMOEBA dipole and quadrupole moment (now returns Debye and...

Fixed units for AMOEBA dipole and quadrupole moment (now returns Debye and Debye * Angstrom, not Debye/10 and Debye*Angstrom/100.)  Rationale is that Debye/10 is not a common physical unit.  Note that CUDA platform still gets quadrupole to be incorrect.

parent 624c878f
......@@ -1713,18 +1713,18 @@ void CudaCalcAmoebaMultipoleForceKernel::computeSystemMultipoleMoments(ContextIm
double debye = 4.80321;
outputMultipoleMoments.resize(13);
outputMultipoleMoments[0] = totalCharge;
outputMultipoleMoments[1] = xdpl*debye;
outputMultipoleMoments[2] = ydpl*debye;
outputMultipoleMoments[3] = zdpl*debye;
outputMultipoleMoments[4] = xxqdp*debye;
outputMultipoleMoments[5] = xyqdp*debye;
outputMultipoleMoments[6] = xzqdp*debye;
outputMultipoleMoments[7] = yxqdp*debye;
outputMultipoleMoments[8] = yyqdp*debye;
outputMultipoleMoments[9] = yzqdp*debye;
outputMultipoleMoments[10] = zxqdp*debye;
outputMultipoleMoments[11] = zyqdp*debye;
outputMultipoleMoments[12] = zzqdp*debye;
outputMultipoleMoments[1] = 10.0*xdpl*debye;
outputMultipoleMoments[2] = 10.0*ydpl*debye;
outputMultipoleMoments[3] = 10.0*zdpl*debye;
outputMultipoleMoments[4] = 100.0*xxqdp*debye;
outputMultipoleMoments[5] = 100.0*xyqdp*debye;
outputMultipoleMoments[6] = 100.0*xzqdp*debye;
outputMultipoleMoments[7] = 100.0*yxqdp*debye;
outputMultipoleMoments[8] = 100.0*yyqdp*debye;
outputMultipoleMoments[9] = 100.0*yzqdp*debye;
outputMultipoleMoments[10] = 100.0*zxqdp*debye;
outputMultipoleMoments[11] = 100.0*zyqdp*debye;
outputMultipoleMoments[12] = 100.0*zzqdp*debye;
}
void CudaCalcAmoebaMultipoleForceKernel::getSystemMultipoleMoments(ContextImpl& context, vector<double>& outputMultipoleMoments) {
......
......@@ -1666,14 +1666,14 @@ void AmoebaReferenceMultipoleForce::calculateAmoebaSystemMultipoleMoments( const
outputMultipoleMoments[0] = netchg;
dpl *= debye;
dpl *= 10.0*debye;
outputMultipoleMoments[1] = dpl[0];
outputMultipoleMoments[2] = dpl[1];
outputMultipoleMoments[3] = dpl[2];
debye *= 3.0;
for( unsigned int ii = 4; ii < 13; ii++ ){
outputMultipoleMoments[ii] *= debye;
outputMultipoleMoments[ii] *= 100.0*debye;
}
return;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment