From dfd02c8b4f852586b19a27e90783cb973a73fd73 Mon Sep 17 00:00:00 2001 From: graham Date: Mon, 28 Sep 2009 19:06:11 +0100 Subject: [PATCH 01/17] sixDof motion pointPatchField --- src/fvMotionSolver/Make/files | 3 + src/fvMotionSolver/Make/options | 6 +- ...gidBodyDisplacementPointPatchVectorField.C | 211 ++++++++++++++ ...gidBodyDisplacementPointPatchVectorField.H | 153 ++++++++++ .../sixDofRigidBodyMotion.C | 208 ++++++++++++++ .../sixDofRigidBodyMotion.H | 267 ++++++++++++++++++ .../sixDofRigidBodyMotionI.H | 176 ++++++++++++ .../sixDofRigidBodyMotionIO.C | 107 +++++++ 8 files changed, 1129 insertions(+), 2 deletions(-) create mode 100644 src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C create mode 100644 src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.H create mode 100644 src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.C create mode 100644 src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.H create mode 100644 src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionI.H create mode 100644 src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionIO.C diff --git a/src/fvMotionSolver/Make/files b/src/fvMotionSolver/Make/files index f229ae322e..bd1bb87ede 100644 --- a/src/fvMotionSolver/Make/files +++ b/src/fvMotionSolver/Make/files @@ -31,5 +31,8 @@ pointPatchFields/derived/oscillatingDisplacement/oscillatingDisplacementPointPat pointPatchFields/derived/angularOscillatingDisplacement/angularOscillatingDisplacementPointPatchVectorField.C pointPatchFields/derived/surfaceSlipDisplacement/surfaceSlipDisplacementPointPatchVectorField.C pointPatchFields/derived/surfaceDisplacement/surfaceDisplacementPointPatchVectorField.C +pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C +pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.C +pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionIO.C LIB = $(FOAM_LIBBIN)/libfvMotionSolvers diff --git a/src/fvMotionSolver/Make/options b/src/fvMotionSolver/Make/options index 966b56964d..9222d5f97c 100644 --- a/src/fvMotionSolver/Make/options +++ b/src/fvMotionSolver/Make/options @@ -2,10 +2,12 @@ EXE_INC = \ -I$(LIB_SRC)/triSurface/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/dynamicMesh/lnInclude \ - -I$(LIB_SRC)/finiteVolume/lnInclude + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/postProcessing/functionObjects/forces/lnInclude \ LIB_LIBS = \ -ltriSurface \ -lmeshTools \ -ldynamicMesh \ - -lfiniteVolume + -lfiniteVolume \ + -lforces diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C new file mode 100644 index 0000000000..ddfe3d94cb --- /dev/null +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C @@ -0,0 +1,211 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +#include "sixDofRigidBodyDisplacementPointPatchVectorField.H" +#include "pointPatchFields.H" +#include "addToRunTimeSelectionTable.H" +#include "Time.H" +#include "fvMesh.H" +#include "volFields.H" +#include "uniformDimensionedFields.H" +#include "forces.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +sixDofRigidBodyDisplacementPointPatchVectorField:: +sixDofRigidBodyDisplacementPointPatchVectorField +( + const pointPatch& p, + const DimensionedField& iF +) +: + fixedValuePointPatchField(p, iF), + motion_(), + p0_(p.localPoints()) +{} + + +sixDofRigidBodyDisplacementPointPatchVectorField:: +sixDofRigidBodyDisplacementPointPatchVectorField +( + const pointPatch& p, + const DimensionedField& iF, + const dictionary& dict +) +: + fixedValuePointPatchField(p, iF, dict), + motion_(dict) +{ + if (!dict.found("value")) + { + updateCoeffs(); + } + + if (dict.found("p0")) + { + p0_ = vectorField("p0", dict , p.size()); + } + else + { + p0_ = p.localPoints(); + } +} + + +sixDofRigidBodyDisplacementPointPatchVectorField:: +sixDofRigidBodyDisplacementPointPatchVectorField +( + const sixDofRigidBodyDisplacementPointPatchVectorField& ptf, + const pointPatch& p, + const DimensionedField& iF, + const pointPatchFieldMapper& mapper +) +: + fixedValuePointPatchField(ptf, p, iF, mapper), + motion_(ptf.motion_), + p0_(ptf.p0_) +{} + + +sixDofRigidBodyDisplacementPointPatchVectorField:: +sixDofRigidBodyDisplacementPointPatchVectorField +( + const sixDofRigidBodyDisplacementPointPatchVectorField& ptf, + const DimensionedField& iF +) +: + fixedValuePointPatchField(ptf, iF), + motion_(ptf.motion_), + p0_(ptf.p0_) +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +void sixDofRigidBodyDisplacementPointPatchVectorField::updateCoeffs() +{ + if (this->updated()) + { + return; + } + + const polyMesh& mesh = this->dimensionedInternalField().mesh()(); + const Time& t = mesh.time(); + const pointPatch& ptPatch = this->patch(); + + // Patch force data is valid for the current positions, so + // calculate the forces on the motion object from this data, then + // update the positions + + motion_.updatePosition(t.deltaT().value()); + + dictionary forcesDict; + + forcesDict.add("patches", wordList(1, ptPatch.name())); + forcesDict.add("rhoInf", 0.0); + forcesDict.add("CofR", motion_.centreOfMass()); + + forces f("forces", db(), forcesDict); + + forces::forcesMoments fm = f.calcForcesMoment(); + + // Get the forces on the patch faces at the current positions + + vector gravity = vector::zero; + + if (db().foundObject("g")) + { + uniformDimensionedVectorField g = + db().lookupObject("g"); + + gravity = g.value(); + } + else + { + uniformDimensionedVectorField g + ( + IOobject + ( + "g", + db().time().constant(), + db(), + IOobject::READ_IF_PRESENT, + IOobject::NO_WRITE + ) + ); + + gravity = g.value(); + } + + motion_.updateForce + ( + fm.first().first() + fm.first().second() + gravity*motion_.mass(), + fm.second().first() + fm.second().second(), + t.deltaT().value() + ); + + // motion_.updateForce + // ( + // vector::zero, + // vector::zero, + // t.deltaT().value() + // ); + + Info<< motion_ << endl; + + Field::operator=(motion_.generatePositions(p0_) - p0_); + + fixedValuePointPatchField::updateCoeffs(); +} + + +void sixDofRigidBodyDisplacementPointPatchVectorField::write(Ostream& os) const +{ + pointPatchField::write(os); + motion_.write(os); + p0_.writeEntry("p0", os); + writeEntry("value", os); +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +makePointPatchTypeField +( + pointPatchVectorField, + sixDofRigidBodyDisplacementPointPatchVectorField +); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.H b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.H new file mode 100644 index 0000000000..b619baa3f2 --- /dev/null +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.H @@ -0,0 +1,153 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Class + Foam::sixDofRigidBodyDisplacementPointPatchVectorField + +Description + Foam::sixDofRigidBodyDisplacementPointPatchVectorField + +SourceFiles + sixDofRigidBodyDisplacementPointPatchVectorField.C + +\*---------------------------------------------------------------------------*/ + +#ifndef sixDofRigidBodyDisplacementPointPatchVectorField_H +#define sixDofRigidBodyDisplacementPointPatchVectorField_H + +#include "fixedValuePointPatchField.H" +#include "sixDofRigidBodyMotion.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +/*---------------------------------------------------------------------------*\ + Class sixDofRigidBodyDisplacementPointPatchVectorField Declaration +\*---------------------------------------------------------------------------*/ + +class sixDofRigidBodyDisplacementPointPatchVectorField +: + public fixedValuePointPatchField +{ + // Private data + + //- Six dof motion object + sixDofRigidBodyMotion motion_; + + //- Reference positions of points on the patch + pointField p0_; + + +public: + + //- Runtime type information + TypeName("sixDofRigidBodyDisplacement"); + + + // Constructors + + //- Construct from patch and internal field + sixDofRigidBodyDisplacementPointPatchVectorField + ( + const pointPatch&, + const DimensionedField& + ); + + //- Construct from patch, internal field and dictionary + sixDofRigidBodyDisplacementPointPatchVectorField + ( + const pointPatch&, + const DimensionedField&, + const dictionary& + ); + + //- Construct by mapping given patchField onto a new patch + sixDofRigidBodyDisplacementPointPatchVectorField + ( + const sixDofRigidBodyDisplacementPointPatchVectorField&, + const pointPatch&, + const DimensionedField&, + const pointPatchFieldMapper& + ); + + //- Construct and return a clone + virtual autoPtr > clone() const + { + return autoPtr > + ( + new sixDofRigidBodyDisplacementPointPatchVectorField + ( + *this + ) + ); + } + + //- Construct as copy setting internal field reference + sixDofRigidBodyDisplacementPointPatchVectorField + ( + const sixDofRigidBodyDisplacementPointPatchVectorField&, + const DimensionedField& + ); + + //- Construct and return a clone setting internal field reference + virtual autoPtr > clone + ( + const DimensionedField& iF + ) const + { + return autoPtr > + ( + new sixDofRigidBodyDisplacementPointPatchVectorField + ( + *this, + iF + ) + ); + } + + + // Member functions + + // Evaluation functions + + //- Update the coefficients associated with the patch field + virtual void updateCoeffs(); + + + //- Write + virtual void write(Ostream&) const; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.C b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.C new file mode 100644 index 0000000000..02ad37e441 --- /dev/null +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.C @@ -0,0 +1,208 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +#include "sixDofRigidBodyMotion.H" + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::sixDofRigidBodyMotion::sixDofRigidBodyMotion() +: + centreOfMass_(vector::zero), + refCentreOfMass_(vector::zero), + momentOfInertia_(diagTensor::one*VSMALL), + mass_(VSMALL), + Q_(I), + v_(vector::zero), + a_(vector::zero), + pi_(vector::zero), + tau_(vector::zero) +{} + + +Foam::sixDofRigidBodyMotion::sixDofRigidBodyMotion +( + const point& centreOfMass, + const point& refCentreOfMass, + const diagTensor& momentOfInertia, + scalar mass, + const tensor& Q, + const vector& v, + const vector& a, + const vector& pi, + const vector& tau +) +: + centreOfMass_(centreOfMass), + refCentreOfMass_(refCentreOfMass), + momentOfInertia_(momentOfInertia), + mass_(mass), + Q_(Q), + v_(v), + a_(a), + pi_(pi), + tau_(tau) +{} + + +Foam::sixDofRigidBodyMotion::sixDofRigidBodyMotion(const dictionary& dict) +: + centreOfMass_(dict.lookup("centreOfMass")), + refCentreOfMass_(dict.lookupOrDefault("refCentreOfMass", centreOfMass_)), + momentOfInertia_(dict.lookup("momentOfInertia")), + mass_(readScalar(dict.lookup("mass"))), + Q_(dict.lookupOrDefault("Q", tensor(I))), + v_(dict.lookupOrDefault("v", vector::zero)), + a_(dict.lookupOrDefault("a", vector::zero)), + pi_(dict.lookupOrDefault("pi", vector::zero)), + tau_(dict.lookupOrDefault("tau", vector::zero)) +{} + + +Foam::sixDofRigidBodyMotion::sixDofRigidBodyMotion +( + const sixDofRigidBodyMotion& sDofRBM +) +: + centreOfMass_(sDofRBM.centreOfMass()), + refCentreOfMass_(sDofRBM.refCentreOfMass()), + momentOfInertia_(sDofRBM.momentOfInertia()), + mass_(sDofRBM.mass()), + Q_(sDofRBM.Q()), + v_(sDofRBM.v()), + a_(sDofRBM.a()), + pi_(sDofRBM.pi()), + tau_(sDofRBM.tau()) +{} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::sixDofRigidBodyMotion::~sixDofRigidBodyMotion() +{} + + +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + +void Foam::sixDofRigidBodyMotion::updatePosition +( + scalar deltaT +) +{ + // First leapfrog velocity adjust and motion part, required before + // force calculation + + v_ += 0.5*deltaT*a_; + + pi_ += 0.5*deltaT*tau_; + + // Leapfrog move part + centreOfMass_ += deltaT*v_; + + // Leapfrog orientation adjustment + + tensor R; + + R = rotationTensorX(0.5*deltaT*pi_.x()/momentOfInertia_.xx()); + pi_ = pi_ & R; + Q_ = Q_ & R; + + R = rotationTensorY(0.5*deltaT*pi_.y()/momentOfInertia_.yy()); + pi_ = pi_ & R; + Q_ = Q_ & R; + + R = rotationTensorZ(deltaT*pi_.z()/momentOfInertia_.zz()); + pi_ = pi_ & R; + Q_ = Q_ & R; + + R = rotationTensorY(0.5*deltaT*pi_.y()/momentOfInertia_.yy()); + pi_ = pi_ & R; + Q_ = Q_ & R; + + R = rotationTensorX(0.5*deltaT*pi_.x()/momentOfInertia_.xx()); + pi_ = pi_ & R; + Q_ = Q_ & R; +} + + +void Foam::sixDofRigidBodyMotion::updateForce +( + const vector& fGlobal, + const vector& tauGlobal, + scalar deltaT +) +{ + // Second leapfrog velocity adjust part, required after motion and + // force calculation part + + a_ = fGlobal/mass_; + + tau_ = (Q_.T() & tauGlobal); + + v_ += 0.5*deltaT*a_; + + pi_ += 0.5*deltaT*tau_; + +} + + +void Foam::sixDofRigidBodyMotion::updateForce +( + const pointField& positions, + const vectorField& forces, + scalar deltaT +) +{ + // Second leapfrog velocity adjust part, required after motion and + // force calculation part + + a_ = vector::zero; + + tau_ = vector::zero; + + forAll(positions, i) + { + const vector& f = forces[i]; + + a_ += f/mass_; + + tau_ += (positions[i] ^ (Q_.T() & f)); + } + + v_ += 0.5*deltaT*a_; + + pi_ += 0.5*deltaT*tau_; + +} + + +Foam::tmp +Foam::sixDofRigidBodyMotion::generatePositions(const pointField& pts) const +{ + return (centreOfMass_ + (Q_ & (pts - refCentreOfMass_))); +} + + +// ************************************************************************* // diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.H b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.H new file mode 100644 index 0000000000..2bdb7fbf05 --- /dev/null +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.H @@ -0,0 +1,267 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Class + Foam::sixDofRigidBodyMotion + +Description + Six degree of freedom motion for a rigid body. Angular momentum stored in + body fixed reference frame. Reference orientation of the body must align + with the cartesian axes such that the Inertia tensor is in principle + component form. + + Symplectic motion as per: + + title = {Symplectic splitting methods for rigid body molecular dynamics}, + publisher = {AIP}, + year = {1997}, + journal = {The Journal of Chemical Physics}, + volume = {107}, + number = {15}, + pages = {5840-5851}, + url = {http://link.aip.org/link/?JCP/107/5840/1}, + doi = {10.1063/1.474310} + +SourceFiles + sixDofRigidBodyMotionI.H + sixDofRigidBodyMotion.C + sixDofRigidBodyMotionIO.C + +\*---------------------------------------------------------------------------*/ + +#ifndef sixDofRigidBodyMotion_H +#define sixDofRigidBodyMotion_H + +#include "vector.H" +#include "diagTensor.H" +#include "pointField.H" +#include "mathConstants.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// Forward declaration of classes +class Istream; +class Ostream; + +// Forward declaration of friend functions and operators +class sixDofRigidBodyMotion; +Istream& operator>>(Istream&, sixDofRigidBodyMotion&); +Ostream& operator<<(Ostream&, const sixDofRigidBodyMotion&); + + +/*---------------------------------------------------------------------------*\ + Class sixDofRigidBodyMotion Declaration +\*---------------------------------------------------------------------------*/ + +class sixDofRigidBodyMotion +{ + // Private data + + //- Current position of the centre of mass of the body + point centreOfMass_; + + //- Centre of mass of reference state + point refCentreOfMass_; + + //- Moment of inertia of the body in reference configuration + diagTensor momentOfInertia_; + + //- Mass of the body + scalar mass_; + + //- Orientation, stored as the rotation tensor to transform + // from the body to the global reference frame, i.e.: + // globalVector = Q_ & bodyLocalVector + // bodyLocalVector = Q_.T() & globalVector + tensor Q_; + + // Linear velocity of body + vector v_; + + // Total linear acceleration of body + vector a_; + + //- Angular momentum of body, in body local reference frame + vector pi_; + + //- Total torque on body, in body local reference frame + vector tau_; + + // Private Member Functions + + //- Calculate the rotation tensor around the body reference + // frame x-axis by the given angle + inline tensor rotationTensorX(scalar deltaT) const; + + //- Calculate the rotation tensor around the body reference + // frame y-axis by the given angle + inline tensor rotationTensorY(scalar deltaT) const; + + //- Calculate the rotation tensor around the body reference + // frame z-axis by the given angle + inline tensor rotationTensorZ(scalar deltaT) const; + + +public: + + // Constructors + + //- Construct null + sixDofRigidBodyMotion(); + + //- Construct from components + sixDofRigidBodyMotion + ( + const point& centreOfMass, + const point& refCentreOfMass, + const diagTensor& momentOfInertia, + scalar mass, + const tensor& Q, + const vector& v, + const vector& a, + const vector& pi, + const vector& tau + ); + + //- Construct from dictionary + sixDofRigidBodyMotion(const dictionary& dict); + + //- Construct as copy + sixDofRigidBodyMotion(const sixDofRigidBodyMotion&); + + + //- Destructor + ~sixDofRigidBodyMotion(); + + + // Member Functions + + void updatePosition + ( + scalar deltaT + ); + + void updateForce + ( + const vector& fGlobal, + const vector& tauGlobal, + scalar deltaT + ); + + void updateForce + ( + const pointField& positions, + const vectorField& forces, + scalar deltaT + ); + + tmp generatePositions(const pointField& pts) const; + + // Access + + //- Return access to the centre of mass + inline const point& centreOfMass() const; + + //- Return access to the centre of mass + inline const point& refCentreOfMass() const; + + //- Return access to the inertia tensor + inline const diagTensor& momentOfInertia() const; + + //- Return access to the mass + inline scalar mass() const; + + //- Return access to the orientation + inline const tensor& Q() const; + + //- Return access to velocity + inline const vector& v() const; + + //- Return access to acceleration + inline const vector& a() const; + + //- Return access to angular momentum + inline const vector& pi() const; + + //- Return access to torque + inline const vector& tau() const; + + + // Edit + + //- Return non-const access to the centre of mass + inline point& centreOfMass(); + + //- Return access to the centre of mass + inline point& refCentreOfMass(); + + //- Return non-const access to the inertia tensor + inline diagTensor& momentOfInertia(); + + //- Return non-const access to the mass + inline scalar& mass(); + + //- Return non-const access to the orientation + inline tensor& Q(); + + //- Return non-const access to vector + inline vector& v(); + + //- Return non-const access to acceleration + inline vector& a(); + + //- Return non-const access to angular momentum + inline vector& pi(); + + //- Return non-const access to torque + inline vector& tau(); + + + //- Write + void write(Ostream&) const; + + + // IOstream Operators + + friend Istream& operator>>(Istream&, sixDofRigidBodyMotion&); + friend Ostream& operator<<(Ostream&, const sixDofRigidBodyMotion&); +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "sixDofRigidBodyMotionI.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionI.H b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionI.H new file mode 100644 index 0000000000..09b1fa64db --- /dev/null +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionI.H @@ -0,0 +1,176 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + +inline Foam::tensor +Foam::sixDofRigidBodyMotion::rotationTensorX(scalar phi) const +{ + return tensor + ( + 1, 0, 0, + 0, Foam::cos(phi), -Foam::sin(phi), + 0, Foam::sin(phi), Foam::cos(phi) + ); +} + + +inline Foam::tensor +Foam::sixDofRigidBodyMotion::rotationTensorY(scalar phi) const +{ + return tensor + ( + Foam::cos(phi), 0, Foam::sin(phi), + 0, 1, 0, + -Foam::sin(phi), 0, Foam::cos(phi) + ); +} + + +inline Foam::tensor +Foam::sixDofRigidBodyMotion::rotationTensorZ(scalar phi) const +{ + return tensor + ( + Foam::cos(phi), -Foam::sin(phi), 0, + Foam::sin(phi), Foam::cos(phi), 0, + 0, 0, 1 + ); +} + + +inline const Foam::point& Foam::sixDofRigidBodyMotion::centreOfMass() const +{ + return centreOfMass_; +} + + +inline const Foam::point& Foam::sixDofRigidBodyMotion::refCentreOfMass() const +{ + return refCentreOfMass_; +} + + +inline const Foam::diagTensor& +Foam::sixDofRigidBodyMotion::momentOfInertia() const +{ + return momentOfInertia_; +} + + +inline Foam::scalar Foam::sixDofRigidBodyMotion::mass() const +{ + return mass_; +} + + +inline const Foam::tensor& Foam::sixDofRigidBodyMotion::Q() const +{ + return Q_; +} + + +inline const Foam::vector& Foam::sixDofRigidBodyMotion::v() const +{ + return v_; +} + + +inline const Foam::vector& Foam::sixDofRigidBodyMotion::a() const +{ + return a_; +} + + +inline const Foam::vector& Foam::sixDofRigidBodyMotion::pi() const +{ + return pi_; +} + + +inline const Foam::vector& Foam::sixDofRigidBodyMotion::tau() const +{ + return tau_; +} + + +inline Foam::point& Foam::sixDofRigidBodyMotion::centreOfMass() +{ + return centreOfMass_; +} + + +inline Foam::point& Foam::sixDofRigidBodyMotion::refCentreOfMass() +{ + return refCentreOfMass_; +} + + +inline Foam::diagTensor& Foam::sixDofRigidBodyMotion::momentOfInertia() +{ + return momentOfInertia_; +} + + +inline Foam::scalar& Foam::sixDofRigidBodyMotion::mass() +{ + return mass_; +} + + +inline Foam::tensor& Foam::sixDofRigidBodyMotion::Q() +{ + return Q_; +} + + +inline Foam::vector& Foam::sixDofRigidBodyMotion::v() +{ + return v_; +} + + +inline Foam::vector& Foam::sixDofRigidBodyMotion::a() +{ + return a_; +} + + +inline Foam::vector& Foam::sixDofRigidBodyMotion::pi() +{ + return pi_; +} + + +inline Foam::vector& Foam::sixDofRigidBodyMotion::tau() +{ + return tau_; +} + + +// ************************************************************************* // diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionIO.C b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionIO.C new file mode 100644 index 0000000000..b6dcf42891 --- /dev/null +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionIO.C @@ -0,0 +1,107 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +#include "sixDofRigidBodyMotion.H" +#include "IOstreams.H" + +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + +void Foam::sixDofRigidBodyMotion::write(Ostream& os) const +{ + os.writeKeyword("centreOfMass") + << centreOfMass_ << token::END_STATEMENT << nl; + os.writeKeyword("refCentreOfMass") + << refCentreOfMass_ << token::END_STATEMENT << nl; + os.writeKeyword("momentOfInertia") + << momentOfInertia_ << token::END_STATEMENT << nl; + os.writeKeyword("mass") + << mass_ << token::END_STATEMENT << nl; + os.writeKeyword("Q") + << Q_ << token::END_STATEMENT << nl; + os.writeKeyword("v") + << v_ << token::END_STATEMENT << nl; + os.writeKeyword("a") + << a_ << token::END_STATEMENT << nl; + os.writeKeyword("pi") + << pi_ << token::END_STATEMENT << nl; + os.writeKeyword("tau") + << tau_ << token::END_STATEMENT << nl; +} + + +// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * // + +Foam::Istream& Foam::operator>>(Istream& is, sixDofRigidBodyMotion& sDofRBM) +{ + is >> sDofRBM.centreOfMass_ + >> sDofRBM.refCentreOfMass_ + >> sDofRBM.momentOfInertia_ + >> sDofRBM.mass_ + >> sDofRBM.Q_ + >> sDofRBM.v_ + >> sDofRBM.a_ + >> sDofRBM.pi_ + >> sDofRBM.tau_; + + // Check state of Istream + is.check + ( + "Foam::Istream& Foam::operator>>" + "(Foam::Istream&, Foam::sixDofRigidBodyMotion&)" + ); + + return is; +} + + +Foam::Ostream& Foam::operator<< +( + Ostream& os, + const sixDofRigidBodyMotion& sDofRBM +) +{ + os << token::SPACE << sDofRBM.centreOfMass() + << token::SPACE << sDofRBM.refCentreOfMass() + << token::SPACE << sDofRBM.momentOfInertia() + << token::SPACE << sDofRBM.mass() + << token::SPACE << sDofRBM.Q() + << token::SPACE << sDofRBM.v() + << token::SPACE << sDofRBM.a() + << token::SPACE << sDofRBM.pi() + << token::SPACE << sDofRBM.tau(); + + // Check state of Ostream + os.check + ( + "Foam::Ostream& Foam::operator<<(Foam::Ostream&, " + "const Foam::sixDofRigidBodyMotion&)" + ); + + return os; +} + + +// ************************************************************************* // From ce299b3917aed91f2ef2e76b2bc4c8a66621578b Mon Sep 17 00:00:00 2001 From: graham Date: Tue, 29 Sep 2009 17:35:53 +0100 Subject: [PATCH 02/17] Making parallel motion consistent. Moving all motion state data to a sepatate class so that it may be scattered in one operation. --- src/fvMotionSolver/Make/files | 2 + ...gidBodyDisplacementPointPatchVectorField.C | 27 +-- .../sixDofRigidBodyMotion.C | 144 ++++++------- .../sixDofRigidBodyMotion.H | 37 +--- .../sixDofRigidBodyMotionI.H | 31 +-- .../sixDofRigidBodyMotionIO.C | 32 +-- .../sixDofRigidBodyMotionState.C | 95 +++++++++ .../sixDofRigidBodyMotionState.H | 194 ++++++++++++++++++ .../sixDofRigidBodyMotionStateI.H | 102 +++++++++ .../sixDofRigidBodyMotionStateIO.C | 98 +++++++++ 10 files changed, 601 insertions(+), 161 deletions(-) create mode 100644 src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionState.C create mode 100644 src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionState.H create mode 100644 src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionStateI.H create mode 100644 src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionStateIO.C diff --git a/src/fvMotionSolver/Make/files b/src/fvMotionSolver/Make/files index bd1bb87ede..fc295442b6 100644 --- a/src/fvMotionSolver/Make/files +++ b/src/fvMotionSolver/Make/files @@ -34,5 +34,7 @@ pointPatchFields/derived/surfaceDisplacement/surfaceDisplacementPointPatchVector pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.C pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionIO.C +pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionState.C +pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionStateIO.C LIB = $(FOAM_LIBBIN)/libfvMotionSolvers diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C index ddfe3d94cb..324b10f574 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C @@ -130,7 +130,7 @@ void sixDofRigidBodyDisplacementPointPatchVectorField::updateCoeffs() dictionary forcesDict; forcesDict.add("patches", wordList(1, ptPatch.name())); - forcesDict.add("rhoInf", 0.0); + forcesDict.add("rhoInf", 1.0); forcesDict.add("CofR", motion_.centreOfMass()); forces f("forces", db(), forcesDict); @@ -148,22 +148,6 @@ void sixDofRigidBodyDisplacementPointPatchVectorField::updateCoeffs() gravity = g.value(); } - else - { - uniformDimensionedVectorField g - ( - IOobject - ( - "g", - db().time().constant(), - db(), - IOobject::READ_IF_PRESENT, - IOobject::NO_WRITE - ) - ); - - gravity = g.value(); - } motion_.updateForce ( @@ -172,15 +156,6 @@ void sixDofRigidBodyDisplacementPointPatchVectorField::updateCoeffs() t.deltaT().value() ); - // motion_.updateForce - // ( - // vector::zero, - // vector::zero, - // t.deltaT().value() - // ); - - Info<< motion_ << endl; - Field::operator=(motion_.generatePositions(p0_) - p0_); fixedValuePointPatchField::updateCoeffs(); diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.C b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.C index 02ad37e441..5db7351535 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.C +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.C @@ -30,54 +30,47 @@ License Foam::sixDofRigidBodyMotion::sixDofRigidBodyMotion() : - centreOfMass_(vector::zero), + motionState_(), refCentreOfMass_(vector::zero), momentOfInertia_(diagTensor::one*VSMALL), - mass_(VSMALL), - Q_(I), - v_(vector::zero), - a_(vector::zero), - pi_(vector::zero), - tau_(vector::zero) + mass_(VSMALL) {} Foam::sixDofRigidBodyMotion::sixDofRigidBodyMotion ( const point& centreOfMass, - const point& refCentreOfMass, - const diagTensor& momentOfInertia, - scalar mass, const tensor& Q, const vector& v, const vector& a, const vector& pi, - const vector& tau + const vector& tau, + scalar mass, + const point& refCentreOfMass, + const diagTensor& momentOfInertia ) : - centreOfMass_(centreOfMass), + motionState_ + ( + centreOfMass, + Q, + v, + a, + pi, + tau + ), refCentreOfMass_(refCentreOfMass), momentOfInertia_(momentOfInertia), - mass_(mass), - Q_(Q), - v_(v), - a_(a), - pi_(pi), - tau_(tau) + mass_(mass) {} Foam::sixDofRigidBodyMotion::sixDofRigidBodyMotion(const dictionary& dict) : - centreOfMass_(dict.lookup("centreOfMass")), - refCentreOfMass_(dict.lookupOrDefault("refCentreOfMass", centreOfMass_)), + motionState_(dict), + refCentreOfMass_(dict.lookupOrDefault("refCentreOfMass", centreOfMass())), momentOfInertia_(dict.lookup("momentOfInertia")), - mass_(readScalar(dict.lookup("mass"))), - Q_(dict.lookupOrDefault("Q", tensor(I))), - v_(dict.lookupOrDefault("v", vector::zero)), - a_(dict.lookupOrDefault("a", vector::zero)), - pi_(dict.lookupOrDefault("pi", vector::zero)), - tau_(dict.lookupOrDefault("tau", vector::zero)) + mass_(readScalar(dict.lookup("mass"))) {} @@ -86,15 +79,10 @@ Foam::sixDofRigidBodyMotion::sixDofRigidBodyMotion const sixDofRigidBodyMotion& sDofRBM ) : - centreOfMass_(sDofRBM.centreOfMass()), + motionState_(sDofRBM.motionState()), refCentreOfMass_(sDofRBM.refCentreOfMass()), momentOfInertia_(sDofRBM.momentOfInertia()), - mass_(sDofRBM.mass()), - Q_(sDofRBM.Q()), - v_(sDofRBM.v()), - a_(sDofRBM.a()), - pi_(sDofRBM.pi()), - tau_(sDofRBM.tau()) + mass_(sDofRBM.mass()) {} @@ -114,36 +102,42 @@ void Foam::sixDofRigidBodyMotion::updatePosition // First leapfrog velocity adjust and motion part, required before // force calculation - v_ += 0.5*deltaT*a_; + if (Pstream::master()) + { + v() += 0.5*deltaT*a(); - pi_ += 0.5*deltaT*tau_; + pi() += 0.5*deltaT*tau(); - // Leapfrog move part - centreOfMass_ += deltaT*v_; + // Leapfrog move part + centreOfMass() += deltaT*v(); - // Leapfrog orientation adjustment + // Leapfrog orientation adjustment - tensor R; + tensor R; - R = rotationTensorX(0.5*deltaT*pi_.x()/momentOfInertia_.xx()); - pi_ = pi_ & R; - Q_ = Q_ & R; + R = rotationTensorX(0.5*deltaT*pi().x()/momentOfInertia_.xx()); + pi() = pi() & R; + Q() = Q() & R; - R = rotationTensorY(0.5*deltaT*pi_.y()/momentOfInertia_.yy()); - pi_ = pi_ & R; - Q_ = Q_ & R; + R = rotationTensorY(0.5*deltaT*pi().y()/momentOfInertia_.yy()); + pi() = pi() & R; + Q() = Q() & R; - R = rotationTensorZ(deltaT*pi_.z()/momentOfInertia_.zz()); - pi_ = pi_ & R; - Q_ = Q_ & R; + R = rotationTensorZ(deltaT*pi().z()/momentOfInertia_.zz()); + pi() = pi() & R; + Q() = Q() & R; - R = rotationTensorY(0.5*deltaT*pi_.y()/momentOfInertia_.yy()); - pi_ = pi_ & R; - Q_ = Q_ & R; + R = rotationTensorY(0.5*deltaT*pi().y()/momentOfInertia_.yy()); + pi() = pi() & R; + Q() = Q() & R; - R = rotationTensorX(0.5*deltaT*pi_.x()/momentOfInertia_.xx()); - pi_ = pi_ & R; - Q_ = Q_ & R; + R = rotationTensorX(0.5*deltaT*pi().x()/momentOfInertia_.xx()); + pi() = pi() & R; + Q() = Q() & R; + + } + + Pstream::scatter(motionState_); } @@ -157,14 +151,18 @@ void Foam::sixDofRigidBodyMotion::updateForce // Second leapfrog velocity adjust part, required after motion and // force calculation part - a_ = fGlobal/mass_; + if (Pstream::master()) + { + a() = fGlobal/mass_; - tau_ = (Q_.T() & tauGlobal); + tau() = (Q().T() & tauGlobal); - v_ += 0.5*deltaT*a_; + v() += 0.5*deltaT*a(); - pi_ += 0.5*deltaT*tau_; + pi() += 0.5*deltaT*tau(); + } + Pstream::scatter(motionState_); } @@ -178,30 +176,34 @@ void Foam::sixDofRigidBodyMotion::updateForce // Second leapfrog velocity adjust part, required after motion and // force calculation part - a_ = vector::zero; - - tau_ = vector::zero; - - forAll(positions, i) + if (Pstream::master()) { - const vector& f = forces[i]; + a() = vector::zero; - a_ += f/mass_; + tau() = vector::zero; - tau_ += (positions[i] ^ (Q_.T() & f)); + forAll(positions, i) + { + const vector& f = forces[i]; + + a() += f/mass_; + + tau() += (positions[i] ^ (Q().T() & f)); + } + + v() += 0.5*deltaT*a(); + + pi() += 0.5*deltaT*tau(); } - v_ += 0.5*deltaT*a_; - - pi_ += 0.5*deltaT*tau_; - + Pstream::scatter(motionState_); } Foam::tmp Foam::sixDofRigidBodyMotion::generatePositions(const pointField& pts) const { - return (centreOfMass_ + (Q_ & (pts - refCentreOfMass_))); + return (centreOfMass() + (Q() & (pts - refCentreOfMass_))); } diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.H b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.H index 2bdb7fbf05..3db9d58f6d 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.H +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.H @@ -53,8 +53,7 @@ SourceFiles #ifndef sixDofRigidBodyMotion_H #define sixDofRigidBodyMotion_H -#include "vector.H" -#include "diagTensor.H" +#include "sixDofRigidBodyMotionState.H" #include "pointField.H" #include "mathConstants.H" @@ -81,8 +80,8 @@ class sixDofRigidBodyMotion { // Private data - //- Current position of the centre of mass of the body - point centreOfMass_; + // state data object + sixDofRigidBodyMotionState motionState_; //- Centre of mass of reference state point refCentreOfMass_; @@ -93,23 +92,6 @@ class sixDofRigidBodyMotion //- Mass of the body scalar mass_; - //- Orientation, stored as the rotation tensor to transform - // from the body to the global reference frame, i.e.: - // globalVector = Q_ & bodyLocalVector - // bodyLocalVector = Q_.T() & globalVector - tensor Q_; - - // Linear velocity of body - vector v_; - - // Total linear acceleration of body - vector a_; - - //- Angular momentum of body, in body local reference frame - vector pi_; - - //- Total torque on body, in body local reference frame - vector tau_; // Private Member Functions @@ -137,14 +119,14 @@ public: sixDofRigidBodyMotion ( const point& centreOfMass, - const point& refCentreOfMass, - const diagTensor& momentOfInertia, - scalar mass, const tensor& Q, const vector& v, const vector& a, - const vector& pi, - const vector& tau + const vector& pi, + const vector& tau, + scalar mass, + const point& refCentreOfMass, + const diagTensor& momentOfInertia ); //- Construct from dictionary @@ -183,6 +165,9 @@ public: // Access + //- Return access to the motion state + inline const sixDofRigidBodyMotionState& motionState() const; + //- Return access to the centre of mass inline const point& centreOfMass() const; diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionI.H b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionI.H index 09b1fa64db..2ce3160b01 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionI.H +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionI.H @@ -64,9 +64,16 @@ Foam::sixDofRigidBodyMotion::rotationTensorZ(scalar phi) const } +inline const Foam::sixDofRigidBodyMotionState& +Foam::sixDofRigidBodyMotion::motionState() const +{ + return motionState_; +} + + inline const Foam::point& Foam::sixDofRigidBodyMotion::centreOfMass() const { - return centreOfMass_; + return motionState_.centreOfMass(); } @@ -91,37 +98,37 @@ inline Foam::scalar Foam::sixDofRigidBodyMotion::mass() const inline const Foam::tensor& Foam::sixDofRigidBodyMotion::Q() const { - return Q_; + return motionState_.Q(); } inline const Foam::vector& Foam::sixDofRigidBodyMotion::v() const { - return v_; + return motionState_.v(); } inline const Foam::vector& Foam::sixDofRigidBodyMotion::a() const { - return a_; + return motionState_.a(); } inline const Foam::vector& Foam::sixDofRigidBodyMotion::pi() const { - return pi_; + return motionState_.pi(); } inline const Foam::vector& Foam::sixDofRigidBodyMotion::tau() const { - return tau_; + return motionState_.tau(); } inline Foam::point& Foam::sixDofRigidBodyMotion::centreOfMass() { - return centreOfMass_; + return motionState_.centreOfMass(); } @@ -145,31 +152,31 @@ inline Foam::scalar& Foam::sixDofRigidBodyMotion::mass() inline Foam::tensor& Foam::sixDofRigidBodyMotion::Q() { - return Q_; + return motionState_.Q(); } inline Foam::vector& Foam::sixDofRigidBodyMotion::v() { - return v_; + return motionState_.v(); } inline Foam::vector& Foam::sixDofRigidBodyMotion::a() { - return a_; + return motionState_.a(); } inline Foam::vector& Foam::sixDofRigidBodyMotion::pi() { - return pi_; + return motionState_.pi(); } inline Foam::vector& Foam::sixDofRigidBodyMotion::tau() { - return tau_; + return motionState_.tau(); } diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionIO.C b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionIO.C index b6dcf42891..fe4902a94d 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionIO.C +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionIO.C @@ -31,24 +31,14 @@ License void Foam::sixDofRigidBodyMotion::write(Ostream& os) const { - os.writeKeyword("centreOfMass") - << centreOfMass_ << token::END_STATEMENT << nl; + motionState_.write(os); + os.writeKeyword("refCentreOfMass") << refCentreOfMass_ << token::END_STATEMENT << nl; os.writeKeyword("momentOfInertia") << momentOfInertia_ << token::END_STATEMENT << nl; os.writeKeyword("mass") << mass_ << token::END_STATEMENT << nl; - os.writeKeyword("Q") - << Q_ << token::END_STATEMENT << nl; - os.writeKeyword("v") - << v_ << token::END_STATEMENT << nl; - os.writeKeyword("a") - << a_ << token::END_STATEMENT << nl; - os.writeKeyword("pi") - << pi_ << token::END_STATEMENT << nl; - os.writeKeyword("tau") - << tau_ << token::END_STATEMENT << nl; } @@ -56,15 +46,10 @@ void Foam::sixDofRigidBodyMotion::write(Ostream& os) const Foam::Istream& Foam::operator>>(Istream& is, sixDofRigidBodyMotion& sDofRBM) { - is >> sDofRBM.centreOfMass_ + is >> sDofRBM.motionState_ >> sDofRBM.refCentreOfMass_ >> sDofRBM.momentOfInertia_ - >> sDofRBM.mass_ - >> sDofRBM.Q_ - >> sDofRBM.v_ - >> sDofRBM.a_ - >> sDofRBM.pi_ - >> sDofRBM.tau_; + >> sDofRBM.mass_; // Check state of Istream is.check @@ -83,15 +68,10 @@ Foam::Ostream& Foam::operator<< const sixDofRigidBodyMotion& sDofRBM ) { - os << token::SPACE << sDofRBM.centreOfMass() + os << sDofRBM.motionState() << token::SPACE << sDofRBM.refCentreOfMass() << token::SPACE << sDofRBM.momentOfInertia() - << token::SPACE << sDofRBM.mass() - << token::SPACE << sDofRBM.Q() - << token::SPACE << sDofRBM.v() - << token::SPACE << sDofRBM.a() - << token::SPACE << sDofRBM.pi() - << token::SPACE << sDofRBM.tau(); + << token::SPACE << sDofRBM.mass() ; // Check state of Ostream os.check diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionState.C b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionState.C new file mode 100644 index 0000000000..5d54079099 --- /dev/null +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionState.C @@ -0,0 +1,95 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +#include "sixDofRigidBodyMotionState.H" + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::sixDofRigidBodyMotionState::sixDofRigidBodyMotionState() +: + centreOfMass_(vector::zero), + Q_(I), + v_(vector::zero), + a_(vector::zero), + pi_(vector::zero), + tau_(vector::zero) +{} + + +Foam::sixDofRigidBodyMotionState::sixDofRigidBodyMotionState +( + const point& centreOfMass, + const tensor& Q, + const vector& v, + const vector& a, + const vector& pi, + const vector& tau +) +: + centreOfMass_(centreOfMass), + Q_(Q), + v_(v), + a_(a), + pi_(pi), + tau_(tau) +{} + + +Foam::sixDofRigidBodyMotionState::sixDofRigidBodyMotionState +( + const dictionary& dict +) +: + centreOfMass_(dict.lookup("centreOfMass")), + Q_(dict.lookupOrDefault("Q", tensor(I))), + v_(dict.lookupOrDefault("v", vector::zero)), + a_(dict.lookupOrDefault("a", vector::zero)), + pi_(dict.lookupOrDefault("pi", vector::zero)), + tau_(dict.lookupOrDefault("tau", vector::zero)) +{} + + +Foam::sixDofRigidBodyMotionState::sixDofRigidBodyMotionState +( + const sixDofRigidBodyMotionState& sDofRBMS +) +: + centreOfMass_(sDofRBMS.centreOfMass()), + Q_(sDofRBMS.Q()), + v_(sDofRBMS.v()), + a_(sDofRBMS.a()), + pi_(sDofRBMS.pi()), + tau_(sDofRBMS.tau()) +{} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::sixDofRigidBodyMotionState::~sixDofRigidBodyMotionState() +{} + + +// ************************************************************************* // diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionState.H b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionState.H new file mode 100644 index 0000000000..f7942e31bd --- /dev/null +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionState.H @@ -0,0 +1,194 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Class + Foam::sixDofRigidBodyMotionState + +Description + Holds the motion state of sixDof object. Wrapped up together + to allow rapid scatter to other processors. The processors must all + maintain exactly the same state data to avoid any drift or inconsistency. + +SourceFiles + sixDofRigidBodyMotionStateI.H + sixDofRigidBodyMotionState.C + sixDofRigidBodyMotionStateIO.C + +\*---------------------------------------------------------------------------*/ + +#ifndef sixDofRigidBodyMotionState_H +#define sixDofRigidBodyMotionState_H + +#include "vector.H" +#include "point.H" +#include "diagTensor.H" +#include "tensor.H" +#include "dictionary.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// Forward declaration of classes +class Istream; +class Ostream; + +// Forward declaration of friend functions and operators +class sixDofRigidBodyMotionState; +Istream& operator>>(Istream&, sixDofRigidBodyMotionState&); +Ostream& operator<<(Ostream&, const sixDofRigidBodyMotionState&); + + +/*---------------------------------------------------------------------------*\ + Class sixDofRigidBodyMotionState Declaration +\*---------------------------------------------------------------------------*/ + +class sixDofRigidBodyMotionState +{ + // Private data + + //- Current position of the centre of mass of the body + point centreOfMass_; + + //- Orientation, stored as the rotation tensor to transform + // from the body to the global reference frame, i.e.: + // globalVector = Q_ & bodyLocalVector + // bodyLocalVector = Q_.T() & globalVector + tensor Q_; + + // Linear velocity of body + vector v_; + + // Total linear acceleration of body + vector a_; + + //- Angular momentum of body, in body local reference frame + vector pi_; + + //- Total torque on body, in body local reference frame + vector tau_; + + +public: + + // Constructors + + //- Construct null + sixDofRigidBodyMotionState(); + + //- Construct from components + sixDofRigidBodyMotionState + ( + const point& centreOfMass, + const tensor& Q, + const vector& v, + const vector& a, + const vector& pi, + const vector& tau + ); + + //- Construct from dictionary + sixDofRigidBodyMotionState(const dictionary& dict); + + //- Construct as copy + sixDofRigidBodyMotionState(const sixDofRigidBodyMotionState&); + + + //- Destructor + ~sixDofRigidBodyMotionState(); + + + // Member Functions + + // Access + + //- Return access to the centre of mass + inline const point& centreOfMass() const; + + //- Return access to the orientation + inline const tensor& Q() const; + + //- Return access to velocity + inline const vector& v() const; + + //- Return access to acceleration + inline const vector& a() const; + + //- Return access to angular momentum + inline const vector& pi() const; + + //- Return access to torque + inline const vector& tau() const; + + + // Edit + + //- Return non-const access to the centre of mass + inline point& centreOfMass(); + + //- Return non-const access to the orientation + inline tensor& Q(); + + //- Return non-const access to vector + inline vector& v(); + + //- Return non-const access to acceleration + inline vector& a(); + + //- Return non-const access to angular momentum + inline vector& pi(); + + //- Return non-const access to torque + inline vector& tau(); + + + //- Write + void write(Ostream&) const; + + + // Friend Functions + + // Friend Operators + + // IOstream Operators + + friend Istream& operator>>(Istream&, sixDofRigidBodyMotionState&); + friend Ostream& operator<<(Ostream&, const sixDofRigidBodyMotionState&); +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "sixDofRigidBodyMotionStateI.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionStateI.H b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionStateI.H new file mode 100644 index 0000000000..dff9412fba --- /dev/null +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionStateI.H @@ -0,0 +1,102 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +inline const Foam::point& Foam::sixDofRigidBodyMotionState::centreOfMass() const +{ + return centreOfMass_; +} + + +inline const Foam::tensor& Foam::sixDofRigidBodyMotionState::Q() const +{ + return Q_; +} + + +inline const Foam::vector& Foam::sixDofRigidBodyMotionState::v() const +{ + return v_; +} + + +inline const Foam::vector& Foam::sixDofRigidBodyMotionState::a() const +{ + return a_; +} + + +inline const Foam::vector& Foam::sixDofRigidBodyMotionState::pi() const +{ + return pi_; +} + + +inline const Foam::vector& Foam::sixDofRigidBodyMotionState::tau() const +{ + return tau_; +} + + +inline Foam::point& Foam::sixDofRigidBodyMotionState::centreOfMass() +{ + return centreOfMass_; +} + + +inline Foam::tensor& Foam::sixDofRigidBodyMotionState::Q() +{ + return Q_; +} + + +inline Foam::vector& Foam::sixDofRigidBodyMotionState::v() +{ + return v_; +} + + +inline Foam::vector& Foam::sixDofRigidBodyMotionState::a() +{ + return a_; +} + + +inline Foam::vector& Foam::sixDofRigidBodyMotionState::pi() +{ + return pi_; +} + + +inline Foam::vector& Foam::sixDofRigidBodyMotionState::tau() +{ + return tau_; +} + + +// ************************************************************************* // diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionStateIO.C b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionStateIO.C new file mode 100644 index 0000000000..3934e57cf2 --- /dev/null +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionStateIO.C @@ -0,0 +1,98 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +#include "sixDofRigidBodyMotionState.H" +#include "IOstreams.H" + +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + +void Foam::sixDofRigidBodyMotionState::write(Ostream& os) const +{ + os.writeKeyword("centreOfMass") + << centreOfMass_ << token::END_STATEMENT << nl; + os.writeKeyword("Q") + << Q_ << token::END_STATEMENT << nl; + os.writeKeyword("v") + << v_ << token::END_STATEMENT << nl; + os.writeKeyword("a") + << a_ << token::END_STATEMENT << nl; + os.writeKeyword("pi") + << pi_ << token::END_STATEMENT << nl; + os.writeKeyword("tau") + << tau_ << token::END_STATEMENT << nl; +} + + +// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * // + +Foam::Istream& Foam::operator>> +( + Istream& is, sixDofRigidBodyMotionState& sDofRBMS +) +{ + is >> sDofRBMS.centreOfMass_ + >> sDofRBMS.Q_ + >> sDofRBMS.v_ + >> sDofRBMS.a_ + >> sDofRBMS.pi_ + >> sDofRBMS.tau_; + + // Check state of Istream + is.check + ( + "Foam::Istream& Foam::operator>>" + "(Foam::Istream&, Foam::sixDofRigidBodyMotionState&)" + ); + + return is; +} + + +Foam::Ostream& Foam::operator<< +( + Ostream& os, + const sixDofRigidBodyMotionState& sDofRBMS +) +{ + os << token::SPACE << sDofRBMS.centreOfMass() + << token::SPACE << sDofRBMS.Q() + << token::SPACE << sDofRBMS.v() + << token::SPACE << sDofRBMS.a() + << token::SPACE << sDofRBMS.pi() + << token::SPACE << sDofRBMS.tau(); + + // Check state of Ostream + os.check + ( + "Foam::Ostream& Foam::operator<<(Foam::Ostream&, " + "const Foam::sixDofRigidBodyMotionState&)" + ); + + return os; +} + + +// ************************************************************************* // From 0545576016a80a3b4d3e31a3e0b89001cb43eec9 Mon Sep 17 00:00:00 2001 From: graham Date: Wed, 30 Sep 2009 12:32:49 +0100 Subject: [PATCH 03/17] Adding rhoInf data member to be passed to the forces function object. --- ...fRigidBodyDisplacementPointPatchVectorField.C | 16 +++++++++++----- ...fRigidBodyDisplacementPointPatchVectorField.H | 4 ++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C index 324b10f574..b5c6b9b8a2 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C @@ -49,7 +49,8 @@ sixDofRigidBodyDisplacementPointPatchVectorField : fixedValuePointPatchField(p, iF), motion_(), - p0_(p.localPoints()) + p0_(p.localPoints()), + rhoInf_(1.0) {} @@ -62,7 +63,8 @@ sixDofRigidBodyDisplacementPointPatchVectorField ) : fixedValuePointPatchField(p, iF, dict), - motion_(dict) + motion_(dict), + rhoInf_(readScalar(dict.lookup("rhoInf"))) { if (!dict.found("value")) { @@ -91,7 +93,8 @@ sixDofRigidBodyDisplacementPointPatchVectorField : fixedValuePointPatchField(ptf, p, iF, mapper), motion_(ptf.motion_), - p0_(ptf.p0_) + p0_(ptf.p0_), + rhoInf_(ptf.rhoInf_) {} @@ -104,7 +107,8 @@ sixDofRigidBodyDisplacementPointPatchVectorField : fixedValuePointPatchField(ptf, iF), motion_(ptf.motion_), - p0_(ptf.p0_) + p0_(ptf.p0_), + rhoInf_(ptf.rhoInf_) {} @@ -130,7 +134,7 @@ void sixDofRigidBodyDisplacementPointPatchVectorField::updateCoeffs() dictionary forcesDict; forcesDict.add("patches", wordList(1, ptPatch.name())); - forcesDict.add("rhoInf", 1.0); + forcesDict.add("rhoInf", rhoInf_); forcesDict.add("CofR", motion_.centreOfMass()); forces f("forces", db(), forcesDict); @@ -166,6 +170,8 @@ void sixDofRigidBodyDisplacementPointPatchVectorField::write(Ostream& os) const { pointPatchField::write(os); motion_.write(os); + os.writeKeyword("rhoInf") + << rhoInf_ << token::END_STATEMENT << nl; p0_.writeEntry("p0", os); writeEntry("value", os); } diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.H b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.H index b619baa3f2..417c56033e 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.H +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.H @@ -60,6 +60,10 @@ class sixDofRigidBodyDisplacementPointPatchVectorField //- Reference positions of points on the patch pointField p0_; + //- Reference density required by the forces object for + // incompressible calculations + scalar rhoInf_; + public: From 29f40776ed32adfabd46778f42c7befae582684c Mon Sep 17 00:00:00 2001 From: graham Date: Fri, 9 Oct 2009 10:39:06 +0100 Subject: [PATCH 04/17] Fixing bug in faceIntersection where the sign of the distance was being discarded on return from the triPointRef intersecion test. Was only appearing when using FULL_RAY tests. --- src/OpenFOAM/meshes/meshShapes/face/faceIntersection.C | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/OpenFOAM/meshes/meshShapes/face/faceIntersection.C b/src/OpenFOAM/meshes/meshShapes/face/faceIntersection.C index c5f9a80250..cf7dfc9400 100644 --- a/src/OpenFOAM/meshes/meshShapes/face/faceIntersection.C +++ b/src/OpenFOAM/meshes/meshShapes/face/faceIntersection.C @@ -159,9 +159,9 @@ Foam::pointHit Foam::face::intersection if (curHit.hit()) { - if (Foam::mag(curHit.distance()) < nearestHitDist) + if (Foam::mag(curHit.distance()) < Foam::mag(nearestHitDist)) { - nearestHitDist = Foam::mag(curHit.distance()); + nearestHitDist = curHit.distance(); nearest.setHit(); nearest.setPoint(curHit.hitPoint()); } From f87d36f34c5f04c0f24af80979358257ccff9f6c Mon Sep 17 00:00:00 2001 From: graham Date: Mon, 12 Oct 2009 11:22:41 +0100 Subject: [PATCH 05/17] Rename sixDof to sixDoF --- src/fvMotionSolver/Make/files | 10 ++-- ...idBodyDisplacementPointPatchVectorField.C} | 28 +++++------ ...idBodyDisplacementPointPatchVectorField.H} | 36 +++++++-------- .../sixDoFRigidBodyMotion.C} | 30 ++++++------ .../sixDoFRigidBodyMotion.H} | 44 +++++++++--------- .../sixDoFRigidBodyMotionI.H} | 46 +++++++++---------- .../sixDoFRigidBodyMotionIO.C} | 28 +++++------ .../sixDoFRigidBodyMotionState.C} | 26 +++++------ .../sixDoFRigidBodyMotionState.H} | 40 ++++++++-------- .../sixDoFRigidBodyMotionStateI.H} | 24 +++++----- .../sixDoFRigidBodyMotionStateIO.C} | 36 +++++++-------- 11 files changed, 174 insertions(+), 174 deletions(-) rename src/fvMotionSolver/pointPatchFields/derived/{sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C => sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.C} (85%) rename src/fvMotionSolver/pointPatchFields/derived/{sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.H => sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.H} (79%) rename src/fvMotionSolver/pointPatchFields/derived/{sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.C => sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C} (86%) rename src/fvMotionSolver/pointPatchFields/derived/{sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.H => sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.H} (87%) rename src/fvMotionSolver/pointPatchFields/derived/{sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionI.H => sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionI.H} (66%) rename src/fvMotionSolver/pointPatchFields/derived/{sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionIO.C => sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionIO.C} (77%) rename src/fvMotionSolver/pointPatchFields/derived/{sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionState.C => sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionState.C} (79%) rename src/fvMotionSolver/pointPatchFields/derived/{sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionState.H => sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionState.H} (83%) rename src/fvMotionSolver/pointPatchFields/derived/{sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionStateI.H => sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionStateI.H} (70%) rename src/fvMotionSolver/pointPatchFields/derived/{sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionStateIO.C => sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionStateIO.C} (75%) diff --git a/src/fvMotionSolver/Make/files b/src/fvMotionSolver/Make/files index fc295442b6..fd018a7537 100644 --- a/src/fvMotionSolver/Make/files +++ b/src/fvMotionSolver/Make/files @@ -31,10 +31,10 @@ pointPatchFields/derived/oscillatingDisplacement/oscillatingDisplacementPointPat pointPatchFields/derived/angularOscillatingDisplacement/angularOscillatingDisplacementPointPatchVectorField.C pointPatchFields/derived/surfaceSlipDisplacement/surfaceSlipDisplacementPointPatchVectorField.C pointPatchFields/derived/surfaceDisplacement/surfaceDisplacementPointPatchVectorField.C -pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C -pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.C -pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionIO.C -pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionState.C -pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionStateIO.C +pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.C +pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C +pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionIO.C +pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionState.C +pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionStateIO.C LIB = $(FOAM_LIBBIN)/libfvMotionSolvers diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.C similarity index 85% rename from src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C rename to src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.C index b5c6b9b8a2..f2a7adb5b6 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.C +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ -#include "sixDofRigidBodyDisplacementPointPatchVectorField.H" +#include "sixDoFRigidBodyDisplacementPointPatchVectorField.H" #include "pointPatchFields.H" #include "addToRunTimeSelectionTable.H" #include "Time.H" @@ -40,8 +40,8 @@ namespace Foam // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -sixDofRigidBodyDisplacementPointPatchVectorField:: -sixDofRigidBodyDisplacementPointPatchVectorField +sixDoFRigidBodyDisplacementPointPatchVectorField:: +sixDoFRigidBodyDisplacementPointPatchVectorField ( const pointPatch& p, const DimensionedField& iF @@ -54,8 +54,8 @@ sixDofRigidBodyDisplacementPointPatchVectorField {} -sixDofRigidBodyDisplacementPointPatchVectorField:: -sixDofRigidBodyDisplacementPointPatchVectorField +sixDoFRigidBodyDisplacementPointPatchVectorField:: +sixDoFRigidBodyDisplacementPointPatchVectorField ( const pointPatch& p, const DimensionedField& iF, @@ -82,10 +82,10 @@ sixDofRigidBodyDisplacementPointPatchVectorField } -sixDofRigidBodyDisplacementPointPatchVectorField:: -sixDofRigidBodyDisplacementPointPatchVectorField +sixDoFRigidBodyDisplacementPointPatchVectorField:: +sixDoFRigidBodyDisplacementPointPatchVectorField ( - const sixDofRigidBodyDisplacementPointPatchVectorField& ptf, + const sixDoFRigidBodyDisplacementPointPatchVectorField& ptf, const pointPatch& p, const DimensionedField& iF, const pointPatchFieldMapper& mapper @@ -98,10 +98,10 @@ sixDofRigidBodyDisplacementPointPatchVectorField {} -sixDofRigidBodyDisplacementPointPatchVectorField:: -sixDofRigidBodyDisplacementPointPatchVectorField +sixDoFRigidBodyDisplacementPointPatchVectorField:: +sixDoFRigidBodyDisplacementPointPatchVectorField ( - const sixDofRigidBodyDisplacementPointPatchVectorField& ptf, + const sixDoFRigidBodyDisplacementPointPatchVectorField& ptf, const DimensionedField& iF ) : @@ -114,7 +114,7 @@ sixDofRigidBodyDisplacementPointPatchVectorField // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -void sixDofRigidBodyDisplacementPointPatchVectorField::updateCoeffs() +void sixDoFRigidBodyDisplacementPointPatchVectorField::updateCoeffs() { if (this->updated()) { @@ -166,7 +166,7 @@ void sixDofRigidBodyDisplacementPointPatchVectorField::updateCoeffs() } -void sixDofRigidBodyDisplacementPointPatchVectorField::write(Ostream& os) const +void sixDoFRigidBodyDisplacementPointPatchVectorField::write(Ostream& os) const { pointPatchField::write(os); motion_.write(os); @@ -182,7 +182,7 @@ void sixDofRigidBodyDisplacementPointPatchVectorField::write(Ostream& os) const makePointPatchTypeField ( pointPatchVectorField, - sixDofRigidBodyDisplacementPointPatchVectorField + sixDoFRigidBodyDisplacementPointPatchVectorField ); // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.H b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.H similarity index 79% rename from src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.H rename to src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.H index 417c56033e..048fa9f14b 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyDisplacementPointPatchVectorField.H +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.H @@ -23,21 +23,21 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::sixDofRigidBodyDisplacementPointPatchVectorField + Foam::sixDoFRigidBodyDisplacementPointPatchVectorField Description - Foam::sixDofRigidBodyDisplacementPointPatchVectorField + Foam::sixDoFRigidBodyDisplacementPointPatchVectorField SourceFiles - sixDofRigidBodyDisplacementPointPatchVectorField.C + sixDoFRigidBodyDisplacementPointPatchVectorField.C \*---------------------------------------------------------------------------*/ -#ifndef sixDofRigidBodyDisplacementPointPatchVectorField_H -#define sixDofRigidBodyDisplacementPointPatchVectorField_H +#ifndef sixDoFRigidBodyDisplacementPointPatchVectorField_H +#define sixDoFRigidBodyDisplacementPointPatchVectorField_H #include "fixedValuePointPatchField.H" -#include "sixDofRigidBodyMotion.H" +#include "sixDoFRigidBodyMotion.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -45,17 +45,17 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class sixDofRigidBodyDisplacementPointPatchVectorField Declaration + Class sixDoFRigidBodyDisplacementPointPatchVectorField Declaration \*---------------------------------------------------------------------------*/ -class sixDofRigidBodyDisplacementPointPatchVectorField +class sixDoFRigidBodyDisplacementPointPatchVectorField : public fixedValuePointPatchField { // Private data //- Six dof motion object - sixDofRigidBodyMotion motion_; + sixDoFRigidBodyMotion motion_; //- Reference positions of points on the patch pointField p0_; @@ -68,20 +68,20 @@ class sixDofRigidBodyDisplacementPointPatchVectorField public: //- Runtime type information - TypeName("sixDofRigidBodyDisplacement"); + TypeName("sixDoFRigidBodyDisplacement"); // Constructors //- Construct from patch and internal field - sixDofRigidBodyDisplacementPointPatchVectorField + sixDoFRigidBodyDisplacementPointPatchVectorField ( const pointPatch&, const DimensionedField& ); //- Construct from patch, internal field and dictionary - sixDofRigidBodyDisplacementPointPatchVectorField + sixDoFRigidBodyDisplacementPointPatchVectorField ( const pointPatch&, const DimensionedField&, @@ -89,9 +89,9 @@ public: ); //- Construct by mapping given patchField onto a new patch - sixDofRigidBodyDisplacementPointPatchVectorField + sixDoFRigidBodyDisplacementPointPatchVectorField ( - const sixDofRigidBodyDisplacementPointPatchVectorField&, + const sixDoFRigidBodyDisplacementPointPatchVectorField&, const pointPatch&, const DimensionedField&, const pointPatchFieldMapper& @@ -102,7 +102,7 @@ public: { return autoPtr > ( - new sixDofRigidBodyDisplacementPointPatchVectorField + new sixDoFRigidBodyDisplacementPointPatchVectorField ( *this ) @@ -110,9 +110,9 @@ public: } //- Construct as copy setting internal field reference - sixDofRigidBodyDisplacementPointPatchVectorField + sixDoFRigidBodyDisplacementPointPatchVectorField ( - const sixDofRigidBodyDisplacementPointPatchVectorField&, + const sixDoFRigidBodyDisplacementPointPatchVectorField&, const DimensionedField& ); @@ -124,7 +124,7 @@ public: { return autoPtr > ( - new sixDofRigidBodyDisplacementPointPatchVectorField + new sixDoFRigidBodyDisplacementPointPatchVectorField ( *this, iF diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.C b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C similarity index 86% rename from src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.C rename to src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C index 5db7351535..dae1ba9f3d 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.C +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C @@ -24,11 +24,11 @@ License \*---------------------------------------------------------------------------*/ -#include "sixDofRigidBodyMotion.H" +#include "sixDoFRigidBodyMotion.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::sixDofRigidBodyMotion::sixDofRigidBodyMotion() +Foam::sixDoFRigidBodyMotion::sixDoFRigidBodyMotion() : motionState_(), refCentreOfMass_(vector::zero), @@ -37,7 +37,7 @@ Foam::sixDofRigidBodyMotion::sixDofRigidBodyMotion() {} -Foam::sixDofRigidBodyMotion::sixDofRigidBodyMotion +Foam::sixDoFRigidBodyMotion::sixDoFRigidBodyMotion ( const point& centreOfMass, const tensor& Q, @@ -65,7 +65,7 @@ Foam::sixDofRigidBodyMotion::sixDofRigidBodyMotion {} -Foam::sixDofRigidBodyMotion::sixDofRigidBodyMotion(const dictionary& dict) +Foam::sixDoFRigidBodyMotion::sixDoFRigidBodyMotion(const dictionary& dict) : motionState_(dict), refCentreOfMass_(dict.lookupOrDefault("refCentreOfMass", centreOfMass())), @@ -74,27 +74,27 @@ Foam::sixDofRigidBodyMotion::sixDofRigidBodyMotion(const dictionary& dict) {} -Foam::sixDofRigidBodyMotion::sixDofRigidBodyMotion +Foam::sixDoFRigidBodyMotion::sixDoFRigidBodyMotion ( - const sixDofRigidBodyMotion& sDofRBM + const sixDoFRigidBodyMotion& sDoFRBM ) : - motionState_(sDofRBM.motionState()), - refCentreOfMass_(sDofRBM.refCentreOfMass()), - momentOfInertia_(sDofRBM.momentOfInertia()), - mass_(sDofRBM.mass()) + motionState_(sDoFRBM.motionState()), + refCentreOfMass_(sDoFRBM.refCentreOfMass()), + momentOfInertia_(sDoFRBM.momentOfInertia()), + mass_(sDoFRBM.mass()) {} // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // -Foam::sixDofRigidBodyMotion::~sixDofRigidBodyMotion() +Foam::sixDoFRigidBodyMotion::~sixDoFRigidBodyMotion() {} // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // -void Foam::sixDofRigidBodyMotion::updatePosition +void Foam::sixDoFRigidBodyMotion::updatePosition ( scalar deltaT ) @@ -141,7 +141,7 @@ void Foam::sixDofRigidBodyMotion::updatePosition } -void Foam::sixDofRigidBodyMotion::updateForce +void Foam::sixDoFRigidBodyMotion::updateForce ( const vector& fGlobal, const vector& tauGlobal, @@ -166,7 +166,7 @@ void Foam::sixDofRigidBodyMotion::updateForce } -void Foam::sixDofRigidBodyMotion::updateForce +void Foam::sixDoFRigidBodyMotion::updateForce ( const pointField& positions, const vectorField& forces, @@ -201,7 +201,7 @@ void Foam::sixDofRigidBodyMotion::updateForce Foam::tmp -Foam::sixDofRigidBodyMotion::generatePositions(const pointField& pts) const +Foam::sixDoFRigidBodyMotion::generatePositions(const pointField& pts) const { return (centreOfMass() + (Q() & (pts - refCentreOfMass_))); } diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.H b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.H similarity index 87% rename from src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.H rename to src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.H index 3db9d58f6d..a1793c26b6 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotion.H +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::sixDofRigidBodyMotion + Foam::sixDoFRigidBodyMotion Description Six degree of freedom motion for a rigid body. Angular momentum stored in @@ -44,16 +44,16 @@ Description doi = {10.1063/1.474310} SourceFiles - sixDofRigidBodyMotionI.H - sixDofRigidBodyMotion.C - sixDofRigidBodyMotionIO.C + sixDoFRigidBodyMotionI.H + sixDoFRigidBodyMotion.C + sixDoFRigidBodyMotionIO.C \*---------------------------------------------------------------------------*/ -#ifndef sixDofRigidBodyMotion_H -#define sixDofRigidBodyMotion_H +#ifndef sixDoFRigidBodyMotion_H +#define sixDoFRigidBodyMotion_H -#include "sixDofRigidBodyMotionState.H" +#include "sixDoFRigidBodyMotionState.H" #include "pointField.H" #include "mathConstants.H" @@ -67,21 +67,21 @@ class Istream; class Ostream; // Forward declaration of friend functions and operators -class sixDofRigidBodyMotion; -Istream& operator>>(Istream&, sixDofRigidBodyMotion&); -Ostream& operator<<(Ostream&, const sixDofRigidBodyMotion&); +class sixDoFRigidBodyMotion; +Istream& operator>>(Istream&, sixDoFRigidBodyMotion&); +Ostream& operator<<(Ostream&, const sixDoFRigidBodyMotion&); /*---------------------------------------------------------------------------*\ - Class sixDofRigidBodyMotion Declaration + Class sixDoFRigidBodyMotion Declaration \*---------------------------------------------------------------------------*/ -class sixDofRigidBodyMotion +class sixDoFRigidBodyMotion { // Private data // state data object - sixDofRigidBodyMotionState motionState_; + sixDoFRigidBodyMotionState motionState_; //- Centre of mass of reference state point refCentreOfMass_; @@ -113,10 +113,10 @@ public: // Constructors //- Construct null - sixDofRigidBodyMotion(); + sixDoFRigidBodyMotion(); //- Construct from components - sixDofRigidBodyMotion + sixDoFRigidBodyMotion ( const point& centreOfMass, const tensor& Q, @@ -130,14 +130,14 @@ public: ); //- Construct from dictionary - sixDofRigidBodyMotion(const dictionary& dict); + sixDoFRigidBodyMotion(const dictionary& dict); //- Construct as copy - sixDofRigidBodyMotion(const sixDofRigidBodyMotion&); + sixDoFRigidBodyMotion(const sixDoFRigidBodyMotion&); //- Destructor - ~sixDofRigidBodyMotion(); + ~sixDoFRigidBodyMotion(); // Member Functions @@ -166,7 +166,7 @@ public: // Access //- Return access to the motion state - inline const sixDofRigidBodyMotionState& motionState() const; + inline const sixDoFRigidBodyMotionState& motionState() const; //- Return access to the centre of mass inline const point& centreOfMass() const; @@ -232,8 +232,8 @@ public: // IOstream Operators - friend Istream& operator>>(Istream&, sixDofRigidBodyMotion&); - friend Ostream& operator<<(Ostream&, const sixDofRigidBodyMotion&); + friend Istream& operator>>(Istream&, sixDoFRigidBodyMotion&); + friend Ostream& operator<<(Ostream&, const sixDoFRigidBodyMotion&); }; @@ -243,7 +243,7 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -#include "sixDofRigidBodyMotionI.H" +#include "sixDoFRigidBodyMotionI.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionI.H b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionI.H similarity index 66% rename from src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionI.H rename to src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionI.H index 2ce3160b01..aeb75bdea4 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionI.H +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionI.H @@ -29,7 +29,7 @@ License // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // inline Foam::tensor -Foam::sixDofRigidBodyMotion::rotationTensorX(scalar phi) const +Foam::sixDoFRigidBodyMotion::rotationTensorX(scalar phi) const { return tensor ( @@ -41,7 +41,7 @@ Foam::sixDofRigidBodyMotion::rotationTensorX(scalar phi) const inline Foam::tensor -Foam::sixDofRigidBodyMotion::rotationTensorY(scalar phi) const +Foam::sixDoFRigidBodyMotion::rotationTensorY(scalar phi) const { return tensor ( @@ -53,7 +53,7 @@ Foam::sixDofRigidBodyMotion::rotationTensorY(scalar phi) const inline Foam::tensor -Foam::sixDofRigidBodyMotion::rotationTensorZ(scalar phi) const +Foam::sixDoFRigidBodyMotion::rotationTensorZ(scalar phi) const { return tensor ( @@ -64,117 +64,117 @@ Foam::sixDofRigidBodyMotion::rotationTensorZ(scalar phi) const } -inline const Foam::sixDofRigidBodyMotionState& -Foam::sixDofRigidBodyMotion::motionState() const +inline const Foam::sixDoFRigidBodyMotionState& +Foam::sixDoFRigidBodyMotion::motionState() const { return motionState_; } -inline const Foam::point& Foam::sixDofRigidBodyMotion::centreOfMass() const +inline const Foam::point& Foam::sixDoFRigidBodyMotion::centreOfMass() const { return motionState_.centreOfMass(); } -inline const Foam::point& Foam::sixDofRigidBodyMotion::refCentreOfMass() const +inline const Foam::point& Foam::sixDoFRigidBodyMotion::refCentreOfMass() const { return refCentreOfMass_; } inline const Foam::diagTensor& -Foam::sixDofRigidBodyMotion::momentOfInertia() const +Foam::sixDoFRigidBodyMotion::momentOfInertia() const { return momentOfInertia_; } -inline Foam::scalar Foam::sixDofRigidBodyMotion::mass() const +inline Foam::scalar Foam::sixDoFRigidBodyMotion::mass() const { return mass_; } -inline const Foam::tensor& Foam::sixDofRigidBodyMotion::Q() const +inline const Foam::tensor& Foam::sixDoFRigidBodyMotion::Q() const { return motionState_.Q(); } -inline const Foam::vector& Foam::sixDofRigidBodyMotion::v() const +inline const Foam::vector& Foam::sixDoFRigidBodyMotion::v() const { return motionState_.v(); } -inline const Foam::vector& Foam::sixDofRigidBodyMotion::a() const +inline const Foam::vector& Foam::sixDoFRigidBodyMotion::a() const { return motionState_.a(); } -inline const Foam::vector& Foam::sixDofRigidBodyMotion::pi() const +inline const Foam::vector& Foam::sixDoFRigidBodyMotion::pi() const { return motionState_.pi(); } -inline const Foam::vector& Foam::sixDofRigidBodyMotion::tau() const +inline const Foam::vector& Foam::sixDoFRigidBodyMotion::tau() const { return motionState_.tau(); } -inline Foam::point& Foam::sixDofRigidBodyMotion::centreOfMass() +inline Foam::point& Foam::sixDoFRigidBodyMotion::centreOfMass() { return motionState_.centreOfMass(); } -inline Foam::point& Foam::sixDofRigidBodyMotion::refCentreOfMass() +inline Foam::point& Foam::sixDoFRigidBodyMotion::refCentreOfMass() { return refCentreOfMass_; } -inline Foam::diagTensor& Foam::sixDofRigidBodyMotion::momentOfInertia() +inline Foam::diagTensor& Foam::sixDoFRigidBodyMotion::momentOfInertia() { return momentOfInertia_; } -inline Foam::scalar& Foam::sixDofRigidBodyMotion::mass() +inline Foam::scalar& Foam::sixDoFRigidBodyMotion::mass() { return mass_; } -inline Foam::tensor& Foam::sixDofRigidBodyMotion::Q() +inline Foam::tensor& Foam::sixDoFRigidBodyMotion::Q() { return motionState_.Q(); } -inline Foam::vector& Foam::sixDofRigidBodyMotion::v() +inline Foam::vector& Foam::sixDoFRigidBodyMotion::v() { return motionState_.v(); } -inline Foam::vector& Foam::sixDofRigidBodyMotion::a() +inline Foam::vector& Foam::sixDoFRigidBodyMotion::a() { return motionState_.a(); } -inline Foam::vector& Foam::sixDofRigidBodyMotion::pi() +inline Foam::vector& Foam::sixDoFRigidBodyMotion::pi() { return motionState_.pi(); } -inline Foam::vector& Foam::sixDofRigidBodyMotion::tau() +inline Foam::vector& Foam::sixDoFRigidBodyMotion::tau() { return motionState_.tau(); } diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionIO.C b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionIO.C similarity index 77% rename from src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionIO.C rename to src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionIO.C index fe4902a94d..005cbbe6aa 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionIO.C +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionIO.C @@ -24,12 +24,12 @@ License \*---------------------------------------------------------------------------*/ -#include "sixDofRigidBodyMotion.H" +#include "sixDoFRigidBodyMotion.H" #include "IOstreams.H" // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // -void Foam::sixDofRigidBodyMotion::write(Ostream& os) const +void Foam::sixDoFRigidBodyMotion::write(Ostream& os) const { motionState_.write(os); @@ -44,18 +44,18 @@ void Foam::sixDofRigidBodyMotion::write(Ostream& os) const // * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * // -Foam::Istream& Foam::operator>>(Istream& is, sixDofRigidBodyMotion& sDofRBM) +Foam::Istream& Foam::operator>>(Istream& is, sixDoFRigidBodyMotion& sDoFRBM) { - is >> sDofRBM.motionState_ - >> sDofRBM.refCentreOfMass_ - >> sDofRBM.momentOfInertia_ - >> sDofRBM.mass_; + is >> sDoFRBM.motionState_ + >> sDoFRBM.refCentreOfMass_ + >> sDoFRBM.momentOfInertia_ + >> sDoFRBM.mass_; // Check state of Istream is.check ( "Foam::Istream& Foam::operator>>" - "(Foam::Istream&, Foam::sixDofRigidBodyMotion&)" + "(Foam::Istream&, Foam::sixDoFRigidBodyMotion&)" ); return is; @@ -65,19 +65,19 @@ Foam::Istream& Foam::operator>>(Istream& is, sixDofRigidBodyMotion& sDofRBM) Foam::Ostream& Foam::operator<< ( Ostream& os, - const sixDofRigidBodyMotion& sDofRBM + const sixDoFRigidBodyMotion& sDoFRBM ) { - os << sDofRBM.motionState() - << token::SPACE << sDofRBM.refCentreOfMass() - << token::SPACE << sDofRBM.momentOfInertia() - << token::SPACE << sDofRBM.mass() ; + os << sDoFRBM.motionState() + << token::SPACE << sDoFRBM.refCentreOfMass() + << token::SPACE << sDoFRBM.momentOfInertia() + << token::SPACE << sDoFRBM.mass() ; // Check state of Ostream os.check ( "Foam::Ostream& Foam::operator<<(Foam::Ostream&, " - "const Foam::sixDofRigidBodyMotion&)" + "const Foam::sixDoFRigidBodyMotion&)" ); return os; diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionState.C b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionState.C similarity index 79% rename from src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionState.C rename to src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionState.C index 5d54079099..cd52b1d142 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionState.C +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionState.C @@ -24,11 +24,11 @@ License \*---------------------------------------------------------------------------*/ -#include "sixDofRigidBodyMotionState.H" +#include "sixDoFRigidBodyMotionState.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::sixDofRigidBodyMotionState::sixDofRigidBodyMotionState() +Foam::sixDoFRigidBodyMotionState::sixDoFRigidBodyMotionState() : centreOfMass_(vector::zero), Q_(I), @@ -39,7 +39,7 @@ Foam::sixDofRigidBodyMotionState::sixDofRigidBodyMotionState() {} -Foam::sixDofRigidBodyMotionState::sixDofRigidBodyMotionState +Foam::sixDoFRigidBodyMotionState::sixDoFRigidBodyMotionState ( const point& centreOfMass, const tensor& Q, @@ -58,7 +58,7 @@ Foam::sixDofRigidBodyMotionState::sixDofRigidBodyMotionState {} -Foam::sixDofRigidBodyMotionState::sixDofRigidBodyMotionState +Foam::sixDoFRigidBodyMotionState::sixDoFRigidBodyMotionState ( const dictionary& dict ) @@ -72,23 +72,23 @@ Foam::sixDofRigidBodyMotionState::sixDofRigidBodyMotionState {} -Foam::sixDofRigidBodyMotionState::sixDofRigidBodyMotionState +Foam::sixDoFRigidBodyMotionState::sixDoFRigidBodyMotionState ( - const sixDofRigidBodyMotionState& sDofRBMS + const sixDoFRigidBodyMotionState& sDoFRBMS ) : - centreOfMass_(sDofRBMS.centreOfMass()), - Q_(sDofRBMS.Q()), - v_(sDofRBMS.v()), - a_(sDofRBMS.a()), - pi_(sDofRBMS.pi()), - tau_(sDofRBMS.tau()) + centreOfMass_(sDoFRBMS.centreOfMass()), + Q_(sDoFRBMS.Q()), + v_(sDoFRBMS.v()), + a_(sDoFRBMS.a()), + pi_(sDoFRBMS.pi()), + tau_(sDoFRBMS.tau()) {} // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // -Foam::sixDofRigidBodyMotionState::~sixDofRigidBodyMotionState() +Foam::sixDoFRigidBodyMotionState::~sixDoFRigidBodyMotionState() {} diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionState.H b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionState.H similarity index 83% rename from src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionState.H rename to src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionState.H index f7942e31bd..32cf0be02b 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionState.H +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionState.H @@ -23,22 +23,22 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::sixDofRigidBodyMotionState + Foam::sixDoFRigidBodyMotionState Description - Holds the motion state of sixDof object. Wrapped up together + Holds the motion state of sixDoF object. Wrapped up together to allow rapid scatter to other processors. The processors must all maintain exactly the same state data to avoid any drift or inconsistency. SourceFiles - sixDofRigidBodyMotionStateI.H - sixDofRigidBodyMotionState.C - sixDofRigidBodyMotionStateIO.C + sixDoFRigidBodyMotionStateI.H + sixDoFRigidBodyMotionState.C + sixDoFRigidBodyMotionStateIO.C \*---------------------------------------------------------------------------*/ -#ifndef sixDofRigidBodyMotionState_H -#define sixDofRigidBodyMotionState_H +#ifndef sixDoFRigidBodyMotionState_H +#define sixDoFRigidBodyMotionState_H #include "vector.H" #include "point.H" @@ -56,16 +56,16 @@ class Istream; class Ostream; // Forward declaration of friend functions and operators -class sixDofRigidBodyMotionState; -Istream& operator>>(Istream&, sixDofRigidBodyMotionState&); -Ostream& operator<<(Ostream&, const sixDofRigidBodyMotionState&); +class sixDoFRigidBodyMotionState; +Istream& operator>>(Istream&, sixDoFRigidBodyMotionState&); +Ostream& operator<<(Ostream&, const sixDoFRigidBodyMotionState&); /*---------------------------------------------------------------------------*\ - Class sixDofRigidBodyMotionState Declaration + Class sixDoFRigidBodyMotionState Declaration \*---------------------------------------------------------------------------*/ -class sixDofRigidBodyMotionState +class sixDoFRigidBodyMotionState { // Private data @@ -96,10 +96,10 @@ public: // Constructors //- Construct null - sixDofRigidBodyMotionState(); + sixDoFRigidBodyMotionState(); //- Construct from components - sixDofRigidBodyMotionState + sixDoFRigidBodyMotionState ( const point& centreOfMass, const tensor& Q, @@ -110,14 +110,14 @@ public: ); //- Construct from dictionary - sixDofRigidBodyMotionState(const dictionary& dict); + sixDoFRigidBodyMotionState(const dictionary& dict); //- Construct as copy - sixDofRigidBodyMotionState(const sixDofRigidBodyMotionState&); + sixDoFRigidBodyMotionState(const sixDoFRigidBodyMotionState&); //- Destructor - ~sixDofRigidBodyMotionState(); + ~sixDoFRigidBodyMotionState(); // Member Functions @@ -174,8 +174,8 @@ public: // IOstream Operators - friend Istream& operator>>(Istream&, sixDofRigidBodyMotionState&); - friend Ostream& operator<<(Ostream&, const sixDofRigidBodyMotionState&); + friend Istream& operator>>(Istream&, sixDoFRigidBodyMotionState&); + friend Ostream& operator<<(Ostream&, const sixDoFRigidBodyMotionState&); }; @@ -185,7 +185,7 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -#include "sixDofRigidBodyMotionStateI.H" +#include "sixDoFRigidBodyMotionStateI.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionStateI.H b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionStateI.H similarity index 70% rename from src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionStateI.H rename to src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionStateI.H index dff9412fba..dc6659d0cd 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionStateI.H +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionStateI.H @@ -27,73 +27,73 @@ License // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -inline const Foam::point& Foam::sixDofRigidBodyMotionState::centreOfMass() const +inline const Foam::point& Foam::sixDoFRigidBodyMotionState::centreOfMass() const { return centreOfMass_; } -inline const Foam::tensor& Foam::sixDofRigidBodyMotionState::Q() const +inline const Foam::tensor& Foam::sixDoFRigidBodyMotionState::Q() const { return Q_; } -inline const Foam::vector& Foam::sixDofRigidBodyMotionState::v() const +inline const Foam::vector& Foam::sixDoFRigidBodyMotionState::v() const { return v_; } -inline const Foam::vector& Foam::sixDofRigidBodyMotionState::a() const +inline const Foam::vector& Foam::sixDoFRigidBodyMotionState::a() const { return a_; } -inline const Foam::vector& Foam::sixDofRigidBodyMotionState::pi() const +inline const Foam::vector& Foam::sixDoFRigidBodyMotionState::pi() const { return pi_; } -inline const Foam::vector& Foam::sixDofRigidBodyMotionState::tau() const +inline const Foam::vector& Foam::sixDoFRigidBodyMotionState::tau() const { return tau_; } -inline Foam::point& Foam::sixDofRigidBodyMotionState::centreOfMass() +inline Foam::point& Foam::sixDoFRigidBodyMotionState::centreOfMass() { return centreOfMass_; } -inline Foam::tensor& Foam::sixDofRigidBodyMotionState::Q() +inline Foam::tensor& Foam::sixDoFRigidBodyMotionState::Q() { return Q_; } -inline Foam::vector& Foam::sixDofRigidBodyMotionState::v() +inline Foam::vector& Foam::sixDoFRigidBodyMotionState::v() { return v_; } -inline Foam::vector& Foam::sixDofRigidBodyMotionState::a() +inline Foam::vector& Foam::sixDoFRigidBodyMotionState::a() { return a_; } -inline Foam::vector& Foam::sixDofRigidBodyMotionState::pi() +inline Foam::vector& Foam::sixDoFRigidBodyMotionState::pi() { return pi_; } -inline Foam::vector& Foam::sixDofRigidBodyMotionState::tau() +inline Foam::vector& Foam::sixDoFRigidBodyMotionState::tau() { return tau_; } diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionStateIO.C b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionStateIO.C similarity index 75% rename from src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionStateIO.C rename to src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionStateIO.C index 3934e57cf2..650a359991 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/sixDofRigidBodyDisplacement/sixDofRigidBodyMotion/sixDofRigidBodyMotionStateIO.C +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionStateIO.C @@ -24,12 +24,12 @@ License \*---------------------------------------------------------------------------*/ -#include "sixDofRigidBodyMotionState.H" +#include "sixDoFRigidBodyMotionState.H" #include "IOstreams.H" // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // -void Foam::sixDofRigidBodyMotionState::write(Ostream& os) const +void Foam::sixDoFRigidBodyMotionState::write(Ostream& os) const { os.writeKeyword("centreOfMass") << centreOfMass_ << token::END_STATEMENT << nl; @@ -50,21 +50,21 @@ void Foam::sixDofRigidBodyMotionState::write(Ostream& os) const Foam::Istream& Foam::operator>> ( - Istream& is, sixDofRigidBodyMotionState& sDofRBMS + Istream& is, sixDoFRigidBodyMotionState& sDoFRBMS ) { - is >> sDofRBMS.centreOfMass_ - >> sDofRBMS.Q_ - >> sDofRBMS.v_ - >> sDofRBMS.a_ - >> sDofRBMS.pi_ - >> sDofRBMS.tau_; + is >> sDoFRBMS.centreOfMass_ + >> sDoFRBMS.Q_ + >> sDoFRBMS.v_ + >> sDoFRBMS.a_ + >> sDoFRBMS.pi_ + >> sDoFRBMS.tau_; // Check state of Istream is.check ( "Foam::Istream& Foam::operator>>" - "(Foam::Istream&, Foam::sixDofRigidBodyMotionState&)" + "(Foam::Istream&, Foam::sixDoFRigidBodyMotionState&)" ); return is; @@ -74,21 +74,21 @@ Foam::Istream& Foam::operator>> Foam::Ostream& Foam::operator<< ( Ostream& os, - const sixDofRigidBodyMotionState& sDofRBMS + const sixDoFRigidBodyMotionState& sDoFRBMS ) { - os << token::SPACE << sDofRBMS.centreOfMass() - << token::SPACE << sDofRBMS.Q() - << token::SPACE << sDofRBMS.v() - << token::SPACE << sDofRBMS.a() - << token::SPACE << sDofRBMS.pi() - << token::SPACE << sDofRBMS.tau(); + os << token::SPACE << sDoFRBMS.centreOfMass() + << token::SPACE << sDoFRBMS.Q() + << token::SPACE << sDoFRBMS.v() + << token::SPACE << sDoFRBMS.a() + << token::SPACE << sDoFRBMS.pi() + << token::SPACE << sDoFRBMS.tau(); // Check state of Ostream os.check ( "Foam::Ostream& Foam::operator<<(Foam::Ostream&, " - "const Foam::sixDofRigidBodyMotionState&)" + "const Foam::sixDoFRigidBodyMotionState&)" ); return os; From e9af73e39c379a89a8b9d67ada4ddca80aebff40 Mon Sep 17 00:00:00 2001 From: graham Date: Mon, 12 Oct 2009 12:41:21 +0100 Subject: [PATCH 06/17] Removing unnecessary mathConstant.H include --- .../sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.H | 1 - 1 file changed, 1 deletion(-) diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.H b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.H index a1793c26b6..16ea1d42b2 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.H +++ b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.H @@ -55,7 +55,6 @@ SourceFiles #include "sixDoFRigidBodyMotionState.H" #include "pointField.H" -#include "mathConstants.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // From 61a577c860a76bf760c175137848c863117ec7d8 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Mon, 19 Oct 2009 13:00:33 +0200 Subject: [PATCH 07/17] minor cleanup on constants/ - removed/renamed one level of directories, not all constants are dimensioned global/dimensionedConstants -> global/constants/ global/dimensionedConstants/constants/* -> global/constants/ - formatting and doxygen cleanup - added degToRad() and radToDeg() inline functions (in mathematicalConstants) removed equivalent degToRad() from engineTime --- src/OpenFOAM/Make/files | 4 ++-- .../constants/atomic/atomicConstants.C | 0 .../constants/atomic/atomicConstants.H | 4 ++-- .../constants/constants.C | 3 --- .../constants/constants.H | 0 .../dimensionedConstants.C | 0 .../dimensionedConstants.H | 7 ++++--- .../electromagnetic/electromagneticConstants.C | 0 .../electromagnetic/electromagneticConstants.H | 4 ++-- .../fundamental/fundamentalConstants.C | 0 .../fundamental/fundamentalConstants.H | 0 .../constants/math/mathematicalConstants.H | 17 +++++++++++++++-- .../physicoChemical/physicoChemicalConstants.C | 0 .../physicoChemical/physicoChemicalConstants.H | 4 ++-- .../constants/universal/universalConstants.C | 0 .../constants/universal/universalConstants.H | 2 +- src/engine/engineTime/engineTime.C | 6 ------ src/engine/engineTime/engineTime.H | 3 --- 18 files changed, 28 insertions(+), 26 deletions(-) rename src/OpenFOAM/global/{dimensionedConstants => }/constants/atomic/atomicConstants.C (100%) rename src/OpenFOAM/global/{dimensionedConstants => }/constants/atomic/atomicConstants.H (97%) rename src/OpenFOAM/global/{dimensionedConstants => }/constants/constants.C (96%) rename src/OpenFOAM/global/{dimensionedConstants => }/constants/constants.H (100%) rename src/OpenFOAM/global/{dimensionedConstants => constants}/dimensionedConstants.C (100%) rename src/OpenFOAM/global/{dimensionedConstants => constants}/dimensionedConstants.H (93%) rename src/OpenFOAM/global/{dimensionedConstants => }/constants/electromagnetic/electromagneticConstants.C (100%) rename src/OpenFOAM/global/{dimensionedConstants => }/constants/electromagnetic/electromagneticConstants.H (97%) rename src/OpenFOAM/global/{dimensionedConstants => }/constants/fundamental/fundamentalConstants.C (100%) rename src/OpenFOAM/global/{dimensionedConstants => }/constants/fundamental/fundamentalConstants.H (100%) rename src/OpenFOAM/global/{dimensionedConstants => }/constants/math/mathematicalConstants.H (83%) rename src/OpenFOAM/global/{dimensionedConstants => }/constants/physicoChemical/physicoChemicalConstants.C (100%) rename src/OpenFOAM/global/{dimensionedConstants => }/constants/physicoChemical/physicoChemicalConstants.H (97%) rename src/OpenFOAM/global/{dimensionedConstants => }/constants/universal/universalConstants.C (100%) rename src/OpenFOAM/global/{dimensionedConstants => }/constants/universal/universalConstants.H (98%) diff --git a/src/OpenFOAM/Make/files b/src/OpenFOAM/Make/files index 6ba6b90cf1..2823c2a9ec 100644 --- a/src/OpenFOAM/Make/files +++ b/src/OpenFOAM/Make/files @@ -1,6 +1,6 @@ global/global.Cver -global/dimensionedConstants/dimensionedConstants.C -global/dimensionedConstants/constants/constants.C +global/constants/constants.C +global/constants/dimensionedConstants.C global/argList/argList.C global/clock/clock.C diff --git a/src/OpenFOAM/global/dimensionedConstants/constants/atomic/atomicConstants.C b/src/OpenFOAM/global/constants/atomic/atomicConstants.C similarity index 100% rename from src/OpenFOAM/global/dimensionedConstants/constants/atomic/atomicConstants.C rename to src/OpenFOAM/global/constants/atomic/atomicConstants.C diff --git a/src/OpenFOAM/global/dimensionedConstants/constants/atomic/atomicConstants.H b/src/OpenFOAM/global/constants/atomic/atomicConstants.H similarity index 97% rename from src/OpenFOAM/global/dimensionedConstants/constants/atomic/atomicConstants.H rename to src/OpenFOAM/global/constants/atomic/atomicConstants.H index c257374441..b732207d2c 100644 --- a/src/OpenFOAM/global/dimensionedConstants/constants/atomic/atomicConstants.H +++ b/src/OpenFOAM/global/constants/atomic/atomicConstants.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Namespace - Foam::constant::atom + Foam::constant::atomic Description Atomic constants @@ -68,7 +68,7 @@ namespace atomic // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace atomic -} // end namespace constant +} // End namespace constant } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/OpenFOAM/global/dimensionedConstants/constants/constants.C b/src/OpenFOAM/global/constants/constants.C similarity index 96% rename from src/OpenFOAM/global/dimensionedConstants/constants/constants.C rename to src/OpenFOAM/global/constants/constants.C index f921cba983..079343360f 100644 --- a/src/OpenFOAM/global/dimensionedConstants/constants/constants.C +++ b/src/OpenFOAM/global/constants/constants.C @@ -22,9 +22,6 @@ License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -Description - Collection of dimensioned constants - \*---------------------------------------------------------------------------*/ // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/OpenFOAM/global/dimensionedConstants/constants/constants.H b/src/OpenFOAM/global/constants/constants.H similarity index 100% rename from src/OpenFOAM/global/dimensionedConstants/constants/constants.H rename to src/OpenFOAM/global/constants/constants.H diff --git a/src/OpenFOAM/global/dimensionedConstants/dimensionedConstants.C b/src/OpenFOAM/global/constants/dimensionedConstants.C similarity index 100% rename from src/OpenFOAM/global/dimensionedConstants/dimensionedConstants.C rename to src/OpenFOAM/global/constants/dimensionedConstants.C diff --git a/src/OpenFOAM/global/dimensionedConstants/dimensionedConstants.H b/src/OpenFOAM/global/constants/dimensionedConstants.H similarity index 93% rename from src/OpenFOAM/global/dimensionedConstants/dimensionedConstants.H rename to src/OpenFOAM/global/constants/dimensionedConstants.H index 989089c0b0..fbba918e24 100644 --- a/src/OpenFOAM/global/dimensionedConstants/dimensionedConstants.H +++ b/src/OpenFOAM/global/constants/dimensionedConstants.H @@ -27,9 +27,10 @@ Global Description Dictionary reading and supplying the dimensioned constants used within - OpenFOAM particularly for thermodynamics. The values are read from the - OpenFOAM controlDict and should be changed to run with a different set of - units from the default SI units. + OpenFOAM, particularly for thermodynamics. + + The values are read from the OpenFOAM etc/controlDict and should be + changed to run with a different set of units from the default SI units. SourceFiles dimensionedConstants.C diff --git a/src/OpenFOAM/global/dimensionedConstants/constants/electromagnetic/electromagneticConstants.C b/src/OpenFOAM/global/constants/electromagnetic/electromagneticConstants.C similarity index 100% rename from src/OpenFOAM/global/dimensionedConstants/constants/electromagnetic/electromagneticConstants.C rename to src/OpenFOAM/global/constants/electromagnetic/electromagneticConstants.C diff --git a/src/OpenFOAM/global/dimensionedConstants/constants/electromagnetic/electromagneticConstants.H b/src/OpenFOAM/global/constants/electromagnetic/electromagneticConstants.H similarity index 97% rename from src/OpenFOAM/global/dimensionedConstants/constants/electromagnetic/electromagneticConstants.H rename to src/OpenFOAM/global/constants/electromagnetic/electromagneticConstants.H index 54586cda47..0d4cd6df14 100644 --- a/src/OpenFOAM/global/dimensionedConstants/constants/electromagnetic/electromagneticConstants.H +++ b/src/OpenFOAM/global/constants/electromagnetic/electromagneticConstants.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Namespace - Foam::constant::em + Foam::constant::electromagnetic Description Electromagnetic constants @@ -77,7 +77,7 @@ namespace electromagnetic // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace electromagnetic -} // end namespace constant +} // End namespace constant } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/OpenFOAM/global/dimensionedConstants/constants/fundamental/fundamentalConstants.C b/src/OpenFOAM/global/constants/fundamental/fundamentalConstants.C similarity index 100% rename from src/OpenFOAM/global/dimensionedConstants/constants/fundamental/fundamentalConstants.C rename to src/OpenFOAM/global/constants/fundamental/fundamentalConstants.C diff --git a/src/OpenFOAM/global/dimensionedConstants/constants/fundamental/fundamentalConstants.H b/src/OpenFOAM/global/constants/fundamental/fundamentalConstants.H similarity index 100% rename from src/OpenFOAM/global/dimensionedConstants/constants/fundamental/fundamentalConstants.H rename to src/OpenFOAM/global/constants/fundamental/fundamentalConstants.H diff --git a/src/OpenFOAM/global/dimensionedConstants/constants/math/mathematicalConstants.H b/src/OpenFOAM/global/constants/math/mathematicalConstants.H similarity index 83% rename from src/OpenFOAM/global/dimensionedConstants/constants/math/mathematicalConstants.H rename to src/OpenFOAM/global/constants/math/mathematicalConstants.H index 0c7e584ed8..02ceea194c 100644 --- a/src/OpenFOAM/global/dimensionedConstants/constants/math/mathematicalConstants.H +++ b/src/OpenFOAM/global/constants/math/mathematicalConstants.H @@ -26,7 +26,7 @@ Namespace Foam::constant::mathematical Description - mathematical constants + mathematical constants and conversion functions \*---------------------------------------------------------------------------*/ @@ -56,7 +56,20 @@ namespace mathematical // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace mathematical -} // end namespace constant +} // End namespace constant + + //- Conversion from degrees to radians + inline scalar degToRad(const scalar& deg) + { + return (deg * constant::mathematical::pi/180.0); + } + + //- Conversion from radians to degrees + inline scalar radToDeg(const scalar& rad) + { + return (rad * 180.0/constant::mathematical::pi); + } + } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/OpenFOAM/global/dimensionedConstants/constants/physicoChemical/physicoChemicalConstants.C b/src/OpenFOAM/global/constants/physicoChemical/physicoChemicalConstants.C similarity index 100% rename from src/OpenFOAM/global/dimensionedConstants/constants/physicoChemical/physicoChemicalConstants.C rename to src/OpenFOAM/global/constants/physicoChemical/physicoChemicalConstants.C diff --git a/src/OpenFOAM/global/dimensionedConstants/constants/physicoChemical/physicoChemicalConstants.H b/src/OpenFOAM/global/constants/physicoChemical/physicoChemicalConstants.H similarity index 97% rename from src/OpenFOAM/global/dimensionedConstants/constants/physicoChemical/physicoChemicalConstants.H rename to src/OpenFOAM/global/constants/physicoChemical/physicoChemicalConstants.H index 7f25e0dfb7..920f390e27 100644 --- a/src/OpenFOAM/global/dimensionedConstants/constants/physicoChemical/physicoChemicalConstants.H +++ b/src/OpenFOAM/global/constants/physicoChemical/physicoChemicalConstants.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Namespace - Foam::constant::phys + Foam::constant::physicoChemical Description Physico-chemical constants @@ -71,7 +71,7 @@ namespace physicoChemical // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace physicoChemical -} // end namespace constant +} // End namespace constant } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/OpenFOAM/global/dimensionedConstants/constants/universal/universalConstants.C b/src/OpenFOAM/global/constants/universal/universalConstants.C similarity index 100% rename from src/OpenFOAM/global/dimensionedConstants/constants/universal/universalConstants.C rename to src/OpenFOAM/global/constants/universal/universalConstants.C diff --git a/src/OpenFOAM/global/dimensionedConstants/constants/universal/universalConstants.H b/src/OpenFOAM/global/constants/universal/universalConstants.H similarity index 98% rename from src/OpenFOAM/global/dimensionedConstants/constants/universal/universalConstants.H rename to src/OpenFOAM/global/constants/universal/universalConstants.H index 305e30fe19..85f8f1d9d8 100644 --- a/src/OpenFOAM/global/dimensionedConstants/constants/universal/universalConstants.H +++ b/src/OpenFOAM/global/constants/universal/universalConstants.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Namespace - Foam::constant::uni + Foam::constant::universal Description Universal constants diff --git a/src/engine/engineTime/engineTime.C b/src/engine/engineTime/engineTime.C index ef0d016880..8adf64fdcd 100644 --- a/src/engine/engineTime/engineTime.C +++ b/src/engine/engineTime/engineTime.C @@ -123,12 +123,6 @@ bool Foam::engineTime::read() } -Foam::scalar Foam::engineTime::degToRad(const scalar deg) const -{ - return constant::mathematical::pi*deg/180.0; -} - - Foam::scalar Foam::engineTime::degToTime(const scalar theta) const { // 6 * rpm => deg/s diff --git a/src/engine/engineTime/engineTime.H b/src/engine/engineTime/engineTime.H index f97701d240..e63a7caa0b 100644 --- a/src/engine/engineTime/engineTime.H +++ b/src/engine/engineTime/engineTime.H @@ -121,9 +121,6 @@ public: // Conversion - //- Convert degrees to radians - scalar degToRad(const scalar rad) const; - //- Convert degrees to seconds (for given engine speed in RPM) scalar degToTime(const scalar theta) const; From ffc9d0d97ba9e3196726b2e0ae64bbaca3724620 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Mon, 19 Oct 2009 13:53:25 +0200 Subject: [PATCH 08/17] find/replace pi/180.0 -> degToRad() and 180.0/pi -> radToDeg() - note left utilities/mesh/advanced/collapseEdges/collapseEdges.C as-is. It looks suspicious, but the change was recent, so maybe it means something --- .../combinePatchFaces/combinePatchFaces.C | 4 ++-- .../mesh/advanced/splitCells/splitCells.C | 5 ++--- .../mesh/conversion/kivaToFoam/readKivaGrid.H | 2 +- .../conversion/polyDualMesh/polyDualMeshApp.C | 4 ++-- .../starToFoam/createCoupleMatches.C | 2 +- .../extrudeMesh/extrudeModel/wedge/wedge.C | 3 +-- .../mesh/manipulation/autoPatch/autoPatch.C | 2 +- .../primitiveMeshCheck/primitiveMeshCheck.C | 12 +++++------- .../primitiveMeshCheckMotion.C | 2 +- .../meshCut/cellLooper/topoCellLooper.C | 3 +-- .../undoableMeshCutter/undoableMeshCutter.C | 2 +- .../polyMeshGeometry/polyMeshGeometry.C | 17 +++++++---------- .../surfaceInterpolation.C | 6 ++++-- .../multiHoleInjector/multiHoleInjector.C | 9 ++++----- src/lagrangian/dieselSpray/spray/spray.C | 2 +- .../blobsSwirl/blobsSwirlInjector.C | 4 +--- .../autoHexMeshDriver/autoLayerDriver.C | 14 +++++++------- .../autoHexMeshDriver/autoRefineDriver.C | 6 +++--- .../layerParameters/layerParameters.C | 10 ++++------ .../refinementParameters.C | 2 +- .../meshRefinementProblemCells.C | 2 +- src/mesh/blockMesh/curvedEdges/arcEdge.C | 6 +++--- src/meshTools/cellQuality/cellQuality.C | 12 ++++-------- src/meshTools/coordinateSystems/toroidalCS.C | 4 ++-- .../primitiveMeshGeometry.C | 19 +++++++------------ .../cellSources/shapeToCell/shapeToCell.C | 3 +-- .../surfaceIntersection/edgeIntersections.C | 3 +-- .../surfaceFeatures/surfaceFeatures.C | 3 +-- .../biconic25-55Run35/datToFoam/datToFoam.C | 2 +- 29 files changed, 71 insertions(+), 94 deletions(-) diff --git a/applications/utilities/mesh/advanced/combinePatchFaces/combinePatchFaces.C b/applications/utilities/mesh/advanced/combinePatchFaces/combinePatchFaces.C index 54fd1bdf4f..d16f4f23cc 100644 --- a/applications/utilities/mesh/advanced/combinePatchFaces/combinePatchFaces.C +++ b/applications/utilities/mesh/advanced/combinePatchFaces/combinePatchFaces.C @@ -445,12 +445,12 @@ int main(int argc, char *argv[]) scalar featureAngle(readScalar(IStringStream(args.additionalArgs()[0])())); - scalar minCos = Foam::cos(featureAngle*constant::mathematical::pi/180.0); + scalar minCos = Foam::cos(degToRad(featureAngle)); scalar concaveAngle = defaultConcaveAngle; args.optionReadIfPresent("concaveAngle", concaveAngle); - scalar concaveSin = Foam::sin(concaveAngle*constant::mathematical::pi/180.0); + scalar concaveSin = Foam::sin(degToRad(concaveAngle)); bool snapMeshDict = args.optionFound("snapMesh"); bool overwrite = args.optionFound("overwrite"); diff --git a/applications/utilities/mesh/advanced/splitCells/splitCells.C b/applications/utilities/mesh/advanced/splitCells/splitCells.C index c83ab27583..f9f47c815a 100644 --- a/applications/utilities/mesh/advanced/splitCells/splitCells.C +++ b/applications/utilities/mesh/advanced/splitCells/splitCells.C @@ -539,9 +539,8 @@ int main(int argc, char *argv[]) scalar featureAngle(readScalar(IStringStream(args.additionalArgs()[0])())); - scalar radAngle = featureAngle*constant::mathematical::pi/180.0; - scalar minCos = Foam::cos(radAngle); - scalar minSin = Foam::sin(radAngle); + scalar minCos = Foam::cos(degToRad(featureAngle)); + scalar minSin = Foam::sin(degToRad(featureAngle)); bool readSet = args.optionFound("set"); bool geometry = args.optionFound("geometry"); diff --git a/applications/utilities/mesh/conversion/kivaToFoam/readKivaGrid.H b/applications/utilities/mesh/conversion/kivaToFoam/readKivaGrid.H index 9ed5e27004..ba2b615df1 100644 --- a/applications/utilities/mesh/conversion/kivaToFoam/readKivaGrid.H +++ b/applications/utilities/mesh/conversion/kivaToFoam/readKivaGrid.H @@ -434,7 +434,7 @@ if (pFaces[WEDGE].size() && pFaces[WEDGE][0].size()) { // Distribute the points to be +/- 2.5deg from the x-z plane - scalar tanTheta = Foam::tan(2.5*constant::mathematical::pi/180.0); + scalar tanTheta = Foam::tan(degToRad(2.5)); SLList::iterator iterf = pFaces[WEDGE][0].begin(); SLList::iterator iterb = pFaces[WEDGE][1].begin(); diff --git a/applications/utilities/mesh/conversion/polyDualMesh/polyDualMeshApp.C b/applications/utilities/mesh/conversion/polyDualMesh/polyDualMeshApp.C index 740b87a391..af2c429bdc 100644 --- a/applications/utilities/mesh/conversion/polyDualMesh/polyDualMeshApp.C +++ b/applications/utilities/mesh/conversion/polyDualMesh/polyDualMeshApp.C @@ -91,7 +91,7 @@ void simpleMarkFeatures labelList& multiCellFeaturePoints ) { - scalar minCos = Foam::cos(featureAngle*constant::mathematical::pi/180.0); + scalar minCos = Foam::cos(degToRad(featureAngle)); const polyBoundaryMesh& patches = mesh.boundaryMesh(); @@ -387,7 +387,7 @@ int main(int argc, char *argv[]) scalar featureAngle(readScalar(IStringStream(args.additionalArgs()[0])())); - scalar minCos = Foam::cos(featureAngle*constant::mathematical::pi/180.0); + scalar minCos = Foam::cos(degToRad(featureAngle)); Info<< "Feature:" << featureAngle << endl << "minCos :" << minCos << endl diff --git a/applications/utilities/mesh/conversion/starToFoam/createCoupleMatches.C b/applications/utilities/mesh/conversion/starToFoam/createCoupleMatches.C index bfd1dae882..da0f868388 100644 --- a/applications/utilities/mesh/conversion/starToFoam/createCoupleMatches.C +++ b/applications/utilities/mesh/conversion/starToFoam/createCoupleMatches.C @@ -99,7 +99,7 @@ void starMesh::createCoupleMatches() << coupleI << ". STAR couple ID: " << couples_[coupleI].coupleID() << endl << "The angle between face normals is " - << Foam::acos(faceAreaAngle)/constant::mathematical::pi*180 + << radToDeg(Foam::acos(faceAreaAngle)) << " deg." << endl << "master cell: " << fp.masterCell() << " STAR number: " << starCellID_[fp.masterCell()] diff --git a/applications/utilities/mesh/generation/extrudeMesh/extrudeModel/wedge/wedge.C b/applications/utilities/mesh/generation/extrudeMesh/extrudeModel/wedge/wedge.C index eac10738cf..67abf36564 100644 --- a/applications/utilities/mesh/generation/extrudeMesh/extrudeModel/wedge/wedge.C +++ b/applications/utilities/mesh/generation/extrudeMesh/extrudeModel/wedge/wedge.C @@ -51,8 +51,7 @@ wedge::wedge(const dictionary& dict) axis_(coeffDict_.lookup("axis")), angle_ ( - readScalar(coeffDict_.lookup("angle")) - *constant::mathematical::pi/180.0 + degToRad(readScalar(coeffDict_.lookup("angle"))) ) {} diff --git a/applications/utilities/mesh/manipulation/autoPatch/autoPatch.C b/applications/utilities/mesh/manipulation/autoPatch/autoPatch.C index 7161e6bb70..15affd66e0 100644 --- a/applications/utilities/mesh/manipulation/autoPatch/autoPatch.C +++ b/applications/utilities/mesh/manipulation/autoPatch/autoPatch.C @@ -93,7 +93,7 @@ int main(int argc, char *argv[]) scalar featureAngle(readScalar(IStringStream(args.additionalArgs()[0])())); bool overwrite = args.optionFound("overwrite"); - scalar minCos = Foam::cos(featureAngle*constant::mathematical::pi/180.0); + scalar minCos = Foam::cos(degToRad(featureAngle)); Info<< "Feature:" << featureAngle << endl << "minCos :" << minCos << endl diff --git a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C index 258cb163a1..6350c93446 100644 --- a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C +++ b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C @@ -410,7 +410,7 @@ bool Foam::primitiveMesh::checkFaceOrthogonality // Severe nonorthogonality threshold const scalar severeNonorthogonalityThreshold = - ::cos(nonOrthThreshold_/180.0*constant::mathematical::pi); + ::cos(degToRad(nonOrthThreshold_)); scalar minDDotS = GREAT; @@ -472,9 +472,8 @@ bool Foam::primitiveMesh::checkFaceOrthogonality if (debug || report) { Info<< " Mesh non-orthogonality Max: " - << ::acos(minDDotS)/constant::mathematical::pi*180.0 - << " average: " << - ::acos(sumDDotS/neiSize)/constant::mathematical::pi*180.0 + << radToDeg(::acos(minDDotS)) + << " average: " << radToDeg(::acos(sumDDotS/neiSize)) << endl; } } @@ -839,7 +838,7 @@ bool Foam::primitiveMesh::checkFaceAngles << exit(FatalError); } - const scalar maxSin = Foam::sin(maxDeg/180.0*constant::mathematical::pi); + const scalar maxSin = Foam::sin(degToRad(maxDeg)); const pointField& p = points(); const faceList& fcs = faces(); @@ -915,8 +914,7 @@ bool Foam::primitiveMesh::checkFaceAngles if (nConcave > 0) { scalar maxConcaveDegr = - Foam::asin(Foam::min(1.0, maxEdgeSin)) - *180.0/constant::mathematical::pi; + radToDeg(Foam::asin(Foam::min(1.0, maxEdgeSin))); if (debug || report) { diff --git a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheckMotion.C b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheckMotion.C index 688bdd81a2..8fce92f3c8 100644 --- a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheckMotion.C +++ b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheckMotion.C @@ -200,7 +200,7 @@ bool Foam::primitiveMesh::checkMeshMotion ) << "Severe non-orthogonality in mesh motion for face " << faceI << " between cells " << own[faceI] << " and " << nei[faceI] - << ": Angle = " << ::acos(dDotS)/constant::mathematical::pi*180.0 + << ": Angle = " << radToDeg(::acos(dDotS)) << " deg." << endl; nDotProductErrors++; diff --git a/src/dynamicMesh/meshCut/cellLooper/topoCellLooper.C b/src/dynamicMesh/meshCut/cellLooper/topoCellLooper.C index 5e83fd9e78..f17e07c323 100644 --- a/src/dynamicMesh/meshCut/cellLooper/topoCellLooper.C +++ b/src/dynamicMesh/meshCut/cellLooper/topoCellLooper.C @@ -44,8 +44,7 @@ namespace Foam } // Angle for polys to be considered splitHexes. -const Foam::scalar Foam::topoCellLooper::featureCos = - Foam::cos(10.0*constant::mathematical::pi/180.0); +const Foam::scalar Foam::topoCellLooper::featureCos = Foam::cos(degToRad(10.0)); // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // diff --git a/src/dynamicMesh/meshCut/meshModifiers/undoableMeshCutter/undoableMeshCutter.C b/src/dynamicMesh/meshCut/meshModifiers/undoableMeshCutter/undoableMeshCutter.C index ea8ab52a7f..16606233d0 100644 --- a/src/dynamicMesh/meshCut/meshModifiers/undoableMeshCutter/undoableMeshCutter.C +++ b/src/dynamicMesh/meshCut/meshModifiers/undoableMeshCutter/undoableMeshCutter.C @@ -192,7 +192,7 @@ Foam::undoableMeshCutter::undoableMeshCutter faceRemover_ ( mesh, - Foam::cos(30.0/180.0*constant::mathematical::pi) + Foam::cos(degToRad(30.0)) ) {} diff --git a/src/dynamicMesh/motionSmoother/polyMeshGeometry/polyMeshGeometry.C b/src/dynamicMesh/motionSmoother/polyMeshGeometry/polyMeshGeometry.C index d95e1f34e9..83d0000ea3 100644 --- a/src/dynamicMesh/motionSmoother/polyMeshGeometry/polyMeshGeometry.C +++ b/src/dynamicMesh/motionSmoother/polyMeshGeometry/polyMeshGeometry.C @@ -248,7 +248,7 @@ Foam::scalar Foam::polyMeshGeometry::checkNonOrtho << " between cells " << mesh.faceOwner()[faceI] << " and " << nei << ": Angle = " - << ::acos(dDotS)/constant::mathematical::pi*180.0 + << radToDeg(::acos(dDotS)) << " deg." << endl; } @@ -269,7 +269,7 @@ Foam::scalar Foam::polyMeshGeometry::checkNonOrtho << " between cells " << mesh.faceOwner()[faceI] << " and " << nei << ": Angle = " - << ::acos(dDotS)/constant::mathematical::pi*180.0 + << radToDeg(::acos(dDotS)) << " deg." << endl; } @@ -368,8 +368,7 @@ bool Foam::polyMeshGeometry::checkFaceDotProduct const polyBoundaryMesh& patches = mesh.boundaryMesh(); // Severe nonorthogonality threshold - const scalar severeNonorthogonalityThreshold = - ::cos(orthWarn/180.0*constant::mathematical::pi); + const scalar severeNonorthogonalityThreshold = ::cos(degToRad(orthWarn)); // Calculate coupled cell centre @@ -504,9 +503,8 @@ bool Foam::polyMeshGeometry::checkFaceDotProduct if (nDDotS > 0) { Info<< "Mesh non-orthogonality Max: " - << ::acos(minDDotS)/constant::mathematical::pi*180.0 - << " average: " << - ::acos(sumDDotS/nDDotS)/constant::mathematical::pi*180.0 + << radToDeg(::acos(minDDotS)) + << " average: " << radToDeg(::acos(sumDDotS/nDDotS)) << endl; } } @@ -1258,7 +1256,7 @@ bool Foam::polyMeshGeometry::checkFaceAngles << abort(FatalError); } - const scalar maxSin = Foam::sin(maxDeg/180.0*constant::mathematical::pi); + const scalar maxSin = Foam::sin(degToRad(maxDeg)); const faceList& fcs = mesh.faces(); @@ -1338,8 +1336,7 @@ bool Foam::polyMeshGeometry::checkFaceAngles if (maxEdgeSin > SMALL) { scalar maxConcaveDegr = - Foam::asin(Foam::min(1.0, maxEdgeSin)) - *180.0/constant::mathematical::pi; + radToDeg(Foam::asin(Foam::min(1.0, maxEdgeSin))); Info<< "There are " << nConcave << " faces with concave angles between consecutive" diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolation.C b/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolation.C index 87cc39bfdc..5bcb692065 100644 --- a/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolation.C +++ b/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolation.C @@ -345,7 +345,8 @@ void surfaceInterpolation::makeCorrectionVectors() const // Calculate the non-orthogonality for meshes with 1 face or more if (returnReduce(magSf.size(), sumOp