From e40cfebe62bf53cd508b172472b035489946e8c0 Mon Sep 17 00:00:00 2001 From: graham <g.macpherson@opencfd.co.uk> Date: Fri, 5 Feb 2010 20:07:22 +0000 Subject: [PATCH] ENH: sixDoFRigidBodyMotion. Rewritten write function. Now storing name of restraint or constraint in wordList in the sixDoFRigidBodyMotion object. Added a write method to all constraints and restraints. --- .../sixDoFRigidBodyMotion.C | 10 +++ .../fixedAxis/fixedAxis.C | 13 +++- .../fixedAxis/fixedAxis.H | 3 + .../fixedLine/fixedLine.C | 16 ++++- .../fixedLine/fixedLine.H | 3 + .../fixedOrientation/fixedOrientation.C | 13 +++- .../fixedOrientation/fixedOrientation.H | 3 + .../fixedPlane/fixedPlane.C | 16 ++++- .../fixedPlane/fixedPlane.H | 3 + .../fixedPoint/fixedPoint.C | 13 +++- .../fixedPoint/fixedPoint.H | 3 + .../sixDoFRigidBodyMotionConstraint.C | 13 ++-- .../sixDoFRigidBodyMotionConstraint.H | 14 ++-- .../sixDoFRigidBodyMotionIO.C | 69 +++++++++---------- .../linearAxialAngularSpring.C | 22 +++++- .../linearAxialAngularSpring.H | 3 + .../linearSpring/linearSpring.C | 25 ++++++- .../linearSpring/linearSpring.H | 3 + .../sixDoFRigidBodyMotionRestraint.C | 6 +- .../sixDoFRigidBodyMotionRestraint.H | 14 ++-- .../sphericalAngularSpring.C | 18 ++++- .../sphericalAngularSpring.H | 3 + .../tabulatedAxialAngularSpring.C | 33 ++++++++- .../tabulatedAxialAngularSpring.H | 3 + 24 files changed, 240 insertions(+), 82 deletions(-) diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C index ba6791e9ce1..2e9abddf5f6 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C @@ -39,6 +39,11 @@ void Foam::sixDoFRigidBodyMotion::applyRestraints() { forAll(restraints_, rI) { + if (report_) + { + Info<< "Restraint " << restraintNames_[rI]; + } + // restraint position point rP = vector::zero; @@ -85,6 +90,11 @@ void Foam::sixDoFRigidBodyMotion::applyConstraints(scalar deltaT) forAll(constraints_, cI) { + if (report_) + { + Info<< "Constraint " << constraintNames_[cI]; + } + // constraint position point cP = vector::zero; 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 9993dfcece2..699849929ab 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 @@ -123,8 +123,7 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedAxis::constrain if (motion.report()) { - Info<< "Constraint " << this->name() - << " angle " << theta + Info<< " angle " << theta << " force " << constraintForceIncrement << " moment " << constraintMomentIncrement; @@ -175,4 +174,14 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedAxis::read return true; } + +void Foam::sixDoFRigidBodyMotionConstraints::fixedAxis::write +( + Ostream& os +) const +{ + os.writeKeyword("axis") + << fixedAxis_ << token::END_STATEMENT << nl; +} + // ************************************************************************* // diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedAxis/fixedAxis.H b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedAxis/fixedAxis.H index 5ba3dcb60d0..ed9f103a098 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedAxis/fixedAxis.H +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedAxis/fixedAxis.H @@ -111,6 +111,9 @@ public: //- Update properties from given dictionary virtual bool read(const dictionary& sDoFRBMCCoeff); + + //- Write + virtual void write(Ostream&) const; }; 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 635267a2596..1bd544eae56 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 @@ -109,8 +109,7 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedLine::constrain if (motion.report()) { - Info<< "Constraint " << this->name() - << " error << " << error + Info<< " error " << error << " force " << constraintForceIncrement << " moment " << constraintMomentIncrement; @@ -163,4 +162,17 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedLine::read return true; } + +void Foam::sixDoFRigidBodyMotionConstraints::fixedLine::write +( + Ostream& os +) const +{ + os.writeKeyword("refPoint") + << refPt_ << token::END_STATEMENT << nl; + + os.writeKeyword("direction") + << dir_ << token::END_STATEMENT << nl; +} + // ************************************************************************* // diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedLine/fixedLine.H b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedLine/fixedLine.H index 01cc8ff52f9..2ffb44e6075 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedLine/fixedLine.H +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedLine/fixedLine.H @@ -112,6 +112,9 @@ public: //- Update properties from given dictionary virtual bool read(const dictionary& sDoFRBMCCoeff); + + //- Write + virtual void write(Ostream&) const; }; 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 74112ab3b40..eb634772c44 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 @@ -150,8 +150,7 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedOrientation::constrain if (motion.report()) { - Info<< "Constraint " << this->name() - << " max angle " << maxTheta + Info<< " max angle " << maxTheta << " force " << constraintForceIncrement << " moment " << constraintMomentIncrement; @@ -198,4 +197,14 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedOrientation::read return true; } + +void Foam::sixDoFRigidBodyMotionConstraints::fixedOrientation::write +( + Ostream& os +) const +{ + os.writeKeyword("fixedOrientation") + << fixedOrientation_ << token::END_STATEMENT << nl; +} + // ************************************************************************* // diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedOrientation/fixedOrientation.H b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedOrientation/fixedOrientation.H index 0d46cddea97..8975f608624 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedOrientation/fixedOrientation.H +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedOrientation/fixedOrientation.H @@ -112,6 +112,9 @@ public: //- Update properties from given dictionary virtual bool read(const dictionary& sDoFRBMCCoeff); + + //- Write + virtual void write(Ostream&) const; }; 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 6d5ba4962bd..81f1394ac8b 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 @@ -109,8 +109,7 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedPlane::constrain if (motion.report()) { - Info<< "Constraint " << this->name() - << " error " << error + Info<< " error " << error << " force " << constraintForceIncrement << " moment " << constraintMomentIncrement; @@ -146,4 +145,17 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedPlane::read return true; } + +void Foam::sixDoFRigidBodyMotionConstraints::fixedPlane::write +( + Ostream& os +) const +{ + os.writeKeyword("refPoint") + << fixedPlane_.refPoint() << token::END_STATEMENT << nl; + + os.writeKeyword("normal") + << fixedPlane_.normal() << token::END_STATEMENT << nl; +} + // ************************************************************************* // diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedPlane/fixedPlane.H b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedPlane/fixedPlane.H index 45f35dbbb4c..84328312f89 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedPlane/fixedPlane.H +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedPlane/fixedPlane.H @@ -110,6 +110,9 @@ public: //- Update properties from given dictionary virtual bool read(const dictionary& sDoFRBMCCoeff); + + //- Write + virtual void write(Ostream&) const; }; 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 5d03ab411f6..692289851c3 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 @@ -118,8 +118,7 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedPoint::constrain if (motion.report()) { - Info<< "Constraint " << this->name() - << " error " << error + Info<< " error " << error << " force " << constraintForceIncrement << " moment " << constraintMomentIncrement; @@ -151,4 +150,14 @@ bool Foam::sixDoFRigidBodyMotionConstraints::fixedPoint::read return true; } + +void Foam::sixDoFRigidBodyMotionConstraints::fixedPoint::write +( + Ostream& os +) const +{ + os.writeKeyword("fixedPoint") + << fixedPoint_ << token::END_STATEMENT << nl; +} + // ************************************************************************* // diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedPoint/fixedPoint.H b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedPoint/fixedPoint.H index 933ba2db092..a18444c5686 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedPoint/fixedPoint.H +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedPoint/fixedPoint.H @@ -111,6 +111,9 @@ public: //- Update properties from given dictionary virtual bool read(const dictionary& sDoFRBMCCoeff); + + //- Write + virtual void write(Ostream&) const; }; 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 a272e0f986b..ade362f3885 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 @@ -39,7 +39,6 @@ Foam::sixDoFRigidBodyMotionConstraint::sixDoFRigidBodyMotionConstraint const dictionary& sDoFRBMCDict ) : - name_(fileName(sDoFRBMCDict.name().name()).components(token::COLON).last()), sDoFRBMCCoeffs_ ( sDoFRBMCDict.subDict @@ -69,9 +68,6 @@ bool Foam::sixDoFRigidBodyMotionConstraint::read const dictionary& sDoFRBMCDict ) { - name_ = - fileName(sDoFRBMCDict.name().name()).components(token::COLON).last(); - tolerance_ = (readScalar(sDoFRBMCDict.lookup("tolerance"))); relaxationFactor_ = sDoFRBMCDict.lookupOrDefault<scalar> @@ -86,4 +82,13 @@ bool Foam::sixDoFRigidBodyMotionConstraint::read } +void Foam::sixDoFRigidBodyMotionConstraint::write(Ostream& os) const +{ + os.writeKeyword("tolerance") + << tolerance_ << token::END_STATEMENT << nl; + + os.writeKeyword("relaxationFactor") + << relaxationFactor_ << token::END_STATEMENT << nl; +} + // ************************************************************************* // diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint.H b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint.H index 22e57702028..d7cf8888714 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint.H +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint/sixDoFRigidBodyMotionConstraint.H @@ -70,9 +70,6 @@ protected: // Protected data - //- Name of the constraint in dictionary - word name_; - //- Constraint model specific coefficient dictionary dictionary sDoFRBMCCoeffs_; @@ -145,16 +142,10 @@ public: ) const = 0; //- Update properties from given dictionary - virtual bool read(const dictionary& sDoFRBMCDict) = 0; + virtual bool read(const dictionary& sDoFRBMCDict); // Access - //- Return access to the name of the restraint - inline const word& name() const - { - return name_; - } - // Return access to sDoFRBMCCoeffs inline const dictionary& coeffDict() const { @@ -172,6 +163,9 @@ public: { return relaxationFactor_; } + + //- Write + virtual void write(Ostream&) const; }; diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionIO.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionIO.C index e8d1b187a0b..ab76faa033d 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionIO.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionIO.C @@ -42,68 +42,67 @@ void Foam::sixDoFRigidBodyMotion::write(Ostream& os) const os.writeKeyword("report") << report_ << token::END_STATEMENT << nl; - if (restraints_.size()) + if (!restraints_.empty()) { - dictionary restraintsDict; + os << indent << "restraints" << nl + << indent << token::BEGIN_BLOCK << incrIndent << nl; forAll(restraints_, rI) { word restraintType = restraints_[rI].type(); - dictionary restraintDict; + os << indent << restraintNames_[rI] << nl + << indent << token::BEGIN_BLOCK << incrIndent << endl; - restraintDict.add("sixDoFRigidBodyMotionRestraint", restraintType); + os.writeKeyword("sixDoFRigidBodyMotionRestraint") + << restraintType << token::END_STATEMENT << nl; - restraintDict.add - ( - word(restraintType + "Coeffs"), restraints_[rI].coeffDict() - ); + os.writeKeyword(word(restraintType + "Coeffs")) << nl; - restraintsDict.add(restraints_[rI].name(), restraintDict); + os << indent << token::BEGIN_BLOCK << nl << incrIndent; + + restraints_[rI].write(os); + + os << decrIndent << indent << token::END_BLOCK << nl; + + os << decrIndent << indent << token::END_BLOCK << endl; } - os.writeKeyword("restraints") << restraintsDict; + os << decrIndent << indent << token::END_BLOCK << nl; } - if (constraints_.size()) + if (!constraints_.empty()) { - dictionary constraintsDict; + os << indent << "constraints" << nl + << indent << token::BEGIN_BLOCK << incrIndent << nl; - constraintsDict.add("maxIterations", maxConstraintIterations_); + os.writeKeyword("maxIterations") + << maxConstraintIterations_ << token::END_STATEMENT << nl; forAll(constraints_, rI) { word constraintType = constraints_[rI].type(); - dictionary constraintDict; + os << indent << constraintNames_[rI] << nl + << indent << token::BEGIN_BLOCK << incrIndent << endl; + + os.writeKeyword("sixDoFRigidBodyMotionConstraint") + << constraintType << token::END_STATEMENT << nl; + + constraints_[rI].sixDoFRigidBodyMotionConstraint::write(os); - constraintDict.add - ( - "sixDoFRigidBodyMotionConstraint", - constraintType - ); + os.writeKeyword(word(constraintType + "Coeffs")) << nl; - constraintDict.add - ( - "tolerance", - constraints_[rI].tolerance() - ); + os << indent << token::BEGIN_BLOCK << nl << incrIndent; - constraintDict.add - ( - "relaxationFactor", - constraints_[rI].relaxationFactor() - ); + constraints_[rI].write(os); - constraintDict.add - ( - word(constraintType + "Coeffs"), constraints_[rI].coeffDict() - ); + os << decrIndent << indent << token::END_BLOCK << nl; - constraintsDict.add(constraints_[rI].name(), constraintDict); + os << decrIndent << indent << token::END_BLOCK << endl; } - os.writeKeyword("constraints") << constraintsDict; + os << decrIndent << indent << token::END_BLOCK << nl; } } 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 5aa198f2b74..16c72280d6e 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 @@ -136,8 +136,7 @@ Foam::sixDoFRigidBodyMotionRestraints::linearAxialAngularSpring::restrain if (motion.report()) { - Info<< "Restraint " << this->name() - << " angle " << theta + Info<< " angle " << theta << " force " << restraintForce << " moment " << restraintMoment << endl; @@ -199,4 +198,23 @@ bool Foam::sixDoFRigidBodyMotionRestraints::linearAxialAngularSpring::read return true; } + +void Foam::sixDoFRigidBodyMotionRestraints::linearAxialAngularSpring::write +( + Ostream& os +) const +{ + os.writeKeyword("referenceOrientation") + << refQ_ << token::END_STATEMENT << nl; + + os.writeKeyword("axis") + << axis_ << token::END_STATEMENT << nl; + + os.writeKeyword("stiffness") + << stiffness_ << token::END_STATEMENT << nl; + + os.writeKeyword("damping") + << damping_ << token::END_STATEMENT << nl; +} + // ************************************************************************* // diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/linearAxialAngularSpring/linearAxialAngularSpring.H b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/linearAxialAngularSpring/linearAxialAngularSpring.H index 780598afb2b..fe6e36801d5 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/linearAxialAngularSpring/linearAxialAngularSpring.H +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/linearAxialAngularSpring/linearAxialAngularSpring.H @@ -114,6 +114,9 @@ public: //- Update properties from given dictionary virtual bool read(const dictionary& sDoFRBMRCoeff); + + //- Write + virtual void write(Ostream&) const; }; 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 8067233e1c3..dd1bb539456 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 @@ -96,8 +96,7 @@ void Foam::sixDoFRigidBodyMotionRestraints::linearSpring::restrain if (motion.report()) { - Info<< "Restraint " << this->name() - << " spring length " << magR + Info<< " spring length " << magR << " force " << restraintForce << " moment " << restraintMoment << endl; @@ -125,4 +124,26 @@ bool Foam::sixDoFRigidBodyMotionRestraints::linearSpring::read return true; } + +void Foam::sixDoFRigidBodyMotionRestraints::linearSpring::write +( + Ostream& os +) const +{ + os.writeKeyword("anchor") + << anchor_ << token::END_STATEMENT << nl; + + os.writeKeyword("refAttachmentPt") + << refAttachmentPt_ << token::END_STATEMENT << nl; + + os.writeKeyword("stiffness") + << stiffness_ << token::END_STATEMENT << nl; + + os.writeKeyword("damping") + << damping_ << token::END_STATEMENT << nl; + + os.writeKeyword("restLength") + << restLength_ << token::END_STATEMENT << nl; +} + // ************************************************************************* // diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/linearSpring/linearSpring.H b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/linearSpring/linearSpring.H index c5dc9bc074d..a16893eb72d 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/linearSpring/linearSpring.H +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/linearSpring/linearSpring.H @@ -117,6 +117,9 @@ public: //- Update properties from given dictionary virtual bool read(const dictionary& sDoFRBMRCoeff); + + //- Write + virtual void write(Ostream&) const; }; 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 13c72afc5b2..c397e1fc2ea 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 @@ -1,4 +1,4 @@ -/*---------------------------------------------------------------------------*\ +/*---------------------------------------------------------------------------* \ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | @@ -39,7 +39,6 @@ Foam::sixDoFRigidBodyMotionRestraint::sixDoFRigidBodyMotionRestraint const dictionary& sDoFRBMRDict ) : - name_(fileName(sDoFRBMRDict.name().name()).components(token::COLON).last()), sDoFRBMRCoeffs_ ( sDoFRBMRDict.subDict @@ -64,9 +63,6 @@ bool Foam::sixDoFRigidBodyMotionRestraint::read const dictionary& sDoFRBMRDict ) { - name_ = - fileName(sDoFRBMRDict.name().name()).components(token::COLON).last(); - sDoFRBMRCoeffs_ = sDoFRBMRDict.subDict(type() + "Coeffs"); return true; diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint.H b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint.H index 1bdabb57e38..bc5ba2d1002 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint.H +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint/sixDoFRigidBodyMotionRestraint.H @@ -70,9 +70,6 @@ protected: // Protected data - //- Name of the constraint in dictionary - word name_; - //- Restraint model specific coefficient dictionary dictionary sDoFRBMRCoeffs_; @@ -134,21 +131,18 @@ public: ) const = 0; //- Update properties from given dictionary - virtual bool read(const dictionary& sDoFRBMRDict) = 0; + virtual bool read(const dictionary& sDoFRBMRDict); // Access - //- Return access to the name of the restraint - inline const word& name() const - { - return name_; - } - // Return access to sDoFRBMRCoeffs inline const dictionary& coeffDict() const { return sDoFRBMRCoeffs_; } + + //- Write + virtual void write(Ostream&) const = 0; }; 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 a961e5591a8..c3f4292e7b1 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 @@ -113,8 +113,7 @@ Foam::sixDoFRigidBodyMotionRestraints::sphericalAngularSpring::restrain if (motion.report()) { - Info<< "Restraint " << this->name() - << " force " << restraintForce + Info<< " force " << restraintForce << " moment " << restraintMoment << endl; } @@ -153,4 +152,19 @@ bool Foam::sixDoFRigidBodyMotionRestraints::sphericalAngularSpring::read return true; } + +void Foam::sixDoFRigidBodyMotionRestraints::sphericalAngularSpring::write +( + Ostream& os +) const +{ + os.writeKeyword("referenceOrientation") + << refQ_ << token::END_STATEMENT << nl; + + os.writeKeyword("stiffness") << stiffness_ << token::END_STATEMENT << nl; + + os.writeKeyword("damping") << damping_ << token::END_STATEMENT << nl; +} + + // ************************************************************************* // diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sphericalAngularSpring/sphericalAngularSpring.H b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sphericalAngularSpring/sphericalAngularSpring.H index 6ee6636b299..51095adb392 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sphericalAngularSpring/sphericalAngularSpring.H +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/sphericalAngularSpring/sphericalAngularSpring.H @@ -111,6 +111,9 @@ public: //- Update properties from given dictionary virtual bool read(const dictionary& sDoFRBMRCoeff); + + //- Write + virtual void write(Ostream&) const; }; 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 159419d44ac..d5c4a50d667 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 @@ -136,8 +136,7 @@ Foam::sixDoFRigidBodyMotionRestraints::tabulatedAxialAngularSpring::restrain if (motion.report()) { - Info<< "Restraint " << this->name() - << " angle " << theta + Info<< " angle " << theta << " force " << restraintForce << " moment " << restraintMoment << endl; @@ -223,4 +222,34 @@ bool Foam::sixDoFRigidBodyMotionRestraints::tabulatedAxialAngularSpring::read return true; } + +void Foam::sixDoFRigidBodyMotionRestraints::tabulatedAxialAngularSpring::write +( + Ostream& os +) const +{ + os.writeKeyword("referenceOrientation") + << refQ_ << token::END_STATEMENT << nl; + + os.writeKeyword("axis") + << axis_ << token::END_STATEMENT << nl; + + moment_.write(os); + + os.writeKeyword("angleFormat"); + + if (convertToDegrees_) + { + os << "degrees" << token::END_STATEMENT << nl; + } + else + { + os << "radians" << token::END_STATEMENT << nl; + } + + os.writeKeyword("damping") + << damping_ << token::END_STATEMENT << nl; +} + + // ************************************************************************* // diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/tabulatedAxialAngularSpring/tabulatedAxialAngularSpring.H b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/tabulatedAxialAngularSpring/tabulatedAxialAngularSpring.H index 09cc336e0e3..f29563b9ca0 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/tabulatedAxialAngularSpring/tabulatedAxialAngularSpring.H +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionRestraint/tabulatedAxialAngularSpring/tabulatedAxialAngularSpring.H @@ -121,6 +121,9 @@ public: //- Update properties from given dictionary virtual bool read(const dictionary& sDoFRBMRCoeff); + + //- Write + virtual void write(Ostream&) const; }; -- GitLab