Rotor with moving mesh function

Update: June 1, 2017
OpenFOAM 4.x

Case directory



We will calculate the flow around a rotating rotor in a cylinder with the moving mesh function.

Model Model

The cell zone "rotor" in the cylinder (the inner area of red color) rotates at a speed of 6.2832 rad/s (=360 degrees/second) around the Z axis. The rotation area, rotation axis, and rotation speed are specified in the file constant/dynamicMeshDict as follows.

dynamicFvMesh   solidBodyMotionFvMesh;
motionSolverLibs ( "" );
    cellZone        rotor;

    solidBodyMotionFunction  rotatingMotion;
        origin        (0 0 0);
        axis          (0 0 1);
        omega         6.2832;

The Z-axis direction is a single mesh, and the problem is solved as a 2-dimensional problem.

The meshes are as follows, and the number of mesh is 3072.

Mesh (Entire) Mesh (Entire)

The calculation result is as follows.

Mesh movement (rotated counterclockwise about the Z axis)
Flow velocity (U)
Flow velocity (U) Flow velocity (U)
Pressure (p) Pressure (p)

We can see that the calculated values are exchanged at the boundaries of the stationary meshes and rotating meshes, and the values are continuously changing.


cp -r $FOAM_TUTORIALS/incompressible/pimpleDyMFoam/mixerVesselAMI2D mixerVesselAMI2D
cd mixerVesselAMI2D

m4 < system/blockMeshDict.m4 > system/blockMeshDict

mpirun -np 4 pimpleDyMFoam -parallel


Calculation time

  • 28.24 seconds *4 parallel, Inter(R) Core(TM) i7-2600 CPU @ 3.40GHz 3.40GHz