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)

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 14:11.