From 3afda6ea3e2ffae87f519d1390895a9a38e90324 Mon Sep 17 00:00:00 2001 From: graham Date: Wed, 3 Feb 2010 16:41:32 +0000 Subject: [PATCH] ENC: sixDoFRigidBodyMotion. Moving reporting of constraint and restraint data to the classes themselves to allow class specific data to be reported. --- .../sixDoFRigidBodyMotion.C | 24 ------------------- .../fixedAxis/fixedAxis.C | 23 +++++++++++++++++- .../fixedLine/fixedLine.C | 23 +++++++++++++++++- .../fixedOrientation/fixedOrientation.C | 23 +++++++++++++++++- .../fixedPlane/fixedPlane.C | 23 +++++++++++++++++- .../fixedPoint/fixedPoint.C | 23 +++++++++++++++++- .../linearAxialAngularSpring.C | 9 +++++++ .../linearSpring/linearSpring.C | 9 +++++++ .../sphericalAngularSpring.C | 8 +++++++ .../tabulatedAxialAngularSpring.C | 9 +++++++ 10 files changed, 145 insertions(+), 29 deletions(-) diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C index f5d9a1a7c7..b89971b17f 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C @@ -45,13 +45,6 @@ void Foam::sixDoFRigidBodyMotion::applyRestraints() restraints_[rI].restrain(*this, rP, rF, rM); - if (report_) - { - Info<< "Restraint " << restraints_[rI].name() << ": " - << "force " << rF << " moment " << rM - << endl; - } - a() += rF/mass_; // Moments are returned in global axes, transforming to @@ -104,23 +97,6 @@ void Foam::sixDoFRigidBodyMotion::applyConstraints(scalar deltaT) 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 cFA += cF; diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedAxis/fixedAxis.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedAxis/fixedAxis.C index 02eb2eb307..9993dfcece 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedAxis/fixedAxis.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedAxis/fixedAxis.C @@ -119,7 +119,28 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedAxis::constrain 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; } diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedLine/fixedLine.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedLine/fixedLine.C index b5cee9ecc2..635267a259 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedLine/fixedLine.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedLine/fixedLine.C @@ -105,7 +105,28 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedLine::constrain 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; } diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedOrientation/fixedOrientation.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedOrientation/fixedOrientation.C index 4a15e3e549..74112ab3b4 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedOrientation/fixedOrientation.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedOrientation/fixedOrientation.C @@ -146,7 +146,28 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedOrientation::constrain 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; } diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedPlane/fixedPlane.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedPlane/fixedPlane.C index fad22e7c13..6d5ba4962b 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedPlane/fixedPlane.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedPlane/fixedPlane.C @@ -105,7 +105,28 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedPlane::constrain 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; } diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedPoint/fixedPoint.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedPoint/fixedPoint.C index cfe8b5421d..5d03ab411f 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedPoint/fixedPoint.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedPoint/fixedPoint.C @@ -114,7 +114,28 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedPoint::constrain 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; } diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/linearAxialAngularSpring/linearAxialAngularSpring.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/linearAxialAngularSpring/linearAxialAngularSpring.C index 373d2ea7d8..5aa198f2b7 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/linearAxialAngularSpring/linearAxialAngularSpring.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/linearAxialAngularSpring/linearAxialAngularSpring.C @@ -133,6 +133,15 @@ Foam::sixDoFRigidBodyMotionRestraints::linearAxialAngularSpring::restrain // Not needed to be altered as restraintForce is zero, but set to // centreOfMass to be sure of no spurious moment restraintPosition = motion.centreOfMass(); + + if (motion.report()) + { + Info<< "Restraint " << this->name() + << " angle " << theta + << " force " << restraintForce + << " moment " << restraintMoment + << endl; + } } diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/linearSpring/linearSpring.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/linearSpring/linearSpring.C index 966e911c6e..8067233e1c 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/linearSpring/linearSpring.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/linearSpring/linearSpring.C @@ -93,6 +93,15 @@ void Foam::sixDoFRigidBodyMotionRestraints::linearSpring::restrain restraintForce = -stiffness_*(magR - restLength_)*r - damping_*(r & v)*r; restraintMoment = vector::zero; + + if (motion.report()) + { + Info<< "Restraint " << this->name() + << " spring length " << magR + << " force " << restraintForce + << " moment " << restraintMoment + << endl; + } } diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sphericalAngularSpring/sphericalAngularSpring.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sphericalAngularSpring/sphericalAngularSpring.C index af11dcb421..a961e5591a 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sphericalAngularSpring/sphericalAngularSpring.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sphericalAngularSpring/sphericalAngularSpring.C @@ -110,6 +110,14 @@ Foam::sixDoFRigidBodyMotionRestraints::sphericalAngularSpring::restrain // Not needed to be altered as restraintForce is zero, but set to // centreOfMass to be sure of no spurious moment restraintPosition = motion.centreOfMass(); + + if (motion.report()) + { + Info<< "Restraint " << this->name() + << " force " << restraintForce + << " moment " << restraintMoment + << endl; + } } diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/tabulatedAxialAngularSpring/tabulatedAxialAngularSpring.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/tabulatedAxialAngularSpring/tabulatedAxialAngularSpring.C index c1609e9df3..159419d44a 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/tabulatedAxialAngularSpring/tabulatedAxialAngularSpring.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/tabulatedAxialAngularSpring/tabulatedAxialAngularSpring.C @@ -133,6 +133,15 @@ Foam::sixDoFRigidBodyMotionRestraints::tabulatedAxialAngularSpring::restrain // Not needed to be altered as restraintForce is zero, but set to // centreOfMass to be sure of no spurious moment restraintPosition = motion.centreOfMass(); + + if (motion.report()) + { + Info<< "Restraint " << this->name() + << " angle " << theta + << " force " << restraintForce + << " moment " << restraintMoment + << endl; + } }