Section
Simplified flow around a propellerfor the course
CFD with OpenSource Software
Gonzalo Montero
Applied Mechanics/Fluid Dynamics,Chalmers University of Technology,
Gothenburg, Sweden
2015-12-08
Gonzalo Montero Simplified flow around a propeller 2015-12-08 1 / 37
Section
Subsection
Contents
Introduction
Erik Svenning’s work
What can we do with propellerSimpleFoam?
Theoretical background
Mesh and m4
Xfoil
How to define a propeller
Seting up of a case
Some results and validation
Future work
Gonzalo Montero Simplified flow around a propeller 2015-12-08 2 / 37
Section
Subsection
Introduction
An actuator disk is a simplification of a propeller that helps in seeing howit affects the surroundingsUseful when not to much detail is needed, can not see the flowAdd momentum directly to fluid flowing through the area it in
Gonzalo Montero Simplified flow around a propeller 2015-12-08 3 / 37
Section
Subsection
Erik Svenning’s work
Erik implemented an actuator disk model for OpenFOAM 1.5-dev.My implementation is built in top of that.
Gonzalo Montero Simplified flow around a propeller 2015-12-08 4 / 37
Section
Subsection
Erik Svenning’s work
Thrust and torque known and Goldstein optimum distribution
Gonzalo Montero Simplified flow around a propeller 2015-12-08 5 / 37
Section
Subsection
What can we do with propellerSimpleFoam?
Take into account for the geometry of the propeller
Take into account the operating conditions
Analyze a propeller with different propeller sections
Obtained the polars automatically or define them
Gonzalo Montero Simplified flow around a propeller 2015-12-08 6 / 37
Section
Subsection
Theoretical background
Velocities are parametrized by ψ
Gonzalo Montero Simplified flow around a propeller 2015-12-08 7 / 37
Section
Subsection
Theoretical background
Ua = V + ua
Ut = Ωr − ut
U =√U2a + U2
t
Wa(ψ) = 0.5Ua + 0.5Usinψ
Wt(ψ) = 0.5Ut + 0.5Ucosψ
va(ψ) = Wa − Ua
vt(ψ) = Ut −Wt
α(ψ) = β − arctan(Wa/Wt)
W (ψ) =√W 2
a +W 2t
λw(ψ) =rWa
RWt
f(ψ) = 0.5B
(1− r
R
)1
λw
F (ψ) =2
πarccos(e−f )
Γ(ψ) = vt4πr
BF
√√√√1 +
(4λwR
πBr
)2
Γ =1
2Wccl
Gonzalo Montero Simplified flow around a propeller 2015-12-08 8 / 37
Section
Subsection
Theoretical background
The Newton update for psi then reads:
δψ = − R
dR/dψ
ψ ← ψ + δψ
Gonzalo Montero Simplified flow around a propeller 2015-12-08 9 / 37
Section
Subsection
Theoretical background
-15 -10 -5 0 5 10 15
α
-1.5
-1
-0.5
0
0.5
1
1.5
Cl
-1.5 -1 -0.5 0 0.5 1 1.5
Cl
0
0.02
0.04
0.06
0.08
0.1
0.12
Cd
Gonzalo Montero Simplified flow around a propeller 2015-12-08 10 / 37
Section
Subsection
Theoretical background
dT = B1
2ρW 2(cl cosφ− cd sinφ)c dr
dQ = B1
2ρW 2(cl sinφ+ cd cosφ)c r dr
Devide T with ρV nCellCirc and Q with ρV rnCellCircGonzalo Montero Simplified flow around a propeller 2015-12-08 11 / 37
Section
Subsection
Mesh and m4
Gonzalo Montero Simplified flow around a propeller 2015-12-08 12 / 37
Section
Subsection
Mesh and m4
m4 allows us to parametrize blockMeshDictvery easy to usem4 fileName.m4 > blockMeshDict
Gonzalo Montero Simplified flow around a propeller 2015-12-08 13 / 37
Section
Subsection
Xfoil
Gonzalo Montero Simplified flow around a propeller 2015-12-08 14 / 37
Section
Subsection
How to define a propeller
In fvSolution dictionaryTwo or three .txt files
geometry.txt
polarDistribution.txt
polarsData.txt (not compulsary)
Gonzalo Montero Simplified flow around a propeller 2015-12-08 15 / 37
Section
Subsection
How to define a propeller
Gonzalo Montero Simplified flow around a propeller 2015-12-08 16 / 37
Section
Subsection
How to define a propeller
Gonzalo Montero Simplified flow around a propeller 2015-12-08 17 / 37
Section
Subsection
How to define a propeller
geometry.txt
10
0.3220 0.0568 15.8540
0.3626 0.0634 13.8499
0.3934 0.0682 12.1941
0.4450 0.0738 9.3355
0.5076 0.0761 6.3916
0.6230 0.0717 2.7624
0.7349 0.0625 0.4000
0.8468 0.0510 -1.4360
0.9586 0.0365 -3.0595
0.9900 0.0325 -3.5147
Gonzalo Montero Simplified flow around a propeller 2015-12-08 18 / 37
Section
Subsection
How to define a propeller
polarsData.txt
2 //number of rows given for polar 1
3 //number of rows given for polar 2
2 //number of rows given for polar 3
-2 0.6648 0.0314 //point 1 of polar number 1
0 0.7890 0.0422 //point 2 of polar number 1
-5 0.3544 0.0160 //point 1 of polar number 2
-1 0.7131 0.0287 //point 2 of polar number 2
6 1.0977 0.0160 //point 3 of polar number 2
2 0.8188 0.0203 //point 1 of polar number 3
7 1.2003 0.0330 //point 2 of polar number 3
Gonzalo Montero Simplified flow around a propeller 2015-12-08 19 / 37
Section
Subsection
How to define a propeller
polarDistribution.txt
10
0.382
0.3926
0.4334
0.445
0.5376
0.613
0.724
0.8558
0.9516
0.99
Gonzalo Montero Simplified flow around a propeller 2015-12-08 20 / 37
Section
Subsection
Seting up of a case
OF24x
cd erikSvenning2.4/
cp -r cavityActuatorDisk $FOAM_RUN
cp cylindricalMesh.m4 $FOAM_RUN/cavityActuatorDisk/
constant/polyMesh
cp *.txt $FOAM_RUN/cavityActuatorDisk/
run
cd cavityActuatorDisk/constant/polymesh
(gedit cylindricalMesh.m4)
If wanted the mesh can be modified by cylindricalMesh.m4
Gonzalo Montero Simplified flow around a propeller 2015-12-08 21 / 37
Section
Subsection
Seting up of a case
m4 cylindricalMesh.m4 > blockMeshDict
cd ../..
blockMesh
cd 0
gedit U
Gonzalo Montero Simplified flow around a propeller 2015-12-08 22 / 37
Section
Subsection
Seting up of a case
internalField uniform (15 0 0);
boundaryField
inlet
type zeroGradient;
outlet
type zeroGradient;
walls
type slip;
gedit p
Gonzalo Montero Simplified flow around a propeller 2015-12-08 23 / 37
Section
Subsection
Seting up of a case
internalField uniform 0;
boundaryField
inlet
type zeroGradient;
outlet
type zeroGradient;
walls
type zeroGradient;
Gonzalo Montero Simplified flow around a propeller 2015-12-08 24 / 37
Section
Subsection
Seting up of a case
We have to initialize the volVectorField VolumeForce. For that lets make acopy of the U file and modify it.
cp U VolumeForce
Change the dimensions and the object to VolumeForce. The rest will beset as:
gedit VolumeForce
dimensions [0 1 -2 0 0 0 0];
internalField uniform (0 0 0);
Gonzalo Montero Simplified flow around a propeller 2015-12-08 25 / 37
Section
Subsection
Seting up of a case
boundaryField
inlet
type fixedValue;
value uniform (0.0 0.0 0.0);
outlet
type fixedValue;
value uniform (0.0 0.0 0.0);
walls
type fixedValue;
value uniform (0.0 0.0 0.0);
Gonzalo Montero Simplified flow around a propeller 2015-12-08 26 / 37
Section
Subsection
Seting up of a case
Now we need to create another one for the volScalarField xDimension, sosince it is a scalar this time we will copy and modify the pressure file:
cp p xDimension
gedit xDimension
Once again remember to change the dimension, in this case to meters andalso to change the object field to xDimension. Finally it should be like thisone:
dimensions [0 1 0 0 0 0 0];
internalField uniform 0;
Gonzalo Montero Simplified flow around a propeller 2015-12-08 27 / 37
Section
Subsection
Seting up of a case
boundaryField
inlet
type fixedValue;
value uniform 0;
outlet
type fixedValue;
value uniform 0;
walls
type fixedValue;
value uniform 0;
Gonzalo Montero Simplified flow around a propeller 2015-12-08 28 / 37
Section
Subsection
Seting up of a case
Now lets go on and modify the fvSolution dictionary.
cd ../system/
gedit fvSolution
In the SIMPLE subdictionary add:
pRefCell 0;
pRefValue 0;
Rename the actuatorDisk as propellerData. Add the missing fields so thatit ends up looking like this:
Gonzalo Montero Simplified flow around a propeller 2015-12-08 29 / 37
Section
Subsection
Seting up of a case
propellerData
numberOfPolars 2;
flightSpeed 15;
deltaBeta 30;
centrePoint (15 0 0);
density 0.36518;
interiorRadius 0.49;
exteriorRadius 1.524;
rpm 500;
temperatureKelvin 216.86;
numberOfBlades 3;
dynamicViscosity 0.1433e-4;
ReRef 50000;
ReExp 0;
Gonzalo Montero Simplified flow around a propeller 2015-12-08 30 / 37
Section
Subsection
Seting up of a case
In fvSolution create a subdictionary with the following structure andnamed polarsData.
polarsData
generatePolars 2;
type1 naca;
airfoilName1 2412;
type2 geometry;
airfoilName2 NACA0012.txt;
gedit fvSchemes
Gonzalo Montero Simplified flow around a propeller 2015-12-08 31 / 37
Section
Subsection
Seting up of a case
and add the following change the divergence schemes so they look like:
default none;
div(phi,U) bounded Gauss upwind;
div(phi,k) bounded Gauss upwind;
div(phi,epsilon) bounded Gauss upwind;
div(phi,R) Gauss upwind;
div(R) Gauss linear;
div(phi,nuTilda) Gauss upwind;
div((nuEff*dev(grad(U).T()))) Gauss linear;
div((nuEff*dev(T(grad(U))))) Gauss linear;
Gonzalo Montero Simplified flow around a propeller 2015-12-08 32 / 37
Section
Subsection
Seting up of a case
Now we are ready to run the case:
cd ..
propellerSimpleFoam
Gonzalo Montero Simplified flow around a propeller 2015-12-08 33 / 37
Section
Subsection
Some results and validation
Gonzalo Montero Simplified flow around a propeller 2015-12-08 34 / 37
Section
Subsection
Some results and validation
Gonzalo Montero Simplified flow around a propeller 2015-12-08 35 / 37
Section
Subsection
Some results and validation
0 0.5 1 1.5 2J
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
0.18C
t
NACA report 640OpenFOAM
Gonzalo Montero Simplified flow around a propeller 2015-12-08 36 / 37
Section
Subsection
Future work
Try to account for tip losses
Another model that allows highers speed flows
Solve the flow discretizing each blade
Compressible solver implementation
Gonzalo Montero Simplified flow around a propeller 2015-12-08 37 / 37