CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM (https://www.cfd-online.com/Forums/openfoam/)
-   -   Simulation of Wind Turbine with OpenFoam (https://www.cfd-online.com/Forums/openfoam/66894-simulation-wind-turbine-openfoam.html)

be_inspired July 28, 2009 04:16

Simulation of Wind Turbine with OpenFoam
 
Hello,

I am trying to simulate a wind turbine with OpenFoam. The simulation has been solved by Fluent with moving reference frame method, and the wall of the blade and hub with zero relative velocity with respect to adjacent cell ( there is a periodic condition for meshing only 120 grades).( k-epsilon , standard wall function model into fluent)

Now, I want to compare with OpenFoam and study the possibilities to solve this kind of simulations within the wind energy field.

Could anyone help me with some information about how simulate wind turbine simulations or turbomachinary simulations?

Thank you very much.

elorriaux July 28, 2009 06:23

Hello,

i think you should have a look to MRFSimpleFoam solver and the associated test case.

Regards, Etienne.

albcem July 28, 2009 14:50

I did perform a wind turbine simulation using OpenFOAM. You can have a look at it at this link. There are no setup details there but if you send me an email from the "contact" section, we can discuss details.

Cem

be_inspired July 29, 2009 04:02

I have sent you an email.

Thanks,

Marce

maddalena September 15, 2009 10:36

Hello FOAMers,
I am going to use OF1.6 to simulate horizontal wind turbines as well. As a first step, I am contemplating simulating only a portion of the complete rotor + generator system (discarding nacelle and tower at the moment). I.E. if the turbine has three blades, simulate only one third of the system. Does it make sense? And if so, how can I impose the “symmetry” between the two planes defining my domain?
On the other hand, I could simulate a complete wind turbine using MRFSimpleFoam solver. Does everybody use this last computational solution?
Thanks in advance of any suggestion.
Maddalena

albcem September 15, 2009 10:43

The simulation I have mentioned in my previous post is performed using the MRF approach.

MadsR September 16, 2009 03:27

Albcem,

I quickly looked through the text of your link. Looks nice. How did you get away with solving the flow for the entire wind turbine with just 1.5 mio cells? That doesn't seem like a lot. Did you go for a qualitative (streamlines, contours, etc.) result more than a quantitative one (cp, lift, drag, etc.)?

Are you doing more work in this area, and what are your general observations of doing WT-simulations with OpenFOAM?


/Mads

saini.yashwant April 20, 2010 05:05

Quote:

Originally Posted by be_inspired (Post 224356)
Hello,

I am trying to simulate a wind turbine with OpenFoam. The simulation has been solved by Fluent with moving reference frame method, and the wall of the blade and hub with zero relative velocity with respect to adjacent cell ( there is a periodic condition for meshing only 120 grades).( k-epsilon , standard wall function model into fluent)

Now, I want to compare with OpenFoam and study the possibilities to solve this kind of simulations within the wind energy field.

Could anyone help me with some information about how simulate wind turbine simulations or turbomachinary simulations?

Thank you very much.

sir i am doing cfd analysis with fluent. i hav done the modling and meshing using gambit now i am doing analysis in fluent but facing some problem with boundary conditions when with rotation of turbine rotor and facing difficulty in finding out the power and power coefficient. or if i can get the axial induction then also i can get power and cp . so please help me out in this regard
thanks

hm86 July 9, 2010 12:33

SimpleMRFFoam for Wind Turbines
 
I dont think you can use simpleSRFFoam for wind turbines at high rpm for quantitative results. Heres a link why -

http://www.google.com/url?sa=t&sourc...Z7_egjqzfB1-SA

I'm not sure about MRFFoam. I see most others talking about IcoDymFoam.

maddalena July 12, 2010 02:27

link
 
Hi hm86,
I am interested in that paper, but the link does not work. Could you upload the paper here? --> edited: solved, I have downloaded the paper using your link.
Thanks,

mad

macbeth July 12, 2010 08:38

1 Attachment(s)
hmm, this could be related to a question I posted yesterday.
This is how my "undisturbed" flow field (without wind turbine) looks like with 20rpm:

Attachment 4041

I'm using this 0/Urel - definition:

Code:

dimensions      [0 1 -1 0 0 0 0];
internalField  uniform (5 0 0);

boundaryField
{
    inlet
    {
        type            SRFVelocity;
        inletValue      uniform (5 0 0);
        relative        yes;
        value          uniform (0 0 0);
    }

    outlet
    {
        type            zeroGradient;
    }

    side
    {
        type            SRFVelocity;
        inletValue      uniform (5 0 0);
        relative        yes;
        value          uniform (0 0 0);
    }
}

My understanding so far is that the medium enters the inlet-patch with a momentum. Then, due to centrifugal forces, the flow is deflected to the outer sides and the rotation "slows down" because of friction.
When looking at Uabs I don't get a uniform flow field...

Increasing the RPMs makes things even worse, and a "slip" BC on the "side"-patch doesn't help either.

I wonder how the flow field in the paper mentioned above looks like.

Is there a way to impose this relative rotation to the whole flow field and not only to the patches?:confused:

tonyuprm July 12, 2010 11:40

Body Forces
 
You can try using actuator disks or actuator line models. Body forces may be imposed to the flow. Here is a link to a post on how to do body forces.

http://www.cfd-online.com/Forums/ope...tml#post243278

gl

ibrhmbysl May 3, 2011 19:53

wind turbine
 
ı need a 3D analysis but ı have not been able to generate the mesh yet, please help me

be_inspired May 4, 2011 05:21

Quote:

Originally Posted by ibrhmbysl (Post 306160)
ı need a 3D analysis but ı have not been able to generate the mesh yet, please help me

What type of help?

ibrhmbysl May 4, 2011 05:58

help
 
thanks for your interest. this is 3D analysis of horizantal axis wind turbine. I am trying to generate a long tunnel and trying to generate rotor in the middle of the tunnel. but the openFoam gives error. I think this is because; meshes are conflicting, and unwanted default faces are appearing.
I am new in OpenFoam. this is my final project.

desert_1250 August 29, 2011 05:08

Quote:

Originally Posted by ibrhmbysl (Post 306206)
thanks for your interest. this is 3D analysis of horizantal axis wind turbine. I am trying to generate a long tunnel and trying to generate rotor in the middle of the tunnel. but the openFoam gives error. I think this is because; meshes are conflicting, and unwanted default faces are appearing.
I am new in OpenFoam. this is my final project.

you should need to create rotor(rotational part) and stator(stationary part) separately, and then merge two grid to identify interface between two part

______
Rasoul

thg September 1, 2011 15:28

GGI how to
 
hi brhmbysl,

maybe this gives you an idea about the ggi in 1.6-ext.
http://wiki.uni-due.de/OpenFOAM/imag...otatingGGI.pdf


thg

Islam ElQatary November 2, 2011 20:30

i need a help
 
hi
i'm new in openfoam and i've to simulate HAWT so i used MRFSimpleFoam to solve the problem the set up of the boundary conditions as following

External
{
type ggi;
nFaces 4285;
startFace 1203036;
shadowPatch Interior;
bridgeOverlap false;
zone External_ZONE;
}
Turbine
{
type wall;
nFaces 1260;
startFace 1207321;
}
Outlet
{
type patch;
nFaces 100;
startFace 1208581;
}
Bound1
{
type patch;
nFaces 100;
startFace 1208681;
}
Bound2
{
type patch;
nFaces 100;
startFace 1208781;
}
Inlet
{
type patch;
nFaces 100;
startFace 1208881;
}
Ground
{
type patch;
nFaces 100;
startFace 1208981;
}
Sky
{
type patch;
nFaces 100;
startFace 1209081;
}
Interior
{
type ggi;
nFaces 600;
startFace 1209181;
shadowPatch External;
bridgeOverlap false;
zone Interior_ZONE;
}
)

and i'm using OF16ext
i always get this error can anyone help me


--> FOAM FATAL ERROR:
Face zone name Interior_ZONE not found. Please check your GGI interface definition.

From function label ggiPolyPatch::zoneIndex() const
in file meshes/polyMesh/polyPatches/constraint/ggi/ggiPolyPatch.C at line 639.

FOAM aborting

Aborted

i used snappyHex to mesh the 2 region and then used mergMeshes to combine the 2 cases into 1 case
can anyone help me

maddalena November 3, 2011 05:38

Hello,
the answer is quite simple:
Quote:

Originally Posted by Islam ElQatary (Post 330517)
--> FOAM FATAL ERROR:
Face zone name Interior_ZONE not found. Please check your GGI interface definition.

You have not defined the cellZones of your mesh as required by GGI probably. Look in the forum for setSet or cellZones, you may find help.

mad

Tobias Adam November 5, 2013 06:40

First simulation of wind turbine
 
Hello everyone I answered my own questions for the next newbe :-)


