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

A new turbulent model without empirical coefficients

Register Blogs Community New Posts Updated Threads Search

Like Tree3Likes
  • 3 Post By s9a9m92001

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   June 26, 2013, 11:13
Default A new turbulent model without empirical coefficients
  #1
New Member
 
Sam_chio
Join Date: Jun 2013
Posts: 5
Rep Power: 13
s9a9m92001 is on a distinguished road
Hi there,

This is my first post. I read a academic paper "A Partial Average Based Study of Compressible Turbulent Flows"
http://www.jomse.org/paperInfo.aspx?ID=88

For incompressible flow, the governing equations are shown in the figure.

Gao_yong equations.PNG

Equation (1) and (2) are averaged continuity and momentum equations.
Equation (3) and (4) are fluctuation continuity and momentum equations.
Equation (5) is the turbulent energy dissipation equation.

The equations describe a new turbulence model without any empirical coefficients, which can simulate statistical mean behaviors and coherent structures of various benchmark turbulent flows.

The chain of momentum transference contains two stages.The first stage is from the mean flow to the fluctuation flow as the viscous dissipation term of the mean flow equals the source term of the fluctuation flow. The second stage is from the fluctuation flow to molecular motion as the viscous dissipation term of the fluctuation flow plays its role.

I have followed the tutorial that added temperature to icoFoam, now I plan to modify pisoFoam solver to solve the equations in OpenFoam.

Any suggestion is really appreciated.

Sam Chio
sharonyue, JR22 and Duo like this.
s9a9m92001 is offline   Reply With Quote

Old   June 28, 2013, 01:31
Default
  #2
New Member
 
Sam_chio
Join Date: Jun 2013
Posts: 5
Rep Power: 13
s9a9m92001 is on a distinguished road
As I known, the equations used by pisoFOAM solver are similar to equation (1) and (2). So I can keep the velocity predictor UEqn using the following code:

Code:
fvVectorMatrix UEqn
(
   fvm::ddt(U)
 + fvm::div(phi, U)
 + turbulence->divDevReff(U)
);

UEqn.relax();

if (momentumPredictor)
{
   solve(UEqn == -fvc::grad(p));
}
The main difference of the new model is the calculation of Reynolds stress divDevReff(U). How to obtain Reynolds stress by solving equation (3) to (5) in OpenFoam? That is my question that I wish to solve.

Last edited by s9a9m92001; July 4, 2013 at 02:51.
s9a9m92001 is offline   Reply With Quote

Old   July 2, 2013, 11:16
Default
  #3
New Member
 
Sam_chio
Join Date: Jun 2013
Posts: 5
Rep Power: 13
s9a9m92001 is on a distinguished road
Dear all,

I consider to build up the new turbulence solver by modifying the RASModel. As I mentioned in foregoing thread, OpenFOAM calculates the turbulent shear stresses in incompressible RASModel using the divDevReff term:

Code:
tmp<fvVectorMatrix> kEpsilon::divDevReff(volVectorField& U) const
{
    return
    (
      - fvm::laplacian(nuEff(), U)
      - fvc::div(nuEff()*dev(T(fvc::grad(U))))
    );
}

Noting that 'nuEff' is the so-called effective viscosity that is the sum of the laminar molecular viscosity and turbulent eddy viscosity. The expression is in the form:
Code:
virtual tmp<volScalarField> nuEff() const
{
    return tmp<volScalarField>
    (
      new volScalarField("nuEff", nut() + nu())
    );
}
Investigating the new turbulent model without empirical coefficients, I prefer to implement equations (3), (4) and (5) to calculate the value of "nut".

Sam

Last edited by s9a9m92001; July 3, 2013 at 11:17.
s9a9m92001 is offline   Reply With Quote

Old   July 3, 2013, 05:28
Default
  #4
New Member
 
