1421 |
|
|
1422 |
|
if (data.is_Dipole) { |
1423 |
|
Vector3d D = atom->getDipole() * mPoleConverter; |
1424 |
< |
RealType dk = dot(kVec, D); |
1425 |
< |
dxk[i] = cross(kVec, D); |
1424 |
> |
RealType dk = dot(D, kVec); |
1425 |
> |
dxk[i] = cross(D, kVec); |
1426 |
|
dkc[i] = dk * ckr[i]; |
1427 |
|
dks[i] = dk * skr[i]; |
1428 |
|
} |
1429 |
|
if (data.is_Quadrupole) { |
1430 |
|
Mat3x3d Q = atom->getQuadrupole(); |
1431 |
|
Q *= mPoleConverter; |
1432 |
< |
RealType qk = -( Q * k2 ).trace(); |
1432 |
> |
RealType qk = - doubleDot(Q, k2); |
1433 |
> |
// RealType qk = -( Q * k2 ).trace(); |
1434 |
|
qxk[i] = -2.0 * cross(k2, Q); |
1435 |
|
qkc[i] = qk * ckr[i]; |
1436 |
|
qks[i] = qk * skr[i]; |