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

Howto get the production and dissipation of TKE??

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

Like Tree1Likes
  • 1 Post By alberto

Reply
 
LinkBack Thread Tools Display Modes
Old   June 27, 2009, 04:44
Question Howto get the production and dissipation of TKE??
  #1
Senior Member
 
lakeat's Avatar
 
Daniel WEI (老魏)
Join Date: Mar 2009
Location: South Bend, IN, USA
Posts: 688
Blog Entries: 9
Rep Power: 10
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
__________________
~
Daniel WEI
-------------
NatHaz Modeling Laboratory
Department of Civil & Environmental Engineering & Earth Sciences
University of Notre Dame, USA
Email || My Personal CFD Blog

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

Old   July 6, 2010, 10:55
Default Production and dissipation of TKE
  #2
New Member
 
Join Date: Mar 2010
Posts: 6
Rep Power: 6
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, 11:26
Default
  #3
Senior Member
 
lakeat's Avatar
 
Daniel WEI (老魏)
Join Date: Mar 2009
Location: South Bend, IN, USA
Posts: 688
Blog Entries: 9
Rep Power: 10
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
-------------
NatHaz Modeling Laboratory
Department of Civil & Environmental Engineering & Earth Sciences
University of Notre Dame, USA
Email || My Personal CFD Blog
lakeat is offline   Reply With Quote

Old   December 13, 2010, 17:51
Default
  #4
Senior Member
 
John Deas
Join Date: Mar 2009
Posts: 160
Rep Power: 7
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, 03:55
Default
  #5
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,880
Rep Power: 25
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

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as live DVD/USB, hard drive image and virtual image.
GeekoCFD 32bit - The 32bit edition of GeekoCFD.
GeekoCFD text mode - A smaller version of GeekoCFD, text-mode only, with only OpenFOAM. Available in a variety of virtual formats.
alberto is offline   Reply With Quote

Old   December 14, 2010, 08:18
Default
  #6
Senior Member
 
John Deas
Join Date: Mar 2009
Posts: 160
Rep Power: 7
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
johndeas is offline   Reply With Quote

Old   December 14, 2010, 09:34
Default
  #7
Senior Member
 
David Boger
Join Date: Mar 2009
Location: Penn State Applied Research Laboratory
Posts: 146
Rep Power: 7
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, 11:21
Default
  #8
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,880
Rep Power: 25
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

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as live DVD/USB, hard drive image and virtual image.
GeekoCFD 32bit - The 32bit edition of GeekoCFD.
GeekoCFD text mode - A smaller version of GeekoCFD, text-mode only, with only OpenFOAM. Available in a variety of virtual formats.
alberto 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
Turbulent Dissipation Rates - epsilon Otute Main CFD Forum 5 May 20, 1999 10:51


All times are GMT -4. The time now is 22:49.