Good day!
I am trying to model an axial flow fan using simpleFoam and a frozen rotor based simulation. I am considering a 1/8th section of the 8 bladed fan and making use of MRF modelling.
I have tried 3 different domains, namely a pure annular one, an annular inlet with an expanded outlet (which I'll be describing further here) and an expanded inlet with a round bellmouth connected to the shroud and an expanded outlet. In all cases, I am neglecting tip clearance as my study is on the effects of different hub geometry.
I am still attempting validation, where experimental (as well as a older numerical study by someone else in ansys) state a static pressure rise of ~200 Pa at 16 m^3/s (or 2m^3/s * 8). Where static pressure rise is the difference between the static pressure at the outlet and total pressure at the inlet.
Mesh
The mesh is constructed in blockMesh (and did that take me long :eek: to build) and the checkmesh log is attached below (can't upload files, so attached in code blocks). The main outtakes as far as I can tell is skewness at ~1.47 and max non-orthog at ~54 deg. Here are some images of the mesh and domain:
https://imgur.com/aa3nHrmhttps://i.imgur.com/w7JJ6A6.pnghttps://i.imgur.com/f3XgjWP.png
https://i.imgur.com/xJ1heWK.png
https://imgur.com/f3XgjWP
https://imgur.com/xJ1heWK
Boundary Conditions
Names correlate with above image of domain. I am making use of the k-omega turb model
U
inlet flowRateInletVelocity -> 2;
outlet: zeroGradient
blade: noSlip
hub: noSlip
shroud: noSlip
inlet wall slip
expansion wall slip
expansion outlet: zeroGradient
p
inlet zeroGradient
outlet: fixed -> 0
blade: zeroGradient
hub: zeroGradient
shroud: zeroGradient
inlet wall zeroGradient
expansion wall zeroGradient
expansion outlet: fixed 0> 0
k
inlet turbulentIntensityKineticEnergyInlet -> 0.01 (1%)
outlet: inletOutlet -> intenalField
blade: fixedValue ->1E-12
hub: kqRWallFunction
shroud: kqRWallFunction
inlet wall zeroGradient
expansion wall zeroGradient
expansion outlet: inletOutlet -> intenalField
omega
inlet turbulentMixingLengthDissipationRateInlet -> 0.23 (half the anular height)
outlet: inletOutlet -> intenalField
blade: omegaWallFunction
hub: omegaWallFunction
shroud: omegaWallFunction
inlet wall zeroGradient
expansion wall zeroGradient
expansion outlet: fixed 0> 0
Rest of setup
MRF properties:
The entire domain is an MRFSource, with all patches except the blade and hub being set up as a nonRotatingPatch.
omega = 78.54 for 750 rpm
transport properties:
nu = 1.802e-05 for air at 15*density (ie dynamic viscosity)
fvSchemes:
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default steadyState;
}
gradSchemes
{
default Gauss linear corrected 1;
}
divSchemes
{
default none;
div(phi,U) Gauss linearUpwind grad(U);
div(phi,k) Gauss linear;
div(phi,epsilon) Gauss linear;
div(phi,omega) Gauss limitedLinear 1;
div(phi,R) Gauss linear;
div(R) Gauss linear;
div(phi,nuTilda) Gauss linear;
div((nuEff*dev2(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear corrected 1;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default corrected;
}
wallDist
{
method meshWave;
}
// ************************************************************************* //
fvSolution:
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"(p|Phi)"
{
solver GAMG;
tolerance 1e-8;
relTol 0.0001;
smoother DIC;
nPreSweeps 1;
nPostSweeps 2;
cacheAgglomeration on;
agglomerator faceAreaPair;
nCellsInCoarsestLevel 800;
mergeLevels 1;
maxIter 200;
}
"(U|k|epsilon|omega)"
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-10;
relTol 0.0001;
}
"(U|k|epsilon|omega)Final"
{
$U;
tolerance 1e-10;
relTol 0;
}
}
SIMPLE
{
nNonOrthogonalCorrectors 1;
}
relaxationFactors
{
fields
{
p 0.4; //0.2
}
equations
{
U 0.7;//0.4
k 0.6;//0.4
"(epsilon|omega)" 0.6;//0.4
}
}
cache
{
grad(U);
}
potentialFlow
{
nNonOrthogonalCorrectors 3;
}
// ************************************************************************* //
checkMesh
Code:
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 5.x-197d9d3bf20a
Exec : checkMesh
Date : Dec 11 2018
Time : 10:13:44
Host : "zander-ubuntu"
PID : 5165
I/O : uncollated
Case : /home/zander/OpenFOAM/zander-5.0/run/2018-12/expansion-mid-thruBL
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time
Create polyMesh for time = 0
Time = 0
Mesh stats
points: 1328871
faces: 3894222
internal faces: 3803058
cells: 1282880
faces per cell: 6
boundary patches: 10
point zones: 0
face zones: 0
cell zones: 1
Overall number of cells of each type:
hexahedra: 1282880
prisms: 0
wedges: 0
pyramids: 0
tet wedges: 0
tetrahedra: 0
polyhedra: 0
Checking topology...
Boundary definition OK.
Cell to face addressing OK.
Point usage OK.
Upper triangular ordering OK.
Face vertices OK.
Number of regions: 1 (OK).
Checking patch topology for multiply connected surfaces...
Patch Faces Points Surface topology
outlet 10800 10984 ok (non-closed singly connected)
inlet 8300 8459 ok (non-closed singly connected)
side1 14974 15346 ok (non-closed singly connected)
side2 14918 15288 ok (non-closed singly connected)
shroud 6960 7174 ok (non-closed singly connected)
bellMouth 4000 4141 ok (non-closed singly connected)
hub 17960 18234 ok (non-closed singly connected)
blade 3752 3886 ok (non-closed singly connected)
expansionOutlet 7000 7171 ok (non-closed singly connected)
expansionWall 2500 2626 ok (non-closed singly connected)
Checking geometry...
Overall domain bounding box (-0.765367 -4.11 0) (0.765367 2.1 2)
Mesh has 3 geometric (non-empty/wedge) directions (1 1 1)
Mesh has 3 solution (non-empty) directions (1 1 1)
Boundary openness (-4.67917e-15 -1.81618e-16 -2.51773e-15) OK.
Max cell openness = 1.3381e-15 OK.
Max aspect ratio = 376.17 OK.
Minimum face area = 5.68714e-09. Maximum face area = 0.0426733. Face area magnitudes OK.
Min volume = 5.65573e-12. Max volume = 0.000866993. Total volume = 6.78618. Cell volumes OK.
Mesh non-orthogonality Max: 54.3416 average: 15.4495
Non-orthogonality check OK.
Face pyramids OK.
Max skewness = 1.46607 OK.
Coupled point location match (average 0) OK.
Mesh OK.
End
y+ values:
Code:
patch shroud y+ : min = 0.253191, max = 101.353, average = 35.5284
patch inletWall y+ : min = 0.162738, max = 49.7783, average = 27.6695
patch hub y+ : min = 0.025898, max = 66.0722, average = 33.0663
patch blade y+ : min = 0.00177306, max = 4.72209, average = 0.798809
patch expansionWall y+ : min = 0.243394, max = 48.2709, average = 9.18704
I'm using the patchAverage utility to find pressure at the inlet, and I'm getting -146 Pa, implying a static to static pressure rise of 146. The inlet velocity is 8.64 m/s, so the static pressure rise is only 109 Pa, which is out by a factor of nearly 2. I can't tell what could be incorrect with my setup?
I get similar results with a pure annular as well as expansion inlet & outlet with bellmouth. Is there something wrong with my setup? is my mesh bad? am I neglecting something big? any help would be greatly appreciated!