| 33 |
|
double kinetic; |
| 34 |
|
double amass; |
| 35 |
|
double aVel[3], aJ[3], I[3][3]; |
| 36 |
< |
int j, kl; |
| 36 |
> |
int i, j, k, kl; |
| 37 |
|
|
| 38 |
|
double kinetic_global; |
| 39 |
|
vector<StuntDouble *> integrableObjects = info->integrableObjects; |
| 53 |
|
integrableObjects[kl]->getJ( aJ ); |
| 54 |
|
integrableObjects[kl]->getI( I ); |
| 55 |
|
|
| 56 |
< |
for (j=0; j<3; j++) |
| 57 |
< |
kinetic += aJ[j]*aJ[j] / I[j][j]; |
| 58 |
< |
|
| 56 |
> |
if (integrableObjects[kl]->isLinear()) { |
| 57 |
> |
i = integrableObjects[kl]->linearAxis(); |
| 58 |
> |
j = (i+1)%3; |
| 59 |
> |
k = (i+2)%3; |
| 60 |
> |
kinetic += aJ[j]*aJ[j]/I[j][j] + aJ[k]*aJ[k]/I[k][k]; |
| 61 |
> |
} else { |
| 62 |
> |
for (j=0; j<3; j++) |
| 63 |
> |
kinetic += aJ[j]*aJ[j] / I[j][j]; |
| 64 |
> |
} |
| 65 |
|
} |
| 66 |
|
} |
| 67 |
|
#ifdef IS_MPI |