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
|
// 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)));
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
|
|
||||||
|
|||||||
@ -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)));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user