CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Running, Solving & CFD

Big problem predicting adiabatic wall temperature (wing, mach 0.33, rhoSimplecFoam)

Register Blogs Members List Search Today's Posts Mark Forums Read

Like Tree5Likes
  • 1 Post By fredo490
  • 1 Post By fredo490
  • 3 Post By fredo490

Reply
 
LinkBack Thread Tools Display Modes
Old   April 22, 2013, 13:30
Default Big problem predicting adiabatic wall temperature (wing, mach 0.33, rhoSimplecFoam)
  #1
Senior Member
 
HECKMANN Frédéric
Join Date: Jul 2010
Posts: 236
Rep Power: 8
fredo490 is on a distinguished road
Dear all,
I'm working on rhoSimplecFoam / rhoLTSPimpleFoam (OF 2.2) to simulate wing at mach 0.33. The simulations run smoothly and give good results (and convergence) except for the wall temperature ! All the other variables are pretty good, the pressure distribution is acceptable, ...

I run the case with k-omega SST, a structured mesh of y+ = 0.1, and I tried a large range of settings.

Every time, when I check the results, I get a wall temperature varying of 10°C while theoretical results and Fluent simulations give a variation of about 2°C maximum. I am 100% sure that the Fluent result is accurate with experimental results and other software. The Fluent simulation was made with a mesh of y+ 0.2 , k-omega SST (compressibility effects + viscous heating), sutherland viscosity and kinetic-theory for the thermal conductivity.

Here is a rough plot to compare the wall temperature of the 2 cases:


When I plot the temperature field into the domain, they are very comparable:



However a tiny detail is missing. There is a kind of "hot" boundary layer in Fluent that flows all around the airfoil. It turns out that this characteristic is missing in my OF result. Here is a plot of a region near the upper leading edge (but it is also true everywhere else).



To make the things simple, here is my full case including mesh (9MB):
http://www.fredo490.fr/public/Naca00...malProblem.zip



Do you have any idea of where the problem is located ? Is it the viscous heating in the boundary layer ?
mm.abdollahzadeh likes this.

Last edited by fredo490; April 23, 2013 at 02:16.
fredo490 is offline   Reply With Quote

Old   April 23, 2013, 04:36
Default
  #2
Senior Member
 
HECKMANN Frédéric
Join Date: Jul 2010
Posts: 236
Rep Power: 8
fredo490 is on a distinguished road
I have ran extra test with Fluent and it turns out that the difference come from the Viscous Heating. If I uncheck the viscous heating box in k-omega sst, the Fluent results look similar to my OpenFoam data.

Now the question is: How to implement the Viscous Heating in rhoSimplecFoam ?!
fredo490 is offline   Reply With Quote

Old   April 23, 2013, 10:07
Default
  #3
Senior Member
 
HECKMANN Frédéric
Join Date: Jul 2010
Posts: 236
Rep Power: 8
fredo490 is on a distinguished road
It seems that the answer to my problem is in this topic: rhoSimpleFoam loss in total enthalpy

I'm currently running a case with the viscous heating to try the code.
mm.abdollahzadeh likes this.
fredo490 is offline   Reply With Quote

Old   May 21, 2013, 10:41
Default
  #4
Senior Member
 
HECKMANN Frédéric
Join Date: Jul 2010
Posts: 236
Rep Power: 8
fredo490 is on a distinguished road
I come back to my topic to give the solution of my problem.

