From c0b236ec0ee4d53a72785147942e7c7b77cea24b Mon Sep 17 00:00:00 2001 From: graham <g.macpherson@opencfd.co.uk> Date: Fri, 5 Feb 2010 17:07:41 +0000 Subject: [PATCH] ENH: sixDoFRigidBodyMotion. Adding constraint and restraint names wordLists. BUG: sixDoFRigidBodyMotion. Fixing naming of maxConstraintIterations_ inconsistency. --- .../sixDoFRigidBodyMotion.C | 36 +++++++++++++++---- .../sixDoFRigidBodyMotion.H | 12 +++++++ .../newSixDoFRigidBodyMotionConstraint.C | 4 +-- .../sixDoFRigidBodyMotionI.H | 13 +++++++ .../sixDoFRigidBodyMotionIO.C | 2 +- .../newSixDoFRigidBodyMotionRestraint.C | 4 +-- 6 files changed, 59 insertions(+), 12 deletions(-) diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C index 8284a3ec7c4..ba6791e9ce1 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C @@ -155,7 +155,9 @@ Foam::sixDoFRigidBodyMotion::sixDoFRigidBodyMotion() : motionState_(), restraints_(), + restraintNames_(), constraints_(), + constraintNames_(), maxConstraintIterations_(0), refCentreOfMass_(vector::zero), momentOfInertia_(diagTensor::one*VSMALL), @@ -188,7 +190,9 @@ Foam::sixDoFRigidBodyMotion::sixDoFRigidBodyMotion tau ), restraints_(), + restraintNames_(), constraints_(), + constraintNames_(), maxConstraintIterations_(0), refCentreOfMass_(refCentreOfMass), momentOfInertia_(momentOfInertia), @@ -201,7 +205,9 @@ Foam::sixDoFRigidBodyMotion::sixDoFRigidBodyMotion(const dictionary& dict) : motionState_(dict), restraints_(), + restraintNames_(), constraints_(), + constraintNames_(), maxConstraintIterations_(0), refCentreOfMass_(dict.lookupOrDefault("refCentreOfMass", centreOfMass())), momentOfInertia_(dict.lookup("momentOfInertia")), @@ -221,7 +227,9 @@ Foam::sixDoFRigidBodyMotion::sixDoFRigidBodyMotion : motionState_(sDoFRBM.motionState()), restraints_(sDoFRBM.restraints()), + restraintNames_(sDoFRBM.restraintNames()), constraints_(sDoFRBM.constraints()), + constraintNames_(sDoFRBM.constraintNames()), maxConstraintIterations_(sDoFRBM.maxConstraintIterations()), refCentreOfMass_(sDoFRBM.refCentreOfMass()), momentOfInertia_(sDoFRBM.momentOfInertia()), @@ -251,23 +259,29 @@ void Foam::sixDoFRigidBodyMotion::addRestraints restraints_.setSize(restraintDict.size()); + restraintNames_.setSize(restraintDict.size()); + forAllConstIter(IDLList<entry>, restraintDict, iter) { if (iter().isDict()) { - Info<< "Adding restraint: " << iter().keyword() << endl; + // Info<< "Adding restraint: " << iter().keyword() << endl; restraints_.set ( i, sixDoFRigidBodyMotionRestraint::New(iter().dict()) ); - } - i++; + restraintNames_[i] = iter().keyword(); + + i++; + } } restraints_.setSize(i); + + restraintNames_.setSize(i); } } @@ -285,25 +299,33 @@ void Foam::sixDoFRigidBodyMotion::addConstraints constraints_.setSize(constraintDict.size()); + constraintNames_.setSize(constraintDict.size()); + forAllConstIter(IDLList<entry>, constraintDict, iter) { if (iter().isDict()) { - Info<< "Adding constraint: " << iter().keyword() << endl; + // Info<< "Adding constraint: " << iter().keyword() << endl; constraints_.set ( - i++, + i, sixDoFRigidBodyMotionConstraint::New(iter().dict()) ); + + constraintNames_[i] = iter().keyword(); + + i++; } } constraints_.setSize(i); - if (constraints_.size()) + constraintNames_.setSize(i); + + if (!constraints_.empty()) { - maxConstraintIters_ = readLabel + maxConstraintIterations_ = readLabel ( constraintDict.lookup("maxIterations") ); diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.H b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.H index a0fa128bbbd..70107dc19cc 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.H +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.H @@ -91,9 +91,15 @@ class sixDoFRigidBodyMotion //- Restraints on the motion PtrList<sixDoFRigidBodyMotionRestraint> restraints_; + //- Names of the restraints + wordList restraintNames_; + //- Constaints on the motion PtrList<sixDoFRigidBodyMotionConstraint> constraints_; + //- Names of the constraints + wordList constraintNames_; + //- Maximum number of iterations allowed to attempt to obey // constraints label maxConstraintIterations_; @@ -146,10 +152,16 @@ class sixDoFRigidBodyMotion inline const PtrList<sixDoFRigidBodyMotionRestraint>& restraints() const; + //- Return access to the restraintNames + inline const wordList& restraintNames() const; + //- Return access to the constraints inline const PtrList<sixDoFRigidBodyMotionConstraint>& constraints() const; + //- Return access to the constraintNames + inline const wordList& constraintNames() const; + //- Return access to the maximum allowed number of // constraint iterations inline label maxConstraintIterations() const; diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint/newSixDoFRigidBodyMotionConstraint.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint/newSixDoFRigidBodyMotionConstraint.C index 890a83b2c0b..e8a9d047f43 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint/newSixDoFRigidBodyMotionConstraint.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint/newSixDoFRigidBodyMotionConstraint.C @@ -34,8 +34,8 @@ Foam::sixDoFRigidBodyMotionConstraint::New(const dictionary& sDoFRBMCDict) word sixDoFRigidBodyMotionConstraintTypeName = sDoFRBMCDict.lookup("sixDoFRigidBodyMotionConstraint"); - Info<< "Selecting sixDoFRigidBodyMotionConstraint function " - << sixDoFRigidBodyMotionConstraintTypeName << endl; + // Info<< "Selecting sixDoFRigidBodyMotionConstraint function " + // << sixDoFRigidBodyMotionConstraintTypeName << endl; dictionaryConstructorTable::iterator cstrIter = dictionaryConstructorTablePtr_->find diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionI.H b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionI.H index 6835f4646e6..4dea5d4688a 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionI.H +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionI.H @@ -107,6 +107,12 @@ Foam::sixDoFRigidBodyMotion::restraints() const } +inline const Foam::wordList& Foam::sixDoFRigidBodyMotion::restraintNames() const +{ + return restraintNames_; +} + + inline const Foam::PtrList<Foam::sixDoFRigidBodyMotionConstraint>& Foam::sixDoFRigidBodyMotion::constraints() const { @@ -114,6 +120,13 @@ Foam::sixDoFRigidBodyMotion::constraints() const } +inline const Foam::wordList& +Foam::sixDoFRigidBodyMotion::constraintNames() const +{ + return constraintNames_; +} + + inline Foam::label Foam::sixDoFRigidBodyMotion::maxConstraintIterations() const { return maxConstraintIterations_; diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionIO.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionIO.C index 55245c3bfe5..e8d1b187a0b 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionIO.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionIO.C @@ -69,7 +69,7 @@ void Foam::sixDoFRigidBodyMotion::write(Ostream& os) const { dictionary constraintsDict; - constraintsDict.add("maxIterations", maxConstraintIters_); + constraintsDict.add("maxIterations", maxConstraintIterations_); forAll(constraints_, rI) { diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint/newSixDoFRigidBodyMotionRestraint.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint/newSixDoFRigidBodyMotionRestraint.C index 7fee5eb84e2..32b1bc1e830 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint/newSixDoFRigidBodyMotionRestraint.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint/newSixDoFRigidBodyMotionRestraint.C @@ -34,8 +34,8 @@ Foam::sixDoFRigidBodyMotionRestraint::New(const dictionary& sDoFRBMRDict) word sixDoFRigidBodyMotionRestraintTypeName = sDoFRBMRDict.lookup("sixDoFRigidBodyMotionRestraint"); - Info<< "Selecting sixDoFRigidBodyMotionRestraint function " - << sixDoFRigidBodyMotionRestraintTypeName << endl; + // Info<< "Selecting sixDoFRigidBodyMotionRestraint function " + // << sixDoFRigidBodyMotionRestraintTypeName << endl; dictionaryConstructorTable::iterator cstrIter = dictionaryConstructorTablePtr_->find -- GitLab