I simulate 120° of the circle. The wind-velocity is 6m/s.
The relative speed of the blade is still missing. The rpm is mentioned to be quite high. My last information is near 280 1/s

1. How did you realize the rotational speed of the blade?
Did you move your entire system including mesh and blade or did you give rotation to your incoming flow?
Just use SRFSimpleFoam. The Mixer Tutorial gives more Information. There you can see where to set the rotational Speed RPM in the SRF-properties

3. How to calculate Forces and Drag?

Use the Forces library already present in OF. More Information here: http://www.cfd-online.com/Forums/ope...tml#post317482


.

I´d be glad for any help :)

Best regards
Tobias

Tobias Adam January 24, 2014 05:23

wrong results ...
 
Hello everyone :-)

The results of my simulation are not as satisfying as they could be.
I compared my cp-values over the Blade with a simulation performed with fluent and got much bigger results! Furthermore my power coefficient is nearly as high as the Betz coefficient what seems very unrealistic.

In a post above it was mentioned that SRFSimpleFoam is not very good for high rpm!
Does anyone know some alternatives to SRFSimpleFoam for my simulation of one Blade of the HAWT? What about the DYMFoam solver?
Or maybe someone can share some setup files with me, or would like to discuss mine?

I ´d like to get satisfying results before I start the next step of my Bachelor-Thesis and simulate the whole Turbine with the mast.


