| 981 | 
  | 
    | 
| 982 | 
  | 
   /*  | 
| 983 | 
  | 
   Return intertia tensor for entire system and angular momentum Vector. | 
| 984 | 
+ | 
 | 
| 985 | 
+ | 
 | 
| 986 | 
+ | 
       [  Ixx -Ixy  -Ixz ] | 
| 987 | 
+ | 
  J =| -Iyx  Iyy  -Iyz | | 
| 988 | 
+ | 
       [ -Izx -Iyz   Izz ] | 
| 989 | 
  | 
    */ | 
| 990 | 
  | 
 | 
| 991 | 
  | 
   void SimInfo::getInertiaTensor(Mat3x3d &inertiaTensor, Vector3d &angularMomentum){ | 
| 1037 | 
  | 
      inertiaTensor(0,1) = -xy; | 
| 1038 | 
  | 
      inertiaTensor(0,2) = -xz; | 
| 1039 | 
  | 
      inertiaTensor(1,0) = -xy; | 
| 1040 | 
< | 
      inertiaTensor(2,0) = xx + zz; | 
| 1040 | 
> | 
      inertiaTensor(1,1) = xx + zz; | 
| 1041 | 
  | 
      inertiaTensor(1,2) = -yz; | 
| 1042 | 
  | 
      inertiaTensor(2,0) = -xz; | 
| 1043 | 
  | 
      inertiaTensor(2,1) = -yz; | 
| 1065 | 
  | 
      SimInfo::MoleculeIterator i; | 
| 1066 | 
  | 
      Molecule* mol; | 
| 1067 | 
  | 
       | 
| 1068 | 
< | 
      Vector3d thisq(0.0); | 
| 1069 | 
< | 
      Vector3d thisv(0.0); | 
| 1068 | 
> | 
      Vector3d thisr(0.0); | 
| 1069 | 
> | 
      Vector3d thisp(0.0); | 
| 1070 | 
  | 
       | 
| 1071 | 
< | 
      double thisMass = 0.0; | 
| 1071 | 
> | 
      double thisMass; | 
| 1072 | 
  | 
       | 
| 1073 | 
  | 
      for (mol = beginMolecule(i); mol != NULL; mol = nextMolecule(i)) {          | 
| 1074 | 
< | 
         thisq = mol->getCom()-com; | 
| 1075 | 
< | 
         thisv = mol->getComVel()-comVel; | 
| 1076 | 
< | 
         thisMass = mol->getMass(); | 
| 1072 | 
< | 
         angularMomentum += cross( thisq, thisv ) * thisMass; | 
| 1074 | 
> | 
        thisMass = mol->getMass();  | 
| 1075 | 
> | 
        thisr = mol->getCom()-com; | 
| 1076 | 
> | 
        thisp = (mol->getComVel()-comVel)*thisMass; | 
| 1077 | 
  | 
          | 
| 1078 | 
+ | 
        angularMomentum += cross( thisr, thisp ); | 
| 1079 | 
+ | 
          | 
| 1080 | 
  | 
      }   | 
| 1081 | 
  | 
        | 
| 1082 | 
  | 
#ifdef IS_MPI |