diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.C index 554e482c21..ed771efa6f 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.C @@ -49,7 +49,8 @@ sixDoFRigidBodyDisplacementPointPatchVectorField fixedValuePointPatchField(p, iF), motion_(), initialPoints_(p.localPoints()), - rhoInf_(1.0) + rhoInf_(1.0), + rhoName_("rho") {} @@ -63,8 +64,14 @@ sixDoFRigidBodyDisplacementPointPatchVectorField : fixedValuePointPatchField(p, iF, dict), motion_(dict), - rhoInf_(readScalar(dict.lookup("rhoInf"))) + rhoInf_(1.0), + rhoName_(dict.lookupOrDefault("rhoName", "rho")) { + if (rhoName_ == "rhoInf") + { + rhoInf_ = readScalar(dict.lookup("rhoInf")); + } + if (!dict.found("value")) { updateCoeffs(); @@ -93,7 +100,8 @@ sixDoFRigidBodyDisplacementPointPatchVectorField fixedValuePointPatchField(ptf, p, iF, mapper), motion_(ptf.motion_), initialPoints_(ptf.initialPoints_, mapper), - rhoInf_(ptf.rhoInf_) + rhoInf_(ptf.rhoInf_), + rhoName_(ptf.rhoName_) {} @@ -107,7 +115,8 @@ sixDoFRigidBodyDisplacementPointPatchVectorField fixedValuePointPatchField(ptf, iF), motion_(ptf.motion_), initialPoints_(ptf.initialPoints_), - rhoInf_(ptf.rhoInf_) + rhoInf_(ptf.rhoInf_), + rhoName_(ptf.rhoName_) {} @@ -160,6 +169,7 @@ void sixDoFRigidBodyDisplacementPointPatchVectorField::updateCoeffs() forcesDict.add("patches", wordList(1, ptPatch.name())); forcesDict.add("rhoInf", rhoInf_); + forcesDict.add("rhoName", rhoName_); forcesDict.add("CofR", motion_.centreOfMass()); forces f("forces", db(), forcesDict); @@ -200,6 +210,8 @@ void sixDoFRigidBodyDisplacementPointPatchVectorField::write(Ostream& os) const motion_.write(os); os.writeKeyword("rhoInf") << rhoInf_ << token::END_STATEMENT << nl; + os.writeKeyword("rhoName") + << rhoName_ << token::END_STATEMENT << nl; initialPoints_.writeEntry("initialPoints", os); writeEntry("value", os); } diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.H b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.H index fa30a7eff2..9c512ab9d3 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.H +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.H @@ -60,9 +60,14 @@ class sixDoFRigidBodyDisplacementPointPatchVectorField pointField initialPoints_; //- Reference density required by the forces object for - // incompressible calculations + // incompressible calculations, required if rhoName == rhoInf scalar rhoInf_; + //- Name of density field, optional unless used for an + // incompressible simulation, when this needs to be specified + // as rhoInf + word rhoName_; + public: diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/uncoupledSixDoFRigidBodyDisplacement/uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/uncoupledSixDoFRigidBodyDisplacement/uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.C index f63607c99c..7b7537eec3 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/uncoupledSixDoFRigidBodyDisplacement/uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.C +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/uncoupledSixDoFRigidBodyDisplacement/uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.C @@ -47,8 +47,7 @@ uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField : fixedValuePointPatchField(p, iF), motion_(), - initialPoints_(p.localPoints()), - rhoInf_(1.0) + initialPoints_(p.localPoints()) {} @@ -61,8 +60,7 @@ uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField ) : fixedValuePointPatchField(p, iF, dict), - motion_(dict), - rhoInf_(readScalar(dict.lookup("rhoInf"))) + motion_(dict) { if (!dict.found("value")) { @@ -91,8 +89,7 @@ uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField : fixedValuePointPatchField(ptf, p, iF, mapper), motion_(ptf.motion_), - initialPoints_(ptf.initialPoints_, mapper), - rhoInf_(ptf.rhoInf_) + initialPoints_(ptf.initialPoints_, mapper) {} @@ -105,8 +102,7 @@ uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField : fixedValuePointPatchField(ptf, iF), motion_(ptf.motion_), - initialPoints_(ptf.initialPoints_), - rhoInf_(ptf.rhoInf_) + initialPoints_(ptf.initialPoints_) {} @@ -182,8 +178,6 @@ void uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField::write { pointPatchField::write(os); motion_.write(os); - os.writeKeyword("rhoInf") - << rhoInf_ << token::END_STATEMENT << nl; initialPoints_.writeEntry("initialPoints", os); writeEntry("value", os); } diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/uncoupledSixDoFRigidBodyDisplacement/uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.H b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/uncoupledSixDoFRigidBodyDisplacement/uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.H index 631c732a93..d5a17c09c7 100644 --- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/uncoupledSixDoFRigidBodyDisplacement/uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.H +++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/uncoupledSixDoFRigidBodyDisplacement/uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField.H @@ -59,11 +59,6 @@ class uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField //- Initial positions of points on the patch pointField initialPoints_; - //- Reference density required by the forces object for - // incompressible calculations. Retained here to give - // dictionary compatibility with other sixDoF patches. - scalar rhoInf_; - public: