From fbcfa196f22d15e05a0669f41b946d6fe554157f Mon Sep 17 00:00:00 2001 From: graham Date: Thu, 4 Feb 2010 19:26:19 +0000 Subject: [PATCH] BUG: sixDoFRigidBodyMotion. Was not skipping constraints and restraints when there were none read. Was not a problem for restraints, but constraints were stopping the code on a maxIteration trap, as it defaults to zero. --- .../sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C | 10 ++++++++++ .../sixDoFRigidBodyMotionConstraint.C | 3 +++ .../sixDoFRigidBodyMotionRestraint.C | 3 +++ 3 files changed, 16 insertions(+) diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C index b89971b17f..b0775db67e 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C @@ -30,6 +30,11 @@ License void Foam::sixDoFRigidBodyMotion::applyRestraints() { + if (restraints_.size() == 0) + { + return; + } + if (Pstream::master()) { forAll(restraints_, rI) @@ -57,6 +62,11 @@ void Foam::sixDoFRigidBodyMotion::applyRestraints() void Foam::sixDoFRigidBodyMotion::applyConstraints(scalar deltaT) { + if (constraints_.size() == 0) + { + return; + } + if (Pstream::master()) { label iter = 0; diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint.C index 082bbb34af..a272e0f986 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint.C @@ -69,6 +69,9 @@ bool Foam::sixDoFRigidBodyMotionConstraint::read const dictionary& sDoFRBMCDict ) { + name_ = + fileName(sDoFRBMCDict.name().name()).components(token::COLON).last(); + tolerance_ = (readScalar(sDoFRBMCDict.lookup("tolerance"))); relaxationFactor_ = sDoFRBMCDict.lookupOrDefault diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint.C index 7cfe723c01..13c72afc5b 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint.C @@ -64,6 +64,9 @@ bool Foam::sixDoFRigidBodyMotionRestraint::read const dictionary& sDoFRBMRDict ) { + name_ = + fileName(sDoFRBMRDict.name().name()).components(token::COLON).last(); + sDoFRBMRCoeffs_ = sDoFRBMRDict.subDict(type() + "Coeffs"); return true;