BUG: sixDoFRigidBodyMotionRestraint. Stabilisation of divisions.

This commit is contained in:
graham
2010-04-28 10:35:13 +01:00
parent ad075512c1
commit 19f9f9b5e4
3 changed files with 5 additions and 5 deletions

View File

@ -101,10 +101,10 @@ Foam::sixDoFRigidBodyMotionRestraints::linearAxialAngularSpring::restrain
// Removing any axis component from oldDir and newDir and normalising // Removing any axis component from oldDir and newDir and normalising
oldDir -= (axis_ & oldDir)*axis_; oldDir -= (axis_ & oldDir)*axis_;
oldDir /= mag(oldDir); oldDir /= (mag(oldDir) + VSMALL);
newDir -= (axis_ & newDir)*axis_; newDir -= (axis_ & newDir)*axis_;
newDir /= mag(newDir); newDir /= (mag(newDir) + VSMALL);
scalar theta = mag(acos(min(oldDir & newDir, 1.0))); scalar theta = mag(acos(min(oldDir & newDir, 1.0)));

View File

@ -86,7 +86,7 @@ void Foam::sixDoFRigidBodyMotionRestraints::linearSpring::restrain
scalar magR = mag(r); scalar magR = mag(r);
// r is now the r unit vector // r is now the r unit vector
r /= magR; r /= (magR + VSMALL);
vector v = motion.currentVelocity(restraintPosition); vector v = motion.currentVelocity(restraintPosition);

View File

@ -103,10 +103,10 @@ Foam::sixDoFRigidBodyMotionRestraints::tabulatedAxialAngularSpring::restrain
// Removing any axis component from oldDir and newDir and normalising // Removing any axis component from oldDir and newDir and normalising
oldDir -= (axis_ & oldDir)*axis_; oldDir -= (axis_ & oldDir)*axis_;
oldDir /= mag(oldDir); oldDir /= (mag(oldDir) + VSMALL);
newDir -= (axis_ & newDir)*axis_; newDir -= (axis_ & newDir)*axis_;
newDir /= mag(newDir); newDir /= (mag(newDir) + VSMALL);
scalar theta = mag(acos(min(oldDir & newDir, 1.0))); scalar theta = mag(acos(min(oldDir & newDir, 1.0)));