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

Howto get the production and dissipation of TKE??

Register Blogs Community New Posts Updated Threads Search

Like Tree3Likes
  • 1 Post By lakeat
  • 1 Post By johndeas
  • 1 Post By alberto

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   June 27, 2009, 05:44
Question Howto get the production and dissipation of TKE??
  #1
Senior Member
 
lakeat's Avatar
 
Daniel WEI (老魏)
Join Date: Mar 2009
Location: Beijing, China
Posts: 689
Blog Entries: 9
Rep Power: 21
lakeat is on a distinguished road
Send a message via Skype™ to lakeat
Anyone knows how to get the production and dissipation of TKE (turbulence kinetic energy)? Thanks

Is it in this way:
Code:
        volSymmTensorField D = symm(fvc::grad(U));
        //volTensorField Dprim = symm(fvc::grad(U - UMean));

        volScalarField prod = -((U - UMean)*(U - UMean)) && D;
        volScalarField epsilon = sgsModel->epsilon();
----------------------------------------------
  • Rate of production of turbulence kinetic energy from the mean flow(gradient): - \left\langle u_{i}u_{j} \right\rangle \frac{\partial U_{i}}{\partial x_{j}}
  • Rate of dissipation of turbulence kinetic energy per unit mass due to viscous stresses: \epsilon \equiv 2\nu \left\langle s_{ij}s_{ij} \right\rangle
cagri.metin.ege likes this.
__________________
~
Daniel WEI
-------------
Boeing Research & Technology - China
Beijing, China
Email

Last edited by lakeat; June 28, 2009 at 07:14.
lakeat is offline   Reply With Quote

Old   July 6, 2010, 11:55
Default Production and dissipation of TKE
  #2
New Member
 
Join Date: Mar 2010
Posts: 6
Rep Power: 16
Heesei is on a distinguished road
Dear Daniel

I am also interested in this topic. Therefore, I would like to know if you found an answer to your question in the meantime.


Cheers,

Irina
Heesei is offline   Reply With Quote

Old   July 6, 2010, 12:26
Default
  #3
Senior Member
 
lakeat's Avatar
 
Daniel WEI (老魏)
Join Date: Mar 2009
Location: Beijing, China
Posts: 689
Blog Entries: 9
Rep Power: 21
lakeat is on a distinguished road
Send a message via Skype™ to lakeat
Sorry, it'e been a long time, but doesn't the codes in my last post work for you?
you can try with a channel case and see if its distribution is correct.

Bye
__________________
~
Daniel WEI
-------------
Boeing Research & Technology - China
Beijing, China
Email
lakeat is offline   Reply With Quote

Old   December 13, 2010, 18:51
Default
  #4
Senior Member
 
John Deas
Join Date: Mar 2009
Posts: 160
Rep Power: 17
johndeas is on a distinguished road
Hi,

why did you take the symmetrical part of grad(U) ? Why didn't you compute
Code:
R && fvc::grad(Umean)
?

Regards,

JD
johndeas is offline   Reply With Quote

Old   December 14, 2010, 04:55
Default
  #5
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
Notice that the method epsilon() returns the SGS dissipation rate. Check doxygen to see how it is computed, depending on the specific model.
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   December 14, 2010, 09:18
Default
  #6
Senior Member
 
John Deas
Join Date: Mar 2009
Posts: 160
Rep Power: 17
johndeas is on a distinguished road
Hi Alberto,

thank you for your answer. When I take a look at src\turbulenceModels\LES\incompressible\oneEqEddy\ oneEqEddy.C, I read:

Code:
void oneEqEddy::correct(const tmp<volTensorField>& gradU)
{
    GenEddyVisc::correct(gradU);

    volScalarField G = 2.0*nuSgs_*magSqr(symm(gradU));

    solve
    (
       fvm::ddt(k_)
     + fvm::div(phi(), k_)
     - fvm::laplacian(DkEff(), k_)
    ==
       G
     - fvm::Sp(ce_*sqrt(k_)/delta(), k_)
    );

    bound(k_, k0());

    nuSgs_ = ck_*sqrt(k_)*delta();
    nuSgs_.correctBoundaryConditions();
}
it appears that, in src\turbulenceModels\LES\incompressible\GenEddyVis c\GenEddyVisc.H (for example), epsilon() represents
Code:
ce_*sqrt(k_)/delta()
. But, what I am interrested in is G, the production. Since I am doing DNS computations, I have access to both the Reynolds Stress and the gradient of the mean component of velocity, and I do not want to use any eddy viscosity to compute it, like in
Code:
2.0*nuSgs_*magSqr(symm(gradU))
. I just need the formula to combine R and fvc::grad(Umean) properly.

