diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C index 8284a3ec7c4a0e91ffb0a6971bdc59f50e4888cb..ba6791e9ce189205f38205bcb097fd303bd8a86a 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 a0fa128bbbd2550e1b56f602bf05e22bb2324bb1..70107dc19cc650b8664248954d63f806ee3c661e 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 890a83b2c0b2e963bfe578c1a1935d462aff4c86..e8a9d047f43a0c1d9d8cb82a593df5042313e7c5 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 6835f4646e693dde6aed46865a01ffcfd7b24f61..4dea5d4688ad6de50129ac63a6a0449bb301e6d2 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 55245c3bfe59d8f16df75e0139041494cd0a22c6..e8d1b187a0bd608de3552e8e26a7e01aff4e9e7b 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 7fee5eb84e248b49aa351f824394429a2a9d2936..32b1bc1e830bdd421f4e31b70478327ef9d1e161 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