|
[Sponsors] |
Problem with forces and moment calculated for wind turbine blade using simpleFoam |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
December 16, 2019, 12:29 |
Problem with forces and moment calculated for wind turbine blade using simpleFoam
|
#1 |
New Member
mostafa kamal
Join Date: Jun 2019
Posts: 16
Rep Power: 7 |
hello every one
iam trying to simulate flow on horizontal axis wind turbine 1- first i made the mesh for 1 blade with periodic boundary conditions using ansys mesher as shown in (1.png ) and i made 2 zones (1 stationary +1 rotating) and i run the case on ansys fluent and it run successfully. 2- in openfoam i converted the msh file to foam by fluent3Dmeshtofoam and it was converted but without the periodic boundary condition(it was walls) so i used createpatch to convert this walls(the side faces) to periodic (cyclic). 3- i checked the mesh and was ok (2.png) 4- i used Simplefoam with MRF option and run the solver with these fvoptions and fvschemes fvschemes: /*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 6 \\/ 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 linearUpwindV grad(U); div(phi,k) bounded Gauss upwind; div(phi,epsilon) bounded Gauss upwind; div(phi,omega) bounded Gauss upwind; div(phi,R) bounded Gauss upwind; div(phi,nuTilda) bounded Gauss upwind; div(R) Gauss linear;// always Gauss linear div((nuEff*dev2(T(grad(U))))) Gauss linear; // always Gauss linear } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } fluxRequired { default no; p; } wallDist { method meshWave; } // ************************************************** *********************** // fvoptions: /*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 6 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { p { solver GAMG; tolerance 1e-08; relTol 0.05; smoother GaussSeidel; nCellsInCoarsestLevel 20; } U { solver smoothSolver; smoother GaussSeidel; nSweeps 2; tolerance 1e-07; relTol 0.1; } k { solver smoothSolver; smoother GaussSeidel; nSweeps 2; tolerance 1e-07; relTol 0.1; } epsilon { solver smoothSolver; smoother GaussSeidel; nSweeps 2; tolerance 1e-07; relTol 0.1; } omega { solver smoothSolver; smoother GaussSeidel; nSweeps 2; tolerance 1e-07; relTol 0.1; } SIMPLE { nNonOrthogonalCorrectors 3;//0 pRefCell 0; pRefValue 0; residualControl // values of residuals to stop at { p 1e-5; U 1e-5; k|epsilon|omega 1e-5; } } relaxationFactors { fields { p 0.3; } equations { U 0.5; k 0.5; epsilon 0.5; omega 0.5; } } // ************************************************** *********************** // controlDict: /*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 6 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object controlDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // application simpleFoam; startFrom latestTime; startTime 0; stopAt endTime; endTime 1000; deltaT 1; writeControl timeStep; writeInterval 50; purgeWrite 0; writeFormat ascii; writePrecision 6; writeCompression off; timeFormat general; timePrecision 6; runTimeModifiable true; functions { // #includeFunc streamlines #includeFunc residuals forces { type forces; functionObjectLibs ("libforces.so"); writeControl timeStep; writeInterval 50; patches (blade_); pname p; Uname U; rho rhoInf; rhoInf 1.205; // Reference pressure [Pa] pRef 0; // Include porosity effects? porosity no; log true; CofR (0 0 0); // } yPlus { type yPlus; functionObjectLibs ("libfieldFunctionObjects.so"); writeControl timeStep; writeInterval 50; } }; // ************************************************** *********************** // i used komega SST and this is the MRF file: /*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 6 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "constant"; object MRFProperties; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // MRF1 { cellZone rotatingzone; active yes; // Fixed patches (by default they 'move' with the MRF zone) nonRotatingPatches (); origin (0 0 0); axis (0 1 0); omega -72;//-72 } // ************************************************** *********************** // boundrary conditions: /*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 6 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volVectorField; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 1 -1 0 0 0 0]; internalField uniform (0 7.6 0); boundaryField { upper { type fixedValue; value uniform (0 7.6 0); } inlet { type fixedValue; value uniform (0 7.6 0); } outlet { type zeroGradient; } blade_ { type noSlip; } cyclic_half0-stationary { type cyclic; } cyclic_half0-rotating { type cyclic; } cyclic_half1-stationary { type cyclic; } cyclic_half1-rotating { type cyclic; } } // ************************************************** *********************** // /*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 6 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; object p; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -2 0 0 0 0]; internalField uniform 0; boundaryField { upper { type zeroGradient; } inlet { type zeroGradient; } outlet { type fixedValue; value uniform 0; } blade_ { type zeroGradient; } cyclic_half0-stationary { type cyclic; } cyclic_half0-rotating { type cyclic; } cyclic_half1-stationary { type cyclic; } cyclic_half1-rotating { type cyclic; } } // ************************************************** *********************** // /*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 6 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object omega; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 0 -1 0 0 0 0]; internalField uniform 9.553009996854394; boundaryField { upper { type fixedValue; value uniform 9.553009996854394; } inlet { type fixedValue; value uniform 9.553009996854394; } outlet { type inletOutlet; inletValue uniform 3.184336665618132; value uniform 3.184336665618132; } blade_ { type omegaWallFunction; value uniform 3.184336665618132;//60 from paper } cyclic_half0-stationary { type cyclic; } cyclic_half0-rotating { type cyclic; } cyclic_half1-stationary { type cyclic; } cyclic_half1-rotating { type cyclic; } } // ************************************************** *********************** // /*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 6 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object k; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -2 0 0 0 0]; internalField uniform 0.009126; boundaryField { upper { type fixedValue; value uniform 0.009126; } inlet { type fixedValue; value uniform 0.009126; } outlet { type inletOutlet; inletValue uniform 0.009126; value uniform 0.009126; } blade_ { type kqRWallFunction; value uniform 0.009126;//0.4959 from paper } cyclic_half0-stationary { type cyclic; } cyclic_half0-rotating { type cyclic; } cyclic_half1-stationary { type cyclic; } cyclic_half1-rotating { type cyclic; } } // ************************************************** *********************** // and the residuals is shown in (kwsst.png). the problem is the moment calculated from the forces library in contDict = (about 4734=4408+334 pressure +viscous moment) isnt right compared to experimental value=360 N.m from paper and also validated with fluent and another thing the values and signs of the forces calculated (force_x=1507 is positive and force_y= -9265.4 is negative ) i think they are wrong. (i also tried to make inflation around blade for boundary layer but it was the same problem) i don't know where is the problem and i am stuck for weeks till now and iam trying to know the problem. Is it the boundary conditions of turbulence parameters (k,omega) or it is the fvsolution file must be modified or the MRF file must be modified or the problem could be in the force library? i appreciate if any one can help or give me some hints thanks for reading the post😃 |
|
September 21, 2021, 04:01 |
Any news?
|
#2 |
New Member
Guillén Campaña Alonso
Join Date: Jun 2021
Posts: 6
Rep Power: 5 |
Dear Mostafa,
Did you finally came up to what was wrong? I'm kinda facing the same issues. I have performed an MRFSimpleFoam simulation of a wind turbine and my torque results are lower than experimental and other CFD simulations results. Thank you very much! |
|
September 21, 2021, 18:33 |
|
#3 |
Member
Join Date: Feb 2020
Posts: 79
Rep Power: 6 |
Hi,
I would suggest to reduce non-orthogonality (66° is definitly to much) and try to avoid upwind in the fvScheme to reduce the diffusion. Cheers |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Help! problems in calculating forces with SimpleFoam | DLC | OpenFOAM | 3 | April 26, 2022 00:43 |
How to calculate hydrodynamic forces and moment? | Lazarus | STAR-CCM+ | 1 | August 31, 2017 05:23 |
Valve Design Flow Forces, Report moment | Mans1234 | FLUENT | 1 | August 10, 2015 18:28 |
Waterwheel shaped turbine inside a pipe simulation problem | mshahed91 | CFX | 3 | January 10, 2015 12:19 |
Center of pressure (confirmation/question) | scipy | FLUENT | 2 | March 5, 2012 07:54 |