CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Meshing & Mesh Conversion (https://www.cfd-online.com/Forums/openfoam-meshing/)
-   -   dynamic Mesh with angular velocity not parallel to x axis (https://www.cfd-online.com/Forums/openfoam-meshing/128762-dynamic-mesh-angular-velocity-not-parallel-x-axis.html)

 donQi January 21, 2014 00:00

dynamic Mesh with angular velocity not parallel to x axis

1 Attachment(s)
Hello,

I was trying to make a cylindrical mesh rotate around an axis that is not parallel to the x axis (see file attached). But what I get is a cylinder with the axis of rotation that rotates around x. How can I get an axis of rotation not parallel to x, but that maintains the same position in time?

In the example attached the angle between the x axis and the angular velocity vector is alpha = 5 degrees, the magnitude is 134.22rad/s
=> omega_x = 134.22 * cos(alpha) = 7660.97deg/s
omega_z = 134.22 * sin(alpha) = 670.24deg/s

so I tried:

Code:

```solidBodyMotionFvMeshCoeffs {     cellZone        innerCylinderSmall;     solidBodyMotionFunction  rotatingMotion;     rotatingMotionCoeffs     {         CofG        (0 0 0);         radialVelocity (7660.9758431018 0 670.24853781736); // deg/s     } }```
but it did not work, the cylinder rotation axis changes position in time.

I tried also

Code:

```dynamicFvMesh  solidBodyMotionFvMesh; motionSolverLibs ( "libfvMotionSolvers.so" ); solidBodyMotionFvMeshCoeffs {     cellZone        innerCylinderSmall;     solidBodyMotionFunction  rotatingMotion;     rotatingMotionCoeffs     {         origin      (0 0 0);         axis        (0.996194698091746 0 0.0871557427476584);         omega      134.22; // rad/s     } }```
but the result is the same.

 donQi January 27, 2014 19:01

I ended up finding the following solution: use axisRotationMotion

Code:

```    axisRotationCompensation     {       solidBodyMotionFunction axisRotationMotion;       axisRotationMotionCoeffs       {         CofG (0 0 0); // origin    (0 0 0);         radialVelocity  (omegaxDeg omegayDeg omegazDeg);       }     }```
where omegaxDeg, omegayDeg and omegazDeg are the components of the angular velocity along the x, y and z axis (expressed in deg/s).

 odin February 3, 2014 10:29

units in dynamicMeshDict?

Hello,

i have a question about the units in the dynamicMeshDict.
In the Propeller example of OF211 '// deg/s' is used.
Am I doing right:
300rpm (rounds per minute) = 5 rounds per second = 1800 deg/s ???

Best regards,
Fabian

 donQi June 12, 2014 01:46

Hello Fabi

yes, according to me your conversion is correct.
In fact by searching among my files I am noticing when "radialVelocity" is used units are in deg/s (so you use your 1800deg/s)

Code:

```dynamicFvMesh  solidBodyMotionFvMesh; motionSolverLibs ( "libfvMotionSolvers.so" ); solidBodyMotionFvMeshCoeffs {     solidBodyMotionFunction  rotatingMotion;     rotatingMotionCoeffs     {         CofG        (0 0 0);         radialVelocity (1800 0 0); // deg/s     } }```

while when omega is used (like in OF22 and OF23 in the pimpleDyMFoam/propeller/constant/dynamicMeshDict) you use radiants/s

Code:

```    rotatingMotionCoeffs     {          origin      (0 0 0);         axis        (0 1 0);         omega    31.415926; // rad/s     }```

 cosbergel September 26, 2014 08:03

I was wondering if it is possible for the mesh to move with a velocity which is calculated during the run.
For example, in case of a accelerating falling sphere is it possible for the mesh to move if the velocity of the sphere?

dynamicFvMesh solidBodyMotionFvMesh;

solidBodyMotionFvMeshCoeffs
{
solidBodyMotionFunction linearMotion;
linearMotionCoeffs
{
velocity (0 velocityOfSphere 0);
}
}

 donQi October 2, 2014 23:19

Hello Kostis,

once I tried with pimpleDymFoam: while the analysis was running I changed the rmp in dynamicMeshDict but the rotor continued to rotate with the same initial velocity. I tried both manually and automatically by adding in controlDict the following function to update the dynamicMeshDict:

Code:

```functions {       fileUpdate1     {         type            timeActivatedFileUpdate;         functionObjectLibs ("libutilityFunctionObjects.so");         outputControl  timeStep;         outputInterval  1;         fileToUpdate    "\$FOAM_CASE/constant/dynamicMeshDict";         timeVsFile         (             (  -1  "\$FOAM_CASE/constant/dynamicMeshDict_1" )             ( 0.05  "\$FOAM_CASE/constant/dynamicMeshDict_2" )         );     }        #include "readFields"     #include "Q"     #include "surfaces"     #include "forces" }```
The dynamicMeshDict was correctly updated with the new angular velocity but once I checked the analysis was still rotating with the initial angular velocity. I don't know if there is a simple way. If you find it out let me know.

 All times are GMT -4. The time now is 16:21.