diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C index ba6791e9ce189205f38205bcb097fd303bd8a86a..2e9abddf5f65c526529d0d43cab3b54b6507771c 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 9993dfcece2b16f5f74470f575c6905706d86c11..699849929ab0046de5b15fe92400354fbf5a2fed 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 5ba3dcb60d04295b388742cb96ba66b8cfae3641..ed9f103a098ddc3840b41862def5f4ebaeccedb5 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 635267a259685dc663d1e2f0a6bf75fdf095dc93..1bd544eae56c6b3d30537f521f7eee67f45754c6 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 01cc8ff52f9b5121230291aaf012609328a6a810..2ffb44e6075d719e876294f7001b8994eac8adad 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 74112ab3b40f24a9deee3f00c5693e56fd4581c9..eb634772c446bfed3b9ab6e427252a3e3f7fabc8 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 0d46cddea979c2f91f943c1ddb21662cb840a288..8975f6086247f1ec49a640c7ad5c2cd2f5ff0a3f 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 6d5ba4962bd375e5a38aa8d9a72f08ee314fb6bf..81f1394ac8b1308ef7be97e76325c97ec9a8e5ec 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 45f35dbbb4ccf7eab7e122dcb486e2ee8bce1599..84328312f89a7efa83a15114c886c6346b2c6fcf 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 5d03ab411f6a654fa9ff516b700b59dda7c33b37..692289851c381235074cbf035d3fd77ee0deebeb 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 933ba2db09233d9ab5a67f324462cc0f6f34a2b5..a18444c5686529dfc2ad0e9cea6fce9e78c70486 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 a272e0f986b32110e9ca86daf794e23773b07db9..ade362f3885dfaa5e15935b90dd2d100f08dc2b9 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 22e57702028dc1c2bc447dd6ca0553ce09790434..d7cf88887149ad010d00e10e44eff2c7a07d116c 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 e8d1b187a0bd608de3552e8e26a7e01aff4e9e7b..ab76faa033d35c4476459cfb5816e58e5ad85715 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 5aa198f2b740cc521bdc7cafc02fe7d9f2f9014b..16c72280d6e65d303145af1851f3992941696d3e 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 780598afb2b5429fdab5ed28af059c521239ea30..fe6e36801d579939e8a1aff3935489c513e916fe 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 8067233e1c37a9e072284006606634e2c38c0965..dd1bb539456b59da2a75dfa19c9d5176e87c6b14 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 c5dc9bc074db09b1d77b0275fa9bf411a5d130c9..a16893eb72d790eeddac64c7e0017b60ef8ce005 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 13c72afc5b2fe1c375b86cba7d99c7e091517e77..c397e1fc2eab4aa3c8ed0d0d949e4b288f5c6532 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 1bdabb57e3875c97e6d277a58e495eb900031a88..bc5ba2d1002e51c9983a6126c4865484eafbe447 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 a961e5591a8f753eda327846216a8429c446aaa5..c3f4292e7b119f4eff613c754c566a834069c994 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 6ee6636b299248e56bfa2c68bcd140634c99498e..51095adb392f46c06c91d632cf63004b9d83d7d4 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 159419d44accff0022f9194aadf619341ab69fcc..d5c4a50d667402243303416176935641c369864f 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 09cc336e0e3fa2a295a8f9e8c55c00cacd8a2510..f29563b9ca0ec6ee0c5abfd574dd12a698d6cae3 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; };