To make things simple, OpenFoam neglects lots of terms and we need to edit the source code of rhoSimplecFoam and rhoPimplecFoam. Enclosed is the source of my equation (Jasaks book's). The code now include: the traditional energy equation with the Viscous Heating + Pressure Work + Kinetic Energy.

For OpenFoam 2.2, you need to edit EEqn.H to get:
Code:
    // Viscous Heating Source terms
        volTensorField gradU = fvc::grad(U);
        volTensorField kin1 = turbulence->muEff() * (gradU + gradU.T());
        volVectorField kin4 = kin1 & U;		
        volScalarField kin5 = fvc::div(kin4);	
		
        volScalarField divU = fvc::div(U);
        volVectorField kin2 = 2.0/3.0 *turbulence->muEff() * divU * U;
        volScalarField kin3 = fvc::div(kin2);


    volScalarField& he = thermo.he();

    fvScalarMatrix EEqn
    (
        fvm::ddt(rho, he) + fvm::div(phi, he)
      + fvc::ddt(rho, K) + fvc::div(phi, K) // Kinetic Energy
      + (
            he.name() == "e"
          ? fvc::div
            (
                fvc::absolute(phi/fvc::interpolate(rho), U),
                p,
                "div(phiv,p)" 
            )
          : -dpdt // Pressure Work
        )
      - fvm::laplacian(turbulence->alphaEff(), he)
     ==
        fvOptions(rho, he)
      + kin5
      - kin3
    );

    EEqn.relax();

    fvOptions.constrain(EEqn);

    EEqn.solve();

    thermo.correct();
For rhoSimplecFoam, the terms are exactly the same so edit the EEqn.H and adapt it to add kin3 and kin5 to the equation.

This new solver doesn't request any special things except the integration of the new schemes. The gradient scheme can be linear and the solution is stable with divergence schemes like upwind and linearUpwind.

To get an accurate result of the viscous heating, you need to have a y+ < 1 (because it is generated by the gradient of velocity in the sub-layer). In my case, I have used a y+ of 0.2 of average and the data looks very good.

I have put enclosed a picture of the heated viscous layer obtained by OpenFoam.
Attached Images
File Type: png GoverningEquations.png (43.7 KB, 43 views)
File Type: jpg viscousheating.jpg (19.3 KB, 43 views)
laplacian, andrejssab and wond like this.
fredo490 is offline   Reply With Quote

Old   May 22, 2013, 00:03
Default
  #5
Senior Member
 
Tushar Chourushi
Join Date: Jul 2009
Location: IIT-Indore, India
Posts: 318
Blog Entries: 1
Rep Power: 9
Tushar@cfd is on a distinguished road
Quote:
Originally Posted by fredo490 View Post
I come back to my topic to give the solution of my problem.

To make things simple, OpenFoam neglects lots of terms and we need to edit the source code of rhoSimplecFoam and rhoPimplecFoam. Enclosed is the source of my equation (Jasaks book's). The code now include: the traditional energy equation with the Viscous Heating + Pressure Work + Kinetic Energy.

For OpenFoam 2.2, you need to edit EEqn.H to get:
Code:
    // Viscous Heating Source terms
        volTensorField gradU = fvc::grad(U);
        volTensorField kin1 = turbulence->muEff() * (gradU + gradU.T());
        volVectorField kin4 = kin1 & U;        
        volScalarField kin5 = fvc::div(kin4);    
        
        volScalarField divU = fvc::div(U);
        volVectorField kin2 = 2.0/3.0 *turbulence->muEff() * divU * U;
        volScalarField kin3 = fvc::div(kin2);


    volScalarField& he = thermo.he();

    fvScalarMatrix EEqn
    (
        fvm::ddt(rho, he) + fvm::div(phi, he)
      + fvc::ddt(rho, K) + fvc::div(phi, K) // Kinetic Energy
      + (
            he.name() == "e"
          ? fvc::div
            (
                fvc::absolute(phi/fvc::interpolate(rho), U),
                p,
                "div(phiv,p)" 
            )
          : -dpdt // Pressure Work
        )
      - fvm::laplacian(turbulence->alphaEff(), he)
     ==
        fvOptions(rho, he)
      + kin5
      - kin3
    );

    EEqn.relax();

    fvOptions.constrain(EEqn);

    EEqn.solve();

    thermo.correct();
For rhoSimplecFoam, the terms are exactly the same so edit the EEqn.H and adapt it to add kin3 and kin5 to the equation.

This new solver doesn't request any special things except the integration of the new schemes. The gradient scheme can be linear and the solution is stable with divergence schemes like upwind and linearUpwind.

To get an accurate result of the viscous heating, you need to have a y+ < 1 (because it is generated by the gradient of velocity in the sub-layer). In my case, I have used a y+ of 0.2 of average and the data looks very good.

I have put enclosed a picture of the heated viscous layer obtained by OpenFoam.

Nice work..
Tushar@cfd is offline   Reply With Quote

Old   May 22, 2013, 00:15
Default
  #6
Senior Member
 
HECKMANN Frédéric
Join Date: Jul 2010
Posts: 236
Rep Power: 8
fredo490 is on a distinguished road
Thx but I have to say that the topic of Chrisi1984 help me a lot.
fredo490 is offline   Reply With Quote

Old   May 22, 2013, 00:28
Default
  #7
Senior Member
 
HECKMANN Frédéric
Join Date: Jul 2010
Posts: 236
Rep Power: 8
fredo490 is on a distinguished road
I forgot to say : the heat prediction highly depends of the free steam turbulence parameters! A high turbulence intensity (let say 1% such as a wind tunne) will not give the same rresults as a low intensity (0,01% such as a high flight condition). You need to get good k and omega values. So I highly recommend to use the tool given by this website to estimate the two values.
fredo490 is offline   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Radiation with adiabatic wall Radiation CFX 5 June 27, 2014 11:55
UDF Wall Temperature Problem - Coordinates Marc FLUENT 1 July 3, 2008 11:10
Adiabatic and Rotating wall (Convection problem) ParodDav CFX 5 April 29, 2007 19:13
wall temperature setting nianqi CFX 0 October 16, 2006 06:53
Multicomponent fluid Andrea CFX 2 October 11, 2004 05:12


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