diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C index 8284a3ec7c..ba6791e9ce 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, 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, 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 a0fa128bbb..70107dc19c 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 restraints_; + //- Names of the restraints + wordList restraintNames_; + //- Constaints on the motion PtrList 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& restraints() const; + //- Return access to the restraintNames + inline const wordList& restraintNames() const; + //- Return access to the constraints inline const PtrList& 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 890a83b2c0..e8a9d047f4 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 6835f4646e..4dea5d4688 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::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 55245c3bfe..e8d1b187a0 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 7fee5eb84e..32b1bc1e83 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