Update: June 1, 2017

$FOAM_TUTORIALS/incompressible/pimpleDyMFoam/wingMotion

We will calculate the flow around an oscillating airfoil.

The process proceeds as follows.

- Create 3-D meshes.
- Create 2-D meshes by extruding one surface of the 3-D meshes
- Calculate the 2-D steady state with stationary the airfoil.
- Calculate the unsteady state by moving the airfoil with the steady state as the initial condition.

Model

The fluid flows in from the region "inlet" at (100, 0, 0) m/s and out from the region "outlet". The upper and lower channel walls (region "topAndBottom") are set to slip wall conditions. The mesh motion (6DOF rigid body motion) is specified in the file constant/dynamicMeshDict. At the staticDoFRigidBodyMotionCoefficients condition, the "patches" specifies the motion area, "constraints" specify the constraints, and "restraints" specify the spring conditions.
## Commands

## Calculation time

## Reference

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

Mesh (entire)

Mesh (around airfoil)

Mesh (zoomed)

The calculation result is as follows.

Mesh motion

Flow velocity (U)

Flow velocity at final time (U)

Pressure at final time (p)

cp -r $FOAM_TUTORIALS/incompressible/pimpleDyMFoam/wingMotion wingMotion

cd wingMotion

# Creating 3-D meshes

cd wingMotion_snappyHexMesh

blockMesh

snappyHexMesh -overwrite

# Creating 2-D meshes and calculating steady state

cd ../wingMotion2D_simpleFoam

extrudeMesh

createPatch -overwrite

cp -r 0.orig 0

simpleFoam

# Calculating unsteady state

cd ../wingMotion2D_pimpleDyMFoam

cp -r ../wingMotion2D_simpleFoam/constant/polyMesh constant

cp -r 0.orig 0

mapFields ../wingMotion2D_simpleFoam -sourceTime latestTime -consistent

mv 0/pointDisplacement.unmapped 0/pointDisplacement

decomposePar

mpirun -np 4 pimpleDyMFoam -parallel

reconstructPar

paraFoam

cd wingMotion

# Creating 3-D meshes

cd wingMotion_snappyHexMesh

blockMesh

snappyHexMesh -overwrite

# Creating 2-D meshes and calculating steady state

cd ../wingMotion2D_simpleFoam

extrudeMesh

createPatch -overwrite

cp -r 0.orig 0

simpleFoam

# Calculating unsteady state

cd ../wingMotion2D_pimpleDyMFoam

cp -r ../wingMotion2D_simpleFoam/constant/polyMesh constant

cp -r 0.orig 0

mapFields ../wingMotion2D_simpleFoam -sourceTime latestTime -consistent

mv 0/pointDisplacement.unmapped 0/pointDisplacement

decomposePar

mpirun -np 4 pimpleDyMFoam -parallel

reconstructPar

paraFoam

- Meshing (single): 24.92 seconds
- Steady calculation (single): 68.68 seconds
- Unsteady calculation (4 parallel): 3 hours 35 minutes 27.33 seconds

*Inter(R) Core(TM) i7-2600 CPU @ 3.40GHz 3.40GHz