# [Other] dynamic Mesh with angular velocity not parallel to x axis

 Register Blogs Members List Search Today's Posts Mark Forums Read

January 20, 2014, 23:00
dynamic Mesh with angular velocity not parallel to x axis
#1
Member

Al
Join Date: Jul 2013
Location: Japan
Posts: 46
Blog Entries: 3
Rep Power: 10
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);
}
}```
but the result is the same.
Attached Files
 rotorCoGTesting.tar.gz (38.6 KB, 23 views)

Last edited by donQi; January 21, 2014 at 00:20.

 January 27, 2014, 18:01 #2 Member   Al Join Date: Jul 2013 Location: Japan Posts: 46 Blog Entries: 3 Rep Power: 10 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). j-avdeev likes this.

 February 3, 2014, 09:29 units in dynamicMeshDict? #3 New Member   fabi Join Date: Jan 2014 Posts: 5 Rep Power: 9 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

 June 12, 2014, 01:46 #4 Member   Al Join Date: Jul 2013 Location: Japan Posts: 46 Blog Entries: 3 Rep Power: 10 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 so instead of 1800 deg/s use 31.415926 rad/s Code: ``` rotatingMotionCoeffs { origin (0 0 0); axis (0 1 0); omega 31.415926; // rad/s }```

 September 26, 2014, 08:03 #5 New Member   Kostis Join Date: Jan 2013 Posts: 6 Rep Power: 10 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); } }

 October 2, 2014, 23:19 #6 Member   Al Join Date: Jul 2013 Location: Japan Posts: 46 Blog Entries: 3 Rep Power: 10 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.