| 63 |
|
|
| 64 |
|
if (nLinearAxis > 1) { |
| 65 |
|
sprintf( painCave.errMsg, |
| 66 |
< |
"Directional Atom error.\n" |
| 66 |
> |
"Directional Atom warning.\n" |
| 67 |
|
"\tOOPSE found more than one axis in this directional atom with a vanishing \n" |
| 68 |
|
"\tmoment of inertia."); |
| 69 |
< |
painCave.isFatal = 1; |
| 69 |
> |
painCave.isFatal = 0; |
| 70 |
|
simError(); |
| 71 |
|
} |
| 72 |
|
|
| 104 |
|
setA(m *getA()); |
| 105 |
|
} |
| 106 |
|
|
| 107 |
< |
std::vector<double> DirectionalAtom::getGrad() { |
| 108 |
< |
std::vector<double> grad(6, 0.0); |
| 107 |
> |
std::vector<RealType> DirectionalAtom::getGrad() { |
| 108 |
> |
std::vector<RealType> grad(6, 0.0); |
| 109 |
|
Vector3d force; |
| 110 |
|
Vector3d torque; |
| 111 |
|
Vector3d myEuler; |
| 112 |
< |
double phi, theta, psi; |
| 113 |
< |
double cphi, sphi, ctheta, stheta; |
| 112 |
> |
RealType phi, theta, psi; |
| 113 |
> |
RealType cphi, sphi, ctheta, stheta; |
| 114 |
|
Vector3d ephi; |
| 115 |
|
Vector3d etheta; |
| 116 |
|
Vector3d epsi; |
| 148 |
|
|
| 149 |
|
for (int j = 0; j < 3; j++ ) { |
| 150 |
|
|
| 151 |
< |
grad[3] += torque[j]*ephi[j]; |
| 152 |
< |
grad[4] += torque[j]*etheta[j]; |
| 153 |
< |
grad[5] += torque[j]*epsi[j]; |
| 151 |
> |
grad[3] -= torque[j]*ephi[j]; |
| 152 |
> |
grad[4] -= torque[j]*etheta[j]; |
| 153 |
> |
grad[5] -= torque[j]*epsi[j]; |
| 154 |
|
|
| 155 |
|
} |
| 156 |
|
|