--- trunk/OOPSE/libmdtools/Molecule.cpp 2003/04/07 16:56:38 468 +++ trunk/OOPSE/libmdtools/Molecule.cpp 2003/07/15 14:28:54 607 @@ -166,30 +166,35 @@ void Molecule::getCOM( double COM[3] ) { } -void Molecule::getCOMvel( double mtot, double COMvel[3] ) { +double Molecule::getCOMvel( double COMvel[3] ) { - double mass; - int i; + double mass, mtot; + double aVel[3]; + int i, j; - COMvel[0] = 0.0; - COMvel[1] = 0.0; - COMvel[2] = 0.0; + + for (j=0; j<3; j++) + COMvel[j] = 0.0; + mtot = 0.0; for (i=0; i < nAtoms; i++) { if (myAtoms[i] != NULL) { - + mass = myAtoms[i]->getMass(); mtot += mass; - COMvel[0] += myAtoms[i]->get_vx() * mass; - COMvel[1] += myAtoms[i]->get_vy() * mass; - COMvel[2] += myAtoms[i]->get_vz() * mass; + myAtoms[i]->getVel(aVel); + + for (j=0; j<3; j++) + COMvel[j] += aVel[j]*mass; + } } - COMvel[0] /= mtot; - COMvel[1] /= mtot; - COMvel[2] /= mtot; + for (j=0; j<3; j++) + COMvel[j] /= mtot; + return mtot; + }