Thanks in advance for your help

Tobias

Ruli January 24, 2014 05:35

Hi,
I am working on a rotor blade simulation (MRF approach, 1.5 MW class), too. I have got a simulation running right now, if the results are promising, I am glad to get in contact with you.

Bye
Julian

Tobias Adam January 24, 2014 06:15

Hi Julian,
do you simulate three blades or just one?
I´d like to test the MRF solver for my case too! At least when I start the big simulation with mast and rotor!
I´m doing the simulation on an experimental Turbine of my University. But the setup for the cases should be the same!

Greets Tobias

Ruli January 24, 2014 06:33

Quote:

Originally Posted by Tobias Adam (Post 471589)
Hi Julian,
do you simulate three blades or just one?
I´d like to test the MRF solver for my case too! At least when I start the big simulation with mast and rotor!

Dear Tobias,
I am simulating 1 blade without nacelle etc., as I already am at 10 Mio. cells and can`t afford more. If you want to simulate the whole HAWT including tower etc. I guess MRF isn`t the right approach, as the blade isn`t really moving, so interaction between blade and tower will not be calculated.

Best regards
Julian

elvis January 24, 2014 07:20

Hi,
a little bit off topic to those other post,
First Symposium on OpenFOAM in Wind Energy http://www.forwind.de/sowe/Site/Program.html

Tobias Adam April 1, 2014 09:54

Simulation of horizontal-axis-wind-turbine
 
Hello dear Elvis

Did you already simulate a Windturbine?

I would like to get some tips and tricks ore some guidelines from your experience, or some setup files of simulations you already performed so that I could compare your case with mine.
My SRFSimpleFoam and SimpleFoam cases poorely don´t converge and I don´t really know why...
I'd be glad for any answer!

Best reagards

Tobias

Ruli April 1, 2014 09:57

Dear Tobias,
how do your residuals (and probe values of U or p) look like over the simulation iterations?

As you know, I am working on MRF WT simulation, too. My simulation does not converge perfectly, as well (residuals around 10^-4). I am quite sure, it is because of the partly unsteady nature of the flow (separation in root region, ...) which is not considered in SIMPLE.

Best regards
Julian

Tobias Adam April 7, 2014 07:15

Hey Julian ,
With MRF I got jumping and fluctuating Residuals for omega and k. First it just does not converge, later it crashes because of these parameters...
SRF does converge very well, but gives nonphysical results...

Did you ever try Pimple with fv-options?

Best regards Tobi

Tobias Adam April 7, 2014 07:38

Hey Julian :-)
With MRF I got jumping and fluctuating Residuals for omega and k. First it just does not converge, later it crashes because of these parameters...
SRF does converge very well, but gives nonphysical results...

Did you ever try Pimple with fv-options?

Best regards Tobi

Ruli April 7, 2014 08:24

Yes,

yes, I did use PIMPLE in PISO-mode with fvOptions. However, for SIMPLE I have quite low relaxation factors (0.01) for k and omega.

Best regards
Julian

thg April 8, 2014 03:39

Hi Tobias,

a) Use upwind scheme for the turbulent quantaties
(the convective terms i.e. div is essential)

b) The mesh is essential...chekc y+ like I already mentioned.

c) Most ESSENTIAL...
right initialisation for the turbulent quantaties, f.i.

http://http://www.cfd-online.com/For...n-model-2.html


http://support.esi-cfd.com/esi-users/turb_parameters/


cheers
ThG

Tobias Adam May 12, 2014 05:39

Hello

Actually I got quite good results with a first case that had a very small enclosure.
On the next simulation with a bigger enclosure the flow looks good in paraview, but the residuals for p stay very high ~0,06.

@ Julian: Did you finish your thesis?
Would you mind to share your Pimple/Piso-settings with me?
Best regards Tobi

Ruli May 16, 2014 06:04

Dear Tobi,
yes, I finished my thesis.

Here is my fvSchemes file:

Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  2.2.2                                |
|  \\  /    A nd          | Web:      www.OpenFOAM.org                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    location    "system";
    object      fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

ddtSchemes // Zeitliche Ableitung
{
    default                    steadyState; //backward;  //alternativ CrankNicholson //steadyState
}

gradSchemes
{
    default                    none;
    grad(p)                    cellMDLimited Gauss linear 0.5; //cellMDLimited Gauss linear 0.5;
    grad(U)                    cellMDLimited Gauss linear 0.5;
    grad(omega)                cellMDLimited Gauss linear 0.5;
    grad(k)                cellMDLimited Gauss linear 0.5;
    curl(U)                cellMDLimited Gauss linear 0.5;
}

divSchemes
{
    default                    none;
    div(phi,U)                  bounded Gauss linearUpwind grad(U);    //bounded Gauss upwind; //bounded Gauss linearUpwind grad(U);
    div(phi,k)                  bounded Gauss linearUpwind grad(k);      //bounded Gauss upwind; //bounded Gauss linearUpwind grad(k);
    div(phi,omega)            bounded Gauss linearUpwind grad(omega); //bounded Gauss upwind; //bounded Gauss linearUpwind grad(omega);
    div((nuEff*dev(T(grad(U)))))    Gauss linear;
}

laplacianSchemes
{
    default                    none;
    laplacian(DomegaEff,k)        Gauss linear corrected;
    laplacian(DomegaEff,omega)        Gauss linear corrected;
    laplacian(DkEff,k)            Gauss linear corrected;
    laplacian(DepsilonEff,epsilon)    Gauss linear corrected;
    laplacian(nuEff,U)            Gauss linear corrected;
    laplacian((1|A(U)),p)        Gauss linear corrected;
}

interpolationSchemes
{
    default                    none;                    //linear bei PIMPLE
    interpolate(HbyA)            linear;
    interpolate(U)              linear;
}

snGradSchemes
{
default                    none;
}

fluxRequired
{
    default                    no;
    p                          ;
}


// ************************************************************************* //

and fvSolution
Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  2.2.2                                |
|  \\  /    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.1;
        smoother            GaussSeidel;
        nPreSweeps          0;
        nPostSweeps        2;
        cacheAgglomeration    true;
        nCellsInCoarsestLevel    10;
        agglomerator        faceAreaPair;
        mergeLevels        1;
    }

    U
    {
        solver          smoothSolver;
        smoother        GaussSeidel;
        nSweeps        1;
        tolerance      1e-8;
        relTol          0.1;
    }

    k
    {
        solver          smoothSolver;
        smoother        GaussSeidel;
        nSweeps        1;
        tolerance      1e-8;
        relTol          0.1;
    }

    omega
    {
        solver          smoothSolver;
        smoother        GaussSeidel;
        nSweeps        1;
        tolerance      1e-8;
        relTol          0.1;
    }
/*
    pFinal
    {
        solver          PCG;
        preconditioner  DIC;
        tolerance      1e-06;
        relTol          0;
    }

    "(U|k|omega)Final"
    {
        $U;
        tolerance      1e-6;
        relTol          0;
    }*/
}


SIMPLE
{
    nNonOrthogonalCorrectors 5;  //8

    residualControl
    {
        p              1e-10; 
        U              1e-9;
        k          1e-8;
    k          1e-8;
    }
}

relaxationFactors
{
    fields
    {
        p              0.3;
    }
    equations
    {
        U              0.7;
        k              0.01;
        omega          0.01;
    }
}

/*
PIMPLE
{
    nOuterCorrectors 1;
    nCorrectors    3;
    nNonOrthogonalCorrectors 3;
}*/


// ************************************************************************* //

I used these settings with SIMPLE, not sure if also with PIMPLE. Try it, if it does not work, I will search on.

Best regards
Julian

Tobias Adam June 4, 2014 07:57

MRF and Literature
 
Thank you very much Julian,

I allready got this from you earlier, but it helped me a lot for my simulations.

A question to everyone:
Does anybody have got literature explaining the Mrf-principle ( like corriolis-term added to NS-equations and so on)
I want to explain it and compare it with the pympledymfoam-solver.
A further question:
Does it make sense to use MRF for blade-tower interaction as start solution for pympledym or is a steady state solution for a very unsteady too bad?

Best Regards Tobi

fertinaz June 5, 2014 09:36

Hi Tobias,

this document contains brief explanation for the steady and unsteady simulations with rotating regions:

http://www.slideshare.net/fumiyanoza...using-openfoam

I guess using converged results of a steady-state solver as an initial condition for the transient case is not a bad idea. If that was what you asked.

// Fatih.

Tobias Adam June 24, 2014 10:01

Hi Fatih,
sorry for my late reply...

Thanks for this paper, it´s very helpful. I would have been really happy if I got it at the beginning of my thesis:-)
Yes, this was what I asked, and it´s definitely a good idea. The pimpleDym-solver is much slower than simple.
One question to transient simulations: Is there a general guideline for the maximal possible courant number or is it case dependent at which co-number the case becomes instable?

Best regards Tobi

P.s. I use SimpleFoam+fv options even for Single-Rotating-Frames, because SRFSimple did not give good results for my case.

fertinaz June 24, 2014 18:08

There is no general rule for determining the max. Courant number as far as I know since it is mesh dependent.

What I would do is to set maxCo as 1 and select a small enough time-step initially and then let OpenFoam adjust it during runTime. You can then try to increase maxCo gradually to figure out what would really be the upper-limit you can use without losing the stability.

Tobias Adam July 24, 2014 08:57

I found out something new, which might help others.

I tried to map fields from my steady state case to the transient case.
It didn´t work, so I just copied the time folder from steady-state and put it to the transient case. I thought it should work, as it has the same mesh. But it didn´t, because the rotating-mesh-dict rotates the area of the blade if it does not start with time 0.
So the start-field for the transient simulation was useless! To solve the problem, one easily can change the name of the time folder to 0 and delete the uniform-folder inside of this folder.
Then the transient simulation starts with the right starting position, with converged results as initial condition.

Best
Tobi

Tobias Adam August 5, 2014 10:07

PimpleDym Simulation
 
They PimpleDymSimulation runs quite good, but the longer the simulation goes the bigger the moment of the blade becomes.
The residuals look very good, the stay low in each time step. I used Co=4 as it seemed to be stable. The only thing bothering me is the Moment increasing more and more. From start-value ~10Nm to 15Nm over a very long time to ~30Nm now in a very short time...
Is it possible that the numerical schemes are wrong, and therefore the moment is calculated wrong?
The setting and Boundary conditions are similar to the simple case, I just changed fv schemes and fv solutions ....

Best regards

Tobi

kiddmax September 1, 2014 06:58

Dear mad,

Could you please send me this paper? I can not download it though the link.

Thanks a lot!

Best regards
Ye


All times are GMT -4. The time now is 01:12.