Analysis of wind turbines placed on terrain data

OpenFOAM 4.x

Case directory

$FOAM_TUTORIALS/incompressible/simpleFoam/turbineSiting

Summary

We calculates the flow around a wind turbine placed on 3D terrain data.

Model geometry (entire) Model geometry (entire)
Model geometry (around the turbine) Model geometry (around the turbine)

The fluid flows in from the region "inlet" (X minimum plane) and out from the region "outlet" (X maximum plane) in a distribution defined by the ABL (Atm Boundary Layer) model. The ground is fixed at 0 m/s, and the sides and top surfaces are set to slip wall conditions.

In the ABL model, the flow velocity, turbulence energy, and turbulence dissipation rate are modeled as follows.

Flow velocity: U = \frac{U^*}{\kappa} ln\left(\frac{z - z_g + z_0}{z_0}\right)

Turbulence energy: k = \frac{(U^*)^2}{\sqrt{C_mu}}

Turbulence dissipation rate: \epsilon = \frac{(U^*)^3}{\kappa(z - z_g + z_0)}

Where U* is the friction velocity as follows.

U^* = \kappa\frac{U_{ref}}{ln\left(\frac{Z_{ref} + z_0}{z_0}\right)}

Also, κ is the Kalman constant, Cmu is the turbulent viscosity coefficient, z is the vertical coordinate, z0 is the surface roughness height, zg is the minimum z-coordinate value, Zref is the reference height, and Uref is the reference flow velocity at Zref. These parameters are defined in the file 0.orig/include/ABLConditions as follows.

Uref                 10.0;
Zref                 20;
zDir                 (0 0 1);
flowDir              (1 0 0);
z0                   uniform 0.1;
zGround              uniform 935.0;
value                $internalField;

The standard k-ε model is used as the turbulence model.

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

Mesh Meshes

The calculation result is as follows.

Flow velocity at the height of the wind turbine (U) - entire Flow velocity at the height of the wind turbine (U) - entire
Flow velocity at the height of the wind turbine (U) - around the turbine Flow velocity at the height of the wind turbine (U) - around the turbine

Commands

cp -r $FOAM_TUTORIALS/incompressible/simpleFoam/turbineSiting turbineSiting
cd turbineSiting

# Make dummy 0 directory
mkdir 0

# Make meshes
blockMesh
cp system/decomposeParDict.hierarchical system/decomposeParDict
decomposePar
cp system/decomposeParDict.ptscotch system/decomposeParDict
mpirun -np 4 snappyHexMesh -parallel -overwrite

# Searches for files "*level*" in a case-insensitive manner and deletes the found files
find . -type f -iname "*level*" -exec rm {} \;

# Search for the directory "processor*" and copy 0.orig to the directory "0" in the found directory
ls -d processor* | xargs -I {} cp -r 0.orig ./{}/0

# Make cell zone
mpirun -np 4 topoSet -parallel

# Run the calculation
mpirun -np 4 simpleFoam -parallel

# Merge the splited meshes and results
reconstructParMesh -constant
reconstructPar

paraFoam

Calculation time

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

Reference