| 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]; |