Sam_chio
Join Date: Jun 2013
Posts: 5
Rep Power: 13
s9a9m92001 is on a distinguished road
Next it is required to solve drift velocity udrift, drift pressure pdrift and turbulence length scale l. Header file createField.h may take the form like:
Code:
    udrift_
    (
        IOobject
        (
            "udrift",
            runTime_.timeName(),
            mesh_,
            IOobject::NO_READ,
            IOobject::AUTO_WRITE
        ),
        autoCreateUdrift("udrift", mesh_)
    ),

    pdrift_
    (
        IOobject
        (
            "pdrift",
            runTime_.timeName(),
            mesh_,
            IOobject::NO_READ,
            IOobject::AUTO_WRITE
        ),
        autoCreatePdrift("pdrift", mesh_)
    ),

    l_
    (
        IOobject
        (
            "l",
            runTime_.timeName(),
            mesh_,
            IOobject::NO_READ,
            IOobject::AUTO_WRITE
        ),
        autoCreateL("l", mesh_)
    ),

    nut_
    (
        IOobject
        (
            "nut",
            runTime_.timeName(),
            mesh_,
            IOobject::NO_READ,
            IOobject::AUTO_WRITE
        ),
        autoCreateNut("nut", mesh_)
    )

Last edited by s9a9m92001; July 6, 2013 at 02:58.
s9a9m92001 is offline   Reply With Quote

Old   July 3, 2013, 22:24
Default
  #5
New Member
 
Sam_chio
Join Date: Jun 2013
Posts: 5
Rep Power: 13
s9a9m92001 is on a distinguished road
Considering the C++ code of equation (4), we have the expression in the form
Code:
fvVectorMatrix UdriftEqn
(
   fvm::ddt(udrift)
 + fvm::div(phi, udrift)
 + fvm::div(phidrift, U)
 + turbulence->divDevReff(udrift)
 - turbulence->divDevReff(U)
);

UdriftEqn.relax();

if (momentumPredictor)
{
   solve(UdriftEqn == -fvc::grad(pdrift));
}

Last edited by s9a9m92001; July 4, 2013 at 02:50.
s9a9m92001 is offline   Reply With Quote

Old   September 22, 2013, 22:40
Default
  #6
Senior Member
 
Dongyue Li
Join Date: Jun 2012
Location: Beijing, China
Posts: 849
Rep Power: 18
sharonyue is on a distinguished road
It has been a while. how is it going dude?
AFAIK, Prof. Gao's student is doing the same thing and their works had been published in Chinese Journal.

Last edited by sharonyue; September 23, 2013 at 22:44.
sharonyue is offline   Reply With Quote

Old   October 10, 2013, 00:11
Default
  #7
Senior Member
 
Dongyue Li
Join Date: Jun 2012
Location: Beijing, China
Posts: 849
Rep Power: 18
sharonyue is on a distinguished road
Quote:
Originally Posted by s9a9m92001 View Post
Considering the C++ code of equation (4), we have the expression in the form
Code:
fvVectorMatrix UdriftEqn
(
   fvm::ddt(udrift)
 + fvm::div(phi, udrift)
 + fvm::div(phidrift, U)
 + turbulence->divDevReff(udrift)
 - turbulence->divDevReff(U)
);

UdriftEqn.relax();

if (momentumPredictor)
{
   solve(UdriftEqn == -fvc::grad(pdrift));
}
I think it should be:
Code:
+ fvc::div(phidrift, U)
rite?
sharonyue 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
Low Reynolds k-epsilon model YJZ ANSYS 1 August 20, 2010 14:57
difference of the laminar and turbulent model duaiduaihu FLUENT 0 August 14, 2010 00:40
Two-layer turbulent model maolongliu OpenFOAM Programming & Development 0 July 27, 2010 12:40
Turbulent combustion error... XiFoam model achinta OpenFOAM 1 July 7, 2010 09:24
Implement new Turbulence Model sven OpenFOAM 0 July 19, 2009 16:47


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