diff --git a/src/dynamicMesh/motionSolvers/displacement/points0/points0MotionSolver.C b/src/dynamicMesh/motionSolvers/displacement/points0/points0MotionSolver.C index e0c04e7cfe99d3c643bd098a5a8837fb41956584..6a598cfce1c88154003bd09c2477c0d87cdafcdb 100644 --- a/src/dynamicMesh/motionSolvers/displacement/points0/points0MotionSolver.C +++ b/src/dynamicMesh/motionSolvers/displacement/points0/points0MotionSolver.C @@ -70,19 +70,6 @@ Foam::IOobject Foam::points0MotionSolver::points0IO(const polyMesh& mesh) io.rename("points"); } - // Choose the latest points if points0 is not present -// if (!io.typeHeaderOk<pointIOField>()) -// { -// const word instance = -// mesh.time().findInstance -// ( -// mesh.meshDir(), -// "points", -// IOobject::MUST_READ -// ); -// io.instance() = instance; -// io.rename("points"); -// } return io; } diff --git a/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/drivenLinearMotion/drivenLinearMotion.C b/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/drivenLinearMotion/drivenLinearMotion.C index d2da6f71cb1a62292320e8db6092b95737a6b9ae..177e9b6b96ff07e4348e3f611dff6baf87df2470 100644 --- a/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/drivenLinearMotion/drivenLinearMotion.C +++ b/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/drivenLinearMotion/drivenLinearMotion.C @@ -55,12 +55,12 @@ Foam::solidBodyMotionFunctions::drivenLinearMotion::drivenLinearMotion ) : solidBodyMotionFunction(SBMFCoeffs, runTime), - CofGvelocity_(SBMFCoeffs.get<word>("CofGvelocity")), - CofGvel_ + cOfGdisplacement_(SBMFCoeffs.get<word>("cOfGdisplacement")), + CofGdisp_ ( IOobject ( - CofGvelocity_, + cOfGdisplacement_, time_.timeName(), "uniform", time_, @@ -80,9 +80,9 @@ Foam::septernion Foam::solidBodyMotionFunctions::drivenLinearMotion::transformation() const { - DebugInFunction << "displacement :" << CofGvel_.value() << endl; + DebugInFunction << "displacement :" << CofGdisp_.value() << endl; quaternion R(1); - septernion TR(septernion(-CofGvel_.value())*R); + septernion TR(septernion(-CofGdisp_.value())*R); DebugInFunction << "Time = " << time_.value() << " transformation: " << TR << endl; diff --git a/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/drivenLinearMotion/drivenLinearMotion.H b/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/drivenLinearMotion/drivenLinearMotion.H index 324ba140adec32dacfb6703926b76029e61d01ae..977572b673f9fcd7528019e675ffddd82ff96092 100644 --- a/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/drivenLinearMotion/drivenLinearMotion.H +++ b/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/drivenLinearMotion/drivenLinearMotion.H @@ -63,11 +63,11 @@ class drivenLinearMotion { // Private data - //- Name of the meshObject to dum CofG velocity - word CofGvelocity_; + //- Name of the meshObject to dum CofG displacement + word cOfGdisplacement_; //- Uniform vector to follow - uniformDimensionedVectorField CofGvel_; + uniformDimensionedVectorField CofGdisp_; // Private Member Functions diff --git a/src/rigidBodyDynamics/restraints/prescribedRotation/prescribedRotation.C b/src/rigidBodyDynamics/restraints/prescribedRotation/prescribedRotation.C index fd6503fef1b49d20ef21b009cc3166c956c83523..c8de6a89d09c541761caf6e648c56d190e441860 100644 --- a/src/rigidBodyDynamics/restraints/prescribedRotation/prescribedRotation.C +++ b/src/rigidBodyDynamics/restraints/prescribedRotation/prescribedRotation.C @@ -63,7 +63,7 @@ Foam::RBD::restraints::prescribedRotation::prescribedRotation restraint(name, dict, model), omegaSet_(model_.time(), "omega"), omega_(Zero), - prevMom_(Zero), + oldMom_(Zero), error0_(Zero), integral0_(Zero) { @@ -86,7 +86,7 @@ void Foam::RBD::restraints::prescribedRotation::restrain const rigidBodyModelState& state ) const { - vector refDir = rotationTensor(vector(1, 0, 0), axis_) & vector(0, 1, 0); + vector refDir = rotationTensor(vector(1, 0, 0), axis_)&vector(0, 1, 0); vector oldDir = refQ_ & refDir; vector newDir = model_.X0(bodyID_).E() & refDir; @@ -137,21 +137,10 @@ void Foam::RBD::restraints::prescribedRotation::restrain vector integral = integral0_ + error; vector derivative = (error - error0_); - vector moment = ((p_*error + i_*integral + d_*derivative) & a ) * a; - moment = moment*Inertia/model_.time().deltaTValue(); + vector moment = ((p_*error + i_*integral + d_*derivative)&a)*a; + moment *= Inertia/model_.time().deltaTValue(); -// vector moment -// ( -// ( -// Inertia -// * (omegaSet_.value(model_.time().value()) - omega) -// / model_.time().deltaTValue()/relax_ -// & a -// ) -// * a -// ); - - moment = relax_*moment + (1- relax_)*prevMom_; + moment = relax_*moment + (1- relax_)*oldMom_; if (model_.debug) { @@ -172,7 +161,7 @@ void Foam::RBD::restraints::prescribedRotation::restrain // Accumulate the force for the restrained body fx[bodyIndex_] += model_.X0(bodyID_).T() & spatialVector(moment, Zero); - prevMom_ = moment; + oldMom_ = moment; error0_ = error; integral0_ = integral; } diff --git a/src/rigidBodyDynamics/restraints/prescribedRotation/prescribedRotation.H b/src/rigidBodyDynamics/restraints/prescribedRotation/prescribedRotation.H index c49a9a113ee00cdd557320f44a34b623ad8a99bf..a587da3eb58d8f1b021d6ccdda0fec2881be52ef 100644 --- a/src/rigidBodyDynamics/restraints/prescribedRotation/prescribedRotation.H +++ b/src/rigidBodyDynamics/restraints/prescribedRotation/prescribedRotation.H @@ -93,7 +93,7 @@ class prescribedRotation mutable vector omega_; //- Cache previous momentum - mutable vector prevMom_; + mutable vector oldMom_; //- Relax momentum scalar relax_; diff --git a/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.C b/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.C index 06291f52a222a02942a11654e5891c92460c4369..1f91e02ebfe6fe857e20c10a80b0eb607899f594 100644 --- a/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.C +++ b/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.C @@ -121,9 +121,11 @@ Foam::rigidBodyMeshMotion::rigidBodyMeshMotion rhoName_(coeffDict().getOrDefault<word>("rho", "rho")), ramp_(Function1<scalar>::NewIfPresent("ramp", coeffDict())), curTimeIndex_(-1), - CofGvelocity_(coeffDict().getOrDefault<word>("CofGvelocity", "none")), + cOfGdisplacement_ + ( + coeffDict().getOrDefault<word>("cOfGdisplacement", "none") + ), bodyIdCofG_(coeffDict().getOrDefault<label>("bodyIdCofG", -1)) - //points0_(points0IO(mesh)) { if (rhoName_ == "rhoInf") { @@ -211,8 +213,6 @@ Foam::rigidBodyMeshMotion::rigidBodyMeshMotion Foam::tmp<Foam::pointField> Foam::rigidBodyMeshMotion::curPoints() const { - //return points0() + pointDisplacement_.primitiveField(); - tmp<pointField> newPoints(points0() + pointDisplacement_.primitiveField()); if (moveAllCells()) @@ -311,7 +311,7 @@ void Foam::rigidBodyMeshMotion::solve() ); } - if (CofGvelocity_ != "none") + if (cOfGdisplacement_ != "none") { if (bodyIdCofG_ != -1) { @@ -319,14 +319,14 @@ void Foam::rigidBodyMeshMotion::solve() ( db().time().foundObject<uniformDimensionedVectorField> ( - CofGvelocity_ + cOfGdisplacement_ ) ) { - uniformDimensionedVectorField& disp = + auto& disp = db().time().lookupObjectRef<uniformDimensionedVectorField> ( - CofGvelocity_ + cOfGdisplacement_ ); disp.value() += model_.cCofR(bodyIdCofG_) - oldPos; @@ -335,8 +335,8 @@ void Foam::rigidBodyMeshMotion::solve() else { FatalErrorInFunction - << "CofGvelocity is different of none." << endl - << "The model need the entry body reference Id: bodyIdCofG." + << "CofGdisplacement is different to none." << endl + << "The model needs the entry body reference Id: bodyIdCofG." << exit(FatalError); } } diff --git a/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.H b/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.H index b6f90bee4aa03a312f75f0e14e2c6b8ffe4ec108..6fcccfe448a5ca3835172d48b5b2aa7973b2bd82 100644 --- a/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.H +++ b/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.H @@ -128,10 +128,10 @@ class rigidBodyMeshMotion //- Current time index (used for updating) label curTimeIndex_; - //- Name of the uniformVectorField for CofG velocity - word CofGvelocity_; + //- Name of the uniformVectorField for CofG displacement + word cOfGdisplacement_; - //- Body Id for the body to write CofG velocity + //- Body Id for the body to write CofG displacement label bodyIdCofG_; diff --git a/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionSolver/sixDoFRigidBodyMotionSolver.C b/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionSolver/sixDoFRigidBodyMotionSolver.C index e9bf9c791e9f957293b8457a7b6bd4043e725780..af05c9b282efd3d34e441290efe83e91ce8edde6 100644 --- a/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionSolver/sixDoFRigidBodyMotionSolver.C +++ b/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionSolver/sixDoFRigidBodyMotionSolver.C @@ -107,7 +107,7 @@ Foam::sixDoFRigidBodyMotionSolver::sixDoFRigidBodyMotionSolver dimensionedScalar(dimless, Zero) ), curTimeIndex_(-1), - CofGvelocity_(coeffDict().getOrDefault<word>("CofGvelocity", "none")) + cOfGdisplacement_(coeffDict().getOrDefault<word>("cOfGdisplacement", "none")) { if (rhoName_ == "rhoInf") { @@ -262,20 +262,20 @@ void Foam::sixDoFRigidBodyMotionSolver::solve() t.deltaT0Value() ); - if (CofGvelocity_ != "none") + if (cOfGdisplacement_ != "none") { if ( db().time().foundObject<uniformDimensionedVectorField> ( - CofGvelocity_ + cOfGdisplacement_ ) ) { - uniformDimensionedVectorField& disp = + auto& disp = db().time().lookupObjectRef<uniformDimensionedVectorField> ( - CofGvelocity_ + cOfGdisplacement_ ); disp += (motion_.centreOfRotation() - oldPos); diff --git a/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionSolver/sixDoFRigidBodyMotionSolver.H b/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionSolver/sixDoFRigidBodyMotionSolver.H index 019acbc7c22433fece8c4d51edb60ca929359d47..9d8ff05f3dade02b6cc262628099f9e1a9f514eb 100644 --- a/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionSolver/sixDoFRigidBodyMotionSolver.H +++ b/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionSolver/sixDoFRigidBodyMotionSolver.H @@ -94,8 +94,8 @@ class sixDoFRigidBodyMotionSolver //- Current time index (used for updating) label curTimeIndex_; - //- Name of the uniformVectorField for CofG velocity - word CofGvelocity_; + //- Name of the uniformVectorField for CofG displacement + word cOfGdisplacement_; // Private Member Functions diff --git a/tutorials/multiphase/overInterDyMFoam/floatingBodyWithSpring/background/constant/dynamicMeshDict b/tutorials/multiphase/overInterDyMFoam/floatingBodyWithSpring/background/constant/dynamicMeshDict index 94d32c708ec8f8569ebf0f6c018963a7882e2c18..684b78be93451e46640f522ba2d2fb5f54aeb2ad 100644 --- a/tutorials/multiphase/overInterDyMFoam/floatingBodyWithSpring/background/constant/dynamicMeshDict +++ b/tutorials/multiphase/overInterDyMFoam/floatingBodyWithSpring/background/constant/dynamicMeshDict @@ -26,7 +26,7 @@ solvers solidBodyMotionFunction drivenLinearMotion; cellSet c0; - CofGvelocity CofG; + cOfGdisplacement CofG; } cube @@ -40,9 +40,9 @@ solvers innerDistance 1000.0; outerDistance 1001.0; - centreOfMass (0.5 0.5 0.4); - CofGvelocity CofG; - + centreOfMass (0.5 0.5 0.4); + cOfGdisplacement CofG; + // Cuboid dimensions Lx 0.24; Ly 0.24;