I also do not understand why the symmetric part of the gradient of U is mentionned in the previous post.

Regards,

JD
manuc likes this.
johndeas is offline   Reply With Quote

Old   December 14, 2010, 10:34
Default
  #7
Senior Member
 
David Boger
Join Date: Mar 2009
Location: Penn State Applied Research Laboratory
Posts: 146
Rep Power: 17
boger is on a distinguished road
The double-inner product of a symmetric and asymmetric second-rank tensor is zero, so in that sense, only the symmetric part of gradU "survives" anyway. So using only the symmetric part is harmless, but perhaps unnecessary.
__________________
David A. Boger
boger is offline   Reply With Quote

Old   December 14, 2010, 12:21
Default
  #8
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
Quote:
Originally Posted by johndeas View Post
Hi Alberto,

thank you for your answer. When I take a look at src\turbulenceModels\LES\incompressible\oneEqEddy\ oneEqEddy.C, I read:

Code:
void oneEqEddy::correct(const tmp<volTensorField>& gradU)
{
    GenEddyVisc::correct(gradU);

    volScalarField G = 2.0*nuSgs_*magSqr(symm(gradU));

    solve
    (
       fvm::ddt(k_)
     + fvm::div(phi(), k_)
     - fvm::laplacian(DkEff(), k_)
    ==
       G
     - fvm::Sp(ce_*sqrt(k_)/delta(), k_)
    );

    bound(k_, k0());

    nuSgs_ = ck_*sqrt(k_)*delta();
    nuSgs_.correctBoundaryConditions();
}
it appears that, in src\turbulenceModels\LES\incompressible\GenEddyVis c\GenEddyVisc.H (for example), epsilon() represents
Code:
ce_*sqrt(k_)/delta()
. But, what I am interrested in is G, the production.
My comment was to point out that

volScalarField epsilon = sgsModel->epsilon();

does not return what you want. That epsilon is only the SGS epsilon.

Since you do DNS, just apply the definition and you will be fine :-)

Best,
solefire likes this.
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   July 9, 2016, 05:56
Default
  #9
Senior Member
 
Ehsan Asgari
Join Date: Apr 2010
Posts: 473
Rep Power: 18
syavash is on a distinguished road
Hi,

This is an old thread, but I wonder if anyone has achieved a reliable method to calculate TKE dissipation?!

Regards
syavash is offline   Reply With Quote

Old   March 22, 2022, 12:14
Default
  #10
New Member
 
Join Date: Mar 2021
Posts: 8
Rep Power: 5
nukecrafts is on a distinguished road
Quote:
Originally Posted by johndeas View Post
Hi Alberto,

thank you for your answer. When I take a look at src\turbulenceModels\LES\incompressible\oneEqEddy\ oneEqEddy.C, I read:

Code:
void oneEqEddy::correct(const tmp<volTensorField>& gradU)
{
    GenEddyVisc::correct(gradU);

    volScalarField G = 2.0*nuSgs_*magSqr(symm(gradU));

    solve
    (
       fvm::ddt(k_)
     + fvm::div(phi(), k_)
     - fvm::laplacian(DkEff(), k_)
    ==
       G
     - fvm::Sp(ce_*sqrt(k_)/delta(), k_)
    );

    bound(k_, k0());

    nuSgs_ = ck_*sqrt(k_)*delta();
    nuSgs_.correctBoundaryConditions();
}
it appears that, in src\turbulenceModels\LES\incompressible\GenEddyVis c\GenEddyVisc.H (for example), epsilon() represents
Code:
ce_*sqrt(k_)/delta()
. But, what I am interrested in is G, the production. Since I am doing DNS computations, I have access to both the Reynolds Stress and the gradient of the mean component of velocity, and I do not want to use any eddy viscosity to compute it, like in
Code:
2.0*nuSgs_*magSqr(symm(gradU))
. I just need the formula to combine R and fvc::grad(Umean) properly.

I also do not understand why the symmetric part of the gradient of U is mentionned in the previous post.

Regards,

JD

Dear Johndeas,



Did you find any way out ? I'm also stuck at the same state.
nukecrafts is offline   Reply With Quote

Reply


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 Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Turbulent Dissipation Rates - epsilon Otute Main CFD Forum 5 May 20, 1999 11:51


All times are GMT -4. The time now is 19:11.