mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
BUG: sixDoFRigidBodyMotionRestraint. Stabilisation of divisions.
This commit is contained in:
@ -101,10 +101,10 @@ Foam::sixDoFRigidBodyMotionRestraints::linearAxialAngularSpring::restrain
|
||||
|
||||
// Removing any axis component from oldDir and newDir and normalising
|
||||
oldDir -= (axis_ & oldDir)*axis_;
|
||||
oldDir /= mag(oldDir);
|
||||
oldDir /= (mag(oldDir) + VSMALL);
|
||||
|
||||
newDir -= (axis_ & newDir)*axis_;
|
||||
newDir /= mag(newDir);
|
||||
newDir /= (mag(newDir) + VSMALL);
|
||||
|
||||
scalar theta = mag(acos(min(oldDir & newDir, 1.0)));
|
||||
|
||||
|
||||
@ -86,7 +86,7 @@ void Foam::sixDoFRigidBodyMotionRestraints::linearSpring::restrain
|
||||
scalar magR = mag(r);
|
||||
|
||||
// r is now the r unit vector
|
||||
r /= magR;
|
||||
r /= (magR + VSMALL);
|
||||
|
||||
vector v = motion.currentVelocity(restraintPosition);
|
||||
|
||||
|
||||
@ -103,10 +103,10 @@ Foam::sixDoFRigidBodyMotionRestraints::tabulatedAxialAngularSpring::restrain
|
||||
|
||||
// Removing any axis component from oldDir and newDir and normalising
|
||||
oldDir -= (axis_ & oldDir)*axis_;
|
||||
oldDir /= mag(oldDir);
|
||||
oldDir /= (mag(oldDir) + VSMALL);
|
||||
|
||||
newDir -= (axis_ & newDir)*axis_;
|
||||
newDir /= mag(newDir);
|
||||
newDir /= (mag(newDir) + VSMALL);
|
||||
|
||||
scalar theta = mag(acos(min(oldDir & newDir, 1.0)));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user