| 61 |
|
int nAtomsInRb; |
| 62 |
|
double totMassInRb; |
| 63 |
|
double currAtomMass; |
| 64 |
< |
|
| 65 |
< |
double totMass; |
| 64 |
> |
double molMass; |
| 65 |
|
|
| 66 |
|
mass.resize(nIntegrableObjects); |
| 67 |
|
|
| 68 |
|
nAtoms= myStamp->getNAtoms(); |
| 69 |
|
nRigidBodies = myStamp->getNRigidBodies(); |
| 70 |
|
|
| 72 |
– |
// |
| 71 |
|
for(size_t i=0; i<nAtoms; i++){ |
| 72 |
|
|
| 73 |
|
currAtomStamp = myStamp->getAtom(i); |
| 120 |
|
refCoords.push_back(coor); |
| 121 |
|
} |
| 122 |
|
|
| 123 |
+ |
|
| 124 |
|
//calculate the reference center of mass |
| 125 |
+ |
molMass = 0; |
| 126 |
+ |
refMolCom.x = 0; |
| 127 |
+ |
refMolCom.y = 0; |
| 128 |
+ |
refMolCom.z = 0; |
| 129 |
+ |
|
| 130 |
|
for(int i = 0; i < nIntegrableObjects; i++){ |
| 131 |
|
refMolCom += refCoords[i] * mass[i]; |
| 132 |
< |
totMass += mass[i]; |
| 132 |
> |
molMass += mass[i]; |
| 133 |
|
} |
| 134 |
|
|
| 135 |
< |
refMolCom /= totMass; |
| 135 |
> |
refMolCom /= molMass; |
| 136 |
|
|
| 137 |
|
//move the reference center of mass to (0,0,0) and adjust the reference coordinate |
| 138 |
|
//of the integrabel objects |