--- trunk/OOPSE/libmdtools/Bend.cpp 2003/03/21 17:42:12 378 +++ trunk/OOPSE/libmdtools/Bend.cpp 2003/08/07 21:47:18 670 @@ -29,15 +29,21 @@ void Bend::calc_forces(){ double dadxk, dadyk, dadzk;//, dadxj, dadyj, dadzj; double daxi, dayi, dazi, daxk, dayk, dazk, daxj, dayj, dazj; + double aR[3], bR[3], cR[3]; + double aF[3], bF[3], cF[3]; + c_p_a->getPos( aR ); + c_p_b->getPos( bR ); + c_p_c->getPos( cR ); + - dx = c_p_a->getX() - c_p_b->getX(); - dy = c_p_a->getY() - c_p_b->getY(); - dz = c_p_a->getZ() - c_p_b->getZ(); + dx = aR[0] - bR[0]; + dy = aR[1] - bR[1]; + dz = aR[2] - bR[2]; - gx = c_p_c->getX() - c_p_b->getX(); - gy = c_p_c->getY() - c_p_b->getY(); - gz = c_p_c->getZ() - c_p_b->getZ(); + gx = cR[0] - bR[0]; + gy = cR[1] - bR[1]; + gz = cR[2] - bR[2]; dx2 = dx * dx; dy2 = dy * dy; @@ -107,18 +113,22 @@ void Bend::calc_forces(){ daxj = -daxi - daxk; dayj = -dayi - dayk; dazj = -dazi - dazk; + + aF[0] = daxi; + aF[1] = dayi; + aF[2] = dazi; - c_p_a->addFx(daxi); - c_p_a->addFy(dayi); - c_p_a->addFz(dazi); + bF[0] = daxj; + bF[1] = dayj; + bF[2] = dazj; - c_p_b->addFx(daxj); - c_p_b->addFy(dayj); - c_p_b->addFz(dazj); + cF[0] = daxk; + cF[1] = dayk; + cF[2] = dazk; - c_p_c->addFx(daxk); - c_p_c->addFy(dayk); - c_p_c->addFz(dazk); + c_p_a->addFrc(aF); + c_p_b->addFrc(bF); + c_p_c->addFrc(cF); return; }