|
[Sponsors] |
MRF SimpleFoam - Wind Turbine Blade - Underestimating forces |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
October 28, 2021, 13:00 |
MRF SimpleFoam - Wind Turbine Blade - Underestimating forces
|
#1 |
New Member
Join Date: Sep 2021
Posts: 6
Rep Power: 5 |
Hello,
I am trying to simulate in a steady flow a 15 MW IEA turbine blade in a 120° axisymmetric wedge domain. The size of the domain is 2 radii in front of the blade, 5 radii behind and 1.5 radii high. There are 2 regions in the mesh: Rotor that moves at -0.76 rad/s, and external wedge (cunha_externa) that is stationary. The moment at x, converged at -1.72E+6Nm. Whereas by the technical parameters approx. -5.7E+6Nm is expected (power coefficient (cp) = 0.489). I don't know what I am doing wrong, with the dynamic mesh method and transient solver I achieved the results. I'm using the simplefoam solver with mrf. The turbulence model is K Omega SST. Definition of iea 15mw: https://www.nrel.gov/docs/fy20osti/75698.pdf Mesh and results: https://drive.google.com/drive/folde...bC?usp=sharing I tried to simulate a in a similar way of the case iv from this article (https://doi.org/10.1016/j.renene.2018.07.062) Boundaries: U Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2106 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format binary; arch "LSB;label=32;scalar=64"; class volVectorField; location "0"; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 1 -1 0 0 0 0]; internalField uniform (-10 0 0); boundaryField { pa { type noSlip; } "(lateral|entrada)" { type fixedValue; value $internalField; } saida { type zeroGradient; } "(lado0|lado120)" { type cyclicAMI; } "(AMI_1|AMI_2)" { type cyclicAMI; } } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2106 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format binary; arch "LSB;label=32;scalar=64"; class volScalarField; location "0"; object p; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -2 0 0 0 0]; internalField uniform 0; boundaryField { "(pa|lateral|entrada)" { type zeroGradient; } saida { type fixedValue; value $internalField; } "(lado0|lado120)" { type cyclicAMI; } "(AMI_1|AMI_2)" { type cyclicAMI; } } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2106 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format binary; arch "LSB;label=32;scalar=64"; class volScalarField; location "0"; object k; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -2 0 0 0 0]; internalField uniform 0.06; boundaryField { pa { type kqRWallFunction; value $internalField; } "(entrada|lateral)" { type fixedValue; value $internalField; } saida { type zeroGradient; } "(lado0|lado120)" { type cyclicAMI; } "(AMI_1|AMI_2)" { type cyclicAMI; } } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2106 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format binary; arch "LSB;label=32;scalar=64"; class volScalarField; location "0"; object omega; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 0 -1 0 0 0 0]; internalField uniform 4.5939; boundaryField { pa { type omegaWallFunction; value $internalField; } "(entrada|lateral)" { type fixedValue; value $internalField; } saida { type zeroGradient; } "(lado0|lado120)" { type cyclicAMI; } "(AMI_1|AMI_2)" { type cyclicAMI; } } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2106 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format binary; arch "LSB;label=32;scalar=64"; class volScalarField; location "0"; object nut; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -1 0 0 0 0]; internalField uniform 0; boundaryField { pa { type nutkWallFunction; value $internalField; } "(entrada|saida|lateral)" { type calculated; value $internalField; } "(lado0|lado120)" { type cyclicAMI; } "(AMI_1|AMI_2)" { type cyclicAMI; } } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v2106 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object MRFProperties; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // MRF1 { cellZone Rotor_zone; active yes; // Fixed patches (by default they 'move' with the MRF zone) nonRotatingPatches (AMI_1 AMI_2); origin (0 0 0); axis (1 0 0); omega 0.769230769231; // rad/s } // ************************************************************************* // 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; } divSchemes { default none; div(phi,U) bounded Gauss linearUpwind grad(U); div(phi,omega) Gauss upwind; div(phi,k) Gauss upwind; div((nuEff*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear corrected; } snGradSchemes { default corrected; } wallDist { method meshWave; } // ************************************************************************* // 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 { solver GAMG; tolerance 1e-7; relTol 0; smoother GaussSeidel; cacheAgglomeration no; maxIter 500; } "(U|k|omega)" { solver smoothSolver; smoother GaussSeidel; tolerance 1e-7; relTol 0; nSweeps 2; } } SIMPLE { nNonOrthogonalCorrectors 0; consistent yes; pRefCell 0; pRefValue 0; residualControl { p 1e-6; "(U|k|omega)" 1e-6; } } relaxationFactors { fields { p 0.3; } equations { "(U|k|omega)" 0.7; } } // ************************************************************************* // 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; object forcesIncompressible; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // forces { functionObjectLibs ("libforces.so"); patches (pa); CofR (3.770655 0 0); pitchAxis (0 0 0); writeControl adjustableRunTime; writeInterval 1; type forces; pName p; UName U; rho rhoInf; // Incompressible solver rhoInf 1.18732; log true; } // ************************************************************************* // Code:
/*---------------------------------------------------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2106 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ Build : _7b82832f-20210625 OPENFOAM=2106 Arch : "LSB;label=32;scalar=64" Exec : checkMesh Date : Oct 28 2021 Time : 12:36:07 Host : DESKTOP-H7B8IOF PID : 510 I/O : uncollated Case : iea_15mw nProcs : 1 trapFpe: Floating point exception trapping enabled (FOAM_SIGFPE). fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 5, maxFileModificationPolls 20) allowSystemOperations : Allowing user-supplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create mesh for time = 0 Time = 0 Mesh stats points: 15087385 faces: 43973155 internal faces: 43441104 cells: 14447935 faces per cell: 6.050294 boundary patches: 8 point zones: 0 face zones: 0 cell zones: 2 Overall number of cells of each type: hexahedra: 13867146 prisms: 153181 wedges: 0 pyramids: 0 tet wedges: 129 tetrahedra: 0 polyhedra: 427479 Breakdown of polyhedra by number of faces: faces number of cells 4 8873 5 7662 6 65466 7 150255 8 20204 9 117862 10 552 11 119 12 50013 13 2 14 19 15 6408 18 44 Checking topology... Boundary definition OK. Cell to face addressing OK. Point usage OK. Upper triangular ordering OK. Face vertices OK. *Number of regions: 2 The mesh has multiple regions which are not connected by any face. <<Writing region information to "0/cellToRegion" <<Writing region 0 with 4975517 cells to cellSet region0 <<Writing region 1 with 9472418 cells to cellSet region1 Checking patch topology for multiply connected surfaces... Patch Faces Points Surface topology entrada 8482 8557 ok (non-closed singly connected) saida 8482 8557 ok (non-closed singly connected) lado0 46631 48006 ok (non-closed singly connected) lado120 46736 48116 ok (non-closed singly connected) lateral 68880 69465 ok (non-closed singly connected) pa 274482 283476 ok (non-closed singly connected) AMI_2 39182 39181 ok (non-closed singly connected) AMI_1 39176 39405 ok (non-closed singly connected) Checking faceZone topology for multiply connected surfaces... No faceZones found. Checking basic cellZone addressing... CellZone Cells Points VolumeBoundingBox cunha_externa 4975517 5070077 2.821492e+07 (-600 -155.8846 -3.64628e-16) (240 155.8846 180) Rotor_zone 9472418 10017308 282470.2 (-4.006414 -112.5832 -1.408003e-05) (12.00412 112.5835 130) Checking geometry... Overall domain bounding box (-600 -155.8846 -1.408003e-05) (240 155.8846 180) Mesh has 3 geometric (non-empty/wedge) directions (1 1 1) Mesh has 3 solution (non-empty) directions (1 1 1) Boundary openness (2.330773e-17 7.088203e-16 5.225327e-14) OK. Max cell openness = 3.308378e-15 OK. Max aspect ratio = 66.99643 OK. Minimum face area = 3.874454e-06. Maximum face area = 8.968646. Face area magnitudes OK. Min volume = 1.148255e-06. Max volume = 11.81478. Total volume = 2.849739e+07. Cell volumes OK. Mesh non-orthogonality Max: 63.7486 average: 4.455527 Non-orthogonality check OK. Face pyramids OK. Max skewness = 3.998489 OK. Coupled point location match (average 0) OK. Mesh OK. End |
|
March 16, 2022, 07:32 |
|
#2 |
New Member
Join Date: Sep 2021
Posts: 6
Rep Power: 5 |
Solution:
Increase the MRF domain (non inertial) to 2 blade diameters of lenght and 2 blade diameters of height with the blade in the middle |
|
Tags |
mrf, simplefoam, wedge 120°, wind turbine blade |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Overset meshing with rotational periodic BC for a wind turbine blade | Islam Abdelghafar | STAR-CCM+ | 9 | February 23, 2022 12:25 |
Problem with forces and moment calculated for wind turbine blade using simpleFoam | mostafa kamal | OpenFOAM Running, Solving & CFD | 2 | September 21, 2021 18:33 |
3D wind turbine blade analysis | mrswordf1sh | FLUENT | 0 | April 4, 2015 21:17 |
Calculating lift force of a wind turbine blade problem | LittleBart | CFX | 4 | June 29, 2011 03:33 |
[Other] ANSYS CFX-Meshing problem of a wind turbine blade | Zoe | ANSYS Meshing & Geometry | 1 | July 14, 2010 03:02 |