Merge branch 'sixDofPatch'

This commit is contained in:
graham
2010-02-03 17:48:07 +00:00
10 changed files with 145 additions and 29 deletions

View File

@ -45,13 +45,6 @@ void Foam::sixDoFRigidBodyMotion::applyRestraints()
restraints_[rI].restrain(*this, rP, rF, rM); restraints_[rI].restrain(*this, rP, rF, rM);
if (report_)
{
Info<< "Restraint " << restraints_[rI].name() << ": "
<< "force " << rF << " moment " << rM
<< endl;
}
a() += rF/mass_; a() += rF/mass_;
// Moments are returned in global axes, transforming to // Moments are returned in global axes, transforming to
@ -104,23 +97,6 @@ void Foam::sixDoFRigidBodyMotion::applyConstraints(scalar deltaT)
allConverged = allConverged && constraintConverged; allConverged = allConverged && constraintConverged;
if (report_)
{
Info<< "Constraint " << constraints_[cI].name()
<< ": force " << cF << " moment " << cM;
if (constraintConverged)
{
Info<< " - converged";
}
else
{
Info<< " - not converged";
}
Info<< endl;
}
// Accumulate constraint force // Accumulate constraint force
cFA += cF; cFA += cF;

View File

@ -119,7 +119,28 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedAxis::constrain
constraintForceIncrement = vector::zero; constraintForceIncrement = vector::zero;
return (mag(theta) < tolerance_); bool converged(mag(theta) < tolerance_);
if (motion.report())
{
Info<< "Constraint " << this->name()
<< " angle " << theta
<< " force " << constraintForceIncrement
<< " moment " << constraintMomentIncrement;
if (converged)
{
Info<< " converged";
}
else
{
Info<< " not converged";
}
Info<< endl;
}
return converged;
} }

View File

@ -105,7 +105,28 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedLine::constrain
constraintMomentIncrement = vector::zero; constraintMomentIncrement = vector::zero;
return (mag(error) < tolerance_); bool converged(mag(error) < tolerance_);
if (motion.report())
{
Info<< "Constraint " << this->name()
<< " error << " << error
<< " force " << constraintForceIncrement
<< " moment " << constraintMomentIncrement;
if (converged)
{
Info<< " converged";
}
else
{
Info<< " not converged";
}
Info<< endl;
}
return converged;
} }

View File

@ -146,7 +146,28 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedOrientation::constrain
constraintForceIncrement = vector::zero; constraintForceIncrement = vector::zero;
return (mag(maxTheta) < tolerance_); bool converged(mag(maxTheta) < tolerance_);
if (motion.report())
{
Info<< "Constraint " << this->name()
<< " max angle " << maxTheta
<< " force " << constraintForceIncrement
<< " moment " << constraintMomentIncrement;
if (converged)
{
Info<< " converged";
}
else
{
Info<< " not converged";
}
Info<< endl;
}
return converged;
} }

View File

@ -105,7 +105,28 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedPlane::constrain
constraintMomentIncrement = vector::zero; constraintMomentIncrement = vector::zero;
return (mag(error) < tolerance_); bool converged(mag(error) < tolerance_);
if (motion.report())
{
Info<< "Constraint " << this->name()
<< " error " << error
<< " force " << constraintForceIncrement
<< " moment " << constraintMomentIncrement;
if (converged)
{
Info<< " converged";
}
else
{
Info<< " not converged";
}
Info<< endl;
}
return converged;
} }

View File

@ -114,7 +114,28 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedPoint::constrain
constraintMomentIncrement = vector::zero; constraintMomentIncrement = vector::zero;
return (mag(error) < tolerance_); bool converged(mag(error) < tolerance_);
if (motion.report())
{
Info<< "Constraint " << this->name()
<< " error " << error
<< " force " << constraintForceIncrement
<< " moment " << constraintMomentIncrement;
if (converged)
{
Info<< " converged";
}
else
{
Info<< " not converged";
}
Info<< endl;
}
return converged;
} }

View File

@ -133,6 +133,15 @@ Foam::sixDoFRigidBodyMotionRestraints::linearAxialAngularSpring::restrain
// Not needed to be altered as restraintForce is zero, but set to // Not needed to be altered as restraintForce is zero, but set to
// centreOfMass to be sure of no spurious moment // centreOfMass to be sure of no spurious moment
restraintPosition = motion.centreOfMass(); restraintPosition = motion.centreOfMass();
if (motion.report())
{
Info<< "Restraint " << this->name()
<< " angle " << theta
<< " force " << restraintForce
<< " moment " << restraintMoment
<< endl;
}
} }

View File

@ -93,6 +93,15 @@ void Foam::sixDoFRigidBodyMotionRestraints::linearSpring::restrain
restraintForce = -stiffness_*(magR - restLength_)*r - damping_*(r & v)*r; restraintForce = -stiffness_*(magR - restLength_)*r - damping_*(r & v)*r;
restraintMoment = vector::zero; restraintMoment = vector::zero;
if (motion.report())
{
Info<< "Restraint " << this->name()
<< " spring length " << magR
<< " force " << restraintForce
<< " moment " << restraintMoment
<< endl;
}
} }

View File

@ -110,6 +110,14 @@ Foam::sixDoFRigidBodyMotionRestraints::sphericalAngularSpring::restrain
// Not needed to be altered as restraintForce is zero, but set to // Not needed to be altered as restraintForce is zero, but set to
// centreOfMass to be sure of no spurious moment // centreOfMass to be sure of no spurious moment
restraintPosition = motion.centreOfMass(); restraintPosition = motion.centreOfMass();
if (motion.report())
{
Info<< "Restraint " << this->name()
<< " force " << restraintForce
<< " moment " << restraintMoment
<< endl;
}
} }

View File

@ -133,6 +133,15 @@ Foam::sixDoFRigidBodyMotionRestraints::tabulatedAxialAngularSpring::restrain
// Not needed to be altered as restraintForce is zero, but set to // Not needed to be altered as restraintForce is zero, but set to
// centreOfMass to be sure of no spurious moment // centreOfMass to be sure of no spurious moment
restraintPosition = motion.centreOfMass(); restraintPosition = motion.centreOfMass();
if (motion.report())
{
Info<< "Restraint " << this->name()
<< " angle " << theta
<< " force " << restraintForce
<< " moment " << restraintMoment
<< endl;
}
} }