- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Actions/AnalysisAction/PrincipalAxisSystemAction.cpp
r6e5084 rbf3817 5 5 * Author: heber 6 6 */ 7 8 // include config.h 9 #ifdef HAVE_CONFIG_H 10 #include <config.h> 11 #endif 7 12 8 13 #include "Helpers/MemDebug.hpp" … … 62 67 // sum up inertia tensor 63 68 for (molecule::const_iterator iter = mol->begin(); iter != mol->end(); ++iter) { 64 Vector x = (*iter)-> x;69 Vector x = (*iter)->getPosition(); 65 70 x -= *CenterOfGravity; 66 InertiaTensor.at(0,0) += (*iter)->type->mass*(x[1]*x[1] + x[2]*x[2]); 67 InertiaTensor.at(0,1) += (*iter)->type->mass*(-x[0]*x[1]); 68 InertiaTensor.at(0,2) += (*iter)->type->mass*(-x[0]*x[2]); 69 InertiaTensor.at(1,0) += (*iter)->type->mass*(-x[1]*x[0]); 70 InertiaTensor.at(1,1) += (*iter)->type->mass*(x[0]*x[0] + x[2]*x[2]); 71 InertiaTensor.at(1,2) += (*iter)->type->mass*(-x[1]*x[2]); 72 InertiaTensor.at(2,0) += (*iter)->type->mass*(-x[2]*x[0]); 73 InertiaTensor.at(2,1) += (*iter)->type->mass*(-x[2]*x[1]); 74 InertiaTensor.at(2,2) += (*iter)->type->mass*(x[0]*x[0] + x[1]*x[1]); 71 const double mass = (*iter)->getType()->mass; 72 InertiaTensor.at(0,0) += mass*(x[1]*x[1] + x[2]*x[2]); 73 InertiaTensor.at(0,1) += mass*(-x[0]*x[1]); 74 InertiaTensor.at(0,2) += mass*(-x[0]*x[2]); 75 InertiaTensor.at(1,0) += mass*(-x[1]*x[0]); 76 InertiaTensor.at(1,1) += mass*(x[0]*x[0] + x[2]*x[2]); 77 InertiaTensor.at(1,2) += mass*(-x[1]*x[2]); 78 InertiaTensor.at(2,0) += mass*(-x[2]*x[0]); 79 InertiaTensor.at(2,1) += mass*(-x[2]*x[1]); 80 InertiaTensor.at(2,2) += mass*(x[0]*x[0] + x[1]*x[1]); 75 81 } 76 82 // print InertiaTensor for debugging
Note:
See TracChangeset
for help on using the changeset viewer.